void SetPos(ref Point lp, Label lab, Point tp, ExtendedControls.ExtTextBox box, int vspacing, int i)
 {
     lab.Location = lp;
     box.Location = tp;
     box.Tag      = lab.Tag = i;
     lab.Visible  = box.Visible = true;
     lp.Y        += vspacing;
 }
        private void Value_Click(object sender, EventArgs e)
        {
            ExtendedControls.ExtTextBox b = sender as ExtendedControls.ExtTextBox;
            Group g = (Group)b.Tag;

            if (b.ReadOnly)
            {
                ActionConfig_Clicked(g.config, null);
            }
        }
        private void Value_TextChanged(object sender, EventArgs e)
        {
            ExtendedControls.ExtTextBox tb = sender as ExtendedControls.ExtTextBox;
            Group      g      = (Group)tb.Tag;
            ActionBase curact = curprog.GetStep(groups.IndexOf(g));

            if (tb.Enabled && curact != null)
            {
                curact.UpdateUserData(tb.Text);
            }
        }
        public void Init(Condition c, Icon ic, ToolTip toolTip)
        {
            cd   = c;   // point to common condition.  We only change the fields, not the cd.action/actiondata, and we don't replace it.
            Icon = ic;

            // layed out for 12 point. Requires a 28 pixel area to sit in

            panelConditionType                       = new ExtendedControls.ExtPanelDropDown();
            panelConditionType.Location              = new Point(0, 0);
            panelConditionType.Size                  = new Size(this.Width, 28); // outer panel aligns with this UC
            panelConditionType.SelectedIndexChanged += PanelConditionType_SelectedIndexChanged;
            toolTip.SetToolTip(panelConditionType, "Use the selector (click on bottom right arrow) to select condition class type");

            textBoxCondition          = new ExtendedControls.ExtTextBox();
            textBoxCondition.Location = new Point(panelxmargin, panelymargin);
            textBoxCondition.Size     = new Size(this.Width - 8 - panelxmargin * 2, 24); // 8 for selector
            textBoxCondition.ReadOnly = true;
            textBoxCondition.Click   += Condition_Click;
            textBoxCondition.SetTipDynamically(toolTip, "Click to edit the condition that controls when the event is generated");

            buttonKeys          = new ExtendedControls.ExtButton();
            buttonKeys.Location = textBoxCondition.Location;
            buttonKeys.Size     = textBoxCondition.Size;
            buttonKeys.Click   += Keypress_Click;
            toolTip.SetToolTip(buttonKeys, "Click to set the key list that associated this event with key presses");

            labelAlwaysTrue          = new Label();
            labelAlwaysTrue.Location = new Point(panelxmargin, panelymargin + 1);
            labelAlwaysTrue.Size     = textBoxCondition.Size;
            labelAlwaysTrue.Text     = "Always Action/True";

            labelAlwaysFalse          = new Label();
            labelAlwaysFalse.Location = new Point(panelxmargin, panelymargin + 1);
            labelAlwaysFalse.Size     = textBoxCondition.Size;
            labelAlwaysFalse.Text     = "Never Action/False";

            SuspendLayout();
            panelConditionType.Controls.Add(textBoxCondition);
            panelConditionType.Controls.Add(labelAlwaysTrue);
            panelConditionType.Controls.Add(labelAlwaysFalse);
            panelConditionType.Controls.Add(buttonKeys);
            Controls.Add(panelConditionType);
            SelectRepresentation();
            ResumeLayout();
        }
        void SetValue(ExtendedControls.ExtTextBox value, ActionBase step)
        {
            value.Enabled  = false;
            value.Text     = "";
            value.ReadOnly = true;

            if (step != null)
            {
                value.ReadOnly = !step.AllowDirectEditingOfUserData;
                value.Visible  = step.DisplayedUserData != null;
                if (step.DisplayedUserData != null)
                {
                    value.Text = step.DisplayedUserData;
                }
            }

            value.Enabled = true;
        }
