Inheritance: System.Windows.Forms.TextBox
Exemple #1
0
 /// <summary>
 /// Makes the given textbox blink
 /// </summary>
 private void BlinkTextBox(YamuiTextBox textBox, Color blinkColor)
 {
     textBox.UseCustomBackColor = true;
     Transition.run(textBox, "CustomBackColor", ThemeManager.Current.ButtonNormalBack, blinkColor, new TransitionType_Flash(3, 300), (o, args) => { textBox.UseCustomBackColor = false; });
 }
Exemple #2
0
        private void GeneratePage()
        {
            var lastCategory = "";
            var yPos = 0;
            var configInstance = Config.Instance;

            ForEachConfigPropertyWithDisplayAttribute((property, attribute) => {
                var valObj = property.GetValue(configInstance);

                // new group
                if (!lastCategory.EqualsCi(attribute.GroupName)) {
                    if (!string.IsNullOrEmpty(lastCategory))
                        // ReSharper disable once AccessToModifiedClosure
                        yPos += 10;
                    lastCategory = attribute.GroupName;
                    scrollPanel.ContentPanel.Controls.Add(new YamuiLabel {
                        AutoSize = true,
                        Function = FontFunction.Heading,
                        Location = new Point(0, yPos),
                        Text = lastCategory.ToUpper()
                    });
                    yPos += 30;
                }

                // name of the field
                var label = new HtmlLabel {
                    AutoSizeHeightOnly = true,
                    BackColor = Color.Transparent,
                    Location = new Point(30, yPos),
                    Size = new Size(190, 10),
                    IsSelectionEnabled = false,
                    Text = attribute.Name
                };
                scrollPanel.ContentPanel.Controls.Add(label);

                var listRangeAttr = property.GetCustomAttributes(typeof(RangeAttribute), false);
                var rangeAttr = (listRangeAttr.Any()) ? (RangeAttribute)listRangeAttr.FirstOrDefault() : null;

                if (valObj is string) {
                    // string
                    var strControl = new YamuiTextBox {
                        Location = new Point(240, yPos),
                        Text = (string)property.GetValue(configInstance),
                        Size = new Size(300, 20),
                        Tag = property.Name
                    };

                    scrollPanel.ContentPanel.Controls.Add(strControl);
                    var strButton = new YamuiButtonImage {
                        Text = @"save",
                        BackGrndImage = ImageResources.Save,
                        Size = new Size(20, 20),
                        Location = new Point(545, yPos),
                        Tag = strControl,
                        TabStop = false
                    };
                    strButton.ButtonPressed += SaveButtonOnButtonPressed;
                    scrollPanel.ContentPanel.Controls.Add(strButton);
                    tooltip.SetToolTip(strButton, "Click to <b>set the value</b> of this field<br>Otherwise, your modifications will not be saved");

                    var undoButton = new YamuiButtonImage {
                        BackGrndImage = ImageResources.UndoUserAction,
                        Size = new Size(20, 20),
                        Location = new Point(565, yPos),
                        Tag = strControl,
                        TabStop = false
                    };
                    undoButton.ButtonPressed += UndoButtonOnButtonPressed;
                    scrollPanel.ContentPanel.Controls.Add(undoButton);
                    tooltip.SetToolTip(undoButton, "Click to <b>reset this field</b> to its default value");

                    tooltip.SetToolTip(strControl, attribute.Description + "<br><div class='ToolTipBottomGoTo'>Click on the save button <img src='Save'> to set your modifications</div>");

                } if (valObj is int || valObj is double) {
                    // number
                    var numControl = new YamuiTextBox {
                        Location = new Point(240, yPos),
                        Text = ((valObj is int) ? ((int)property.GetValue(configInstance)).ToString() : ((double)property.GetValue(configInstance)).ToString(CultureInfo.CurrentCulture)),
                        Size = new Size(300, 20),
                        Tag = property.Name
                    };

                    scrollPanel.ContentPanel.Controls.Add(numControl);
                    var numButton = new YamuiButtonImage {
                        Text = @"save",
                        BackGrndImage = ImageResources.Save,
                        Size = new Size(20, 20),
                        Location = new Point(545, yPos),
                        Tag = numControl,
                        TabStop = false
                    };
                    numButton.ButtonPressed += SaveButtonOnButtonPressed;
                    scrollPanel.ContentPanel.Controls.Add(numButton);
                    tooltip.SetToolTip(numButton, "Click to <b>set the value</b> of this field<br>Otherwise, your modifications will not be saved");

                    var undoButton = new YamuiButtonImage {
                        BackGrndImage = ImageResources.UndoUserAction,
                        Size = new Size(20, 20),
                        Location = new Point(565, yPos),
                        Tag = numControl,
                        TabStop = false
                    };
                    undoButton.ButtonPressed += UndoButtonOnButtonPressed;
                    scrollPanel.ContentPanel.Controls.Add(undoButton);
                    tooltip.SetToolTip(undoButton, "Click to <b>reset this field</b> to its default value");

                    tooltip.SetToolTip(numControl, attribute.Description + "<br>" + (rangeAttr != null ? "<br><b><i>" + "Min value = " + rangeAttr.Minimum + "<br>Max value = " + rangeAttr.Maximum + "</i></b><br>" : "") + "<div class='ToolTipBottomGoTo'>Click on the save button <img src='Save'> to set your modifications</div>");

                } else if (valObj is bool) {
                    // bool
                    var toggleControl = new YamuiButtonToggle {
                        Location = new Point(240, yPos),
                        Size = new Size(40, 16),
                        Text = null,
                        Checked = (bool)valObj,
                        Tag = property.Name
                    };
                    toggleControl.ButtonPressed += ToggleControlOnCheckedChanged;
                    scrollPanel.ContentPanel.Controls.Add(toggleControl);

                    // tooltip
                    tooltip.SetToolTip(toggleControl, attribute.Description + "<br><div class='ToolTipBottomGoTo'>Click to <b>toggle on/off</b> this feature<br>Your choice is automatically applied</div>");
                }

                yPos += label.Height + 15;
            });

            yPos += 15;
            _btSave = new YamuiButton {
                Location = new Point(30, yPos),
                Size = new Size(120, 24),
                Text = @"Save everything",
                BackGrndImage = ImageResources.Save
            };
            _btSave.ButtonPressed += SaveAllButtonOnButtonPressed;
            tooltip.SetToolTip(_btSave, "Click to <b>save</b> all the options<br><i>This as the same effect than clicking save for each option</i>");
            scrollPanel.ContentPanel.Controls.Add(_btSave);

            var defaultButton = new YamuiButton {
                Location = new Point(155, yPos),
                Size = new Size(120, 24),
                Text = @"Reset to default",
                BackGrndImage = ImageResources.UndoUserAction
            };
            defaultButton.ButtonPressed += DefaultButtonOnButtonPressed;
            tooltip.SetToolTip(defaultButton, "Click to <b>reset</b> all the options to default");
            scrollPanel.ContentPanel.Controls.Add(defaultButton);

            // add a button for the updates
            if (_allowedGroups.Contains("Updates")) {
                var updateButton = new YamuiButton {
                    Location = new Point(280, yPos),
                    Size = new Size(150, 24),
                    Text = @"Check for updates",
                    BackGrndImage = ImageResources.Update
                };
                updateButton.ButtonPressed += (sender, args) => UpdateHandler.CheckForUpdate();
                tooltip.SetToolTip(updateButton, "Click to <b>check for updates</b>");
                scrollPanel.ContentPanel.Controls.Add(updateButton);
            }

            scrollPanel.ContentPanel.Height = yPos + 50;
        }