private bool HandleMouseMode() { var type = Event.current.type; if (type == EventType.Ignore && CurrentMouseMode != null) { type = Event.current.rawType; } switch (type) { case EventType.MouseUp: if (Event.current.button == 0 && CurrentMouseMode != null) { CurrentMouseMode.End(Event.current.mousePosition); CurrentMouseMode = null; Event.current.Use(); return(true); } break; case EventType.MouseDown: if (HandleMouseDown()) { return(true); } break; } return(false); }
public void ClearNodes() { CtrlPressed = false; CurrentMouseMode?.End(Event.current?.mousePosition ?? Vector2.zero); CurrentMouseMode = null; OnDeleteNode.Clear(); OnSelectNode.Clear(); OnDeleteNode.Clear(); SelectedNodes.Clear(); AllNodes.Clear(); }
void DrawWindows(EditorWindow editor) { foreach (var node in AllNodes.OrderBy(n => n.Position.y)) { node.DrawGUI(); } if (NextMouseMode != null) { CurrentMouseMode?.End(Event.current.mousePosition); CurrentMouseMode = NextMouseMode; NextMouseMode = null; CurrentMouseMode?.Start(Event.current.mousePosition); } if (CurrentMouseMode == null) { NextMouseMode = new NormalMode(this); } if (CurrentMouseMode != null) { CurrentMouseMode.Update(Event.current.mousePosition); } // Rect test = new Rect(DrawRect); // test.center += PannedOffset; // GUI.color = Color.red; // GUI.Box(test, GUIContent.none); // GUI.color = Color.blue; // Rect koza = new Rect(PhysicalRect); // GUI.Box(koza, GUIContent.none); // GUI.color = Color.white; //if (Event.current.type == EventType.MouseMove //|| (Event.current.type == EventType.Ignore && Event.current.rawType == EventType.MouseMove)) { //if (DrawRect.Contains(Event.current.mousePosition)) // DrawPos(Event.current.mousePosition); // // WantsRepaint = true; } }
public void ClearNodes() { CtrlPressed = false; CurrentMouseMode?.End(Event.current?.mousePosition ?? Vector2.zero); CurrentMouseMode = null; OnDeleteNode.Clear(); OnSelectNode.Clear(); OnDeleteNode.Clear(); SelectedNodes.Clear(); foreach (var node in AllNodes) { node.OnDestroy(); } AllNodes.Clear(); }