private void UpdateClickedConnection(Event e) { switch (e.type) { case EventType.MouseDrag: _connection.SetExampleCurve(e.mousePosition); break; case EventType.MouseUp: Connection linkTarget = null; foreach (var node in _window.Nodes) { linkTarget = node.GetConnection(e.mousePosition); if (linkTarget != null) { break; } } _connection.Links.AddLink(linkTarget); _connection.ClearCurveExample(); DialogueWindow.SaveGraph(); break; } }
public RightClickHandler( DialogueWindow window, NodeSelection selection, ScrollManager scroll, DelayedMenu menu) { _window = window; _selection = selection; _scroll = scroll; _menu = menu; }
public InputController(DialogueWindow window) { Scroll = new ScrollManager(window, window.Graph); if (Vector2.Distance(window.Graph.scrollPosition, Vector2.one) < 2) { Scroll.SetViewToRect(window.Graph.root.rect); } _selection = new NodeSelection(window); _leftClick = new LeftClickHandler(window, _selection); _rightClick = new RightClickHandler(window, _selection, Scroll, _delayedMenu); }
private void UpdateClickedNode(Event e) { switch (e.type) { case EventType.MouseDown when !_selection.Contains(_clickedNode): _selection.RemoveAll(); _selection.Add(_clickedNode); GUI.changed = true; break; case EventType.MouseDrag: _isDraggingNode = true; Undo.SetCurrentGroupName("Drag nodes"); _selection.Selected.ForEach(n => { Undo.RegisterCompleteObjectUndo(n.Data, "Move node"); n.Data.rect.position += e.delta; }); Undo.CollapseUndoOperations(Undo.GetCurrentGroup()); e.Use(); break; case EventType.MouseUp: if (!_isDraggingNode) { _selection.RemoveAll(); _selection.Add(_clickedNode); GUI.changed = true; } ClearDragging(); DialogueWindow.SaveGraph(); break; case EventType.Ignore: ClearDragging(); DialogueWindow.SaveGraph(); break; } }
public GraphCrud(DialogueGraph graph, DialogueWindow window) { _graph = graph; _window = window; }
public LeftClickHandler(DialogueWindow window, NodeSelection selection) { _window = window; _selection = selection; }