protected virtual void OnEnable() { resizableArea.minSize = new Vector2(LeftMinWidth, 50); resizableArea.side = 10; resizableArea.EnableSide(UIDirection.Right); searchField = new SearchField(); MenuTreeView = BuildMenuTree(treeViewState); MenuTreeView.Reload(); }
void OnGUI() { resizableArea.maxSize = position.size; resizableAreaRect.height = position.height; resizableAreaRect = resizableArea.OnGUI(resizableAreaRect); GUILayout.BeginArea(resizableAreaRect); scroll.y = 0; scroll = GUILayout.BeginScrollView(scroll); Rect searchFieldRect = resizableAreaRect; searchFieldRect.height = 22; searchFieldRect.y += 3; searchFieldRect.x += 5; searchFieldRect.width -= 10; searchFieldRect.width = Mathf.Max(100, searchFieldRect.width); string tempSearchText = searchField.OnGUI(searchFieldRect, searchText); if (tempSearchText != searchText) { searchText = tempSearchText; MenuTreeView.searchString = searchText; } Rect treeviewRect = resizableAreaRect; treeviewRect.y += searchFieldRect.height; treeviewRect.height -= searchFieldRect.height; EditorGUI.DrawRect(treeviewRect, new Color(0.5f, 0.5f, 0.5f, 1)); MenuTreeView.OnGUI(treeviewRect); GUILayout.EndScrollView(); GUILayout.EndArea(); Rect sideRect = resizableAreaRect; sideRect.x += sideRect.width; sideRect.width = 1; EditorGUI.DrawRect(sideRect, new Color(0.5f, 0.5f, 0.5f, 1)); rightRect = sideRect; rightRect.x += rightRect.width + 1; rightRect.width = position.width - resizableAreaRect.width - sideRect.width - 2; rightRect.width = Mathf.Max(rightRect.width, RightMinWidth); GUILayout.BeginArea(rightRect); rightRect.x = 0; rightRect.y = 0; IList <int> selection = MenuTreeView.GetSelection(); if (selection.Count > 0) { rightScroll = GUILayout.BeginScrollView(rightScroll, false, false); OnRightGUI(MenuTreeView.FindItem(selection[0]) as CZMenuTreeViewItem); GUILayout.EndScrollView(); } GUILayout.EndArea(); }
public MenuController() { this.MenuView = new MenuTreeView(); this.View = this.MenuView; }