示例#1
0
        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);
        }
示例#2
0
        public void ClearNodes()
        {
            CtrlPressed = false;

            CurrentMouseMode?.End(Event.current?.mousePosition ?? Vector2.zero);
            CurrentMouseMode = null;

            OnDeleteNode.Clear();
            OnSelectNode.Clear();
            OnDeleteNode.Clear();

            SelectedNodes.Clear();
            AllNodes.Clear();
        }
示例#3
0
        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;
            }
        }
示例#4
0
        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();
        }