public void HandleEvent(Event windowEvent) { switch (windowEvent.type) { case EventType.MouseDown: if (IsRightMouseClick(windowEvent.button)) { DisplayGeneralOptionsMenu(windowEvent.mousePosition); windowEvent.Use(); } else if (IsLeftMouseClick(windowEvent.button)) { _window.EndTransitionPreview(); _window.EndParentConnectionPreview(); _window.DeselectAll(); } break; case EventType.MouseDrag: if (windowEvent.alt && IsLeftMouseClick(windowEvent.button)) { _window.Drag(windowEvent.delta); windowEvent.Use(); } break; } }
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(); } else if (_window.HasParentConnectionPreview()) { _window.AddChildTo(_window.GetParentNodeFromParentConnectionPreview(), node); _window.EndParentConnectionPreview(); } _window.Select(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; } }