コード例 #1
0
ファイル: mytreeview.cpp プロジェクト: geolffrey/WtDesigner
void MyTreeView::keyPressEvent(QKeyEvent *event)
{
    if(event->key() == Qt::Key_Backspace)
    {
        Q_EMIT backspacePressed();
    }
}
コード例 #2
0
// ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ----
// keyboard handling
// ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- 
void FileListView::keyPressEvent( QKeyEvent* keyEvent )
{
    // implementing our needs
    Qt::KeyboardModifiers   keyboardModifier    = keyEvent->modifiers();
    Qt::Key                 pressedKey          = static_cast<Qt::Key>( keyEvent->key() );

    if( Qt::NoModifier == keyboardModifier )
    {
        switch( pressedKey )
        {
            case Qt::Key_Escape:    emit escPressed();      break;

            case Qt::Key_Period:    emit consolePressed();  break;

            case Qt::Key_F1 :       emit f01keyPressed();   break;
            case Qt::Key_F2 :       emit f02keyPressed();   break;
            case Qt::Key_F3 :       emit f03keyPressed();   break;
            case Qt::Key_F4 :       emit f04keyPressed();   break;
            case Qt::Key_F5 :       emit f05keyPressed();   break;
            case Qt::Key_F6 :       emit f06keyPressed();   break;
            case Qt::Key_F7 :       emit f07keyPressed();   break;
            case Qt::Key_F8 :       emit f08keyPressed();   break;
            case Qt::Key_F9 :       emit f09keyPressed();   break;
            case Qt::Key_F10:       emit f10keyPressed();   break;
            case Qt::Key_F11:       emit f11keyPressed();   break;
            case Qt::Key_F12:       emit f12keyPressed();   break;

            case Qt::Key_Print:     emit printPressed();    break;
            case Qt::Key_Pause:     emit pausePressed();    break;

            case Qt::Key_Tab:       emit tabPressed();      break;
            case Qt::Key_CapsLock:  emit capsLockPressed(); break;
            case Qt::Key_Shift:     emit leftShiftPressed();break;
            case Qt::Key_Control:   emit leftCtrlPressed(); break;

            case Qt::Key_Insert:    emit insertPressed();   break;
            case Qt::Key_Delete:    emit deletePressed();   break;
            case Qt::Key_Home:      emit homePressed();     break;
            case Qt::Key_End:       emit endPressed();      break;
            case Qt::Key_PageUp:    emit pageUpPressed();   break;
            case Qt::Key_PageDown:  emit pageDownPressed(); break;

            case Qt::Key_Backspace: emit backspacePressed();break;
            case Qt::Key_Return:    emit enterPressed();    break;
            case Qt::Key_Space:     emit spacePressed();    break;

            default:                keyEvent->ignore();     break;
        }
    }

    else if( Qt::AltModifier == keyboardModifier )
    {
        switch( pressedKey )
        {
            case Qt::Key_0: emit alt0Pressed(); break;
            case Qt::Key_1: emit alt1Pressed(); break;
            case Qt::Key_2: emit alt2Pressed(); break;
            case Qt::Key_3: emit alt3Pressed(); break;
            case Qt::Key_4: emit alt4Pressed(); break;
            case Qt::Key_5: emit alt5Pressed(); break;
            case Qt::Key_6: emit alt6Pressed(); break;
            case Qt::Key_7: emit alt7Pressed(); break;
            case Qt::Key_8: emit alt8Pressed(); break;
            case Qt::Key_9: emit alt9Pressed(); break;
            default:        keyEvent->ignore(); break;
        }
    }

    else if( Qt::ControlModifier == keyboardModifier )
    {
        switch( pressedKey )
        {
            case Qt::Key_0: emit ctrl0Pressed(); break;
            case Qt::Key_1: emit ctrl1Pressed(); break;
            case Qt::Key_2: emit ctrl2Pressed(); break;
            case Qt::Key_3: emit ctrl3Pressed(); break;
            case Qt::Key_4: emit ctrl4Pressed(); break;
            case Qt::Key_5: emit ctrl5Pressed(); break;
            case Qt::Key_6: emit ctrl6Pressed(); break;
            case Qt::Key_7: emit ctrl7Pressed(); break;
            case Qt::Key_8: emit ctrl8Pressed(); break;
            case Qt::Key_9: emit ctrl9Pressed(); break;
            default:        keyEvent->ignore();  break;
        }
    }

    else if( Qt::ShiftModifier == keyboardModifier )
    {
        switch( pressedKey )
        {
            case Qt::Key_0: emit shift0Pressed(); break;
            case Qt::Key_1: emit shift1Pressed(); break;
            case Qt::Key_2: emit shift2Pressed(); break;
            case Qt::Key_3: emit shift3Pressed(); break;
            case Qt::Key_4: emit shift4Pressed(); break;
            case Qt::Key_5: emit shift5Pressed(); break;
            case Qt::Key_6: emit shift6Pressed(); break;
            case Qt::Key_7: emit shift7Pressed(); break;
            case Qt::Key_8: emit shift8Pressed(); break;
            case Qt::Key_9: emit shift9Pressed(); break;
            default:        keyEvent->ignore();   break;
        }
    }

    else if( Qt::KeypadModifier == keyboardModifier )
    {
        switch( pressedKey )
        {
            case Qt::Key_Minus:     emit numpadMinusPressed();      break;
            case Qt::Key_Plus:      emit numpadPlusPressed();       break;
            case Qt::Key_Slash:     emit numpadSlashPressed();      break;
            case Qt::Key_Asterisk:  emit numpadAsteriskPressed();   break;
            default:                keyEvent->ignore();             break;
        }
    }

    // allowing the default behaviour
    QListView::keyPressEvent( keyEvent );
}
コード例 #3
0
void editLevelStateClass::update(sf::RenderWindow& window)
{
    sf::Event event;

    while(window.pollEvent(event))
    {
        if(event.type == sf::Event::Closed)
        {
            window.close();
        }
        else if(event.type == sf::Event::KeyPressed)
        {
            switch(event.key.code)
            {
                case sf::Keyboard::Escape:
                {
                    setNoMode();
                    break;
                }
                case sf::Keyboard::A:
                {
                    drawAllFloor = !drawAllFloor;
                    break;
                }
                case sf::Keyboard::F:
                {
                    setAddFloorMode();
                    break;
                }
                case sf::Keyboard::W:
                {
                    setAddWallMode("WALL");
                    break;
                }
                case sf::Keyboard::X:
                {
                    setAddWallMode("STICKMAN_WALL");
                    break;
                }
                case sf::Keyboard::P:
                {
                    currentMode = PLACE_PLAYER;
                    break;
                }
                case sf::Keyboard::Return:
                {
                    returnPressed();
                    break;
                }
                case sf::Keyboard::BackSpace:
                {
                    backspacePressed();
                    break;
                }
                case sf::Keyboard::Delete:
                {
                    deletePressed();
                    break;
                }
                case sf::Keyboard::LShift:
                {
                    speedFactor = 5;
                    break;
                }
                case sf::Keyboard::O:
                {
                    saveLevel();
                    break;
                }
                case sf::Keyboard::I:
                {
                    loadLevel();
                    break;
                }
                case sf::Keyboard::H:
                {
                    moveAllLevel(-1, 0);
                    break;
                }
                case sf::Keyboard::J:
                {
                    moveAllLevel(0, 1);
                    break;
                }
                case sf::Keyboard::K:
                {
                    moveAllLevel(0, -1);
                    break;
                }
                case sf::Keyboard::L:
                {
                    moveAllLevel(1, 0);
                    break;
                }
                case sf::Keyboard::F10:
                {
                    global::activeGameStateStack->set(new mainMenuStateClass());
                    return;
                }
                case sf::Keyboard::Add:
                {
                    if(static_cast<unsigned int>(currentFloor - 1) < listOfFloor.size())
                    {
                        ++currentFloor;
                    }
                    break;
                }
                case sf::Keyboard::Subtract:
                {
                    if(currentFloor > 0)
                    {
                        --currentFloor;
                    }
                    break;
                }
                case sf::Keyboard::B:
                {
                    if(chooseNameOfLevel == false)
                    {
                        chooseNameOfLevel = true;
                        tmpIndexOfLevel = currentIndexOfLevel;
                    }
                    else
                    {
                        --tmpIndexOfLevel;
                        if(tmpIndexOfLevel < 0)
                        {
                            tmpIndexOfLevel = listOfLevel.size() - 1;
                        }
                    }
                    nameOfLevelTextHasChanged();
                    break;
                }
                case sf::Keyboard::N:
                {
                    if(chooseNameOfLevel == false)
                    {
                        chooseNameOfLevel = true;
                        tmpIndexOfLevel = currentIndexOfLevel;
                    }
                    else
                    {
                        ++tmpIndexOfLevel;
                        if(static_cast<unsigned int>(tmpIndexOfLevel) >= listOfLevel.size())
                        {
                            tmpIndexOfLevel = 0;
                        }
                    }
                    nameOfLevelTextHasChanged();
                    break;
                }
                case sf::Keyboard::M:
                {
                    if(chooseNameOfLevel == true)
                    {
                        chooseNameOfLevel = false;
                        currentIndexOfLevel = tmpIndexOfLevel;
                        loadThisLevel(listOfLevel[currentIndexOfLevel]);
                    }
                    break;
                }
                default:
                {
                    break;
                }
            }
        }
        else if(event.type == sf::Event::KeyReleased)
        {
            if(event.key.code == sf::Keyboard::LShift)
            {
                speedFactor = 1;
            }
        }
        else if(event.type == sf::Event::MouseButtonPressed)
        {
            if(event.mouseButton.button == sf::Mouse::Left)
            {
                leftClick(view.getCenter().x - ((WIDTH_SCREEN / 2) * zoomLevel) + event.mouseButton.x * zoomLevel,
                          view.getCenter().y - ((HEIGHT_SCREEN / 2) * zoomLevel) + event.mouseButton.y * zoomLevel);
            }
            else if(event.mouseButton.button == sf::Mouse::Right)
            {
                rightClick(view.getCenter().x - ((WIDTH_SCREEN / 2) * zoomLevel) + event.mouseButton.x * zoomLevel,
                          view.getCenter().y - ((HEIGHT_SCREEN / 2) * zoomLevel) + event.mouseButton.y * zoomLevel);
            }
        }
        else if(event.type == sf::Event::MouseWheelMoved)
        {
            zoomView(event.mouseWheel.delta);
        }

        if(event.type == sf::Event::TextEntered)
        {
            char character = static_cast<char>(event.text.unicode);

            if(character >= 48 && character <= 57 && currentMode == NO_MODE)
            {
                if(character - 48 < static_cast<char>(listOfFloor.size()))
                {
                    currentFloor = character - 48;
                }
            }
        }
    }

    if(sf::Keyboard::isKeyPressed(sf::Keyboard::Q))
    {
        moveView(-speedView * zoomLevel - 1, 0);
    }
    if(sf::Keyboard::isKeyPressed(sf::Keyboard::D))
    {
        moveView(speedView * zoomLevel + 1, 0);
    }
    if(sf::Keyboard::isKeyPressed(sf::Keyboard::Z))
    {
        moveView(0, -speedView * zoomLevel - 1);
    }
    if(sf::Keyboard::isKeyPressed(sf::Keyboard::S))
    {
        moveView(0, speedView * zoomLevel + 1);
    }

    if(chooseNameOfLevel == true)
    {
        updateNameOfLevelText();
    }
}