Beispiel #6
0
 void UpdateSkinny()
 {
     if (IsTransparent && (Selection & (1 << BitSelSkinny)) != 0)
     {
         foreach (Control c in Controls)
         {
             if (c is ExtendedControls.ExtTextBox)
             {
                 ExtendedControls.ExtTextBox b = c as ExtendedControls.ExtTextBox;
                 b.ControlBackground = Color.Red;
                 b.BorderStyle       = BorderStyle.None;
                 b.BorderColor       = Color.Transparent;
             }
         }
     }
     else
     {
         EDDTheme.Instance.ApplyToControls(this);
     }
 }
        public override void Init(Condition cond, List <string> events, ActionCoreController cp, string appfolder, ActionFile actionfile,
                                  System.Func <string, List <BaseUtils.TypeHelpers.PropertyNameInfo> > func, Icon ic, ToolTip toolTip)
        {
            cd = cond;      // on creation, the cond with be set to onVoice with one condition, checked in ActionController.cs:SetPackEditor..

            // layed out for 12 point.  UC below require 28 point area

            textBoxInput              = new ExtendedControls.ExtTextBox();
            textBoxInput.Location     = new Point(panelxmargin, panelymargin);
            textBoxInput.Size         = new Size(356, 24); // manually matched to size of eventprogramcondition bits
            textBoxInput.Text         = cd.Fields[0].MatchString;
            textBoxInput.TextChanged += TextBoxInput_TextChanged;
            textBoxInput.SetTipDynamically(toolTip, "Enter the voice input to recognise.  Multiple phrases seperate with semicolons");

            Controls.Add(textBoxInput);

            ActionProgram p = cond.Action.HasChars() ? actionfile.ProgramList.Get(cond.Action) : null;

            ActionProgram.ProgramConditionClass classifier = p != null ? p.ProgramClass : ActionProgram.ProgramConditionClass.KeySay;

            ucprog          = new ActionPackEditProgram();
            ucprog.Location = new Point(textBoxInput.Right + 16, 0);
            ucprog.Size     = new Size(400, 28);   // init all the panels to 0/this height, select widths
            ucprog.Init(actionfile, cond, cp, appfolder, ic, toolTip, classifier);
            ucprog.onEditKeys         = onEditKeys;
            ucprog.onEditSay          = onEditSay;
            ucprog.onAdditionalNames += () => { return(func(cd.EventName)); };
            ucprog.SuggestedName     += () =>
            {
                string textparse = (textBoxInput.Text.Length > 0 && !textBoxInput.Text.Equals("?")) ? ("_" + textBoxInput.Text.Split(';')[0].SafeVariableString()) : "";
                return("VoiceInput" + textparse);
            };

            ucprog.RefreshEvent += () => { RefreshIt(); };
            Controls.Add(ucprog);
        }
        private void Init(Icon icon, System.Drawing.Size minsize, System.Drawing.Size maxsize, System.Drawing.Point pos,
                          string caption, string lname, Object callertag, bool closeicon,
                          HorizontalAlignment?halign, ControlHelpersStaticFunc.VerticalAlignment?valign,
                          AutoScaleMode asm, bool transparent)
        {
            this.logicalname = lname;     // passed back to caller via trigger
            this.callertag   = callertag; // passed back to caller via trigger

            this.halign = halign;
            this.valign = valign;

            this.minsize = minsize;       // set min size window
            this.maxsize = maxsize;

            ITheme theme = ThemeableFormsInstance.Instance;

            FormBorderStyle = FormBorderStyle.FixedDialog;

            //outer = new ExtPanelScroll() { Dock = DockStyle.Fill, BorderStyle = BorderStyle.FixedSingle, Margin = new Padding(0), Padding = new Padding(0) };
            outer = new ExtPanelScroll()
            {
                Name = "Outer", BorderStyle = BorderStyle.FixedSingle, Margin = new Padding(0), Padding = new Padding(0)
            };
            outer.MouseDown += FormMouseDown;
            outer.MouseUp   += FormMouseUp;
            Controls.Add(outer);

            ExtScrollBar scr = new ExtScrollBar();

            scr.HideScrollBar = true;
            outer.Controls.Add(scr);

            this.Text = caption;

            int yoffset = 0;                            // adjustment to move controls up if windows frame present.

            if (theme.WindowsFrame && !ForceNoBorder)
            {
                yoffset = int.MaxValue;
                for (int i = 0; i < entries.Count; i++)             // find minimum control Y
                {
                    yoffset = Math.Min(yoffset, entries[i].pos.Y);
                }

                yoffset -= 8;           // place X spaces below top
            }
            else
            {
                titlelabel = new Label()
                {
                    Name = "title", Left = 4, Top = 8, Width = 10, Text = caption, AutoSize = true
                };                                                                                                         // autosize it, and set width small so it does not mess up the computation below
                titlelabel.MouseDown += FormMouseDown;
                titlelabel.MouseUp   += FormMouseUp;
                titlelabel.Name       = "title";
                outer.Controls.Add(titlelabel);

                if (closeicon)
                {
                    closebutton = new ExtButtonDrawn()
                    {
                        Name = "closebut", Size = new Size(18, 18), Location = new Point(0, 0)
                    };                                                                                                                 // purposely at top left to make it not contribute to overall size
                    closebutton.ImageSelected = ExtButtonDrawn.ImageType.Close;
                    closebutton.Click        += (sender, f) =>
                    {
                        if (!ProgClose)
                        {
                            Trigger?.Invoke(logicalname, "Close", callertag);
                        }
                    };

                    outer.Controls.Add(closebutton);            // add now so it gets themed
                }
            }

            ToolTip tt = new ToolTip(components);

            tt.ShowAlways = true;

            for (int i = 0; i < entries.Count; i++)
            {
                Entry   ent = entries[i];
                Control c   = ent.controltype != null ? (Control)Activator.CreateInstance(ent.controltype) : ent.control;
                ent.control = c;
                c.Size      = ent.size;
                c.Location  = new Point(ent.pos.X, ent.pos.Y - yoffset);
                c.Name      = ent.controlname;
                if (!(ent.text == null || c is ExtendedControls.ExtComboBox || c is ExtendedControls.ExtDateTimePicker || c is ExtendedControls.NumberBoxDouble || c is ExtendedControls.NumberBoxLong))        // everything but get text
                {
                    c.Text = ent.text;
                }
                c.Tag = ent;     // point control tag at ent structure
                System.Diagnostics.Debug.WriteLine("Control " + c.GetType().ToString() + " at " + c.Location + " " + c.Size + " " + c.Text);
                outer.Controls.Add(c);
                if (ent.tooltip != null)
                {
                    tt.SetToolTip(c, ent.tooltip);
                }

                if (c is Label)
                {
                    Label l = c as Label;
                    if (ent.textalign.HasValue)
                    {
                        l.TextAlign = ent.textalign.Value;
                    }
                }
                else if (c is ExtendedControls.ExtButton)
                {
                    ExtendedControls.ExtButton b = c as ExtendedControls.ExtButton;
                    if (ent.textalign.HasValue)
                    {
                        b.TextAlign = ent.textalign.Value;
                    }
                    b.Click += (sender, ev) =>
                    {
                        if (!ProgClose)
                        {
                            Entry en = (Entry)(((Control)sender).Tag);
                            Trigger?.Invoke(logicalname, en.controlname, this.callertag);       // pass back the logical name of dialog, the name of the control, the caller tag
                        }
                    };
                }
                else if (c is ExtendedControls.NumberBoxDouble)
                {
                    ExtendedControls.NumberBoxDouble cb = c as ExtendedControls.NumberBoxDouble;
                    cb.Minimum = ent.numberboxdoubleminimum;
                    cb.Maximum = ent.numberboxdoublemaximum;
                    double?v = ent.text.InvariantParseDoubleNull();
                    cb.Value = v.HasValue ? v.Value : cb.Minimum;
                    if (ent.numberboxformat != null)
                    {
                        cb.Format = ent.numberboxformat;
                    }
                    cb.ReturnPressed += (box) =>
                    {
                        SwallowReturn = false;
                        if (!ProgClose)
                        {
                            Entry en = (Entry)(box.Tag);
                            Trigger?.Invoke(logicalname, en.controlname + ":Return", this.callertag);       // pass back the logical name of dialog, the name of the control, the caller tag
                        }

                        return(SwallowReturn);
                    };
                    cb.ValidityChanged += (box, s) =>
                    {
                        if (!ProgClose)
                        {
                            Entry en = (Entry)(box.Tag);
                            Trigger?.Invoke(logicalname, en.controlname + ":Validity:" + s.ToString(), this.callertag);       // pass back the logical name of dialog, the name of the control, the caller tag
                        }
                    };
                }
                else if (c is ExtendedControls.NumberBoxLong)
                {
                    ExtendedControls.NumberBoxLong cb = c as ExtendedControls.NumberBoxLong;
                    cb.Minimum = ent.numberboxlongminimum;
                    cb.Maximum = ent.numberboxlongmaximum;
                    long?v = ent.text.InvariantParseLongNull();
                    cb.Value = v.HasValue ? v.Value : cb.Minimum;
                    if (ent.numberboxformat != null)
                    {
                        cb.Format = ent.numberboxformat;
                    }
                    cb.ReturnPressed += (box) =>
                    {
                        SwallowReturn = false;
                        if (!ProgClose)
                        {
                            Entry en = (Entry)(box.Tag);
                            Trigger?.Invoke(logicalname, en.controlname + ":Return", this.callertag);       // pass back the logical name of dialog, the name of the control, the caller tag
                        }
                        return(SwallowReturn);
                    };
                    cb.ValidityChanged += (box, s) =>
                    {
                        if (!ProgClose)
                        {
                            Entry en = (Entry)(box.Tag);
                            Trigger?.Invoke(logicalname, en.controlname + ":Validity:" + s.ToString(), this.callertag);       // pass back the logical name of dialog, the name of the control, the caller tag
                        }
                    };
                }
                else if (c is ExtendedControls.ExtTextBox)
                {
                    ExtendedControls.ExtTextBox tb = c as ExtendedControls.ExtTextBox;
                    tb.Multiline        = tb.WordWrap = ent.textboxmultiline;
                    tb.Size             = ent.size; // restate size in case multiline is on
                    tb.ClearOnFirstChar = ent.clearonfirstchar;
                    tb.ReturnPressed   += (box) =>
                    {
                        SwallowReturn = false;
                        if (!ProgClose)
                        {
                            Entry en = (Entry)(box.Tag);
                            Trigger?.Invoke(logicalname, en.controlname + ":Return", this.callertag);       // pass back the logical name of dialog, the name of the control, the caller tag
                        }
                        return(SwallowReturn);
                    };

                    if (tb.ClearOnFirstChar)
                    {
                        tb.SelectEnd();
                    }
                }
                else if (c is ExtendedControls.ExtCheckBox)
                {
                    ExtendedControls.ExtCheckBox cb = c as ExtendedControls.ExtCheckBox;
                    cb.Checked = ent.checkboxchecked;
                    cb.Click  += (sender, ev) =>
                    {
                        if (!ProgClose)
                        {
                            Entry en = (Entry)(((Control)sender).Tag);
                            Trigger?.Invoke(logicalname, en.controlname, this.callertag);       // pass back the logical name of dialog, the name of the control, the caller tag
                        }
                    };
                }


                if (c is ExtendedControls.ExtDateTimePicker)
                {
                    ExtendedControls.ExtDateTimePicker dt = c as ExtendedControls.ExtDateTimePicker;
                    DateTime t;
                    if (DateTime.TryParse(ent.text, System.Globalization.CultureInfo.InvariantCulture, System.Globalization.DateTimeStyles.AssumeLocal, out t))     // assume local, so no conversion
                    {
                        dt.Value = t;
                    }

                    switch (ent.customdateformat.ToLowerInvariant())
                    {
                    case "short":
                        dt.Format = DateTimePickerFormat.Short;
                        break;

                    case "long":
                        dt.Format = DateTimePickerFormat.Long;
                        break;

                    case "time":
                        dt.Format = DateTimePickerFormat.Time;
                        break;

                    default:
                        dt.CustomFormat = ent.customdateformat;
                        break;
                    }
                }

                if (c is ExtendedControls.ExtComboBox)
                {
                    ExtendedControls.ExtComboBox cb = c as ExtendedControls.ExtComboBox;

                    cb.Items.AddRange(ent.comboboxitems.Split(','));
                    if (cb.Items.Contains(ent.text))
                    {
                        cb.SelectedItem = ent.text;
                    }
                    cb.SelectedIndexChanged += (sender, ev) =>
                    {
                        Control ctr = (Control)sender;
                        if (ctr.Enabled && !ProgClose)
                        {
                            Entry en = (Entry)(ctr.Tag);
                            Trigger?.Invoke(logicalname, en.controlname, this.callertag);       // pass back the logical name of dialog, the name of the control, the caller tag
                        }
                    };
                }
            }

            ShowInTaskbar = false;

            this.Icon = icon;

            this.AutoScaleMode = asm;

            // outer.FindMaxSubControlArea(0, 0,null,true); // debug

            //this.DumpTree(0);
            theme.ApplyStd(this, ForceNoBorder);
            //theme.Apply(this, new Font("ms Sans Serif", 16f));
            //this.DumpTree(0);

            if (transparent)
            {
                TransparencyKey = BackColor;
            }

            for (int i = 0; i < entries.Count; i++)     // post scale any controls which ask for different font ratio sizes
            {
                if (entries[i].PostThemeFontScale != 1.0f)
                {
                    entries[i].control.Font = new Font(entries[i].control.Font.Name, entries[i].control.Font.SizeInPoints * entries[i].PostThemeFontScale);
                }
            }

            // position
            StartPosition = FormStartPosition.Manual;
            this.Location = pos;

            //System.Diagnostics.Debug.WriteLine("Bounds " + Bounds + " ClientRect " + ClientRectangle);
            //System.Diagnostics.Debug.WriteLine("Outer Bounds " + outer.Bounds + " ClientRect " + outer.ClientRectangle);
        }
