MCPcopy Create free account
hub / github.com/OpenTTD/OpenTTD / HandleKeyPress

Method HandleKeyPress

src/textbuf.cpp:475–514  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

473}
474
475HandleKeyPressResult Textbuf::HandleKeyPress(char32_t key, uint16_t keycode)
476{
477 bool edited = false;
478
479 switch (keycode) {
480 case WKC_ESC: return HKPR_CANCEL;
481
482 case WKC_RETURN: case WKC_NUM_ENTER: return HKPR_CONFIRM;
483
484 case (WKC_CTRL | 'V'):
485 case (WKC_SHIFT | WKC_INSERT):
486 edited = this->InsertClipboard();
487 break;
488
489 case (WKC_CTRL | 'U'):
490 this->DeleteAll();
491 edited = true;
492 break;
493
494 case WKC_BACKSPACE: case WKC_DELETE:
495 case WKC_CTRL | WKC_BACKSPACE: case WKC_CTRL | WKC_DELETE:
496 edited = this->DeleteChar(keycode);
497 break;
498
499 case WKC_LEFT: case WKC_RIGHT: case WKC_END: case WKC_HOME:
500 case WKC_CTRL | WKC_LEFT: case WKC_CTRL | WKC_RIGHT:
501 this->MovePos(keycode);
502 break;
503
504 default:
505 if (IsValidChar(key, this->afilter)) {
506 edited = this->InsertChar(key);
507 } else {
508 return HKPR_NOT_HANDLED;
509 }
510 break;
511 }
512
513 return edited ? HKPR_EDITING : HKPR_CURSOR;
514}

Callers 2

OnKeyPressMethod · 0.80
HandleEditBoxKeyMethod · 0.80

Calls 6

InsertClipboardMethod · 0.95
DeleteAllMethod · 0.95
DeleteCharMethod · 0.95
MovePosMethod · 0.95
InsertCharMethod · 0.95
IsValidCharFunction · 0.85

Tested by

no test coverage detected