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();
        }
Example #3
0
 public MenuController()
 {
     this.MenuView = new MenuTreeView();
     this.View     = this.MenuView;
 }