コード例 #1
0
        public override async Task LoadContent()
        {
            await base.LoadContent();

            AddCancelButton();

            //create the dropdown widget
            var drop = new NumEdit(0f, Content);

            drop.Vertical   = VerticalAlignment.Center;
            drop.Horizontal = HorizontalAlignment.Right;
            drop.Size       = new Vector2(350, 128);
            drop.Position   = Resolution.ScreenArea.Center;

            AddItem(drop);
        }
コード例 #2
0
        void numericDouble_TextChanged(object sender, EventArgs e)
        {
            NumEdit numEdit = (NumEdit)sender;
            int     index   = int.Parse(numEdit.Name.Substring(numEdit.Name.LastIndexOf("_") + 1));

            if (!string.IsNullOrEmpty(numEdit.Text))
            {
                numEdit.BackColor            = Color.White;
                ParametersToPass[index]      = double.Parse(numEdit.Text);
                ValuesThatHaveBeenSet[index] = true;
            }
            else
            {
                numEdit.BackColor            = InvalidColor;
                ParametersToPass[index]      = null;
                ValuesThatHaveBeenSet[index] = false;
            }
        }
コード例 #3
0
        private void Populate()
        {
            this.Text = "Preview: " + TheFunction.Name;
            panel1.Controls.Clear();
            int gap           = 5;
            int currentTop    = 0;
            int maxLabelWidth = 0;

            System.Drawing.Font font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
            Label measureLabel       = new Label();

            measureLabel.BackColor = Color.Transparent;
            measureLabel.Font      = font;
            Graphics graphics = Graphics.FromHwnd(measureLabel.Handle);
            string   displayText;

            ParametersToPass = new object[TheFunction.Parameters.Length];
            bool          parametersMatch  = false;
            List <object> parameterObjects = null;

            ValuesThatHaveBeenSet = new bool[TheFunction.Parameters.Length];

            if (CachedParameteres.ContainsKey(TheFunction))
            {
                parameterObjects = CachedParameteres[TheFunction];
                parametersMatch  = TheFunction.Parameters.Length == parameterObjects.Count;

                if (parametersMatch)
                {
                    for (int i = 0; i < TheFunction.Parameters.Length; i++)
                    {
                        if (parameterObjects[i] == null || !TheFunction.Parameters[i].DataType.IsInstanceOfType(parameterObjects[i]))
                        {
                            parametersMatch = false;
                        }
                    }
                }
            }
            for (int i = 0; i < TheFunction.Parameters.Length; i++)
            {
                Project.ParamInfo param = TheFunction.Parameters[i];
                displayText   = string.Format("{2}. {0} ({1}):", param.Name, param.DataType, i + 1);
                maxLabelWidth = (float)maxLabelWidth > graphics.MeasureString(displayText, font).Width ? maxLabelWidth : (int)graphics.MeasureString(displayText, new Font("Microsoft Sans Serif", 8.25f)).Width;

                if (parametersMatch)
                {
                    ParametersToPass[i]      = parameterObjects[i];
                    ValuesThatHaveBeenSet[i] = true;
                }
            }
            for (int i = 0; i < TheFunction.Parameters.Length; i++)
            {
                Project.ParamInfo param = TheFunction.Parameters[i];
                // New implementation
                Label lbl = new Label();
                lbl.Text      = string.Format("{2}. {0} ({1}):", param.Name, param.DataType, i + 1);
                lbl.TextAlign = ContentAlignment.BottomLeft;
                lbl.Width     = maxLabelWidth + gap;
                panel1.Controls.Add(lbl);
                lbl.Left = gap;

                if (i == 0)
                {
                    currentTop = 0;
                }
                else
                {
                    currentTop += lbl.Height + gap;
                }
                lbl.Top    = currentTop;
                currentTop = lbl.Bottom;
                //                typeof(ArchAngel.Interfaces.IScriptBaseObject).IsInstanceOfType(param.DataType)
                if (param.DataType.GetInterface("ArchAngel.Interfaces.IScriptBaseObject") != null)
                {
                    Label txt = new Label();
                    txt.BackColor   = InvalidColor;
                    txt.Top         = currentTop;
                    txt.Left        = gap * 4;
                    txt.Tag         = param;
                    txt.BorderStyle = BorderStyle.FixedSingle;

                    if (parametersMatch)
                    {
                        txt.Text = ArchAngel.Interfaces.ProjectHelper.GetDisplayName(ParametersToPass[i]);
                    }
                    panel1.Controls.Add(txt);

                    Button btnBrowseArchAngelObject = new Button();
                    btnBrowseArchAngelObject.Text      = "...";
                    btnBrowseArchAngelObject.BackColor = Color.FromKnownColor(KnownColor.Control);
                    btnBrowseArchAngelObject.Width     = btnBrowseArchAngelObject.Height + gap;
                    btnBrowseArchAngelObject.Top       = currentTop;
                    btnBrowseArchAngelObject.Tag       = txt;
                    btnBrowseArchAngelObject.Name      = string.Format("btnBrowseArchAngelObject_{0}", i);
                    btnBrowseArchAngelObject.Click    += new EventHandler(btnBrowseArchAngelObject_Click);
                    btnBrowseArchAngelObject.Left      = txt.Right + gap;
                    panel1.Controls.Add(btnBrowseArchAngelObject);
                }
                else
                {
                    switch (param.DataType.Name.ToLower())
                    {
                    case "bool":
                    case "boolean":
                        CheckBox chk = new CheckBox();
                        chk.Top             = currentTop;
                        chk.Left            = gap * 4;
                        chk.Name            = string.Format("chk_{0}", i);
                        chk.CheckedChanged += new EventHandler(chk_CheckedChanged);
                        panel1.Controls.Add(chk);
                        break;

                    case "int":
                    case "int32":
                        NumEdit numericInt = new NumEdit();
                        numericInt.BackColor    = InvalidColor;
                        numericInt.InputType    = NumEdit.NumEditType.Integer;
                        numericInt.Top          = currentTop;
                        numericInt.Left         = gap * 4;
                        numericInt.Name         = string.Format("numericInt_{0}", i);
                        numericInt.TextChanged += new EventHandler(numericInt_TextChanged);
                        panel1.Controls.Add(numericInt);
                        break;

                    case "double":
                        NumEdit numericDouble = new NumEdit();
                        numericDouble.BackColor    = InvalidColor;
                        numericDouble.InputType    = NumEdit.NumEditType.Double;
                        numericDouble.Top          = currentTop;
                        numericDouble.Left         = gap * 4;
                        numericDouble.Name         = string.Format("numericDouble_{0}", i);
                        numericDouble.TextChanged += new EventHandler(numericDouble_TextChanged);
                        panel1.Controls.Add(numericDouble);
                        break;

                    case "string":
                        TextBox txt2 = new TextBox();
                        txt2.BackColor    = InvalidColor;
                        txt2.Text         = "Not set";
                        txt2.Top          = currentTop;
                        txt2.Left         = gap * 4;
                        txt2.Name         = string.Format("txt2_{0}", i);
                        txt2.TextChanged += new EventHandler(txt2_TextChanged);
                        panel1.Controls.Add(txt2);
                        break;

                    default:
                        MessageBox.Show(this, "Data type not handled yet: " + param.DataType.Name, "Unexpected Data-Type", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                        break;
                    }
                }
            }
            //if (parametersMatch)
            //{
            //    Run();
            //}
        }