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); } }
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(); }