void DrawTopBar() { top_bar_rect.width = position.width; GUI.Box(top_bar_rect, "", EditorStyles.toolbar); Rect padded_rect = new Rect(top_bar_rect); padded_rect.width = 200; padded_rect.x += 10; GUILayout.BeginArea(padded_rect); GUILayout.BeginHorizontal(); if (GUILayout.Toggle(side_panel_view == SidePanelView.state, "State Info", EditorStyles.toolbarButton)) { side_panel_view = SidePanelView.state; } GUILayout.Space(4); if (GUILayout.Toggle(side_panel_view == SidePanelView.parameters, "Parameters", EditorStyles.toolbarButton)) { side_panel_view = SidePanelView.parameters; } GUILayout.Space(4); GUILayout.EndHorizontal(); GUILayout.EndArea(); }
void Init() { side_panel_view = SidePanelView.state; top_bar_rect = new Rect(0, 0, position.width, 18); info_panel_rect = new Rect(0, top_bar_rect.height - 1, 400, position.height - top_bar_rect.height); states_panel_rect = new Rect(info_panel_rect.width, top_bar_rect.height, position.width - info_panel_rect.width, position.height - top_bar_rect.height); scroll_view_position = Vector2.zero; scroll_view_background_color = new Color(0.25f, 0.25f, 0.25f, 1); view_rect = new Rect(0, 0, 2000, 2000); state_size = new Vector2(200, 40); state_position = new Vector2(10, 10); next_id = 1; focused_state_id = -1; temp_name = ""; state_height_list = new List <State>(); states = new Dictionary <int, State>(); transition_list = new ReorderableList(new List <Transition>(), typeof(Transition), true, true, false, true); transition_list.drawHeaderCallback += (list) => DrawReorderableListHeader(list, "Transitions"); transition_list.drawElementCallback += DrawReorderableTransitionElement; transition_list.onReorderCallbackWithDetails += (list, index_1, index_2) => state_machine.ReorderTransition(states[focused_state_id], index_1, index_2); transition_list.onRemoveCallback += (list) => state_machine.DeleteTransition(list.GetCurrent <Transition>()); condition_list = new ReorderableList(new List <Condition>(), typeof(Condition), true, true, true, true); condition_list.drawHeaderCallback += (list) => DrawReorderableListHeader(list, "Conditions"); condition_list.drawElementCallback += DrawReorderableConditionElement; condition_list.onRemoveCallback += RemoveConditionFromFocused; condition_list.onAddCallback += AddConditionToFocused; condition_list.onReorderCallbackWithDetails += ReorderConditionInFocused; parameter_list = new ReorderableList(new List <Parameter>(), typeof(Parameter), true, true, true, true); parameter_list.drawHeaderCallback += (list) => DrawReorderableListHeader(list, "Parameters"); parameter_list.drawElementCallback += DrawReorderableParamteterElement; parameter_list.onRemoveCallback += (list) => state_machine.DeleteParameter(list.GetCurrent <Parameter>().name); parameter_list.onAddCallback += (list) => state_machine.AddParameter("New Parameter"); parameter_list.onSelectCallback += SelectReorderableParameter; parameter_list.drawElementCallback += ReorderableParameterElementCallback; parameter_list.onReorderCallbackWithDetails += (list, index_1, index_2) => state_machine.MoveParameter(index_1, index_2); last_selected_parameter = edit_parameter = -1; grid_right_click_menu = new GenericMenu(); grid_right_click_menu.AddItem(new GUIContent("Create State"), false, () => CreateNewState("State " + next_id)); }