Beispiel #1
0
    private void ProcessEvents(Event e)
    {
        drag = Vector2.zero;

        switch (e.type)
        {
        // check for selection or context menu
        case EventType.MouseDown:
            if (e.button == 0 && ClickManager.IsDoubleClick((float)EditorApplication.timeSinceStartup, e.mousePosition, SDEComponentType.Nothing))
            {
                Vector2 creationOffset = CreationOffset(e.mousePosition);
                NodeManager.AddNodeAt(e.mousePosition - creationOffset, NodeType.Nothing);
            }

            if (e.button == 1 && SelectionManager.SelectedComponentType() == SDEComponentType.Nothing)
            {
                ProcessContextMenu(e.mousePosition);
            }
            break;

        // check for window dragging
        case EventType.MouseDrag:
            if (e.button == 0)
            {
                OnDrag(e.delta);
            }
            break;

        // listen for key commands
        case EventType.KeyDown:
            // NOTE: Unity editor is broken, so both a tab KeyCode AND a '\t' character
            // gets parsed on key press. The '\t' character is what the editor uses
            // internally for it's default tab cycling (which we want to override).
            if (e.character == '\t')
            {
                e.Use();
            }                                               //eat the input
            if (SelectionManager.SelectedComponentType() != SDEComponentType.TextArea)
            {
                if (ProcessKeyboardInput(e.keyCode))
                {
                    e.Use();
                }
            }
            break;
        }
    }