/// <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); }
bool DrawAsWindow(PanelView panelView) { if (panelView.PanelWindow != this) { panelView.PanelWindow = this; } if (panelView.EditorWindow == null) { panelView.DrawAsWindow = false; } return(panelView.DrawAsWindow); }
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; } }