예제 #1
0
        Label CreateEndLabel(string text, int row)
        {
            Label label = ControlCreator.CreateLabel(text, DockStyle.Left);

            panel.Controls.Add(label, 0, row);
            maxRow  = row;
            endSign = label;

            return(label);
        }
예제 #2
0
        public override void Create()
        {
            descLabel = ControlCreator.CreateLabel(desc, DockStyle.Left);
            table.Controls.Add(descLabel, 0, maxRow);

            cbo = ControlCreator.CreateComboBox(options, selected, true);
            cbo.SelectedIndexChanged += cbo_SelectedIndexChanged;
            table.Controls.Add(cbo, 1, maxRow);

            maxRow++;

            base.Create();
        }
예제 #3
0
        public void EndCreate()
        {
            if (endLabel != null)
            {
                table.Controls.Remove(endLabel);
            }

            maxRow += 2;

            endLabel = ControlCreator.CreateLabel("", DockStyle.None);
            table.Controls.Add(endLabel, 0, maxRow);
            maxRow++;
        }
예제 #4
0
        void AddLabel(string name, int row)
        {
            DockStyle dock = DockStyle.Right;

            if (name.Length > 2)
            {
                dock = DockStyle.Left;
            }

            Label label = ControlCreator.CreateLabel(name, dock);

            desc.Add(label);

            table.Controls.Add(label, 0, row);
        }
