#include "keymaps.h" #include "raylib.h" /** * The raylib's version doesn't cover all keys, * so manually create the name for each relevant key. * * Since it is a string, need them to exist statically. * So do a static table. * * Separate table for different ranges to save a little * memory? * * This is the dumb but straightforward way. * May be memory-inefficient and a little slow. * */ static const char* KEYNAMES_MAPPING_39[] = { [KEY_APOSTROPHE-39] = "'", [1] = "", [2] = "", [3] = "", [4] = "", [KEY_COMMA-39] = ",", [KEY_MINUS-39] = "-", [KEY_PERIOD-39] = ",", [KEY_SLASH-39] = "/", [KEY_ZERO-39] = "0", [KEY_ONE-39] = "1", [KEY_TWO-39] = "2", [KEY_THREE-39] = "3", [KEY_FOUR-39] = "4", [KEY_FIVE-39] = "5", [KEY_SIX-39] = "6", [KEY_SEVEN-39] = "7", [KEY_EIGHT-39] = "8", [KEY_NINE-39] = "9", [KEY_SEMICOLON-39] = ";", [KEY_EQUAL-39] = "=", [KEY_A-39] = "A", [KEY_B-39] = "B", [KEY_C-39] = "C", [KEY_D-39] = "D", [KEY_E-39] = "E", [KEY_F-39] = "F", [KEY_G-39] = "G", [KEY_H-39] = "H", [KEY_I-39] = "I", [KEY_J-39] = "J", [KEY_K-39] = "K", [KEY_L-39] = "L", [KEY_M-39] = "M", [KEY_N-39] = "N", [KEY_O-39] = "O", [KEY_P-39] = "P", [KEY_Q-39] = "Q", [KEY_R-39] = "R", [KEY_S-39] = "S", [KEY_T-39] = "T", [KEY_U-39] = "U", [KEY_V-39] = "V", [KEY_W-39] = "W", [KEY_X-39] = "X", [KEY_Y-39] = "Y", [KEY_Z-39] = "Z", [KEY_LEFT_BRACKET-39] = "[", [KEY_BACKSLASH-39] = "\\", [KEY_RIGHT_BRACKET-39] = "]", [KEY_GRAVE-39] = "`", }; //Mapping for key after 255 static const char* KEYNAMES_MAPPING_256[] = { [KEY_ESCAPE-256] = "", [KEY_ENTER-256] = "", [KEY_TAB-256] = "TAB", [KEY_BACKSPACE-256] = "", [KEY_INSERT-256] = "INSERT", [KEY_DELETE-256] = "DELETE", [KEY_RIGHT-256] = "RIGHT", [KEY_LEFT-256] = "LEFT", [KEY_DOWN-256] = "DOWN", [KEY_UP-256] = "UP", [KEY_PAGE_UP-256] = "PG UP", [KEY_PAGE_DOWN-256] = "PG DOWN", [KEY_HOME-256] = "HOME", [KEY_END-256] = "END", [KEY_CAPS_LOCK-256] = "CAPLOCKS", [KEY_SCROLL_LOCK-256] = "SCR LCK", [KEY_NUM_LOCK-256] = "", [KEY_PRINT_SCREEN-256] = "PRT SCN", [KEY_PAUSE-256] = "PAUSE", [KEY_F1-256] = "F1", [KEY_F2-256] = "F2", [KEY_F3-256] = "F3", [KEY_F4-256] = "F4", [KEY_F5-256] = "F5", [KEY_F6-256] = "F6", [KEY_F7-256] = "F7", [KEY_F8-256] = "F8", [KEY_F9-256] = "F9", [KEY_F10-256] = "F10", [KEY_F11-256] = "F11", [KEY_F12-256] = "F12", [KEY_LEFT_SHIFT-256] = "LSHIFT", [KEY_LEFT_CONTROL-256] = "LCTRL", [KEY_LEFT_ALT-256] = "LALT", [KEY_LEFT_SUPER-256] = "", [KEY_RIGHT_SHIFT-256] = "RSHIFT", [KEY_RIGHT_CONTROL-256] = "RCTRL", [KEY_RIGHT_ALT-256] = "RALT", [KEY_RIGHT_SUPER-256] = "", [KEY_KB_MENU-256] = "", [KEY_KP_0-256] = "KPad 0", [KEY_KP_1-256] = "KPad 1", [KEY_KP_2-256] = "KPad 2", [KEY_KP_3-256] = "KPad 3", [KEY_KP_4-256] = "KPad 4", [KEY_KP_5-256] = "KPad 5", [KEY_KP_6-256] = "KPad 6", [KEY_KP_7-256] = "KPad 7", [KEY_KP_8-256] = "KPad 8", [KEY_KP_9-256] = "KPad 9", [KEY_KP_DECIMAL-256] = "", [KEY_KP_DIVIDE-256] = "", [KEY_KP_MULTIPLY-256] = "", [KEY_KP_SUBTRACT-256] = "", [KEY_KP_ADD-256] = "", [KEY_KP_ENTER-256] = "", [KEY_KP_EQUAL-256] = "", }; const char* ExtGetKeyName(int key) { if (key >= KEY_ESCAPE) { key -= KEY_ESCAPE; return KEYNAMES_MAPPING_256[key]; } if (key >= KEY_APOSTROPHE) { key -= KEY_APOSTROPHE; return KEYNAMES_MAPPING_39[key]; } if (key == KEY_SPACE) { return "SPACE"; } return ""; }