示例#1
0
 private void AddBundleToList(string bundle)
 {
     checkboxes[bundle] = new ThemedCheckBox();
     lines[bundle]      = new Widget {
         Layout = new HBoxLayout {
             Spacing = 8
         },
         Nodes =
         {
             checkboxes[bundle],
             new ThemedSimpleText(bundle)
             {
                 HitTestTarget = true,
                 Clicked       = () => {
                     if (checkboxes[bundle].GloballyEnabled)
                     {
                         checkboxes[bundle].Toggle();
                         bundlePicker.SetBundleSelection(bundle, checkboxes[bundle].Checked);
                     }
                 }
             }
         }
     };
     scrollView.Content.AddNode(lines[bundle]);
     checkboxes[bundle].Checked  = true;
     checkboxes[bundle].Changed += args => bundlePicker.SetBundleSelection(bundle, checkboxes[bundle].Checked);
 }
示例#2
0
 public CheckBoxWithLabel(string text)
 {
     Layout = new HBoxLayout {
         Spacing = 8
     };
     AddNode(CheckBox = new ThemedCheckBox());
     Label            = new ThemedSimpleText(text)
     {
         HitTestTarget = true,
         Clicked       = CheckBox.Toggle
     };
     AddNode(Label);
 }
示例#3
0
        public BooleanPropertyEditor(IPropertyEditorParams editorParams) : base(editorParams)
        {
            var checkBox = new ThemedCheckBox {
                LayoutCell = new LayoutCell(Alignment.LeftCenter)
            };

            EditorContainer.AddNode(checkBox);
            EditorContainer.AddNode(Spacer.HStretch());
            checkBox.Changed += args => {
                if (args.ChangedByUser)
                {
                    SetProperty(args.Value);
                }
            };
            checkBox.AddChangeLateWatcher(CoalescedPropertyValue(), v => checkBox.State = v.IsDefined
                                ? v.Value ? CheckBoxState.Checked : CheckBoxState.Unchecked : CheckBoxState.Indeterminate);
        }
        private Widget CreateTriggerSelectionWidget(string trigger, string key)
        {
            var isChecked = selected.Contains(trigger);
            var checkBox  = new ThemedCheckBox {
                Checked = isChecked
            };

            if (isChecked)
            {
                groupSelection[key].Enqueue(trigger);
            }
            checkBoxes[key].Add(trigger, checkBox);

            var widget = new Widget {
                Layout     = new HBoxLayout(),
                LayoutCell = new LayoutCell(Alignment.Center),
                Padding    = new Thickness(left: 8, right: 8, top: 4, bottom: 4),
                Nodes      =
                {
                    new ThemedSimpleText {
                        Text           = trigger,
                        LayoutCell     = new LayoutCell(Alignment.Center),
                        Anchors        = Anchors.LeftRight,
                        ForceUncutText = false
                    },
                    Spacer.HSpacer(5),
                    checkBox
                },
                HitTestTarget = true
            };

            widget.CompoundPresenter.Add(new SyncDelegatePresenter <Widget>(w => {
                if (w.IsMouseOverThisOrDescendant())
                {
                    w.PrepareRendererState();
                    Renderer.DrawRect(Vector2.Zero, w.Size, Theme.Colors.SelectedBackground);
                }
            }));
            widget.LateTasks.Add(Theme.MouseHoverInvalidationTask(widget));
            widget.Clicked   += checkBox.Toggle;
            checkBox.Changed += e => ToggleTriggerCheckbox(trigger, key);
            return(widget);
        }
示例#5
0
 public PluginCheckBoxWidget(OrangePluginPanel.PluginCheckBox pluginCheckBox)
 {
     Layout = new HBoxLayout {
         Spacing = 8
     };
     CheckBox          = new ThemedCheckBox();
     Checked           = pluginCheckBox.Active;
     CheckBox.Changed += args => {
         pluginCheckBox.Active = Checked;
         pluginCheckBox.Toogle();
     };
     AddNode(CheckBox);
     Label = new ThemedSimpleText(pluginCheckBox.Label)
     {
         HitTestTarget = true,
         Clicked       = CheckBox.Toggle
     };
     AddNode(Label);
 }
示例#6
0
        public SaveRulerDialog(Ruler ruler)
        {
            ThemedButton cancelButton;
            ThemedButton okButton;
            CheckBox     checkBox;
            EditBox      editBox;

            window = new Window(new WindowOptions {
                Title   = "Save Ruler",
                Visible = false,
                Style   = WindowStyle.Dialog,
            });
            WindowWidget rootWidget = new ThemedInvalidableWindowWidget(window)
            {
                LayoutBasedWindowSize = true,
                Padding = new Thickness(8),
                Layout  = new VBoxLayout {
                    Spacing = 16
                },
                Nodes =
                {
                    new Widget {
                        Layout = new TableLayout{
                            ColumnCount    = 2,
                            RowCount       = 2,
                            Spacing        = 8,
                            ColumnDefaults =
                            {
                                new DefaultLayoutCell(Alignment.RightCenter, 0.5f, 0),
                                new DefaultLayoutCell(Alignment.LeftCenter,     1, 0)
                            }
                        },
                        Nodes =
                        {
                            new ThemedSimpleText("Ruler name"),
                            (editBox = new ThemedEditBox{
                                MinWidth = 150
                            }),
                            new ThemedSimpleText("Anchor to root"),
                            (checkBox = new ThemedCheckBox())
                        }
                    },
                    new Widget {
                        Layout = new HBoxLayout{
                            Spacing = 8
                        },
                        LayoutCell = new LayoutCell(Alignment.RightCenter),
                        Nodes      =
                        {
                            (okButton     = new ThemedButton("Ok")),
                            (cancelButton = new ThemedButton("Cancel")),
                        }
                    }
                }
            };

            cancelButton.Clicked += window.Close;
            okButton.AddChangeWatcher(() => editBox.Text, (text) => okButton.Enabled = !string.IsNullOrEmpty(text));
            okButton.Clicked += () => {
                ruler.Name         = editBox.Text;
                ruler.AnchorToRoot = checkBox.Checked;
                result             = true;
                window.Close();
            };
            rootWidget.FocusScope = new KeyboardFocusScope(rootWidget);
            editBox.SetFocus();
        }