/// <summary> /// Fired after the node editor events /// </summary> public override void AfterEditorEvents() { CheckActivation(); if (!IsActivated) { return; } if (!Event.current.IsLeftClickEvent()) { return; } if (Event.current.modifiers != EventModifiers.None) { return; } Node clickedNode = NodeEditor.GetNodeUnderMouse(); Connector clickedConnector = NodeEditor.GetNodeConnectorUnderMouse(); if (clickedNode == null && clickedConnector == null) { NodeEditor.UnselectAll(); NodeEditor.RaiseSelectionChanged(); NodeEditor.FlagRepaint(); } }
/// <summary> /// Shows the menu /// </summary> protected override void OnActivated() { Node nodeUnderMouse = NodeEditor.GetNodeUnderMouse(); if (nodeUnderMouse.IsSelectable && !nodeUnderMouse.IsSelected()) { NodeEditor.UnselectAll(); nodeUnderMouse.Select(); } UpdateActiveMenu(nodeUnderMouse.ContextMenu, nodeUnderMouse); Event.current.Use(); }
/// <summary> /// Shows the menu /// </summary> protected override void OnActivated() { Connector connectorUnderMouse = NodeEditor.GetNodeConnectorUnderMouse(); if (connectorUnderMouse.IsSelectable && !connectorUnderMouse.IsSelected()) { NodeEditor.UnselectAll(); connectorUnderMouse.Select(); } UpdateActiveMenu(connectorUnderMouse.ContextMenu, connectorUnderMouse); Event.current.Use(); }
/// <summary> /// Checks for node selection before the editor processes the /// left-clicks /// </summary> public override void BeforeEditorEvents() { CheckActivation(); if (!IsActivated) { return; } if (Event.current.type != EventType.MouseDown || Event.current.button != 0) { return; } bool multiSelectActive = Event.current.modifiers == EventModifiers.Control || Event.current.modifiers == EventModifiers.Shift; Node clickedNode = NodeEditor.GetNodeUnderMouse(); if (clickedNode == null) { return; } if (!clickedNode.IsSelectable) { return; } bool isNodeSelected = clickedNode.IsSelected(); if (!multiSelectActive) { if (!isNodeSelected) { NodeEditor.UnselectAll(); clickedNode.Select(); } } else { clickedNode.ToggleSelected(); } NodeEditor.RaiseSelectionChanged(); NodeEditor.FlagRepaint(); Event.current.Use(); }
public override void BeforeEditorEvents() { CheckActivation(); if (!IsActivated) { return; } if (!Event.current.IsLeftClickEvent()) { return; } bool multiSelectActive = Event.current.modifiers == EventModifiers.Control || Event.current.modifiers == EventModifiers.Shift; Connector clickedConnector = NodeEditor.GetNodeConnectorUnderMouse(); if (clickedConnector == null) { return; } if (!clickedConnector.IsSelectable) { return; } bool isSelected = clickedConnector.IsSelected(); if (!multiSelectActive) { if (!isSelected) { NodeEditor.UnselectAll(); clickedConnector.Select(); } } else { clickedConnector.ToggleSelected(); } NodeEditor.RaiseSelectionChanged(); NodeEditor.FlagRepaint(); Event.current.Use(); }
/// <summary> /// Executes after the node editor has processed its events /// </summary> public override void AfterEditorEvents() { CheckActivation(); if (!IsActivated) { return; } if (Event.current.type != EventType.KeyDown) { return; } if (Event.current.keyCode == KeyCode.Escape) { NodeEditor.CancelInputModes(); NodeEditor.UnselectAll(); } }
/// <summary> /// Handles cancelling box select mode /// </summary> protected override void OnCancelled() { NodeEditor.UnselectAll(); NodeEditor.RaiseSelectionChanged(); }