MCPcopy Create free account
hub / github.com/Panzerschrek/Chasm-Reverse / TranslateKey

Function TranslateKey

PanzerChasm/system_window.cpp:17–66  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

15{
16
17static SystemEvent::KeyEvent::KeyCode TranslateKey( const SDL_Scancode scan_code )
18{
19 using KeyCode= SystemEvent::KeyEvent::KeyCode;
20
21 switch( scan_code )
22 {
23 case SDL_SCANCODE_ESCAPE: return KeyCode::Escape;
24 case SDL_SCANCODE_RETURN: return KeyCode::Enter;
25 case SDL_SCANCODE_SPACE: return KeyCode::Space;
26 case SDL_SCANCODE_BACKSPACE: return KeyCode::Backspace;
27 case SDL_SCANCODE_GRAVE: return KeyCode::BackQuote;
28 case SDL_SCANCODE_TAB: return KeyCode::Tab;
29
30 case SDL_SCANCODE_PAGEUP: return KeyCode::PageUp;
31 case SDL_SCANCODE_PAGEDOWN: return KeyCode::PageDown;
32
33 case SDL_SCANCODE_RIGHT: return KeyCode::Right;
34 case SDL_SCANCODE_LEFT: return KeyCode::Left;
35 case SDL_SCANCODE_DOWN: return KeyCode::Down;
36 case SDL_SCANCODE_UP: return KeyCode::Up;
37
38 case SDL_SCANCODE_MINUS: return KeyCode::Minus;
39 case SDL_SCANCODE_EQUALS: return KeyCode::Equals;
40
41 case SDL_SCANCODE_LEFTBRACKET: return KeyCode::SquareBrackretLeft;
42 case SDL_SCANCODE_RIGHTBRACKET: return KeyCode::SquareBrackretRight;
43
44 case SDL_SCANCODE_SEMICOLON: return KeyCode::Semicolon;
45 case SDL_SCANCODE_APOSTROPHE: return KeyCode::Apostrophe;
46 case SDL_SCANCODE_BACKSLASH: return KeyCode::BackSlash;
47
48 case SDL_SCANCODE_COMMA: return KeyCode::Comma;
49 case SDL_SCANCODE_PERIOD: return KeyCode::Period;
50 case SDL_SCANCODE_SLASH: return KeyCode::Slash;
51
52 case SDL_SCANCODE_PAUSE: return KeyCode::Pause;
53
54 default:
55 if( scan_code >= SDL_SCANCODE_A && scan_code <= SDL_SCANCODE_Z )
56 return KeyCode( int(KeyCode::A) + (scan_code - SDL_SCANCODE_A) );
57 if( scan_code >= SDL_SCANCODE_1 && scan_code <= SDL_SCANCODE_9 )
58 return KeyCode( int(KeyCode::K1) + (scan_code - SDL_SCANCODE_1) );
59 if( scan_code == SDL_SCANCODE_0 )
60 return KeyCode::K0;
61 if( scan_code >= SDL_SCANCODE_F1 && scan_code <= SDL_SCANCODE_F12 )
62 return KeyCode( int(KeyCode::F1) + (scan_code - SDL_SCANCODE_F1) );
63 };
64
65 return KeyCode::Unknown;
66}
67
68static SystemEvent::MouseKeyEvent::Button TranslateMouseButton( const Uint8 button )
69{

Callers 2

GetInputMethod · 0.85
GetInputStateMethod · 0.85

Calls 1

KeyCodeEnum · 0.85

Tested by

no test coverage detected