コード例 #1
0
        /// <summary>
        /// Creates the generic menu for popping out the panel and returning it to the panel view.
        /// </summary>
        /// <returns>generic menu with options for active panel</returns>
        static GenericMenu CreatePanelMenu(PanelView view, GenericMenu menu)
        {
            if (!view.DrawAsWindow)
            {
                menu.AddItem(k_OpenWindowContent, false, () =>
                {
                    var window = CreateInstance <SinglePanelWindow>();
                    window.InitWindow(view);
                });
            }
            else
            {
                menu.AddItem(k_ReturnWindowContent, false, () =>
                {
                    if (view.EditorWindow != null)
                    {
                        view.EditorWindow.Close();
                    }
                });
            }

            var viewMenuItems = view.MenuItems();

            if (viewMenuItems != null)
            {
                foreach (var menuItem in viewMenuItems)
                {
                    menu.AddItem(menuItem.Content, menuItem.On, menuItem.Func);
                }
            }

            return(menu);
        }
コード例 #2
0
        bool DrawAsWindow(PanelView panelView)
        {
            if (panelView.PanelWindow != this)
            {
                panelView.PanelWindow = this;
            }

            if (panelView.EditorWindow == null)
            {
                panelView.DrawAsWindow = false;
            }

            return(panelView.DrawAsWindow);
        }
コード例 #3
0
        public void InitWindow(PanelView panelView)
        {
            titleContent = new GUIContent(panelView.PanelLabel);

            panelView.EditorWindow = this;
            panelView.DrawAsWindow = true;

            autoRepaintOnSceneChange = panelView.AutoRepaintOnSceneChange;

            // Force the window to the preferred size before drawing
            if (panelView.UsePrefSize)
            {
                minSize = panelView.PreferredSize;
                maxSize = panelView.PreferredSize;
            }
            else
            {
                minSize = panelView.MinSize;
                maxSize = panelView.MaxSize;
            }

            m_PanelView = panelView;

            Show();
            panelView.Repaint();

            // After window starts drawing allow for normal min and max sizes
            if (panelView.UsePrefSize)
            {
                minSize = panelView.MinSize;
                maxSize = panelView.MaxSize;
            }

            if (!m_PanelView.PanelPopoutCanScroll)
            {
                m_VerticalScrollActive   = false;
                m_HorizontalScrollActive = false;
            }
        }