int connectDialog::readCfg() { QFile config(":/cfg/cfg/db_config.cfg"); if(!config.open(QIODevice::ReadOnly | QIODevice::Text)) { qDebug()<<"open config file faild!!!"; } QTextStream textInput(&config); QString lineStr; while (!textInput.atEnd()) { lineStr = textInput.readLine(); if(lineStr.startsWith("[DBInfo]")) { if(!serverList.contains(lineStr.section(" ",1,1))) serverList.append(lineStr.section(" ",1,1)); if(!portList.contains(lineStr.section(" ",2,2))) portList.append(lineStr.section(" ",2,2)); if(!dbNameList.contains(lineStr.section(" ",3,3))) dbNameList.append(lineStr.section(" ",3,3)); if(!usrNameList.contains(lineStr.section(" ",4,4))) usrNameList.append(lineStr.section(" ",4,4)); } qDebug()<<"serverList: "<<serverList; } // serverEdit->setText(serverList.value(0)); // portEdit->setText(portList.value(0)); // dbNameEdit->setText(dbNameList.value(0)); // usrEdit->setText(usrNameList.value(0)); config.close(); return 0; }
int connectDialog::writeCfg() { QFile config(":/cfg/cfg/db_config.cfg"); QString newConnecter; newConnecter += "[DBInfo] "; newConnecter += serverEdit->text().append(" "); newConnecter += portEdit->text().append(" "); newConnecter += dbNameEdit->text().append(" "); newConnecter += usrEdit->text(); if(!config.open(QIODevice::ReadWrite | QIODevice::Text)) { qDebug()<<"open config file faild!!!"; } qDebug()<<"open file successed!!!"; QTextStream textInput(&config); QString lineStr; while (!textInput.atEnd()) { lineStr = textInput.readLine(); if(lineStr.contains(newConnecter)) { qDebug()<<"contains"; return 0; } } qDebug()<<"not Contains"; qDebug()<<newConnecter; textInput<<newConnecter<<endl; // config.close(); return 0; }
bool TextEditComponent::input(InputConfig* config, Input input) { if(input.value == 0) { if(config->isMappedTo("left", input) || config->isMappedTo("right", input)) mCursorRepeatDir = 0; return false; } if(config->isMappedTo("b", input) && mFocused && !mEditing) { startEditing(); return true; } if(mEditing) { if(config->getDeviceId() == DEVICE_KEYBOARD && input.id == SDLK_RETURN) { if(isMultiline()) { textInput("\n"); }else{ stopEditing(); } return true; } if((config->getDeviceId() == DEVICE_KEYBOARD && input.id == SDLK_ESCAPE) || (config->getDeviceId() != DEVICE_KEYBOARD && config->isMappedTo("a", input))) { stopEditing(); return true; } if(config->isMappedTo("up", input)) { // TODO }else if(config->isMappedTo("down", input)) { // TODO }else if(config->isMappedTo("left", input) || config->isMappedTo("right", input)) { mCursorRepeatDir = config->isMappedTo("left", input) ? -1 : 1; mCursorRepeatTimer = -(CURSOR_REPEAT_START_DELAY - CURSOR_REPEAT_SPEED); moveCursor(mCursorRepeatDir); } //consume all input when editing text return true; } return false; }
void Cursynth::start(unsigned sample_rate, unsigned buffer_size) { // Setup all callbacks. setupAudio(sample_rate, buffer_size); setupMidi(); setupGui(); loadConfiguration(); // Wait for computer keyboard input. while(textInput(getch())) ; stop(); }
void Cursynth::start() { // Setup all callbacks. setupAudio(); setupMidi(); setupGui(); loadConfiguration(); // Wait for computer keyboard input. while(textInput(getch())) ; stop(); }
bool BrainGameOver::handleEvent(SDL_Event& event) { switch(event.type) { case SDL_KEYDOWN: if( event.key.keysym.sym == SDLK_ESCAPE ) { changeState(BrainMenu::instance()); return true; } else if( !m_text_queue.empty() ) { textInput(event.key.keysym.sym); return true; } break; } return false; }
void Gosu::Input::update() { for (unsigned int i = 0; i < pimpl->eventList.size(); i++) { ::XEvent event = pimpl->eventList[i]; if (textInput() && textInput()->feedXEvent(pimpl->display, &event)) continue; if (event.type == KeyPress) { // char buf[8]; // unsigned chars = XLookupString(&event.xkey, buf, sizeof buf, 0, 0); // unsigned keysym = XKeycodeToKeysym(pimpl->display, event.xkey.keycode, 0); // unsigned id = (chars == 0) ? keysym : widen(buf).at(0); unsigned id = XKeycodeToKeysym(pimpl->display, event.xkey.keycode, 0); pimpl->keyMap[id] = true; if (onButtonDown) onButtonDown(Button(id)); } else if (event.type == KeyRelease) { // char buf[8]; // unsigned chars = XLookupString(&event.xkey, buf, sizeof buf, 0, 0); // unsigned keysym = XKeycodeToKeysym(pimpl->display, event.xkey.keycode, 0); // unsigned id = (chars == 0) ? keysym : widen(buf).at(0); if (i < pimpl->eventList.size() - 1) { ::XEvent nextEvent = pimpl->eventList[i + 1]; if (nextEvent.type == KeyPress && nextEvent.xkey.keycode == event.xkey.keycode) { i += 1; continue; } } unsigned id = XKeycodeToKeysym(pimpl->display, event.xkey.keycode, 0); pimpl->keyMap[id] = false; if (onButtonUp) onButtonUp(Button(id)); } else if (event.type == ButtonPress) { unsigned id; switch (event.xbutton.button) { case Button1: id = msLeft; break; case Button2: id = msMiddle; break; case Button3: id = msRight; break; case Button4: id = msWheelUp; break; case Button5: id = msWheelDown; break; default: continue; } pimpl->keyMap[id] = true; // TODO: Here, above, below, who came up with that cast? Uh :) if (onButtonDown) onButtonDown(Button(id)); if (onButtonUp and id == msWheelUp or id == msWheelDown) onButtonUp(Button(id)); } else if (event.type == ButtonRelease) { unsigned id; switch (event.xbutton.button) { case Button1: id = msLeft; break; case Button2: id = msMiddle; break; case Button3: id = msRight; break; default: continue; } pimpl->keyMap[id] = false; if (onButtonUp) onButtonUp(*reinterpret_cast<Button*>(&id)); } else if (event.type == MotionNotify) { pimpl->mouseX = event.xbutton.x; pimpl->mouseY = event.xbutton.y; } else if (event.type == EnterNotify || event.type == LeaveNotify) { pimpl->mouseX = event.xcrossing.x; pimpl->mouseY = event.xcrossing.y; } } pimpl->eventList.clear(); }
void Gosu::Input::update() { for (unsigned int i = 0; i < pimpl->eventList.size(); i++) { ::XEvent event = pimpl->eventList[i]; if (textInput() && textInput()->feedXEvent(pimpl->display, &event)) continue; if (event.type == KeyPress) { unsigned id = event.xkey.keycode - 8; pimpl->keyMap[id] = true; if (onButtonDown) onButtonDown(Button(id)); } else if (event.type == KeyRelease) { if (i < pimpl->eventList.size() - 1) { ::XEvent nextEvent = pimpl->eventList[i + 1]; if (nextEvent.type == KeyPress && nextEvent.xkey.keycode == event.xkey.keycode) { i += 1; continue; } } unsigned id = event.xkey.keycode - 8; pimpl->keyMap[id] = false; if (onButtonUp) onButtonUp(Button(id)); } else if (event.type == ButtonPress) { unsigned id; switch (event.xbutton.button) { case Button1: id = msLeft; break; case Button2: id = msMiddle; break; case Button3: id = msRight; break; case Button4: id = msWheelUp; break; case Button5: id = msWheelDown; break; case 6: id = msOther0; break; case 7: id = msOther1; break; case 8: id = msOther2; break; case 9: id = msOther3; break; case 10: id = msOther4; break; case 11: id = msOther5; break; case 12: id = msOther6; break; case 13: id = msOther7; break; default: continue; } pimpl->keyMap[id] = true; if (onButtonDown) onButtonDown(Button(id)); } else if (event.type == ButtonRelease) { unsigned id; switch (event.xbutton.button) { case Button1: id = msLeft; break; case Button2: id = msMiddle; break; case Button3: id = msRight; break; case Button4: id = msWheelUp; break; case Button5: id = msWheelDown; break; case 6: id = msOther0; break; case 7: id = msOther1; break; case 8: id = msOther2; break; case 9: id = msOther3; break; case 10: id = msOther4; break; case 11: id = msOther5; break; case 12: id = msOther6; break; case 13: id = msOther7; break; default: continue; } pimpl->keyMap[id] = false; if (onButtonUp) onButtonUp(Button(id)); } else if (event.type == MotionNotify) { pimpl->mouseX = event.xbutton.x; pimpl->mouseY = event.xbutton.y; } else if (event.type == EnterNotify || event.type == LeaveNotify) { pimpl->mouseX = event.xcrossing.x; pimpl->mouseY = event.xcrossing.y; } } pimpl->eventList.clear(); }
const SUCCESS Events::handleEvent(const SDL_Event * const Event) { switch(Event->type) { //newline brackets implemented since this is a lot of nesting case SDL_WINDOWEVENT: ///Some sort of input or output gained or lost { const Uint8 &winID = Event->window.windowID; switch(Event->window.event) { case SDL_WINDOWEVENT_ENTER: ///Mouse message handling gained or lost return mouseEnter(winID); case SDL_WINDOWEVENT_LEAVE: ///General input message handling gained or lost return mouseLeave(winID); case SDL_WINDOWEVENT_MINIMIZED: ///Output to the screen at all gained or lost return minimized(winID); case SDL_WINDOWEVENT_RESTORED: return restored(winID); case SDL_WINDOWEVENT_MAXIMIZED: return maximized(winID); case SDL_WINDOWEVENT_SHOWN: return shown(winID); case SDL_WINDOWEVENT_HIDDEN: return hidden(winID); case SDL_WINDOWEVENT_EXPOSED: return exposed(winID); case SDL_WINDOWEVENT_FOCUS_GAINED: return keyboardFocusGain(winID); case SDL_WINDOWEVENT_FOCUS_LOST: return keyboardFocusLost(winID); case SDL_WINDOWEVENT_SIZE_CHANGED: return changeSize(winID); case SDL_WINDOWEVENT_RESIZED: return resized(winID, Dimensions<int>(Event->window.data1, Event->window.data2)); case SDL_WINDOWEVENT_MOVED: return moved(winID, Point<int>(Event->window.data1, Event->window.data2)); case SDL_WINDOWEVENT_CLOSE: return windowExited(winID); default: ///For some reason there is an unknown window event return FAILED; } break; } case SDL_KEYDOWN: { if(Event->key.repeat) { return keyHeld(Event->key.windowID, Event->key.keysym); } else { return keyPressed(Event->key.windowID, Event->key.keysym); } break; } case SDL_KEYUP: return keyReleased(Event->key.windowID, Event->key.keysym); case SDL_TEXTINPUT: return textInput(Event->text.windowID, Event->text.text); case SDL_TEXTEDITING: return textEdit(Event->edit.windowID, Event->edit.text, Event->edit.start, Event->edit.length); case SDL_MOUSEMOTION: return mouseMove(Event->motion.windowID, Event->motion.which, Delta<Point<int> >(Point<int>(Event->motion.xrel, Event->motion.yrel), Point<int>(Event->motion.x, Event->motion.y)), bitset<N_MOUSE_BUTTONS>(Event->motion.state)); case SDL_MOUSEBUTTONDOWN: return mouseButtonPressed(Event->button.windowID, Event->button.which, Event->button.button, Event->button.clicks, Point<int>(Event->button.x, Event->button.y)); case SDL_MOUSEBUTTONUP: return mouseButtonReleased(Event->button.windowID, Event->button.which, Event->button.button, Event->button.clicks, Point<int>(Event->button.x, Event->button.y)); case SDL_MOUSEWHEEL: return mouseWheel(Event->wheel.windowID, Event->wheel.which, Point<int>(Event->wheel.x, Event->wheel.y)); case SDL_JOYAXISMOTION: return joyAxis(Event->jaxis.which, Event->jaxis.axis, Event->jaxis.value); case SDL_JOYBUTTONDOWN: return joyButtonPressed(Event->jbutton.which, Event->jbutton.button); case SDL_JOYBUTTONUP: return joyButtonReleased(Event->jbutton.which, Event->jbutton.button); case SDL_JOYHATMOTION: return joyHatChange(Event->jhat.which, Event->jhat.hat, Event->jhat.value); case SDL_JOYBALLMOTION: return joyBallMove(Event->jball.which, Event->jball.ball, Point<int>(Event->jball.xrel, Event->jball.yrel)); case SDL_DROPFILE: { const SUCCESS ret = droppedFile(Event->drop.file); SDL_free(Event->drop.file); return ret; } case SDL_SYSWMEVENT: return unhandledSystemEvent(Event->syswm.msg); case SDL_QUIT: return appExited(); case SDL_USEREVENT: default: { return userEvent(Event->user.windowID, Event->user.code, Event->user.data1, Event->user.data2); } } return FAILED; }
bool EventHandler::handleEvent(SDL_Event &event) { switch (event.type) { case SDL_TEXTINPUT: textInput(std::string(event.text.text)); break; case SDL_KEYUP: keyRelease((int32_t) event.key.keysym.sym); break; case SDL_KEYDOWN: // we are handling this on our own if (!event.key.repeat) keyPress((int32_t) event.key.keysym.sym, (int16_t) event.key.keysym.mod); break; case SDL_MOUSEMOTION: { if (event.motion.which == SDL_TOUCH_MOUSEID) break; SDL_Window *window = SDL_GetWindowFromID(event.motion.windowID); if (!(SDL_GetWindowFlags(window) & SDL_WINDOW_INPUT_FOCUS)) break; mouseMotion(event.motion.x, event.motion.y, event.motion.xrel, event.motion.yrel); break; } case SDL_MOUSEBUTTONDOWN: if (event.button.which == SDL_TOUCH_MOUSEID) break; mouseButtonPress(event.button.x, event.button.y, event.button.button); break; case SDL_MOUSEBUTTONUP: if (event.button.which == SDL_TOUCH_MOUSEID) break; mouseButtonRelease(event.button.x, event.button.y, event.button.button); break; case SDL_MOUSEWHEEL: if (event.wheel.which == SDL_TOUCH_MOUSEID) break; mouseWheel(event.wheel.x, event.wheel.y); break; case SDL_CONTROLLERAXISMOTION: { const uint8_t axis = event.caxis.axis; if (axis != SDL_CONTROLLER_AXIS_LEFTX && axis != SDL_CONTROLLER_AXIS_LEFTY && axis != SDL_CONTROLLER_AXIS_RIGHTX && axis != SDL_CONTROLLER_AXIS_RIGHTY) break; const bool horizontal = (axis == SDL_CONTROLLER_AXIS_LEFTX || axis == SDL_CONTROLLER_AXIS_RIGHTX); joystickMotion(horizontal, event.caxis.value); break; } case SDL_CONTROLLERBUTTONDOWN: controllerButtonPress(getControllerButtonName(event.cbutton.button)); break; case SDL_CONTROLLERBUTTONUP: controllerButtonRelease(getControllerButtonName(event.cbutton.button)); break; case SDL_CONTROLLERDEVICEADDED: joystickDeviceAdded(event.cdevice.which); break; case SDL_CONTROLLERDEVICEREMOVED: joystickDeviceRemoved(event.cdevice.which); break; case SDL_JOYDEVICEADDED: joystickDeviceAdded(event.jdevice.which); break; case SDL_JOYDEVICEREMOVED: joystickDeviceRemoved(event.jdevice.which); break; case SDL_DOLLARRECORD: gestureRecord(event.dgesture.gestureId); break; case SDL_DOLLARGESTURE: gesture(event.dgesture.gestureId, event.dgesture.error, event.dgesture.numFingers); break; case SDL_MULTIGESTURE: multiGesture(event.mgesture.dTheta, event.mgesture.dDist, event.mgesture.numFingers); break; case SDL_JOYHATMOTION: break; case SDL_JOYBUTTONDOWN: joystickButtonPress(event.jbutton.button); break; case SDL_JOYBUTTONUP: joystickButtonRelease(event.jbutton.button); break; case SDL_JOYAXISMOTION: joystickMotion(event.jaxis.axis == 0, event.jaxis.value); break; case SDL_FINGERDOWN: fingerPress(event.tfinger.fingerId, event.tfinger.x, event.tfinger.y); break; case SDL_FINGERUP: fingerRelease(event.tfinger.fingerId, event.tfinger.x, event.tfinger.y); break; case SDL_FINGERMOTION: fingerMotion(event.tfinger.fingerId, event.tfinger.x, event.tfinger.y, event.tfinger.dx, event.tfinger.dy); break; case SDL_WINDOWEVENT: switch (event.window.event) { case SDL_WINDOWEVENT_RESIZED: case SDL_WINDOWEVENT_SIZE_CHANGED: for (EventObservers::iterator i = _observers.begin(); i != _observers.end(); ++i) { (*i)->onWindowResize(); } break; case SDL_WINDOWEVENT_CLOSE: return false; } break; } return true; }
bool TextEditComponent::input(InputConfig* config, Input input) { bool const cursor_left = (config->getDeviceId() != DEVICE_KEYBOARD && config->isMappedLike("left", input)) || (config->getDeviceId() == DEVICE_KEYBOARD && input.id == SDLK_LEFT); bool const cursor_right = (config->getDeviceId() != DEVICE_KEYBOARD && config->isMappedLike("right", input)) || (config->getDeviceId() == DEVICE_KEYBOARD && input.id == SDLK_RIGHT); if(input.value == 0) { if(cursor_left || cursor_right) mCursorRepeatDir = 0; return false; } if((config->isMappedTo("a", input) || (config->getDeviceId() == DEVICE_KEYBOARD && input.id == SDLK_RETURN)) && mFocused && !mEditing) { startEditing(); return true; } if(mEditing) { if(config->getDeviceId() == DEVICE_KEYBOARD && input.id == SDLK_RETURN) { if(isMultiline()) { textInput("\n"); }else{ stopEditing(); } return true; } if((config->getDeviceId() == DEVICE_KEYBOARD && input.id == SDLK_ESCAPE) || (config->getDeviceId() != DEVICE_KEYBOARD && config->isMappedTo("b", input))) { stopEditing(); return true; } if(config->getDeviceId() != DEVICE_KEYBOARD && config->isMappedLike("up", input)) { // TODO }else if(config->getDeviceId() != DEVICE_KEYBOARD && config->isMappedLike("down", input)) { // TODO }else if(cursor_left || cursor_right) { mCursorRepeatDir = cursor_left ? -1 : 1; mCursorRepeatTimer = -(CURSOR_REPEAT_START_DELAY - CURSOR_REPEAT_SPEED); moveCursor(mCursorRepeatDir); } else if(config->getDeviceId() == DEVICE_KEYBOARD) { switch(input.id) { case SDLK_HOME: setCursor(0); break; case SDLK_END: setCursor(std::string::npos); break; case SDLK_DELETE: if(mCursor < mText.length()) { // Fake as Backspace one char to the right moveCursor(1); textInput("\b"); } break; } } //consume all input when editing text return true; } return false; }
void GameEngine::run() { spriteVec.push_back(levelVec.at(currentLevel)->getBackground()); spriteVec.push_back(player); bool goOn = true; long laps = 0; while (goOn) { Uint32 nextTick = SDL_GetTicks() + ticks; SDL_RenderClear(win->getRen()); if (initialLoop) { textInput(); initialLoop = false; } SDL_Event eve2; for (size_t i = 0; i < spriteVec.size(); i++) { spriteVec.at(i)->draw(); cd.checkCollisions(spriteVec.at(i)); } removeSprites(); cd.clearVector(); for (size_t i = 0; i < textBoxVec.size(); i++) { textBoxVec.at(i)->draw(); } if (pointCounter != nullptr) { pointCounter->draw(); } SDL_RenderPresent(win->getRen()); if (player == nullptr) { playerDied(); } while (SDL_PollEvent(&eve2)) { switch (eve2.type) { case SDL_QUIT: goOn = false; break; case SDL_KEYDOWN: if (functionMap.count(eve2.key.keysym.sym) != 0) { functionMap[eve2.key.keysym.sym](); } for (size_t i = 0; i < memberFuncVec.size(); i++) { memberFuncVec.at(i)->perform(eve2.key.keysym.sym); } for (size_t i = 0; i < spriteVec.size(); i++) { spriteVec.at(i)->draw(eve2); } break; case SDL_KEYUP: for (size_t i = 0; i < spriteVec.size(); i++) { spriteVec.at(i)->draw(eve2); } break; } } laps++; levelVec.at(currentLevel)->spawnWave(this, laps); deleteSpawns(laps); //This is triggered when the level is over: if (laps > levelVec.at(currentLevel)->getEndFrame()) { SDL_RenderClear(win->getRen()); for (size_t i = 0; i < spriteVec.size(); i++) { if (spriteVec.at(i)->getIsPlayer() == false) { spriteVec.at(i)->destroy(); //Prepare every sprite for removal except the player } } removeSprites(); spriteVec.clear(); deleteAllSpawns(); SDL_RenderClear(win->getRen()); levelSwap(); //Needs to be set by the game programmer currentLevel++; return this->run(); } if (SDL_GetTicks() < nextTick) { SDL_Delay(nextTick - SDL_GetTicks()); } } }
int SDL_Event_Handler::processEvents() { SDL_Event e; while (SDL_PollEvent(&e)) { switch (e.type) { case SDL_WINDOWEVENT: windowEvent(&e); break; case SDL_KEYDOWN: keyboardDown(&e); break; case SDL_KEYUP: keyboardUp(&e); break; case SDL_TEXTEDITING: //textEdit(&e); break; case SDL_TEXTINPUT: textInput(&e); break; case SDL_MOUSEMOTION: //mouseMotion(&e); break; case SDL_MOUSEBUTTONDOWN: mouseButtonDown(&e); break; case SDL_MOUSEBUTTONUP: mouseButtonUp(&e); break; case SDL_MOUSEWHEEL: mouseWheel(&e); break; case SDL_JOYAXISMOTION: //joystickAxisMotion(&e); break; case SDL_JOYBALLMOTION: //joyBallAxisMotion(&e); break; case SDL_JOYHATMOTION: //joyHatMotion(&e); break; case SDL_JOYBUTTONDOWN: //joyButtonDown(&e); break; case SDL_JOYBUTTONUP: //joyButtonUp(&e); break; case SDL_JOYDEVICEADDED: joyDeviceAdded(&e); break; case SDL_JOYDEVICEREMOVED: joyDeviceRemoved(&e); break; case SDL_CONTROLLERAXISMOTION: //controllerAxisMotion(&e); break; case SDL_CONTROLLERBUTTONDOWN: controllerButtonDown(&e); break; case SDL_CONTROLLERBUTTONUP: controllerButtonUp(&e); break; case SDL_CONTROLLERDEVICEADDED: //controllerDeviceAdded(&e); break; case SDL_CONTROLLERDEVICEREMOVED: //controllerDeviceRemoved(&e); break; case SDL_CONTROLLERDEVICEREMAPPED: //controllerDeviceRemmaped(&e); break; #if SDL_VERSION_ATLEAST(2, 0, 4) case SDL_AUDIODEVICEADDED: //audioDeviceAdded(&e); break; case SDL_AUDIODEVICEREMOVED: //audioDeviceRemoved(&e); break; #endif case SDL_QUIT: quit(&e); return 1; case SDL_FINGERMOTION: //fingerMotion(&e); break; case SDL_FINGERDOWN: //fingerDown(&e); break; case SDL_FINGERUP: //fingerUp(&e); break; case SDL_MULTIGESTURE: //multigesture(&e); break; case SDL_DOLLARGESTURE: //dollarGesture(&e); break; case SDL_DOLLARRECORD: //dollarRecord(&e); break; case SDL_DROPFILE: //dropFile(&e); break; #if SDL_VERSION_ATLEAST(2, 0, 5) case SDL_DROPTEXT: //dropText(&e); break; case SDL_DROPBEGIN: //dropBegin(&e); break; case SDL_DROPCOMPLETE: //dropEnd(&e); break; #endif } } return 0; }