Ejemplo n.º 1
0
        public void Init(
            IEnumerable <InspectorShelf.InspectorShelfItem> objects,
            Action <object> onInspectionRequested)
        {
            buttonList.Clear();

            foreach (var element in objects)
            {
                var obj = element;
                buttonList.AddButton(obj.Name, () => onInspectionRequested(obj.Object));
            }
        }
Ejemplo n.º 2
0
        protected override void OnItemsChanged(NotifyCollectionChangedEventArgs e)
        {
            base.OnItemsChanged(e);

            if (DesignerProperties.IsInDesignTool)
            {
                return;
            }

            ButtonList.Clear();
            WrappedObject.Buttons.Clear();
            MenuItemList.Clear();
            WrappedObject.MenuItems.Clear();
            foreach (object item in Items)
            {
                if (item is AppBarIconButton)
                {
                    AppBarIconButton button = (AppBarIconButton)item;
                    button.Owner = this;
                    if (button.Visiable)
                    {
                        WrappedObject.Buttons.Add(button.WrappedObject);
                    }
                    ButtonList.Add(button);
                }
                else if (item is AppBarMenuItem)
                {
                    WrappedObject.MenuItems.Add(((AppBarMenuItem)item).WrappedObject);
                    MenuItemList.Add((AppBarMenuItem)item);
                }
                else
                {
                    throw new InvalidCastException();
                }
            }
        }
Ejemplo n.º 3
0
        private void SetupPage(DebugMenuItemNode node)
        {
            currentPageNode = node;

            buttonList.Clear();


            if (node.Parent != null)
            {
                buttonList.AddButton($"{backCharacter} Back", () => { SetupPage(node.Parent); });
            }

            foreach (var childNode in node.Children.Values)
            {
                var isFolder   = childNode.IsFolder;
                var buttonText = childNode.Name + (isFolder ? $" {folderArrowCharacter}" : "");

                UnityAction actionFunc = () =>
                {
                    if (isFolder)
                    {
                        SetupPage(childNode);
                    }
                    else
                    {
                        childNode.Action.Invoke();
                        if (childNode.HideOnClick)
                        {
                            debugMenu.Hide();
                        }
                    }
                };

                buttonList.AddButton(buttonText, actionFunc);
            }
        }
        protected virtual void GenerateTreeView()
        {
            IsGenerating = true;
            NotifyPropertyChanged(nameof(IsGenerating));

            panelMain.Children.Clear();
            UpdateProgress(0, 0);

            ExtendedTreeView treeviewSample = new ExtendedTreeView();

            treeviewSample.SetValue(ScrollViewer.IsDeferredScrollingEnabledProperty, TreeViewSettingsWindow.IsDeferredScrollingEnabled);
            treeviewSample.SetValue(VirtualizingPanel.IsVirtualizingProperty, TreeViewSettingsWindow.IsVirtualizing);
            treeviewSample.SetValue(VirtualizingPanel.VirtualizationModeProperty, TreeViewSettingsWindow.VirtualizationMode);
            treeviewSample.SelectionMode         = TreeViewSettingsWindow.SelectionMode;
            treeviewSample.AllowDragDrop         = TreeViewSettingsWindow.AllowDragDrop;
            treeviewSample.IsRootAlwaysExpanded  = TreeViewSettingsWindow.IsRootAlwaysExpanded;
            treeviewSample.IsItemExpandedAtStart = TreeViewSettingsWindow.IsItemExpandedAtStart;
            treeviewSample.Content    = GenerateRoot(TreeViewSettingsWindow.IsCloneable);
            treeviewSample.DropCheck += OnDropCheck;

            Collection <ResourceDictionary> MergedDictionaries = Application.Current.Resources.MergedDictionaries;

            MergedDictionaries.Clear();

            bool IsHandled = false;

            switch (TreeViewSettingsWindow.TreeViewType)
            {
            case TreeViewType.VS2013:
                MergedDictionaries.Add(VS2013Dictionnary);
                treeviewSample.ExpandButtonStyle = (Style)FindResource("VS2013ExpandButtonStyle");
                treeviewSample.ExpandButtonWidth = 16;
                treeviewSample.IndentationWidth  = 16;
                IsHandled = true;
                break;

            case TreeViewType.Explorer:
                MergedDictionaries.Add(ExplorerDictionnary);
                ButtonList.Clear();
                Style ButtonStyle    = (Style)FindResource("ExplorerExpandButtonStyle");
                Style NewButtonStyle = new Style(typeof(ToggleButton), ButtonStyle);
                NewButtonStyle.Setters.Add(new EventSetter(ToggleButton.LoadedEvent, new RoutedEventHandler(OnButtonLoaded)));
                NewButtonStyle.Setters.Add(new EventSetter(ToggleButton.UnloadedEvent, new RoutedEventHandler(OnButtonUnloaded)));
                treeviewSample.ExpandButtonStyle = NewButtonStyle;
                treeviewSample.ExpandButtonWidth = 12;
                treeviewSample.IndentationWidth  = 8;
                treeviewSample.MouseEnter       += OnTreeViewMouseEnter;
                treeviewSample.MouseLeave       += OnTreeViewMouseLeave;
                IsHandled = true;
                break;

            case TreeViewType.Custom:
                switch (TreeViewSettingsWindow.TreeViewItemType)
                {
                case TreeViewItemType.FixedHeightImage:
                    MergedDictionaries.Add(CustomFixedHeightImageDictionnary);
                    IsHandled = true;
                    break;

                case TreeViewItemType.Text:
                    MergedDictionaries.Add(CustomTextImageDictionnary);
                    IsHandled = true;
                    break;

                case TreeViewItemType.VariableHeightImageAndText:
                    MergedDictionaries.Add(CustomVariableHeightImageAndTextDictionnary);
                    IsHandled = true;
                    break;
                }

                break;
            }

            Debug.Assert(IsHandled);

            panelMain.Children.Add(treeviewSample);
        }