/*==========================================================
File: kbnames.c
Author: _pragma
Description: List of keyboard key identification numbers
matched to stringified identifiers (for bind).
==========================================================*/
#include <SDL/SDL.h>
#include "kbnames.h"
#include "util.h"
/*==========================================================
This is a "hash" connecting keyboard keystroke identification
numbers with text string indentifiers.
==========================================================*/
/* Note: new keys must be added in the exact order
* shown in SDL_keysym.h! If you add new keys
* beyond the last element in the list, you must
* set the MAX_KEYSTATES define accordingly (input.c).
* :pragma
*/
const kb_names_t keyNames[] =
{
/* see SDL_keysym.h */
/* ASCII mapped keys */
{ 0, "UNUSED" },
{ SDLK_BACKSPACE, "backspace" },
{ SDLK_TAB, "tab" },
{ SDLK_CLEAR, "clear" },
{ SDLK_RETURN, "return" },
{ SDLK_RETURN, "enter" },
{ SDLK_PAUSE, "pause" },
{ SDLK_ESCAPE, "escape" },
{ SDLK_SPACE, "space" },
{ SDLK_EXCLAIM, "!" },
{ SDLK_QUOTEDBL, "\"" },
{ SDLK_HASH, "#" },
{ SDLK_DOLLAR, "$" },
{ SDLK_AMPERSAND, "&" },
{ SDLK_QUOTE, "\'" },
{ SDLK_LEFTPAREN, "(" },
{ SDLK_RIGHTPAREN, ")" },
{ SDLK_ASTERISK, "*" },
{ SDLK_PLUS, "+" },
{ SDLK_COMMA, "," },
{ SDLK_MINUS, "-" },
{ SDLK_PERIOD, "." },
{ SDLK_SLASH, "/" },
{ SDLK_0, "0" },
{ SDLK_1, "1" },
{ SDLK_2, "2" },
{ SDLK_3, "3" },
{ SDLK_4, "4" },
{ SDLK_5, "5" },
{ SDLK_6, "6" },
{ SDLK_7, "7" },
{ SDLK_8, "8" },
{ SDLK_9, "9" },
{ SDLK_COLON, ":" },
{ SDLK_SEMICOLON, ";" },
{ SDLK_LESS, "<" },
{ SDLK_EQUALS, "=" },
{ SDLK_GREATER, ">" },
{ SDLK_QUESTION, "?" },
{ SDLK_AT, "@" },
/* skip uppercase letters */
{ SDLK_LEFTBRACKET, "[" },
{ SDLK_BACKSLASH, "\\" },
{ SDLK_RIGHTBRACKET, "]" },
{ SDLK_CARET, "^" },
{ SDLK_UNDERSCORE, "_" },
{ SDLK_BACKQUOTE, "`" },
{ SDLK_BACKQUOTE, "~" },
{ SDLK_a, "a" },
{ SDLK_b, "b" },
{ SDLK_c, "c" },
{ SDLK_d, "d" },
{ SDLK_e, "e" },
{ SDLK_f, "f" },
{ SDLK_g, "g" },
{ SDLK_h, "h" },
{ SDLK_i, "i" },
{ SDLK_j, "j" },
{ SDLK_k, "k" },
{ SDLK_l, "l" },
{ SDLK_m, "m" },
{ SDLK_n, "n" },
{ SDLK_o, "o" },
{ SDLK_p, "p" },
{ SDLK_q, "q" },
{ SDLK_r, "r" },
{ SDLK_s, "s" },
{ SDLK_t, "t" },
{ SDLK_u, "u" },
{ SDLK_v, "v" },
{ SDLK_w, "w" },
{ SDLK_x, "x" },
{ SDLK_y, "y" },
{ SDLK_z, "z" },
{ SDLK_DELETE, "delete" },
/* end of ASCII */
/* numpad/keypad */
{ SDLK_KP0, "kp_0" },
{ SDLK_KP1, "kp_1" },
{ SDLK_KP2, "kp_2" },
{ SDLK_KP3, "kp_3" },
{ SDLK_KP4, "kp_4" },
{ SDLK_KP5, "kp_5" },
{ SDLK_KP6, "kp_6" },
{ SDLK_KP7, "kp_7" },
{ SDLK_KP8, "kp_8" },
{ SDLK_KP9, "kp_9" },
{ SDLK_KP_PERIOD, "kp_period" },
{ SDLK_KP_DIVIDE, "kp_divide" },
{ SDLK_KP_MULTIPLY, "kp_multiply" },
{ SDLK_KP_MINUS, "kp_minus" },
{ SDLK_KP_PLUS, "kp_plus" },
{ SDLK_KP_ENTER, "kp_enter" },
{ SDLK_KP_EQUALS, "kp_equals" },
/* Arrows + Home/End pad */
{ SDLK_UP, "up" },
{ SDLK_DOWN, "down" },
{ SDLK_RIGHT, "right" },
{ SDLK_LEFT, "left" },
{ SDLK_INSERT, "insert" },
{ SDLK_HOME, "home" },
{ SDLK_END, "end" },
{ SDLK_PAGEUP, "pageup" },
{ SDLK_PAGEDOWN, "pagedown" },
/* Function keys */
{ SDLK_F1, "f1" },
{ SDLK_F2, "f2" },
{ SDLK_F3, "f3" },
{ SDLK_F4, "f4" },
{ SDLK_F5, "f5" },
{ SDLK_F6, "f6" },
{ SDLK_F7, "f7" },
{ SDLK_F8, "f8" },
{ SDLK_F9, "f9" },
{ SDLK_F10, "f10" },
{ SDLK_F11, "f11" },
{ SDLK_F12, "f12" },
{ SDLK_F13, "f13" },
{ SDLK_F14, "f14" },
{ SDLK_F15, "f15" },
/* Key state modifier keys */
{ SDLK_NUMLOCK, "numlock" },
{ SDLK_CAPSLOCK, "capslock" },
{ SDLK_SCROLLOCK, "scroll_lock" },
{ SDLK_RSHIFT, "rshift" },
{ SDLK_LSHIFT, "lshift" },
{ SDLK_RCTRL, "rctrl" },
{ SDLK_LCTRL, "lctrl" },
{ SDLK_RALT, "ralt" },
{ SDLK_LALT, "lalt" },
{ SDLK_LSUPER, "lwinkey" },
{ SDLK_RSUPER, "rwinkey" },
/* End of hash */
{ -1, "\n" }
};