blob: 5ac8ec4c2248e13600ec15171ae4a843fbfb4299 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
|
global char* keycode_lut[2*KeyCode_COUNT];
function void init_keycode_lut(){
for(i32 i=0; i<2*KeyCode_COUNT; i++){
keycode_lut[i] = "";
}
i32 shift = KeyCode_COUNT;
char *lowercase_alpha = "a\0b\0c\0d\0e\0f\0g\0h\0i\0j\0k\0l\0m\0n\0o\0p\0q\0r\0s\0t\0u\0v\0w\0x\0y\0z";
for(i32 i='a'; i<='z'; i++){
i32 index = i-'a';
keycode_lut[KeyCode_A+index+shift] = key_code_name[KeyCode_A+index];
keycode_lut[KeyCode_A+index] = lowercase_alpha + 2*index;
}
char *shift_digit = ")\0!\0@\0#\0$\0%\0^\0&\0*\0(";
for(i32 i=0; i<=9; i++){
keycode_lut[KeyCode_0+i] = key_code_name[KeyCode_0+i];
keycode_lut[KeyCode_0+i+shift] = shift_digit + 2*i;;
}
char *function_keys = "F1\0F2\0F3\0F4\0F5\0F6\0F7\0F8\0F9\0F10\0F11\0F12";
for(i32 i=0; i<12; i++){
keycode_lut[KeyCode_F1+i] = keycode_lut[KeyCode_F1+i+shift] = function_keys + (3*i + (i>9)*(i-9));
}
keycode_lut[KeyCode_Space] = keycode_lut[KeyCode_Space+shift] = "Sp";
keycode_lut[KeyCode_Tab] = keycode_lut[KeyCode_BackwardSlash+shift] = "Tab";
keycode_lut[KeyCode_Escape] = keycode_lut[KeyCode_Escape+shift] = "ESC";
keycode_lut[KeyCode_Pause] = keycode_lut[KeyCode_Pause+shift] = key_code_name[KeyCode_Pause];
keycode_lut[KeyCode_Up] = keycode_lut[KeyCode_Up+shift] = key_code_name[KeyCode_Up];
keycode_lut[KeyCode_Down] = keycode_lut[KeyCode_Down+shift] = key_code_name[KeyCode_Down];
keycode_lut[KeyCode_Left] = keycode_lut[KeyCode_Left+shift] = key_code_name[KeyCode_Left];
keycode_lut[KeyCode_Right] = keycode_lut[KeyCode_Right+shift] = key_code_name[KeyCode_Right];
keycode_lut[KeyCode_Backspace] = keycode_lut[KeyCode_Backspace+shift] = "BS";
keycode_lut[KeyCode_Return] = keycode_lut[KeyCode_Escape+shift] = "CR";
keycode_lut[KeyCode_Delete] = keycode_lut[KeyCode_Delete+shift] = "Del";
keycode_lut[KeyCode_Insert] = keycode_lut[KeyCode_Insert+shift] = "Ins";
keycode_lut[KeyCode_Home] = keycode_lut[KeyCode_Home+shift] = "Home";
keycode_lut[KeyCode_End] = keycode_lut[KeyCode_End+shift] = "End";
keycode_lut[KeyCode_PageUp] = keycode_lut[KeyCode_PageUp+shift] = "PageUp";
keycode_lut[KeyCode_PageDown] = keycode_lut[KeyCode_PageDown+shift] = "PageDown";
keycode_lut[KeyCode_CapsLock] = keycode_lut[KeyCode_CapsLock+shift] = "Caps";
keycode_lut[KeyCode_NumLock] = keycode_lut[KeyCode_NumLock+shift] = "NumLock";
keycode_lut[KeyCode_Tick] = "`"; keycode_lut[KeyCode_Tick+shift] = "~";
keycode_lut[KeyCode_Minus] = "-"; keycode_lut[KeyCode_Minus+shift] = "_";
keycode_lut[KeyCode_Minus] = "-"; keycode_lut[KeyCode_Minus+shift] = "_";
keycode_lut[KeyCode_Equal] = "="; keycode_lut[KeyCode_Equal+shift] = "+";
keycode_lut[KeyCode_LeftBracket] = "["; keycode_lut[KeyCode_LeftBracket+shift] = "{";
keycode_lut[KeyCode_RightBracket] = "]"; keycode_lut[KeyCode_RightBracket+shift] = "}";
keycode_lut[KeyCode_Semicolon] = ";"; keycode_lut[KeyCode_Semicolon+shift] = ":";
keycode_lut[KeyCode_Quote] = "'"; keycode_lut[KeyCode_Quote+shift] = "\"";
keycode_lut[KeyCode_Comma] = ","; keycode_lut[KeyCode_Comma+shift] = "<";
keycode_lut[KeyCode_Period] = "."; keycode_lut[KeyCode_Period+shift] = ">";
keycode_lut[KeyCode_ForwardSlash] = "/"; keycode_lut[KeyCode_ForwardSlash+shift] = "?";
keycode_lut[KeyCode_BackwardSlash] = "\\"; keycode_lut[KeyCode_BackwardSlash+shift] = "|";
}
|