Пример #1
0
void CGameController::PasteClipboard()
{
	CClipboard clipboard;
	const std::string text = clipboard.GetContents();
	userInput.insert(writingPos, text);
	writingPos += text.length();
}
Пример #2
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;
			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;
}
Пример #3
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;
}