Beispiel #1
0
bool KeyFilter::eventFilter(QObject *obj, QEvent *event) {
    if (event->type() == QEvent::KeyPress) {
        QKeyEvent *keyEvent = static_cast<QKeyEvent *>(event);
        if (keyEvent->key() == Qt::Key_Delete) {
            emit keyDelete();
        }
        if (keyEvent->key() == Qt::Key_Return) {
            emit keyEnter();
        }
        if (keyEvent->key() == Qt::Key_Enter) {
            emit keyEnter();
        }
        if (keyEvent->key() == Qt::Key_Insert) {
            emit keyInsert();
        }
        //return true;
        // standard event processing
        return QObject::eventFilter(obj, event);
    } else {
        // standard event processing
        return QObject::eventFilter(obj, event);
    }
}
Beispiel #2
0
void ArrowLineEdit::keyPressEvent( QKeyEvent * e )
{
    switch(e->key()){
    case Key_Up:
	keyUp(e);
	return;
    case Key_Down:
	keyDown(e);
	return;
    case Key_Enter:
    case Key_Return:
	keyEnter(e);
	return;
    default:
	QLineEdit::keyPressEvent(e);
    }
}
int main(int argc, char *argv[])
{
#ifdef DEBUG
    // Debugger
    QCoreApplication a(argc, argv);
#endif

    // Init
    initAll();

    // Shake Random
    srand(time(0));

#ifdef WINDOWS
    // Change lang
    PostMessage(GetForegroundWindow(), WM_INPUTLANGCHANGEREQUEST, 2, 0);
#endif

    // Set time of out screensaver
    timerScreensaver = timer(5000);

    // Off deleting saves mode
    deleteSave = false;

    // Clear selectedGMap
    selectedSaveSlot = -1;

    // Read save
    loadSaves();

    // Set Scene
    setScene(scene["screensaver"]);

    // Start Game

    cpu = clock();
    do
    {
        // Enum CPU
        cpu = clock() - cpu;

        if(selectedScene == scene["screensaver"])
        {
            if(clock() > timerScreensaver)
            {
                setScene(scene["main"]);
            }
        }

        // Set old Width / Height
        scrOldWidth = screenWidth();
        scrOldHeight = screenHeight();

        // Draw
        update();

        // Set CPU
        cpu = clock();

        // Get char
        keyStroke = getch();
        keyChar = char(keyStroke);

        // Keys Commands
        if(selectedScene != scene["savesNew"])
        {
            keysCommand(keyStroke);
        }
        else
        {
            if(keyStroke != -1)
            {
                if(keyBackspace(keyStroke))
                {
                    if(!selectedScene->label[1]->getText().empty())
                    {
                        // Backspace
                        string newText = selectedScene->label[1]->getText();
                        newText.pop_back();

                        selectedScene->label[1]->setText(newText);
                    }
                }
                else if(keyEnter(keyStroke))
                {
                    // Create save
                    saveSlot[selectedSaveSlot] = new SaveSlot(new GMapWorld(biome["forest"]), selectedScene->label[1]->getText());
                    saveSlot[selectedSaveSlot]->gMap.emptyGMapHome = new GMapHome(biome["home"]);

                    // To game

                    setScene(scene["game"]);
                }
                else
                {
                    // Valid keyChar?
                    if(selectedScene->label[1]->font->image.find(keyChar) !=
                       selectedScene->label[1]->font->image.end())
                    {
                        // Add keyChar
                        string newText = selectedScene->label[1]->getText();
                        newText.push_back(keyChar);

                        selectedScene->label[1]->setText(newText);
                    }
                }
            }
        }
    }
    while(true);

    endwin();

    // Delete all

    // GMaps
    SAVE_DEL_MAS(saveSlot);

    // Messages
    SAVE_DEL_MAS(message);

    return 0;
}
void keysCommand(int keyStroke_)
{
    // --------------------------- Keys Command ---------------------------

    // Game
    if(selectedScene == scene["game"])
    {
        // Up
        if(keyEng('w', keyStroke_))
        {
           if(!saveSlot[selectedSaveSlot]->gMap.movePlayerUp().first)
           {
               message.push_back(new PushMessage("You don't move up"));
           }
        }

        // Down
        else if(keyEng('s', keyStroke_))
        {
            if(!saveSlot[selectedSaveSlot]->gMap.movePlayerDown().first)
            {
                message.push_back(new PushMessage("You don't move down"));
            }
        }

        // Left
        else if(keyEng('a', keyStroke_))
        {
            if(!saveSlot[selectedSaveSlot]->gMap.movePlayerLeft().first)
            {
                message.push_back(new PushMessage("You don't move left"));
            }
        }

        // Right
        else if(keyEng('d', keyStroke_))
        {
            if(!saveSlot[selectedSaveSlot]->gMap.movePlayerRight().first)
            {
                message.push_back(new PushMessage("You don't move right"));
            }
        }

        // Pause
        else if(keyEsc(keyStroke_))
        {
            setScene(scene["gamePause"]);
        }
    }

    // Main
    else if(selectedScene == scene["main"])
    {
        // Escape
        if(keyEsc(keyStroke_))
        {
            setScene(scene["mainExit"]);
        }
    }

    // Main
    else if(selectedScene == scene["gamePause"])
    {
        // Escape
        if(keyEsc(keyStroke_))
        {
            setScene(scene["game"]);
        }
    }

    // Main
    else if(selectedScene == scene["gameExit"])
    {
        // Escape
        if(keyEsc(keyStroke_))
        {
            setScene(scene["pause"]);
        }
    }

    // Saves
    else if(selectedScene == scene["saves"])
    {
        // Escape
        if(keyEsc(keyStroke_))
        {
            setScene(scene["main"]);
        }
    }

    // Saves
    else if(selectedScene == scene["exit"])
    {
        // Escape
        if(keyEsc(keyStroke_))
        {
            setScene(scene["main"]);
        }
    }

    // Buttons
    if(!selectedScene->button.empty())
    {
        // Select left button
        if(keyEng('a', keyStroke_))
        {
            if(selectedButton > 0)
            {
                selectedButton--;
            }
        }

        // Select right button
        else if(keyEng('d',  keyStroke_))
        {
            if(selectedButton < selectedScene->button.size()-1)
            {
                selectedButton++;
            }
        }

        // Click select button
        else if(keyEnter(keyStroke_))
        {
            buttonClick();
        }
    }
}
void CalculatorTestApp::handleKey(widgetid_t keyPressed) {

//  keyMap origKeyMap = (keyMap)buttons->getMap();

  switch (keyPressed) {
    case zero:
    case one:
    case two:
    case three:
    case four:
    case five:
    case six:
    case seven:
    case eight:
    case nine:
    case hex_a:
    case hex_b:
    case hex_c:
    case hex_d:
    case hex_e:
    case hex_f:
      keyDigit(keyPressed);
      break;
    case decimal:
      keyDecimal();
      break;
    case enter:
      keyEnter();
      break;
    case clear:
      keyClear();
      break;
    case backspace:
      keyBackspace();
      break;
    case shift:
      keyShift();
      break;
    case ee:
      keyEE();
      break;
    default:
      // the following are functions that accept the current input string
      acceptText();
      switch (keyPressed) {
      case divide:
        keyDivide();
        break;
      case multiply:
        keyMultiply();
        break;
      case add:
        keyAdd();
        break;
      case subtract:
        keySubtract();
        break;
      case inverse:
        keyInverse();
        break;
      case percent:
        keyPercent();
        break;
      case swap:
        keySwap();
        break;
      case changeBase:
        keyBase();
        break;
      case send:
        keySend();
        break;
      case square_f:
        keySquare();
        break;
      case cube_f:
        keyCube();
        break;
      case pow_f:
        keyPow();
        break;
      case exp_f:
        keyExp();
        break;
      case pow10_f:
        keyPow10();
        break;
      case sqrt_f:
        keySqrt();
        break;
      case cubert_f:
        keyCubert();
        break;
      case xroot_f:
        keyXroot();
        break;
      case ln_f:
        keyLn();
        break;
      case log10_f:
        keyLog10();
        break;
      case sin_f:
        keySin();
        break;
      case cos_f:
        keyCos();
        break;
      case tan_f:
        keyTan();
        break;
      case pi_f:
        keyPi();
        break;
      case e_f:
        keyE();
        break;
      case asin_f:
        keyAsin();
        break;
      case acos_f:
        keyAcos();
        break;
      case atan_f:
        keyAtan();
        break;
      case logy_f:
        keyLogy();
        break;
      case log2_f:
        keyLog2();
        break;
      case in2mm_f:
        keyIn2mm();
        break;
      case mm2in_f:
        keyMm2In();
        break;
      case g2lb_f:
        keyG2lb();
        break;
      case lb2g_f:
        keyLb2g();
        break;
      case c2f_f:
        keyC2f();
        break;
      case f2c_f:
        keyF2c();
        break;
      case ppi_f:
        keyPpi();
        break;
      default:
        break;
    }
  }

//  if (origKeyMap == sci_map && buttons->getMap() == sci_map) {
//    buttons->setMap(basic_map);
//  }

  drawDisplay();
}