Esempio n. 1
0
        private void MainWindow_KeyDown(object sender, KeyEventArgs e)
        {
            void Handled()
            {
                e.Handled          = true;
                e.SuppressKeyPress = true;
                Invalidate();
            }

            void SetCol(int i)
            {
                SpriteEditor.SetPixelAtCursor(i);
                ColorPicker.SelectedColor = i;
                e.Handled          = true;
                e.SuppressKeyPress = true;
                Invalidate();
            }

            switch (e.KeyCode)
            {
            case Keys.Up:
                SpriteEditor.MoveCursor(0, -1);
                Handled();
                break;

            case Keys.Down:
                SpriteEditor.MoveCursor(0, 1);
                Handled();
                break;

            case Keys.Left:
                SpriteEditor.MoveCursor(CurrentSprite.Multicolor ? -2 : -1, 0);
                Handled();
                break;

            case Keys.Right:
                SpriteEditor.MoveCursor(CurrentSprite.Multicolor ? 2 : 1, 0);
                Handled();
                break;

            case Keys.Enter:
                SpriteEditor.MoveCursor(0, 1);
                SpriteEditor.SetCursorX(0);
                Handled();
                break;

            case Keys.Home:
                SpriteEditor.SetCursorX(0);
                Handled();
                break;

            case Keys.End:
                SpriteEditor.SetCursorX(CurrentSprite.Multicolor ? 22 : 23);
                Handled();
                break;

            case Keys.PageUp:
                SpriteEditor.SetCursorY(0);
                Handled();
                break;

            case Keys.PageDown:
                SpriteEditor.SetCursorY(20);
                Handled();
                break;

            case Keys.D1:
                switch (Configuration.InputMethod)
                {
                case InputMethod.KeyboardInputMethod:
                    PushUndoState();
                    SetCol(0);
                    break;

                case InputMethod.MouseInputMethod:
                    ColorPicker.SelectedColor = 0;
                    Invalidate();
                    break;
                }
                break;

            case Keys.D2:
                switch (Configuration.InputMethod)
                {
                case InputMethod.KeyboardInputMethod:
                    PushUndoState();
                    SetCol(1);
                    break;

                case InputMethod.MouseInputMethod:
                    ColorPicker.SelectedColor = 1;
                    Invalidate();
                    break;
                }
                break;

            case Keys.D3:
                if (!CurrentSprite.Multicolor)
                {
                    return;
                }
                switch (Configuration.InputMethod)
                {
                case InputMethod.KeyboardInputMethod:
                    PushUndoState();
                    SetCol(2);
                    break;

                case InputMethod.MouseInputMethod:
                    ColorPicker.SelectedColor = 2;
                    Invalidate();
                    break;
                }
                break;

            case Keys.D4:
                if (!CurrentSprite.Multicolor)
                {
                    return;
                }
                switch (Configuration.InputMethod)
                {
                case InputMethod.KeyboardInputMethod:
                    PushUndoState();
                    SetCol(3);
                    break;

                case InputMethod.MouseInputMethod:
                    ColorPicker.SelectedColor = 3;
                    Invalidate();
                    break;
                }
                break;
            }
        }