예제 #1
0
            /// <summary>
            /// The but_ click.
            /// </summary>
            /// <param name="sender">The sender.</param>
            /// <param name="e">The e.</param>
            /// <remarks></remarks>
            private void but_Click(object sender, EventArgs e)
            {
                // Remove control object
                ControlSwapper cs     = (ControlSwapper)((Control)sender).TopLevelControl;
                int            conNum = cs.splitContainer1.Panel2.Controls.IndexOf(((Control)sender).Parent);
                string         s      = string.Empty;
                int            j      = 0;
                int            size   = 0;

                cs.getDataOf(((Control)sender).Parent, ref s, ref size, ref j, ref j);
                cs.newControlSize -= size;
                if (((ControlSwapper)this.TopLevelControl).label1.Text.Contains(" :: "))
                {
                    ((ControlSwapper)this.TopLevelControl).label1.Text =
                        ((ControlSwapper)this.TopLevelControl).label1.Text.Remove(
                            ((ControlSwapper)this.TopLevelControl).label1.Text.IndexOf(" :: "));
                }

                ((ControlSwapper)this.TopLevelControl).label1.Text += " :: New Control Size : " +
                                                                      ((ControlSwapper)this.TopLevelControl).
                                                                      newControlSize;
                cs.splitContainer1.Panel2.Controls.RemoveAt(conNum);

                // throw new NotImplementedException();
            }