예제 #5
0
        public virtual void Create()
        {
            string name = PropertyHelper.GetTypeName(obj.ObjectType);

            ConstructorInfo[] ctors = AssemblyManager.GetType(obj.ObjectType).GetConstructors();
            ConstructorInfo   info  = null;

            if (obj.Parameters != null)
            {
                for (int i = 0; i < ctors.Length; i++)
                {
                    if (ctors[i].GetParameters().Length == obj.Parameters.Length)
                    {
                        info = ctors[i];
                    }
                }
            }
            else
            {
                if (ctors.Length > 1)
                {
                    int max = 0;

                    for (int i = 0; i < ctors.Length; i++)
                    {
                        if (ctors[i].GetParameters().Length > max)
                        {
                            info = ctors[i];
                            max  = info.GetParameters().Length;
                        }
                    }

                    obj.Parameters = new object[max];
                }
                else
                {
                    info           = ctors[0];
                    obj.Parameters = new object[info.GetParameters().Length];
                }
            }

            ParameterInfo[] param = info.GetParameters();

            for (int i = 0; i < param.Length; i++)
            {
                string paramName = PropertyHelper.GetName(param[i].Name);

                Type t = param[i].ParameterType;

                if (t == typeof(bool))
                {
                    table.Controls.Add(ControlCreator.CreateLabel(paramName, DockStyle.Left), 0, maxRow);

                    bool val = false;

                    try
                    {
                        if (obj.Parameters[i] != null)
                        {
                            val = (bool)obj.Parameters[i];
                        }
                        else
                        {
                            obj.Parameters[i] = val;
                        }
                    }
                    catch { }

                    ctrls.Add(new ModCheckBox("", val, i, table,
                                              maxRow, paramName));

                    maxRow++;
                }
                else if (t == typeof(string))
                {
                    table.Controls.Add(ControlCreator.CreateLabel(paramName, DockStyle.Left), 0, maxRow);

                    string val = "";

                    try
                    {
                        if (obj.Parameters[i] != null)
                        {
                            val = (string)obj.Parameters[i];
                        }
                        else
                        {
                            obj.Parameters[i] = val;
                        }
                    }
                    catch { }

                    if (paramName.Contains("Filepath"))
                    {
                        ModTextBox <string> txt = new ModTextBox <string>(
                            val, "", i, table, maxRow, new string[] { ".xnb" }, true);

                        ctrls.Add(txt);
                    }
                    else
                    {
                        ModTextBox <string> txt = new ModTextBox <string>(
                            val, i, table, maxRow);

                        ctrls.Add(txt);
                    }

                    maxRow++;
                }
                else if (t == typeof(Int32))
                {
                    table.Controls.Add(ControlCreator.CreateLabel(paramName, DockStyle.Left), 0, maxRow);

                    int val = 0;

                    try
                    {
                        if (obj.Parameters[i] != null)
                        {
                            val = (int)obj.Parameters[i];
                        }
                        else
                        {
                            obj.Parameters[i] = val;
                        }
                    }
                    catch { }

                    ctrls.Add(new ModTextBox <int>(
                                  val, i, table, maxRow));

                    maxRow++;
                }
                else if (t == typeof(Single))
                {
                    table.Controls.Add(ControlCreator.CreateLabel(paramName, DockStyle.Left), 0, maxRow);

                    float val = 0.0f;

                    try
                    {
                        if (obj.Parameters[i] != null)
                        {
                            val = (float)obj.Parameters[i];
                        }
                        else
                        {
                            obj.Parameters[i] = val;
                        }
                    }
                    catch { }

                    ctrls.Add(new ModTextBox <float>(
                                  val, i, table, maxRow));

                    maxRow++;
                }
                else if (t == typeof(Vector2))
                {
                    Vector2 vec = Vector2.Zero;

                    try
                    {
                        if (obj.Parameters[i] != null)
                        {
                            vec = (Vector2)obj.Parameters[i];
                        }
                        else
                        {
                            obj.Parameters[i] = vec;
                        }
                    }
                    catch { }

                    float[] array = new float[]
                    {
                        vec.X, vec.Y
                    };

                    string[] names = new string[]
                    {
                        "X", "Y"
                    };

                    GroupedTextBox <float> group = new GroupedTextBox <float>(
                        paramName, "", array, names, i, table, maxRow);

                    ctrls.Add(group);

                    maxRow = group.MaxRow;
                }
                else if (t == typeof(Vector3))
                {
                    Vector3 vec = Vector3.Zero;

                    try
                    {
                        if (obj.Parameters[i] != null)
                        {
                            vec = (Vector3)obj.Parameters[i];
                        }
                        else
                        {
                            obj.Parameters[i] = vec;
                        }
                    }
                    catch { }

                    float[] array = new float[]
                    {
                        vec.X, vec.Y, vec.Z
                    };

                    string[] names = new string[]
                    {
                        "X", "Y", "Z"
                    };

                    GroupedTextBox <float> group = new GroupedTextBox <float>(
                        paramName, "", array, names, i, table, maxRow);

                    ctrls.Add(group);

                    maxRow = group.MaxRow;
                }
                else if (t == typeof(Vector4))
                {
                    Vector4 vec = Vector4.Zero;

                    try
                    {
                        if (obj.Parameters[i] != null)
                        {
                            vec = (Vector4)obj.Parameters[i];
                        }
                        else
                        {
                            obj.Parameters[i] = vec;
                        }
                    }
                    catch { }

                    float[] array = new float[]
                    {
                        vec.X, vec.Y, vec.Z, vec.W
                    };

                    string[] names = new string[]
                    {
                        "X", "Y", "Z", "W"
                    };

                    GroupedTextBox <float> group = new GroupedTextBox <float>(
                        paramName, "", array, names, i, table, maxRow);

                    ctrls.Add(group);

                    maxRow = group.MaxRow;
                }
                else if (t == typeof(Microsoft.Xna.Framework.Color))
                {
                    Microsoft.Xna.Framework.Color col =
                        Microsoft.Xna.Framework.Color.White;

                    try
                    {
                        if (obj.Parameters[i] != null)
                        {
                            col = (Microsoft.Xna.Framework.Color)obj.Parameters[i];
                        }
                        else
                        {
                            obj.Parameters[i] = col;
                        }
                    }
                    catch { }

                    byte[] array = new byte[]
                    {
                        col.R, col.G, col.B, col.A
                    };

                    string[] names = new string[]
                    {
                        "R", "G", "B", "A"
                    };

                    GroupedTextBox <byte> group = new GroupedTextBox <byte>(
                        paramName, "", array, names, i, table, maxRow);

                    ctrls.Add(group);

                    maxRow = group.MaxRow;
                }
                else if (t == typeof(Microsoft.Xna.Framework.Rectangle))
                {
                    Microsoft.Xna.Framework.Rectangle rect =
                        Microsoft.Xna.Framework.Rectangle.Empty;

                    try
                    {
                        if (obj.Parameters[i] != null)
                        {
                            rect = (Microsoft.Xna.Framework.Rectangle)obj.Parameters[i];
                        }
                        else
                        {
                            obj.Parameters[i] = rect;
                        }
                    }
                    catch { }

                    int[] array = new int[]
                    {
                        rect.X, rect.Y, rect.Width, rect.Height
                    };

                    string[] names = new string[]
                    {
                        "X", "Y", "Width", "Height"
                    };

                    GroupedTextBox <int> group = new GroupedTextBox <int>(
                        paramName, "", array, names, i, table, maxRow);

                    ctrls.Add(group);

                    maxRow = group.MaxRow;
                }
            }
        }