/// <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();
        }
Esempio n. 5
0
        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();
        }
Esempio n. 6
0
        /// <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();
 }