예제 #2
0
            /// <summary>
            /// The button 1_ click.
            /// </summary>
            /// <param name="sender">The sender.</param>
            /// <param name="e">The e.</param>
            /// <remarks></remarks>
            private void button1_Click(object sender, EventArgs e)
            {
                ControlSwapper parent = (ControlSwapper)this.Parent.Parent.Parent;

                // Add selected control
                IFPIO.Option[] options = null;
                //int strLength = 0;
                Control con = null;

                switch (((dataTypeStruct)comboBox1.SelectedItem).name.ToLower())
                {
                /*
                 * parent.splitContainer1.Panel2.Controls.Add(new DataValues(parent.name, null, parent.chunkoffset, IFPIO.ObjectEnum.Byte, parent.lineNum));
                 * parent.splitContainer1.Panel2.Controls.Add(new DataValues(parent.name, null, parent.chunkoffset, IFPIO.ObjectEnum.Short, parent.lineNum));
                 * parent.splitContainer1.Panel2.Controls.Add(new DataValues(parent.name, null, parent.chunkoffset, IFPIO.ObjectEnum.Int, parent.lineNum));
                 * parent.splitContainer1.Panel2.Controls.Add(new DataValues(parent.name, null, parent.chunkoffset, IFPIO.ObjectEnum.Float, parent.lineNum));
                 */
                case "byte":
                case "short":
                case "ushort":
                case "int":
                case "uint":
                case "float":
                case "unknown":
                case "unused":
                    con = new DataValues(
                        parent.name,
                        null,
                        parent.chunkoffset,
                        (IFPIO.ObjectEnum)
                        Enum.Parse(typeof(IFPIO.ObjectEnum), ((dataTypeStruct)comboBox1.SelectedItem).name, true),
                        parent.lineNum);
                    break;

                case "char_enum":
                case "enum":
                case "long_enum":
                    options = new IFPIO.Option[((dataTypeStruct)comboBox1.SelectedItem).size << 3];

                    // Size * 8 bits
                    for (int x = 0; x < options.Length; x++)
                    {
                        options[x] = new IFPIO.Option("Bit " + x, x.ToString(), parent.lineNum);
                    }

                    if (parent.splitContainer1.Panel1.Controls[0] is Bitmask)
                    {
                        Bitmask b = (Bitmask)parent.splitContainer1.Panel1.Controls[0];
                        foreach (IFPIO.Option o in b.Options)
                        {
                            if (o.value < options.Length)
                            {
                                options[o.value].name = o.name;
                            }
                        }
                    }

                    ;
                    if (parent.splitContainer1.Panel1.Controls[0] is Enums)
                    {
                        Enums en = (Enums)parent.splitContainer1.Panel1.Controls[0];
                        foreach (IFPIO.Option o in en.Options)
                        {
                            if (o.value < options.Length)
                            {
                                options[o.value].name = o.name;
                            }
                        }
                    }

                    ;
                    con = new Enums(parent.name, null, parent.chunkoffset, options.Length, options, parent.lineNum);
                    break;

                case "byte_flags":
                case "word_flags":
                case "long_flags":
                    options = new IFPIO.Option[((dataTypeStruct)comboBox1.SelectedItem).size << 3];

                    // Size * 8 bits
                    for (int x = 0; x < options.Length; x++)
                    {
                        options[x] = new IFPIO.Option("Bit " + x, x.ToString(), parent.lineNum);
                    }

                    if (parent.splitContainer1.Panel1.Controls[0] is Bitmask)
                    {
                        Bitmask b = (Bitmask)parent.splitContainer1.Panel1.Controls[0];
                        foreach (IFPIO.Option o in b.Options)
                        {
                            options[o.value].name = o.name;
                        }
                    }

                    ;
                    if (parent.splitContainer1.Panel1.Controls[0] is Enums)
                    {
                        Enums en = (Enums)parent.splitContainer1.Panel1.Controls[0];
                        foreach (IFPIO.Option o in en.Options)
                        {
                            options[o.value].name = o.name;
                        }
                    }

                    ;
                    con = new Bitmask(
                        parent.name, null, parent.chunkoffset, options.Length, options, parent.lineNum);
                    break;

                case "stringid":
                    con = new SID(parent.name, null, parent.chunkoffset, parent.lineNum);
                    break;

                case "string":
                    con = new EntStrings(
                        parent.name,
                        null,
                        parent.chunkoffset,
                        ((dataTypeStruct)comboBox1.SelectedItem).size,
                        false,
                        parent.lineNum);
                    break;

                case "unicodestring":
                    con = new EntStrings(
                        parent.name,
                        null,
                        parent.chunkoffset,
                        ((dataTypeStruct)comboBox1.SelectedItem).size,
                        true,
                        parent.lineNum);
                    break;

                case "block":
                    con = new TagBlock(parent.name, null, parent.chunkoffset, parent.lineNum);
                    break;

                case "ident":
                    con = new Ident(parent.name, null, parent.chunkoffset, true, parent.lineNum);
                    break;

                case "struct":

                    // Unhandled
                    //int ifkdn = 0;
                    break;

                default:
                {
                    return;
                }
                }

                Button but = new Button();

                but.Dock   = DockStyle.Right;
                but.Size   = new Size(30, 30);
                but.Text   = "-";
                but.Click += but_Click;

                if (con != null)
                {
                    con.Controls.Add(but);

                    // con.Enabled = false;
                    con.Dock = DockStyle.Top;
                    Point loc = con.Controls[con.Controls.Count - 2].Location;
                    loc.X -= 50;
                    con.Controls[con.Controls.Count - 2].Location = loc;

                    // con.TabIndex--;
                    parent.splitContainer1.Panel2.Controls.Add(con);
                    con.BringToFront();
                    ((ControlSwapper)this.TopLevelControl).newControlSize +=
                        ((ControlSwapper)this.TopLevelControl).getSizeOf(((dataTypeStruct)comboBox1.SelectedItem).name);
                    if (((ControlSwapper)this.TopLevelControl).label1.Text.Contains(" :: "))
                    {
                        ((ControlSwapper)this.TopLevelControl).label1.Text =
                            ((ControlSwapper)this.TopLevelControl).label1.Text.Remove(
                                ((ControlSwapper)this.TopLevelControl).label1.Text.IndexOf(" :: "));
                    }

                    ((ControlSwapper)this.TopLevelControl).label1.Text += " :: New Control Size : " +
                                                                          ((ControlSwapper)this.TopLevelControl).
                                                                          newControlSize;
                }

                parent.splitContainer1.Panel2.Controls[parent.splitContainer1.Panel2.Controls.IndexOf(this)].
                BringToFront();
                parent.splitContainer1.Panel2.Controls[parent.splitContainer1.Panel2.Controls.IndexOf(this)].TabIndex++;
            }