Example #1
0
        private void HandleEvent(Event e)
        {
            Rect rect       = new Rect(scrollPos.x, scrollPos.y, m_sPosition.width, m_sPosition.height);
            bool isInWindow = rect.Contains(e.mousePosition);

            //左键按下
            if (e.button == 0)
            {
                switch (e.type)
                {
                case EventType.MouseDown:
                    if (isInWindow)
                    {
                        NENode selectNode = GetNodeByPosition(e.mousePosition);
                        if (selectNode != m_cSelectedNode)
                        {
                            SelectNode(selectNode);
                            GUI.changed = true;
                        }
                        m_cDragNode = selectNode;
                        e.Use();
                    }
                    break;

                case EventType.MouseUp:
                    m_cDragNode = null;
                    break;

                case EventType.MouseDrag:
                    if (isInWindow && null != m_cDragNode)
                    {
                        //m_cDragNode.MovePosition(e.delta);
                        m_cDragNode.SetPosition(e.mousePosition);
                        e.Use();
                        GUI.changed = true;
                    }
                    break;
                }
            }
            //右键按下
            else if (e.button == 1)
            {
                if (m_cInNodePoint != null || m_cOutNodePoint != null)
                {
                    ClearNodePoints();
                    GUI.changed = true;
                    e.Use();
                }
                else if (isInWindow)
                {
                    NENode selectNode = GetNodeByPosition(e.mousePosition);
                    if (selectNode != null)
                    {
                        HandleNodeMenu(selectNode, e.mousePosition);
                        e.Use();
                    }
                    else
                    {
                        HandleBlankMenu(e.mousePosition);
                        e.Use();
                    }
                }
            }
        }