Beispiel #9
0
        public void Init(ActionFile af, Condition c, ActionCoreController ac, string apf, Icon i, ToolTip toolTip,
                         ActionProgram.ProgramConditionClass cls)
        {
            cd                   = c; // point at common condition, we never new it, just update action data/action
            actionfile           = af;
            actioncorecontroller = ac;
            applicationfolder    = apf;
            Icon                 = i;
            classifier           = cls;

            progmajortype = new ExtendedControls.ExtPanelDropDown();
            progmajortype.Items.AddRange(new string[] { "Key", "Say", "Key+Say", "Full Program" });
            indextoclassifier = new ActionProgram.ProgramConditionClass[] { ActionProgram.ProgramConditionClass.Key, ActionProgram.ProgramConditionClass.Say,
                                                                            ActionProgram.ProgramConditionClass.KeySay, ActionProgram.ProgramConditionClass.Full };
            progmajortype.Location              = new Point(0, 0);
            progmajortype.Size                  = new Size(this.Width, this.Height); // outer panel aligns with this UC
            progmajortype.SelectedIndexChanged += PanelType_SelectedIndexChanged;
            toolTip.SetToolTip(progmajortype, "Use the selector (click on bottom right arrow) to select program class type");

            proglist = new ExtendedControls.ExtComboBox();
            proglist.Items.Add("New");
            proglist.Items.AddRange(actionfile.actionprogramlist.GetActionProgramList());
            proglist.Location              = new Point(panelxmargin, panelymargin);
            proglist.Size                  = new Size((this.Width - 24 - 8 - 8 - 8 - panelxmargin * 2) / 2, 24); // 24 button, 8+8 gaps, 8 for selector
            proglist.DropDownHeight        = 400;
            proglist.DropDownWidth         = proglist.Width * 3 / 2;
            proglist.SelectedIndexChanged += Proglist_SelectedIndexChanged;
            proglist.SetTipDynamically(toolTip, "Select program to associate with this event");

            progedit          = new ExtendedControls.ExtButton();
            progedit.Text     = "P";
            progedit.Location = new Point(proglist.Right + 8, panelymargin);
            progedit.Size     = new Size(24, 24);
            progedit.Click   += Progedit_Click;
            toolTip.SetToolTip(progedit, "Edit associated program");

            paras          = new ExtendedControls.ExtTextBox();
            paras.Text     = (cd.actiondata != null) ? cd.actiondata : "";
            paras.Location = new Point(progedit.Right + 8, panelymargin + 2);
            paras.Size     = proglist.Size;
            paras.ReadOnly = true;
            paras.Click   += Paras_Click;
            paras.SetTipDynamically(toolTip, "Click to enter parameters to pass to program");

            buttonKeys          = new ExtendedControls.ExtButton();
            buttonKeys.Location = proglist.Location;
            buttonKeys.Size     = new Size((this.Width - 8 - 8 - panelxmargin * 2) / 2, 24);
            buttonKeys.Click   += Keypress_Click;
            toolTip.SetToolTip(buttonKeys, "Click to define keystrokes to send");

            buttonSay          = new ExtendedControls.ExtButton();
            buttonSay.Location = new Point(buttonKeys.Right + 8, buttonKeys.Top);
            buttonSay.Size     = buttonKeys.Size;
            buttonSay.Click   += Saypress_Click;
            toolTip.SetToolTip(buttonSay, "Click to set speech to say");

            SuspendLayout();
            progmajortype.Controls.Add(proglist);
            progmajortype.Controls.Add(progedit);
            progmajortype.Controls.Add(paras);
            progmajortype.Controls.Add(buttonKeys);
            progmajortype.Controls.Add(buttonSay);
            Controls.Add(progmajortype);

            UpdateControls();

            ResumeLayout();
        }
 /// <summary> 
 /// Required method for Designer support - do not modify 
 /// the contents of this method with the code editor.
 /// </summary>
 private void InitializeComponent()
 {
     this.components = new System.ComponentModel.Container();
     this.dataViewScrollerPanel = new ExtendedControls.ExtPanelDataGridViewScroll();
     this.dataGridViewMC = new System.Windows.Forms.DataGridView();
     this.NameCol = new System.Windows.Forms.DataGridViewTextBoxColumn();
     this.ShortName = new System.Windows.Forms.DataGridViewTextBoxColumn();
     this.Category = new System.Windows.Forms.DataGridViewTextBoxColumn();
     this.Type = new System.Windows.Forms.DataGridViewTextBoxColumn();
     this.Number = new System.Windows.Forms.DataGridViewTextBoxColumn();
     this.Price = new System.Windows.Forms.DataGridViewTextBoxColumn();
     this.vScrollBarCustomMC = new ExtendedControls.ExtScrollBar();
     this.panelButtons = new System.Windows.Forms.Panel();
     this.buttonFilter = new ExtendedControls.ExtButton();
     this.textBoxItems2 = new ExtendedControls.ExtTextBox();
     this.textBoxItems1 = new ExtendedControls.ExtTextBox();
     this.labelItems2 = new System.Windows.Forms.Label();
     this.labelItems1 = new System.Windows.Forms.Label();
     this.checkBoxClear = new ExtendedControls.ExtCheckBox();
     this.toolTip = new System.Windows.Forms.ToolTip(this.components);
     this.dataViewScrollerPanel.SuspendLayout();
     ((System.ComponentModel.ISupportInitialize)(this.dataGridViewMC)).BeginInit();
     this.panelButtons.SuspendLayout();
     this.SuspendLayout();
     //
     // dataViewScrollerPanel
     //
     this.dataViewScrollerPanel.Controls.Add(this.dataGridViewMC);
     this.dataViewScrollerPanel.Controls.Add(this.vScrollBarCustomMC);
     this.dataViewScrollerPanel.Dock = System.Windows.Forms.DockStyle.Fill;
     this.dataViewScrollerPanel.InternalMargin = new System.Windows.Forms.Padding(0);
     this.dataViewScrollerPanel.Location = new System.Drawing.Point(0, 28);
     this.dataViewScrollerPanel.Name = "dataViewScrollerPanel";
     this.dataViewScrollerPanel.ScrollBarWidth = 20;
     this.dataViewScrollerPanel.Size = new System.Drawing.Size(704, 536);
     this.dataViewScrollerPanel.TabIndex = 0;
     this.dataViewScrollerPanel.VerticalScrollBarDockRight = true;
     //
     // dataGridViewMC
     //
     this.dataGridViewMC.AllowUserToAddRows = false;
     this.dataGridViewMC.AllowUserToDeleteRows = false;
     this.dataGridViewMC.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.Fill;
     this.dataGridViewMC.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
     this.dataGridViewMC.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
     this.NameCol,
     this.ShortName,
     this.Category,
     this.Type,
     this.Number,
     this.Price});
     this.dataGridViewMC.Location = new System.Drawing.Point(0, 0);
     this.dataGridViewMC.Name = "dataGridViewMC";
     this.dataGridViewMC.RowHeadersVisible = false;
     this.dataGridViewMC.ScrollBars = System.Windows.Forms.ScrollBars.None;
     this.dataGridViewMC.Size = new System.Drawing.Size(684, 536);
     this.dataGridViewMC.TabIndex = 1;
     this.dataGridViewMC.SortCompare += new System.Windows.Forms.DataGridViewSortCompareEventHandler(this.dataGridViewMC_SortCompare);
     //
     // NameCol
     //
     this.NameCol.HeaderText = "Name";
     this.NameCol.MinimumWidth = 50;
     this.NameCol.Name = "NameCol";
     this.NameCol.ReadOnly = true;
     //
     // ShortName
     //
     this.ShortName.HeaderText = "Abv";
     this.ShortName.MinimumWidth = 25;
     this.ShortName.Name = "ShortName";
     this.ShortName.ReadOnly = true;
     //
     // Category
     //
     this.Category.HeaderText = "Category";
     this.Category.MinimumWidth = 50;
     this.Category.Name = "Category";
     this.Category.ReadOnly = true;
     //
     // Type
     //
     this.Type.HeaderText = "Type";
     this.Type.MinimumWidth = 50;
     this.Type.Name = "Type";
     this.Type.ReadOnly = true;
     //
     // Number
     //
     this.Number.HeaderText = "Number";
     this.Number.MinimumWidth = 50;
     this.Number.Name = "Number";
     this.Number.ReadOnly = true;
     //
     // Price
     //
     this.Price.HeaderText = "Avg. Price";
     this.Price.MinimumWidth = 50;
     this.Price.Name = "Price";
     this.Price.ReadOnly = true;
     //
     // vScrollBarCustomMC
     //
     this.vScrollBarCustomMC.ArrowBorderColor = System.Drawing.Color.LightBlue;
     this.vScrollBarCustomMC.ArrowButtonColor = System.Drawing.Color.LightGray;
     this.vScrollBarCustomMC.ArrowColorScaling = 0.5F;
     this.vScrollBarCustomMC.ArrowDownDrawAngle = 270F;
     this.vScrollBarCustomMC.ArrowUpDrawAngle = 90F;
     this.vScrollBarCustomMC.BorderColor = System.Drawing.Color.White;
     this.vScrollBarCustomMC.FlatStyle = System.Windows.Forms.FlatStyle.System;
     this.vScrollBarCustomMC.HideScrollBar = false;
     this.vScrollBarCustomMC.LargeChange = 0;
     this.vScrollBarCustomMC.Location = new System.Drawing.Point(684, 21);
     this.vScrollBarCustomMC.Maximum = -1;
     this.vScrollBarCustomMC.Minimum = 0;
     this.vScrollBarCustomMC.MouseOverButtonColor = System.Drawing.Color.Green;
     this.vScrollBarCustomMC.MousePressedButtonColor = System.Drawing.Color.Red;
     this.vScrollBarCustomMC.Name = "vScrollBarCustomMC";
     this.vScrollBarCustomMC.Size = new System.Drawing.Size(20, 515);
     this.vScrollBarCustomMC.SliderColor = System.Drawing.Color.DarkGray;
     this.vScrollBarCustomMC.SmallChange = 1;
     this.vScrollBarCustomMC.TabIndex = 0;
     this.vScrollBarCustomMC.Text = "vScrollBarCustom1";
     this.vScrollBarCustomMC.ThumbBorderColor = System.Drawing.Color.Yellow;
     this.vScrollBarCustomMC.ThumbButtonColor = System.Drawing.Color.DarkBlue;
     this.vScrollBarCustomMC.ThumbColorScaling = 0.5F;
     this.vScrollBarCustomMC.ThumbDrawAngle = 0F;
     this.vScrollBarCustomMC.Value = -1;
     this.vScrollBarCustomMC.ValueLimited = -1;
     //
     // panelButtons
     //
     this.panelButtons.Controls.Add(this.buttonFilter);
     this.panelButtons.Controls.Add(this.textBoxItems2);
     this.panelButtons.Controls.Add(this.textBoxItems1);
     this.panelButtons.Controls.Add(this.labelItems2);
     this.panelButtons.Controls.Add(this.labelItems1);
     this.panelButtons.Controls.Add(this.checkBoxClear);
     this.panelButtons.Dock = System.Windows.Forms.DockStyle.Top;
     this.panelButtons.Location = new System.Drawing.Point(0, 0);
     this.panelButtons.Name = "panelButtons";
     this.panelButtons.Size = new System.Drawing.Size(704, 28);
     this.panelButtons.TabIndex = 2;
     //
     // buttonFilter
     //
     this.buttonFilter.Location = new System.Drawing.Point(6, 2);
     this.buttonFilter.Name = "buttonFilter";
     this.buttonFilter.Size = new System.Drawing.Size(75, 23);
     this.buttonFilter.TabIndex = 5;
     this.buttonFilter.Text = "Filter";
     this.toolTip.SetToolTip(this.buttonFilter, "Filter out items");
     this.buttonFilter.UseVisualStyleBackColor = true;
     this.buttonFilter.Click += new System.EventHandler(this.buttonFilter_Click);
     //
     // textBoxItems2
     //
     this.textBoxItems2.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.None;
     this.textBoxItems2.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.None;
     this.textBoxItems2.BackErrorColor = System.Drawing.Color.Red;
     this.textBoxItems2.BorderColor = System.Drawing.Color.Transparent;
     this.textBoxItems2.BorderColorScaling = 0.5F;
     this.textBoxItems2.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
     this.textBoxItems2.ClearOnFirstChar = false;
     this.textBoxItems2.ControlBackground = System.Drawing.SystemColors.Control;
     this.textBoxItems2.InErrorCondition = false;
     this.textBoxItems2.Location = new System.Drawing.Point(295, 3);
     this.textBoxItems2.Multiline = false;
     this.textBoxItems2.Name = "textBoxItems2";
     this.textBoxItems2.ReadOnly = false;
     this.textBoxItems2.ScrollBars = System.Windows.Forms.ScrollBars.None;
     this.textBoxItems2.SelectionLength = 0;
     this.textBoxItems2.SelectionStart = 0;
     this.textBoxItems2.Size = new System.Drawing.Size(75, 20);
     this.textBoxItems2.TabIndex = 4;
     this.textBoxItems2.TextAlign = System.Windows.Forms.HorizontalAlignment.Left;
     this.toolTip.SetToolTip(this.textBoxItems2, "Count of Items");
     this.textBoxItems2.WordWrap = true;
     //
     // textBoxItems1
     //
     this.textBoxItems1.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.None;
     this.textBoxItems1.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.None;
     this.textBoxItems1.BackErrorColor = System.Drawing.Color.Red;
     this.textBoxItems1.BorderColor = System.Drawing.Color.Transparent;
     this.textBoxItems1.BorderColorScaling = 0.5F;
     this.textBoxItems1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
     this.textBoxItems1.ClearOnFirstChar = false;
     this.textBoxItems1.ControlBackground = System.Drawing.SystemColors.Control;
     this.textBoxItems1.InErrorCondition = false;
     this.textBoxItems1.Location = new System.Drawing.Point(145, 3);
     this.textBoxItems1.Multiline = false;
     this.textBoxItems1.Name = "textBoxItems1";
     this.textBoxItems1.ReadOnly = false;
     this.textBoxItems1.ScrollBars = System.Windows.Forms.ScrollBars.None;
     this.textBoxItems1.SelectionLength = 0;
     this.textBoxItems1.SelectionStart = 0;
     this.textBoxItems1.Size = new System.Drawing.Size(75, 20);
     this.textBoxItems1.TabIndex = 4;
     this.textBoxItems1.TextAlign = System.Windows.Forms.HorizontalAlignment.Left;
     this.toolTip.SetToolTip(this.textBoxItems1, "Count of Items");
     this.textBoxItems1.WordWrap = true;
     //
     // labelItems2
     //
     this.labelItems2.AutoSize = true;
     this.labelItems2.Location = new System.Drawing.Point(245, 4);
     this.labelItems2.Name = "labelItems2";
     this.labelItems2.Size = new System.Drawing.Size(43, 13);
     this.labelItems2.TabIndex = 3;
     this.labelItems2.Text = "<code>";
     //
     // labelItems1
     //
     this.labelItems1.AutoSize = true;
     this.labelItems1.Location = new System.Drawing.Point(95, 4);
     this.labelItems1.Name = "labelItems1";
     this.labelItems1.Size = new System.Drawing.Size(43, 13);
     this.labelItems1.TabIndex = 3;
     this.labelItems1.Text = "<code>";
     //
     // checkBoxClear
     //
     this.checkBoxClear.AutoSize = true;
     this.checkBoxClear.CheckBoxColor = System.Drawing.Color.Gray;
     this.checkBoxClear.CheckBoxInnerColor = System.Drawing.Color.White;
     this.checkBoxClear.CheckColor = System.Drawing.Color.DarkBlue;
     this.checkBoxClear.FontNerfReduction = 0.5F;
     this.checkBoxClear.ImageButtonDisabledScaling = 0.5F;
     this.checkBoxClear.Location = new System.Drawing.Point(376, 6);
     this.checkBoxClear.MouseOverColor = System.Drawing.Color.CornflowerBlue;
     this.checkBoxClear.Name = "checkBoxClear";
     this.checkBoxClear.Size = new System.Drawing.Size(116, 17);
     this.checkBoxClear.TabIndex = 2;
     this.checkBoxClear.Text = "Remove zero items";
     this.checkBoxClear.TickBoxReductionSize = 10;
     this.toolTip.SetToolTip(this.checkBoxClear, "Remove zero items the time after they go to zero");
     this.checkBoxClear.UseVisualStyleBackColor = true;
     //
     // toolTip
     //
     this.toolTip.ShowAlways = true;
     //
     // UserControlMaterialCommodities
     //
     this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
     this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
     this.Controls.Add(this.dataViewScrollerPanel);
     this.Controls.Add(this.panelButtons);
     this.Name = "UserControlMaterialCommodities";
     this.Size = new System.Drawing.Size(704, 564);
     this.dataViewScrollerPanel.ResumeLayout(false);
     ((System.ComponentModel.ISupportInitialize)(this.dataGridViewMC)).EndInit();
     this.panelButtons.ResumeLayout(false);
     this.panelButtons.PerformLayout();
     this.ResumeLayout(false);
 }
        // lab sets the items, def can be less or null
        public static List<string> ShowDialog(Form p, string caption, Icon ic, string[] lab, string[] def, 
                            bool multiline = false, 
                            string[] tooltips = null, 
                            int width = 600, 
                            int vspacing = -1,
                            bool cursoratend = false)
        {
            ITheme theme = ThemeableFormsInstance.Instance;

            int vstart = theme.WindowsFrame ? 20 : 40;
            if ( vspacing == -1 )
                vspacing = multiline ? 80 : 40;
            int lw = 100;
            int lx = 10;
            int tx = 10 + lw + 8;

            DraggableForm prompt = new DraggableForm()
            {
                Width = width,
                Height = 90 + vspacing * lab.Length + (theme.WindowsFrame ? 20 : 0),
                FormBorderStyle = FormBorderStyle.FixedDialog,
                Text = caption,
                StartPosition = FormStartPosition.CenterScreen,
                Icon = ic
            };

            Panel outer = new Panel() { Dock = DockStyle.Fill, BorderStyle = BorderStyle.FixedSingle };
            prompt.Controls.Add(outer);
            outer.MouseDown += (s, e) => { prompt.OnCaptionMouseDown(s as Control, e); };
            outer.MouseUp += (s, e) => { prompt.OnCaptionMouseUp(s as Control, e); };

            Label textLabel = new Label() { Left = lx, Top = 8, Width = prompt.Width - 50, Text = caption };
            textLabel.MouseDown += (s, e) => { prompt.OnCaptionMouseDown(s as Control, e); };
            textLabel.MouseUp += (s, e) => { prompt.OnCaptionMouseUp(s as Control, e); };

            if (!theme.WindowsFrame)
                outer.Controls.Add(textLabel);

            Label[] lbs = new Label[lab.Length];
            ExtendedControls.ExtTextBox[] tbs = new ExtendedControls.ExtTextBox[lab.Length];

            ToolTip tt = new ToolTip();
            tt.ShowAlways = true;

            int y = vstart;

            for (int i = 0; i < lab.Length; i++)
            {
                lbs[i] = new Label() { Left = lx, Top = y, Width = lw, Text = lab[i] };
                tbs[i] = new ExtendedControls.ExtTextBox()
                {
                    Left = tx,
                    Top = y,
                    Width = prompt.Width - 50 - tx,
                    Text = (def != null && i < def.Length) ? def[i] : "",
                    Multiline = multiline,      // set before height!
                    Height = vspacing - 20,
                    ScrollBars = (multiline) ? ScrollBars.Vertical : ScrollBars.None,
                    WordWrap = multiline
                };

                if (cursoratend)
                    tbs[i].Select(tbs[i].Text.Length, tbs[i].Text.Length);

                outer.Controls.Add(lbs[i]);
                outer.Controls.Add(tbs[i]);

                if (tooltips != null && i < tooltips.Length)
                {
                    tt.SetToolTip(lbs[i], tooltips[i]);
                    tbs[i].SetTipDynamically(tt, tooltips[i]);      // no container here, set tool tip on text boxes using this
                }

                y += vspacing;
            }

            ExtendedControls.ExtButton confirmation = new ExtendedControls.ExtButton() { Text = "OK".Tx(), Left = tbs[0].Right - 80, Width = 80, Top = y, DialogResult = DialogResult.OK };
            outer.Controls.Add(confirmation);
            confirmation.Click += (sender, e) => { prompt.Close(); };

            ExtendedControls.ExtButton cancel = new ExtendedControls.ExtButton() { Text = "Cancel".Tx(), Left = confirmation.Location.X - 90, Width = 80, Top = confirmation.Top, DialogResult = DialogResult.Cancel };
            outer.Controls.Add(cancel);
            cancel.Click += (sender, e) => { prompt.Close(); };

            if (!multiline)
                prompt.AcceptButton = confirmation;

            prompt.CancelButton = cancel;
            prompt.ShowInTaskbar = false;

            theme.ApplyToFormStandardFontSize(prompt);

            if (prompt.ShowDialog(p) == DialogResult.OK)
            {
                var r = (from ExtendedControls.ExtTextBox t in tbs select t.Text).ToList();
                return r;
            }
            else
                return null;
        }
