示例#1
0
 private void toggleVisibleButtonsSelector()
 {
     if (visibleButtonsSelector == null) {
         visibleButtonsSelector = new VisibleButtonsSelector(savedVisibleButtons);
         visibleButtonsSelector.OnButtonSelectionChanged += () => {
             Log.info("user changed button visibilities");
             updateVisibleButtons();
             fireChange();
         };
         visibleButtonsSelector.OnDestroy += () => {
             visibleButtonsSelector = null;
         };
     } else {
         visibleButtonsSelector.destroy();
         // OnDestroy event will clear the variable
     }
 }
示例#2
0
        private void toggleVisibleButtonsSelector()
        {
            if (visibleButtonsSelector == null) {
                List<Button> buttons = new List<Button>(this.buttons.Where(b => (b.ns != Button.NAMESPACE_INTERNAL) && !b.Equals(dropdownMenuButton)));
                buttons.AddRange(folders.Values.SelectMany(f => f.buttons).Where(b => b.ns != Button.NAMESPACE_INTERNAL));
                sortButtons(buttons, compareButtonsNaturalOrder);

                visibleButtonsSelector = new VisibleButtonsSelector(buttons);
                visibleButtonsSelector.OnButtonSelectionChanged += (button) => {
                    string id = button.ns + "." + button.id;
                    Log.info("user changed button visibility: button: {0}, new visibility: {1}", id, button.UserVisible);
                    if (button.UserVisible && !savedVisibleButtons.Contains(id)) {
                        savedVisibleButtons.Add(id);
                    } else if (!button.UserVisible && savedVisibleButtons.Contains(id)) {
                        savedVisibleButtons.Remove(id);
                    }
                    fireChange();
                };
                visibleButtonsSelector.OnDestroy += () => {
                    visibleButtonsSelector = null;
                };
            } else {
                visibleButtonsSelector.destroy();
                // OnDestroy event will clear the variable
            }
        }