protected virtual void ExecuteCommands(Flowchart flowchart) { if (Event.current.type == EventType.ExecuteCommand) { switch (Event.current.commandName) { case "Copy": Copy(flowchart); Event.current.Use(); break; case "Cut": Cut(flowchart); Event.current.Use(); break; case "Paste": Paste(flowchart, position.center - position.position); Event.current.Use(); break; case "Delete": DeleteBlocks(flowchart.SelectedBlocks); Event.current.Use(); break; case "Duplicate": Duplicate(flowchart); Event.current.Use(); break; case "SelectAll": Undo.RecordObject(flowchart, "Selection"); flowchart.ClearSelectedBlocks(); foreach (var block in flowchart.GetComponents<Block>()) { flowchart.AddSelectedBlock(block); } Event.current.Use(); break; case "Find": blockPopupSelection = 0; EditorGUI.FocusTextInControl(searchFieldName); Event.current.Use(); break; } } }
protected virtual void DeselectAll(Flowchart flowchart) { Undo.RecordObject(flowchart, "Deselect"); flowchart.ClearSelectedCommands(); flowchart.ClearSelectedBlocks(); Selection.activeGameObject = flowchart.gameObject; }