private bool DoHeader() { bool foldOut = EditorPrefs.GetBool("FsmVariables", true); Rect rect = GUILayoutUtility.GetRect(new GUIContent("Variables"), FsmEditorStyles.variableHeader, GUILayout.ExpandWidth(true)); rect.x -= 1; rect.width += 2; Rect rect2 = new Rect(rect.width - 10, rect.y + 2, 25, 25); EventType eventType = FsmEditorUtility.ReserveEvent(rect2); if (GUI.Button(rect, "Variables" + (foldOut?"":"[Click to expand]"), FsmEditorStyles.variableHeader)) { if (Event.current.button == 0) { EditorPrefs.SetBool("FsmVariables", !foldOut); } } FsmEditorUtility.ReleaseEvent(eventType); bool isEnabled = GUI.enabled; GUI.enabled = FsmEditor.Active != null; if (GUI.Button(rect2, FsmEditorStyles.toolbarPlus, FsmEditorStyles.label)) { FsmGUIUtility.SubclassMenu <FsmVariable>(CreateVariable); Event.current.Use(); } GUI.enabled = isEnabled; return(foldOut); }
protected override void OnGUI() { mainToolbar.OnGUI(); EventType eventType = FsmEditorUtility.ReserveEvent(variableEditorRect, fsmSelectionRect, preferencesRect); ZoomableArea.Begin(new Rect(0f, 0f, scaledCanvasSize.width, scaledCanvasSize.height + 21), scale, IsDocked); Begin(); shortcutEditor.HandleKeyEvents(); if (FsmEditor.Active != null) { DoNodes(); } else { ZoomableArea.End(); } AcceptDragAndDrop(); End(); FsmEditorUtility.ReleaseEvent(eventType); PreferencesEditor.DoGUI(preferencesRect); shortcutEditor.DoGUI(shortcutRect); DoFsmSelection(fsmSelectionRect); variableEditor.DoGUI(variableEditorRect); if (centerView) { CenterView(); centerView = false; } if (FsmEditor.Active != null) { GUI.Label(new Rect(5, 20, 300, 200), FsmEditor.Active.comment, FsmEditorStyles.instructionLabel); } else { GUI.Label(new Rect(5, 20, 300, 200), "Right click to create a state machine.", FsmEditorStyles.instructionLabel); } Event ev = Event.current; if (SelectedNodes.Count == 1 && ev.rawType == EventType.KeyDown && ev.keyCode == KeyCode.Delete && FsmEditor.SelectedTransition != null && EditorUtility.DisplayDialog("Delete selected transition?", FsmEditor.SelectedTransition.FromNode.Name + " -> " + FsmEditor.SelectedTransition.ToNode.Name + "\r\n\r\nYou cannot undo this action.", "Delete", "Cancel")) { Node node = SelectedTransition.FromNode; node.Transitions = ArrayUtility.Remove(node.Transitions, FsmEditor.SelectedTransition); FsmEditorUtility.DestroyImmediate(FsmEditor.SelectedTransition); ErrorChecker.CheckForErrors(); EditorUtility.SetDirty(node); } }
public bool DoListHeader() { bool foldOut = EditorPrefs.GetBool(title, false); Rect rect = GUILayoutUtility.GetRect(new GUIContent(title), FsmEditorStyles.variableHeader, GUILayout.ExpandWidth(true)); rect.x -= 1; rect.width += 2; Rect rect2 = new Rect(rect.width - 10, rect.y + 2, 25, 25); EventType eventType = FsmEditorUtility.ReserveEvent(rect2); if (GUI.Button(rect, title, FsmEditorStyles.variableHeader)) { if (Event.current.button == 0) { EditorPrefs.SetBool(title, !foldOut); } if (Event.current.button == 1 && onHeaderClick != null) { onHeaderClick(); } } FsmEditorUtility.ReleaseEvent(eventType); if (displayAdd && GUI.Button(rect2, FsmEditorStyles.toolbarPlus, FsmEditorStyles.label) && onAddCallback != null) { onAddCallback(); if (onSelectCallback != null) { onSelectCallback(items.Count); } } if (onDrawHeaderContent != null) { onDrawHeaderContent(rect); } return(foldOut); }
protected override void OnGUI () { mainToolbar.OnGUI (); EventType eventType = FsmEditorUtility.ReserveEvent (variableEditorRect,fsmSelectionRect, preferencesRect); Begin (); shortcutEditor.HandleKeyEvents (); if(FsmEditor.Active != null) DoNodes (); End (); FsmEditorUtility.ReleaseEvent (eventType); PreferencesEditor.DoGUI (preferencesRect); shortcutEditor.DoGUI (shortcutRect); DoFsmSelection (fsmSelectionRect); variableEditor.DoGUI (variableEditorRect); if (centerView) { CenterView(); centerView=false; } if (FsmEditor.Active != null) { GUI.Label (new Rect (5, 20, 300, 200), FsmEditor.Active.comment, FsmEditorStyles.instructionLabel); } }