/// <inheritdoc/>
        protected override void BuildContextMenu(ref Menu menu, bool extendedMenu)
        {
            menu.Add("Debug Mode+/Off", "Disable Debug Mode For All Inspected Targets", inspector.DisableDebugMode, !inspector.State.DebugMode);
            menu.Add("Debug Mode+/On", "Enable Debug Mode For All Inspected Targets", inspector.EnableDebugMode, inspector.State.DebugMode);

            menu.AddSeparatorIfNotRedundant();

            menu.Add("Multi-Editing/Merged", EnableMergedMultiEditMode, UserSettings.MergedMultiEditMode);
            menu.Add("Multi-Editing/Stacked", DisableMergedMultiEditMode, !UserSettings.MergedMultiEditMode);

            menu.Add("Help/Documentation", PowerInspectorDocumentation.Show);
            menu.Add("Help/Forum", OpenUrlFromContextMenu, "https://forum.unity.com/threads/released-power-inspector-full-inspector-overhaul.736022/");
            menu.AddSeparator("Help/");
            menu.Add("Help/Toolbar/Toolbar", PowerInspectorDocumentation.ShowFeature, "toolbar");
            menu.Add("Help/Toolbar/Back And Forward Buttons", PowerInspectorDocumentation.ShowFeature, "back-and-forward-buttons");
            menu.Add("Help/Toolbar/View Menu", PowerInspectorDocumentation.ShowFeature, "view-menu");
            menu.Add("Help/Toolbar/Search Box", PowerInspectorDocumentation.ShowFeature, "search-box");
            menu.Add("Help/Toolbar/Split View", PowerInspectorDocumentation.ShowFeature, "split-view");
            menu.Add("Help/Features/Copy-Paste", PowerInspectorDocumentation.ShowFeature, "copy-paste");
            menu.Add("Help/Features/Reset", PowerInspectorDocumentation.ShowFeature, "reset");
            menu.Add("Help/Features/Context Menu", PowerInspectorDocumentation.ShowFeature, "context-menu-items");
            menu.Add("Help/Features/Debug Mode+", PowerInspectorDocumentation.ShowFeature, "debug-mode");
            menu.Add("Help/Features/Display Anything", PowerInspectorDocumentation.ShowFeature, "display-anything");
            menu.Add("Help/Features/Hierarchy Folders", PowerInspectorDocumentation.ShowFeature, "hierarchy-folders");
            menu.Add("Help/View Modes/Target Window", PowerInspectorDocumentation.ShowFeature, "target-window");
            menu.Add("Help/View Modes/Multi-Editing Modes", PowerInspectorDocumentation.ShowFeature, "multi-editing-modes");

            var rootDrawer = inspector.State.drawers.Members;

            for (int n = 0, count = rootDrawer.Length; n < count; n++)
            {
                var root = rootDrawer[n] as IRootDrawer;
                if (root != null)
                {
                    root.AddItemsToOpeningViewMenu(ref menu);
                    //break; //UPDATE: multiple drawers adding items to the menu should now be supported
                }
            }

            menu.AddSeparator();

            menu.Add("Preferences", PowerInspectorPreferences.OpenIfNotOpenAndFocus);

            menu.AddSeparator();
            menu.MoveCategoryToBottom("Help/");
            menu.AddSeparator("Help/");
            menu.Add("Help/Troubleshooting/Troubleshooting Documentation", PowerInspectorDocumentation.Show, "category/troubleshooting/");
            menu.Add("Help/Troubleshooting/Issue Tracker", OpenUrlFromContextMenu, "https://github.com/SisusCo/Power-Inspector/issues");

                        #if UNITY_EDITOR
            if (extendedMenu)
            {
                menu.AddSeparator();

                var windows = Resources.FindObjectsOfTypeAll <UnityEditor.EditorWindow>();
                var self    = inspector.InspectorDrawer as UnityEditor.EditorWindow;

                menu.Add("EditorWindow Debugger/this (" + self.GetType().Name + ")", () => PowerInspectorWindowUtility.OpenNewWindow(self, true, false));

                for (int n = windows.Length - 1; n >= 0; n--)
                {
                    var window = windows[n];
                    if (window == self)
                    {
                        continue;
                    }
                    menu.AddEvenIfDuplicate("EditorWindow Debugger/" + window.GetType().Name, () =>
                    {
                        inspector.State.ViewIsLocked = true;
                        inspector.RebuildDrawers(ArrayPool <UnityEngine.Object> .CreateWithContent(window), true);
                    });
                }
            }
                        #endif
        }
Exemple #2
0
 static PowerInspectorWindowToUtilityAttacher()
 {
     PowerInspectorWindowUtility.RegisterCreateNewWindowDelegate(PowerInspectorWindow.CreateNew);
 }