void CGameController::PasteClipboard() { CClipboard clipboard; const std::string text = clipboard.GetContents(); userInput.insert(writingPos, text); writingPos += text.length(); }
int CPreGame::KeyPressed(unsigned short k,bool isRepeat) { if (k == SDLK_ESCAPE){ if(keys[SDLK_LSHIFT]){ logOutput.Print("User exited"); globalQuit=true; } else logOutput.Print("Use shift-esc to quit"); } if(showList){ //are we currently showing a list? showList->KeyPressed(k, isRepeat); return 0; } if (userWriting){ keys[k] = true; if (k == SDLK_v && keys[SDLK_LCTRL]){ CClipboard clipboard; userInput += clipboard.GetContents(); return 0; } if(k == SDLK_BACKSPACE){ //backspace if(userInput.size()!=0) userInput.erase(userInput.size()-1,1); return 0; } if(k == SDLK_RETURN){ userWriting=false; return 0; } return 0; } return 0; }
int CPreGame::KeyPressed(unsigned short k,bool isRepeat) { if (k == SDLK_ESCAPE) { if(keys[SDLK_LSHIFT]) { logOutput.Print("User exited"); globalQuit=true; } else logOutput.Print("Use shift-esc to quit"); } if(showList) { //are we currently showing a list? showList->KeyPressed(k, isRepeat); return 0; } if (userWriting) { keys[k] = true; if (k == SDLK_v && keys[SDLK_LCTRL]) { CClipboard clipboard; const string text = clipboard.GetContents(); userInput.insert(writingPos, text); writingPos += text.length(); return 0; } if(k == SDLK_BACKSPACE) { if (!userInput.empty() && (writingPos > 0)) { userInput.erase(writingPos - 1, 1); writingPos--; } return 0; } if(k == SDLK_DELETE) { if (!userInput.empty() && (writingPos < (int)userInput.size())) { userInput.erase(writingPos, 1); } return 0; } else if(k==SDLK_LEFT) { writingPos = max(0, min((int)userInput.length(), writingPos - 1)); } else if(k==SDLK_RIGHT) { writingPos = max(0, min((int)userInput.length(), writingPos + 1)); } else if(k==SDLK_HOME) { writingPos = 0; } else if(k==SDLK_END) { writingPos = (int)userInput.length(); } if(k == SDLK_RETURN) { userWriting=false; return 0; } return 0; } return 0; }