public void HandleEventFor(StateNode node, Event nodeEvent) { switch (nodeEvent.type) { case EventType.MouseDown: if (IsLeftMouseClick(nodeEvent.button)) { if (node.IsPointOverNode(nodeEvent.mousePosition)) { if (_window.HasTransitionPreview()) { _window.AddTransition(_window.GetSourceNodeFromTransitionPreview(), node); _window.EndTransitionPreview(); } _window.SelectNode(node); nodeEvent.Use(); } } else if (IsRightMouseClick(nodeEvent.button) && _window.IsSelected(node)) { DisplayNodeOptionsAtPosition(node); nodeEvent.Use(); } break; case EventType.MouseDrag: if (IsLeftMouseClick(nodeEvent.button) && _window.IsSelected(node)) { node.Drag(nodeEvent.delta); nodeEvent.Use(); } break; } }
public void HandleEventFor(TransitionConnection transition, Event nodeEvent) { switch (nodeEvent.type) { case EventType.MouseDown: if (IsLeftMouseClick(nodeEvent.button)) { if (transition.IsPointOverConnection(nodeEvent.mousePosition)) { _window.SelectTransition(transition); nodeEvent.Use(); } } else if (IsRightMouseClick(nodeEvent.button) && _window.IsSelected(transition)) { DisplayNodeOptionsAtPosition(transition); nodeEvent.Use(); } break; } }