Beispiel #12
0
        private void Init(Icon icon, System.Drawing.Point pos, string caption, string lname, Object callertag, bool posiscentrecoords = false, AutoScaleMode asm = AutoScaleMode.Font)
        {
            this.logicalname = lname;     // passed back to caller via trigger
            this.callertag   = callertag; // passed back to caller via trigger

            ITheme theme = ThemeableFormsInstance.Instance;

            FormBorderStyle = FormBorderStyle.FixedDialog;

            ExtPanelScroll outer = new ExtPanelScroll()
            {
                Dock = DockStyle.Fill, BorderStyle = BorderStyle.FixedSingle
            };

            outer.MouseDown += FormMouseDown;
            outer.MouseUp   += FormMouseUp;
            Controls.Add(outer);

            ExtScrollBar scr = new ExtScrollBar();

            scr.HideScrollBar = true;
            outer.Controls.Add(scr);

            this.Text = caption;

            Label textLabel = new Label()
            {
                Left = 4, Top = 8, Width = Width - 50, Text = caption
            };

            textLabel.MouseDown += FormMouseDown;
            textLabel.MouseUp   += FormMouseUp;

            if (!theme.WindowsFrame)
            {
                outer.Controls.Add(textLabel);
            }

            ToolTip tt = new ToolTip(components);

            tt.ShowAlways = true;
            for (int i = 0; i < entries.Count; i++)
            {
                Entry   ent = entries[i];
                Control c   = ent.controltype != null ? (Control)Activator.CreateInstance(ent.controltype) : ent.control;
                ent.control = c;
                c.Size      = ent.size;
                c.Location  = ent.pos;
                //System.Diagnostics.Debug.WriteLine("Control " + c.GetType().ToString() + " at " + c.Location + " " + c.Size);
                if (!(ent.controltype == null || c is ExtendedControls.ExtComboBox || c is ExtendedControls.ExtDateTimePicker || c is ExtendedControls.NumberBoxDouble || c is ExtendedControls.NumberBoxLong))         // everything but get text
                {
                    c.Text = ent.text;
                }
                c.Tag = ent;     // point control tag at ent structure
                outer.Controls.Add(c);
                if (ent.tooltip != null)
                {
                    tt.SetToolTip(c, ent.tooltip);
                }

                if (c is ExtendedControls.ExtButton)
                {
                    ExtendedControls.ExtButton b = c as ExtendedControls.ExtButton;
                    b.Click += (sender, ev) =>
                    {
                        if (!ProgClose)
                        {
                            Entry en = (Entry)(((Control)sender).Tag);
                            Trigger?.Invoke(logicalname, en.controlname, this.callertag);       // pass back the logical name of dialog, the name of the control, the caller tag
                        }
                    };
                }
                else if (c is ExtendedControls.NumberBoxDouble)
                {
                    ExtendedControls.NumberBoxDouble cb = c as ExtendedControls.NumberBoxDouble;
                    cb.Minimum = ent.numberboxdoubleminimum;
                    cb.Maximum = ent.numberboxdoublemaximum;
                    double?v = ent.text.InvariantParseDoubleNull();
                    cb.Value = v.HasValue ? v.Value : cb.Minimum;
                    if (ent.numberboxformat != null)
                    {
                        cb.Format = ent.numberboxformat;
                    }
                    cb.ReturnPressed += (box) =>
                    {
                        SwallowReturn = false;
                        if (!ProgClose)
                        {
                            Entry en = (Entry)(box.Tag);
                            Trigger?.Invoke(logicalname, en.controlname + ":Return", this.callertag);       // pass back the logical name of dialog, the name of the control, the caller tag
                        }

                        return(SwallowReturn);
                    };
                    cb.ValidityChanged += (box, s) =>
                    {
                        if (!ProgClose)
                        {
                            Entry en = (Entry)(box.Tag);
                            Trigger?.Invoke(logicalname, en.controlname + ":Validity:" + s.ToString(), this.callertag);       // pass back the logical name of dialog, the name of the control, the caller tag
                        }
                    };
                }
                else if (c is ExtendedControls.NumberBoxLong)
                {
                    ExtendedControls.NumberBoxLong cb = c as ExtendedControls.NumberBoxLong;
                    cb.Minimum = ent.numberboxlongminimum;
                    cb.Maximum = ent.numberboxlongmaximum;
                    long?v = ent.text.InvariantParseLongNull();
                    cb.Value = v.HasValue ? v.Value : cb.Minimum;
                    if (ent.numberboxformat != null)
                    {
                        cb.Format = ent.numberboxformat;
                    }
                    cb.ReturnPressed += (box) =>
                    {
                        SwallowReturn = false;
                        if (!ProgClose)
                        {
                            Entry en = (Entry)(box.Tag);
                            Trigger?.Invoke(logicalname, en.controlname + ":Return", this.callertag);       // pass back the logical name of dialog, the name of the control, the caller tag
                        }
                        return(SwallowReturn);
                    };
                    cb.ValidityChanged += (box, s) =>
                    {
                        if (!ProgClose)
                        {
                            Entry en = (Entry)(box.Tag);
                            Trigger?.Invoke(logicalname, en.controlname + ":Validity:" + s.ToString(), this.callertag);       // pass back the logical name of dialog, the name of the control, the caller tag
                        }
                    };
                }
                else if (c is ExtendedControls.ExtTextBox)
                {
                    ExtendedControls.ExtTextBox tb = c as ExtendedControls.ExtTextBox;
                    tb.Multiline        = tb.WordWrap = ent.textboxmultiline;
                    tb.Size             = ent.size; // restate size in case multiline is on
                    tb.ClearOnFirstChar = ent.clearonfirstchar;
                    tb.ReturnPressed   += (box) =>
                    {
                        SwallowReturn = false;
                        if (!ProgClose)
                        {
                            Entry en = (Entry)(box.Tag);
                            Trigger?.Invoke(logicalname, en.controlname + ":Return", this.callertag);       // pass back the logical name of dialog, the name of the control, the caller tag
                        }
                        return(SwallowReturn);
                    };
                }
                else if (c is ExtendedControls.ExtCheckBox)
                {
                    ExtendedControls.ExtCheckBox cb = c as ExtendedControls.ExtCheckBox;
                    cb.Checked = ent.checkboxchecked;
                    cb.Click  += (sender, ev) =>
                    {
                        if (!ProgClose)
                        {
                            Entry en = (Entry)(((Control)sender).Tag);
                            Trigger?.Invoke(logicalname, en.controlname, this.callertag);       // pass back the logical name of dialog, the name of the control, the caller tag
                        }
                    };
                }


                if (c is ExtendedControls.ExtDateTimePicker)
                {
                    ExtendedControls.ExtDateTimePicker dt = c as ExtendedControls.ExtDateTimePicker;
                    DateTime t;
                    if (DateTime.TryParse(ent.text, System.Globalization.CultureInfo.InvariantCulture, System.Globalization.DateTimeStyles.AssumeLocal, out t))     // assume local, so no conversion
                    {
                        dt.Value = t;
                    }

                    switch (ent.customdateformat.ToLowerInvariant())
                    {
                    case "short":
                        dt.Format = DateTimePickerFormat.Short;
                        break;

                    case "long":
                        dt.Format = DateTimePickerFormat.Long;
                        break;

                    case "time":
                        dt.Format = DateTimePickerFormat.Time;
                        break;

                    default:
                        dt.CustomFormat = ent.customdateformat;
                        break;
                    }
                }

                if (c is ExtendedControls.ExtComboBox)
                {
                    ExtendedControls.ExtComboBox cb = c as ExtendedControls.ExtComboBox;

                    cb.Items.AddRange(ent.comboboxitems.Split(','));
                    if (cb.Items.Contains(ent.text))
                    {
                        cb.SelectedItem = ent.text;
                    }
                    cb.SelectedIndexChanged += (sender, ev) =>
                    {
                        Control ctr = (Control)sender;
                        if (ctr.Enabled && !ProgClose)
                        {
                            Entry en = (Entry)(ctr.Tag);
                            Trigger?.Invoke(logicalname, en.controlname, this.callertag);       // pass back the logical name of dialog, the name of the control, the caller tag
                        }
                    };
                }
            }

            ShowInTaskbar = false;

            this.Icon = icon;

            this.AutoScaleMode = asm;

            //this.DumpTree(0);
            theme.ApplyStd(this);
            //this.DumpTree(0);

            int fh = (int)this.Font.GetHeight();        // use the FH to nerf the extra area so it scales with FH.. this helps keep the controls within a framed window

            // measure the items after scaling. Exclude the scroll bar
            Size measureitemsinwindow = outer.FindMaxSubControlArea(fh + 8, (theme.WindowsFrame ? 50 : 16) + fh, new Type[] { typeof(ExtScrollBar) });

            StartPosition = FormStartPosition.Manual;

            Location = pos;

            this.PositionSizeWithinScreen(measureitemsinwindow.Width, measureitemsinwindow.Height, false, 64, centrecoords: posiscentrecoords);
        }
        public void Init(Icon icon, System.Drawing.Size size, System.Drawing.Point pos, string caption, string lname, Object callertag)
        {
            this.logicalname = lname;     // passed back to caller via trigger
            this.callertag   = callertag; // passed back to caller via trigger

            ITheme theme = ThemeableFormsInstance.Instance;

            FormBorderStyle = FormBorderStyle.FixedDialog;

            if (theme.WindowsFrame)
            {
                size.Height += 50;
            }

            Size = size;

            if (pos.X == -999)
            {
                StartPosition = FormStartPosition.CenterScreen;
            }
            else
            {
                Location      = pos;
                StartPosition = FormStartPosition.Manual;
            }

            Panel outer = new Panel()
            {
                Dock = DockStyle.Fill, BorderStyle = BorderStyle.FixedSingle
            };

            outer.MouseDown += FormMouseDown;
            outer.MouseUp   += FormMouseUp;

            Controls.Add(outer);

            this.Text = caption;

            Label textLabel = new Label()
            {
                Left = 4, Top = 8, Width = Width - 50, Text = caption
            };

            textLabel.MouseDown += FormMouseDown;
            textLabel.MouseUp   += FormMouseUp;

            if (!theme.WindowsFrame)
            {
                outer.Controls.Add(textLabel);
            }

            ToolTip tt = new ToolTip(components);

            tt.ShowAlways = true;
            for (int i = 0; i < entries.Count; i++)
            {
                Entry   ent = entries[i];
                Control c   = ent.controltype != null ? (Control)Activator.CreateInstance(ent.controltype) : ent.control;
                ent.control = c;
                c.Size      = ent.size;
                c.Location  = ent.pos;
                //System.Diagnostics.Debug.WriteLine("Control " + c.GetType().ToString() + " at " + c.Location + " " + c.Size);
                if (!(ent.controltype == null || c is ExtendedControls.ExtComboBox || c is ExtendedControls.ExtDateTimePicker || c is ExtendedControls.NumberBoxDouble || c is ExtendedControls.NumberBoxLong))         // everything but get text
                {
                    c.Text = ent.text;
                }
                c.Tag = ent;     // point control tag at ent structure
                outer.Controls.Add(c);
                if (ent.tooltip != null)
                {
                    tt.SetToolTip(c, ent.tooltip);
                }

                if (c is ExtendedControls.ExtButton)
                {
                    ExtendedControls.ExtButton b = c as ExtendedControls.ExtButton;
                    b.Click += (sender, ev) =>
                    {
                        if (!ProgClose)
                        {
                            Entry en = (Entry)(((Control)sender).Tag);
                            Trigger?.Invoke(logicalname, en.controlname, this.callertag);       // pass back the logical name of dialog, the name of the control, the caller tag
                        }
                    };
                }
                else if (c is ExtendedControls.NumberBoxDouble)
                {
                    ExtendedControls.NumberBoxDouble cb = c as ExtendedControls.NumberBoxDouble;
                    cb.Minimum = ent.numberboxdoubleminimum;
                    cb.Maximum = ent.numberboxdoublemaximum;
                    double?v = ent.text.InvariantParseDoubleNull();
                    cb.Value = v.HasValue ? v.Value : cb.Minimum;
                    if (ent.numberboxformat != null)
                    {
                        cb.Format = ent.numberboxformat;
                    }
                    cb.ReturnPressed += (box) =>
                    {
                        if (!ProgClose)
                        {
                            Entry en = (Entry)(box.Tag);
                            Trigger?.Invoke(logicalname, en.controlname + ":Return", this.callertag);       // pass back the logical name of dialog, the name of the control, the caller tag
                        }
                    };
                    cb.ValidityChanged += (box, s) =>
                    {
                        if (!ProgClose)
                        {
                            Entry en = (Entry)(box.Tag);
                            Trigger?.Invoke(logicalname, en.controlname + ":Validity:" + s.ToString(), this.callertag);       // pass back the logical name of dialog, the name of the control, the caller tag
                        }
                    };
                }
                else if (c is ExtendedControls.NumberBoxLong)
                {
                    ExtendedControls.NumberBoxLong cb = c as ExtendedControls.NumberBoxLong;
                    cb.Minimum = ent.numberboxlongminimum;
                    cb.Maximum = ent.numberboxlongmaximum;
                    long?v = ent.text.InvariantParseLongNull();
                    cb.Value = v.HasValue ? v.Value : cb.Minimum;
                    if (ent.numberboxformat != null)
                    {
                        cb.Format = ent.numberboxformat;
                    }
                    cb.ReturnPressed += (box) =>
                    {
                        if (!ProgClose)
                        {
                            Entry en = (Entry)(box.Tag);
                            Trigger?.Invoke(logicalname, en.controlname + ":Return", this.callertag);       // pass back the logical name of dialog, the name of the control, the caller tag
                        }
                    };
                    cb.ValidityChanged += (box, s) =>
                    {
                        if (!ProgClose)
                        {
                            Entry en = (Entry)(box.Tag);
                            Trigger?.Invoke(logicalname, en.controlname + ":Validity:" + s.ToString(), this.callertag);       // pass back the logical name of dialog, the name of the control, the caller tag
                        }
                    };
                }
                else if (c is ExtendedControls.ExtTextBox)
                {
                    ExtendedControls.ExtTextBox tb = c as ExtendedControls.ExtTextBox;
                    tb.Multiline        = tb.WordWrap = ent.textboxmultiline;
                    tb.Size             = ent.size; // restate size in case multiline is on
                    tb.ClearOnFirstChar = ent.clearonfirstchar;
                    tb.ReturnPressed   += (box) =>
                    {
                        if (!ProgClose)
                        {
                            Entry en = (Entry)(box.Tag);
                            Trigger?.Invoke(logicalname, en.controlname + ":Return", this.callertag);       // pass back the logical name of dialog, the name of the control, the caller tag
                        }
                    };
                }
                else if (c is ExtendedControls.ExtCheckBox)
                {
                    ExtendedControls.ExtCheckBox cb = c as ExtendedControls.ExtCheckBox;
                    cb.Checked = ent.checkboxchecked;
                    cb.Click  += (sender, ev) =>
                    {
                        if (!ProgClose)
                        {
                            Entry en = (Entry)(((Control)sender).Tag);
                            Trigger?.Invoke(logicalname, en.controlname, this.callertag);       // pass back the logical name of dialog, the name of the control, the caller tag
                        }
                    };
                }


                if (c is ExtendedControls.ExtDateTimePicker)
                {
                    ExtendedControls.ExtDateTimePicker dt = c as ExtendedControls.ExtDateTimePicker;
                    DateTime t;
                    if (DateTime.TryParse(ent.text, System.Globalization.CultureInfo.InvariantCulture, System.Globalization.DateTimeStyles.AssumeLocal, out t))     // assume local, so no conversion
                    {
                        dt.Value = t;
                    }

                    switch (ent.customdateformat.ToLowerInvariant())
                    {
                    case "short":
                        dt.Format = DateTimePickerFormat.Short;
                        break;

                    case "long":
                        dt.Format = DateTimePickerFormat.Long;
                        break;

                    case "time":
                        dt.Format = DateTimePickerFormat.Time;
                        break;

                    default:
                        dt.CustomFormat = ent.customdateformat;
                        break;
                    }
                }

                if (c is ExtendedControls.ExtComboBox)
                {
                    ExtendedControls.ExtComboBox cb = c as ExtendedControls.ExtComboBox;
                    if (ent.comboboxdropdownsize != null)
                    {
                        cb.DropDownHeight = ent.comboboxdropdownsize.Value.Height;
                        cb.DropDownWidth  = ent.comboboxdropdownsize.Value.Width;
                    }

                    cb.Items.AddRange(ent.comboboxitems.Split(','));
                    if (cb.Items.Contains(ent.text))
                    {
                        cb.SelectedItem = ent.text;
                    }
                    cb.SelectedIndexChanged += (sender, ev) =>
                    {
                        Control ctr = (Control)sender;
                        if (ctr.Enabled && !ProgClose)
                        {
                            Entry en = (Entry)(ctr.Tag);
                            Trigger?.Invoke(logicalname, en.controlname, this.callertag);       // pass back the logical name of dialog, the name of the control, the caller tag
                        }
                    };
                }
            }

            ShowInTaskbar = false;

            this.Icon = icon;

            theme.ApplyToFormStandardFontSize(this);

            //foreach( Control c in Controls[0].Controls )   System.Diagnostics.Debug.WriteLine("Control " + c.GetType().ToString() + " at " + c.Location + " " + c.Size);
        }
Beispiel #14
0
 private void textBox_Range_KeyPress(object sender, KeyPressEventArgs e)
 {
     ExtendedControls.ExtTextBox tbb = sender as ExtendedControls.ExtTextBox;
     tbb.NumericKeyPressHandler(e);
 }