/// <summary> /// Tree View Drawer /// </summary> /// <param name="previousRect"></param> /// <returns></returns> Rect DrawTreeView(Rect previousRect) { Rect treeViewRect = new Rect(previousRect.x, previousRect.y + previousRect.height, previousRect.width, RollTableTreeView.totalHeight + 10 + 2 * _spacing); RollTableTreeView.OnGUI(treeViewRect); return(treeViewRect); }
Rect DrawToolBarLayout(Rect previousRect) { int buttonDivision = 6; Rect toolBarRect = new Rect(previousRect.x, previousRect.y + previousRect.height, previousRect.width, _toolBarHeight); Rect testButtonRect = DivideRectHorizontal(toolBarRect, buttonDivision, 0); var style = "miniButton"; if (GUI.Button(testButtonRect, "Test TableRoll")) { RollTableTreeView.TestRoll(); } string lastRolledLabel = "NONE"; if (RollTableTreeView.LastRolled != null) { lastRolledLabel = RollTableTreeView.LastRolled.name; } Rect rollLabelRect = DivideRectHorizontal(toolBarRect, buttonDivision, 1); GUI.Label(rollLabelRect, "Last Rolled: " + lastRolledLabel); Rect removeItemRect = DivideRectHorizontal(toolBarRect, buttonDivision, 5); if (GUI.Button(removeItemRect, "Remove Item", style)) { Undo.RecordObject(activeProperty.serializedObject.targetObject, "Remove Item From Asset"); var selection = RollTableTreeView.GetSelection(); RollTableTreeView.treeModel.RemoveElements(selection); } return(toolBarRect); }
Rect BottomToolBarLayout(Rect previousRect) { int buttonDivision = 10; Rect bottomToolbar = new Rect(previousRect.x, previousRect.y + previousRect.height, previousRect.width, _toolBarHeight); Rect expandButtonRect = DivideRectHorizontal(bottomToolbar, buttonDivision, 0); var style = "miniButton"; if (GUI.Button(expandButtonRect, "Expand All", style)) { RollTableTreeView.ExpandAll(); } Rect collapseButtonRect = DivideRectHorizontal(bottomToolbar, buttonDivision, 1); if (GUI.Button(collapseButtonRect, "Collapse All", style)) { RollTableTreeView.CollapseAll(); } Rect propertyLabelRect = DivideRectHorizontal(bottomToolbar, buttonDivision, 2); GUI.Label(propertyLabelRect, activeProperty.serializedObject.context != null ? AssetDatabase.GetAssetPath(activeProperty.serializedObject.context) : string.Empty); Rect setSortingRect = DivideRectHorizontal(bottomToolbar, buttonDivision, 3); if (GUI.Button(setSortingRect, "Set sorting", style)) { var myColumnHeader = (MyMultiColumnHeader)RollTableTreeView.multiColumnHeader; myColumnHeader.SetSortingColumns(new int[] { 4, 3, 2 }, new[] { true, false, true }); myColumnHeader.mode = MyMultiColumnHeader.Mode.LargeHeader; } Rect headerRect = DivideRectHorizontal(bottomToolbar, buttonDivision, 5); GUI.Label(headerRect, "Header: ", "minilabel"); Rect largeButtonRect = DivideRectHorizontal(bottomToolbar, buttonDivision, 6); if (GUI.Button(largeButtonRect, "Large", style)) { var myColumnHeader = (MyMultiColumnHeader)RollTableTreeView.multiColumnHeader; myColumnHeader.mode = MyMultiColumnHeader.Mode.LargeHeader; } Rect mediumButtonRect = DivideRectHorizontal(bottomToolbar, buttonDivision, 7); if (GUI.Button(mediumButtonRect, "Default", style)) { var myColumnHeader = (MyMultiColumnHeader)RollTableTreeView.multiColumnHeader; myColumnHeader.mode = MyMultiColumnHeader.Mode.DefaultHeader; } Rect smallButtonRect = DivideRectHorizontal(bottomToolbar, buttonDivision, 8); if (GUI.Button(smallButtonRect, "No sort", style)) { var myColumnHeader = (MyMultiColumnHeader)RollTableTreeView.multiColumnHeader; myColumnHeader.mode = MyMultiColumnHeader.Mode.MinimumHeaderWithoutSorting; } Rect valueControlRect = DivideRectHorizontal(bottomToolbar, buttonDivision, 9); if (GUI.Button(valueControlRect, "values <-> controls", style)) { RollTableTreeView.showControls = !RollTableTreeView.showControls; } return(bottomToolbar); }