include/SDL_keysym.h
changeset 0 74212992fb08
child 184 3142d2ac11db
equal deleted inserted replaced
-1:000000000000 0:74212992fb08
       
     1 /*
       
     2     SDL - Simple DirectMedia Layer
       
     3     Copyright (C) 1997, 1998, 1999, 2000, 2001  Sam Lantinga
       
     4 
       
     5     This library is free software; you can redistribute it and/or
       
     6     modify it under the terms of the GNU Library General Public
       
     7     License as published by the Free Software Foundation; either
       
     8     version 2 of the License, or (at your option) any later version.
       
     9 
       
    10     This library is distributed in the hope that it will be useful,
       
    11     but WITHOUT ANY WARRANTY; without even the implied warranty of
       
    12     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
       
    13     Library General Public License for more details.
       
    14 
       
    15     You should have received a copy of the GNU Library General Public
       
    16     License along with this library; if not, write to the Free
       
    17     Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
       
    18 
       
    19     Sam Lantinga
       
    20     slouken@devolution.com
       
    21 */
       
    22 
       
    23 #ifdef SAVE_RCSID
       
    24 static char rcsid =
       
    25  "@(#) $Id$";
       
    26 #endif
       
    27 
       
    28 #ifndef _SDL_keysym_h
       
    29 #define _SDL_keysym_h
       
    30 
       
    31 /* What we really want is a mapping of every raw key on the keyboard.
       
    32    To support international keyboards, we use the range 0xA1 - 0xFF
       
    33    as international virtual keycodes.  We'll follow in the footsteps of X11...
       
    34    The names of the keys
       
    35  */
       
    36  
       
    37 typedef enum {
       
    38 	/* The keyboard syms have been cleverly chosen to map to ASCII */
       
    39 	SDLK_UNKNOWN		= 0,
       
    40 	SDLK_FIRST		= 0,
       
    41 	SDLK_BACKSPACE		= 8,
       
    42 	SDLK_TAB		= 9,
       
    43 	SDLK_CLEAR		= 12,
       
    44 	SDLK_RETURN		= 13,
       
    45 	SDLK_PAUSE		= 19,
       
    46 	SDLK_ESCAPE		= 27,
       
    47 	SDLK_SPACE		= 32,
       
    48 	SDLK_EXCLAIM		= 33,
       
    49 	SDLK_QUOTEDBL		= 34,
       
    50 	SDLK_HASH		= 35,
       
    51 	SDLK_DOLLAR		= 36,
       
    52 	SDLK_AMPERSAND		= 38,
       
    53 	SDLK_QUOTE		= 39,
       
    54 	SDLK_LEFTPAREN		= 40,
       
    55 	SDLK_RIGHTPAREN		= 41,
       
    56 	SDLK_ASTERISK		= 42,
       
    57 	SDLK_PLUS		= 43,
       
    58 	SDLK_COMMA		= 44,
       
    59 	SDLK_MINUS		= 45,
       
    60 	SDLK_PERIOD		= 46,
       
    61 	SDLK_SLASH		= 47,
       
    62 	SDLK_0			= 48,
       
    63 	SDLK_1			= 49,
       
    64 	SDLK_2			= 50,
       
    65 	SDLK_3			= 51,
       
    66 	SDLK_4			= 52,
       
    67 	SDLK_5			= 53,
       
    68 	SDLK_6			= 54,
       
    69 	SDLK_7			= 55,
       
    70 	SDLK_8			= 56,
       
    71 	SDLK_9			= 57,
       
    72 	SDLK_COLON		= 58,
       
    73 	SDLK_SEMICOLON		= 59,
       
    74 	SDLK_LESS		= 60,
       
    75 	SDLK_EQUALS		= 61,
       
    76 	SDLK_GREATER		= 62,
       
    77 	SDLK_QUESTION		= 63,
       
    78 	SDLK_AT			= 64,
       
    79 	/* 
       
    80 	   Skip uppercase letters
       
    81 	 */
       
    82 	SDLK_LEFTBRACKET	= 91,
       
    83 	SDLK_BACKSLASH		= 92,
       
    84 	SDLK_RIGHTBRACKET	= 93,
       
    85 	SDLK_CARET		= 94,
       
    86 	SDLK_UNDERSCORE		= 95,
       
    87 	SDLK_BACKQUOTE		= 96,
       
    88 	SDLK_a			= 97,
       
    89 	SDLK_b			= 98,
       
    90 	SDLK_c			= 99,
       
    91 	SDLK_d			= 100,
       
    92 	SDLK_e			= 101,
       
    93 	SDLK_f			= 102,
       
    94 	SDLK_g			= 103,
       
    95 	SDLK_h			= 104,
       
    96 	SDLK_i			= 105,
       
    97 	SDLK_j			= 106,
       
    98 	SDLK_k			= 107,
       
    99 	SDLK_l			= 108,
       
   100 	SDLK_m			= 109,
       
   101 	SDLK_n			= 110,
       
   102 	SDLK_o			= 111,
       
   103 	SDLK_p			= 112,
       
   104 	SDLK_q			= 113,
       
   105 	SDLK_r			= 114,
       
   106 	SDLK_s			= 115,
       
   107 	SDLK_t			= 116,
       
   108 	SDLK_u			= 117,
       
   109 	SDLK_v			= 118,
       
   110 	SDLK_w			= 119,
       
   111 	SDLK_x			= 120,
       
   112 	SDLK_y			= 121,
       
   113 	SDLK_z			= 122,
       
   114 	SDLK_DELETE		= 127,
       
   115 	/* End of ASCII mapped keysyms */
       
   116 
       
   117 	/* International keyboard syms */
       
   118 	SDLK_WORLD_0		= 160,		/* 0xA0 */
       
   119 	SDLK_WORLD_1		= 161,
       
   120 	SDLK_WORLD_2		= 162,
       
   121 	SDLK_WORLD_3		= 163,
       
   122 	SDLK_WORLD_4		= 164,
       
   123 	SDLK_WORLD_5		= 165,
       
   124 	SDLK_WORLD_6		= 166,
       
   125 	SDLK_WORLD_7		= 167,
       
   126 	SDLK_WORLD_8		= 168,
       
   127 	SDLK_WORLD_9		= 169,
       
   128 	SDLK_WORLD_10		= 170,
       
   129 	SDLK_WORLD_11		= 171,
       
   130 	SDLK_WORLD_12		= 172,
       
   131 	SDLK_WORLD_13		= 173,
       
   132 	SDLK_WORLD_14		= 174,
       
   133 	SDLK_WORLD_15		= 175,
       
   134 	SDLK_WORLD_16		= 176,
       
   135 	SDLK_WORLD_17		= 177,
       
   136 	SDLK_WORLD_18		= 178,
       
   137 	SDLK_WORLD_19		= 179,
       
   138 	SDLK_WORLD_20		= 180,
       
   139 	SDLK_WORLD_21		= 181,
       
   140 	SDLK_WORLD_22		= 182,
       
   141 	SDLK_WORLD_23		= 183,
       
   142 	SDLK_WORLD_24		= 184,
       
   143 	SDLK_WORLD_25		= 185,
       
   144 	SDLK_WORLD_26		= 186,
       
   145 	SDLK_WORLD_27		= 187,
       
   146 	SDLK_WORLD_28		= 188,
       
   147 	SDLK_WORLD_29		= 189,
       
   148 	SDLK_WORLD_30		= 190,
       
   149 	SDLK_WORLD_31		= 191,
       
   150 	SDLK_WORLD_32		= 192,
       
   151 	SDLK_WORLD_33		= 193,
       
   152 	SDLK_WORLD_34		= 194,
       
   153 	SDLK_WORLD_35		= 195,
       
   154 	SDLK_WORLD_36		= 196,
       
   155 	SDLK_WORLD_37		= 197,
       
   156 	SDLK_WORLD_38		= 198,
       
   157 	SDLK_WORLD_39		= 199,
       
   158 	SDLK_WORLD_40		= 200,
       
   159 	SDLK_WORLD_41		= 201,
       
   160 	SDLK_WORLD_42		= 202,
       
   161 	SDLK_WORLD_43		= 203,
       
   162 	SDLK_WORLD_44		= 204,
       
   163 	SDLK_WORLD_45		= 205,
       
   164 	SDLK_WORLD_46		= 206,
       
   165 	SDLK_WORLD_47		= 207,
       
   166 	SDLK_WORLD_48		= 208,
       
   167 	SDLK_WORLD_49		= 209,
       
   168 	SDLK_WORLD_50		= 210,
       
   169 	SDLK_WORLD_51		= 211,
       
   170 	SDLK_WORLD_52		= 212,
       
   171 	SDLK_WORLD_53		= 213,
       
   172 	SDLK_WORLD_54		= 214,
       
   173 	SDLK_WORLD_55		= 215,
       
   174 	SDLK_WORLD_56		= 216,
       
   175 	SDLK_WORLD_57		= 217,
       
   176 	SDLK_WORLD_58		= 218,
       
   177 	SDLK_WORLD_59		= 219,
       
   178 	SDLK_WORLD_60		= 220,
       
   179 	SDLK_WORLD_61		= 221,
       
   180 	SDLK_WORLD_62		= 222,
       
   181 	SDLK_WORLD_63		= 223,
       
   182 	SDLK_WORLD_64		= 224,
       
   183 	SDLK_WORLD_65		= 225,
       
   184 	SDLK_WORLD_66		= 226,
       
   185 	SDLK_WORLD_67		= 227,
       
   186 	SDLK_WORLD_68		= 228,
       
   187 	SDLK_WORLD_69		= 229,
       
   188 	SDLK_WORLD_70		= 230,
       
   189 	SDLK_WORLD_71		= 231,
       
   190 	SDLK_WORLD_72		= 232,
       
   191 	SDLK_WORLD_73		= 233,
       
   192 	SDLK_WORLD_74		= 234,
       
   193 	SDLK_WORLD_75		= 235,
       
   194 	SDLK_WORLD_76		= 236,
       
   195 	SDLK_WORLD_77		= 237,
       
   196 	SDLK_WORLD_78		= 238,
       
   197 	SDLK_WORLD_79		= 239,
       
   198 	SDLK_WORLD_80		= 240,
       
   199 	SDLK_WORLD_81		= 241,
       
   200 	SDLK_WORLD_82		= 242,
       
   201 	SDLK_WORLD_83		= 243,
       
   202 	SDLK_WORLD_84		= 244,
       
   203 	SDLK_WORLD_85		= 245,
       
   204 	SDLK_WORLD_86		= 246,
       
   205 	SDLK_WORLD_87		= 247,
       
   206 	SDLK_WORLD_88		= 248,
       
   207 	SDLK_WORLD_89		= 249,
       
   208 	SDLK_WORLD_90		= 250,
       
   209 	SDLK_WORLD_91		= 251,
       
   210 	SDLK_WORLD_92		= 252,
       
   211 	SDLK_WORLD_93		= 253,
       
   212 	SDLK_WORLD_94		= 254,
       
   213 	SDLK_WORLD_95		= 255,		/* 0xFF */
       
   214 
       
   215 	/* Numeric keypad */
       
   216 	SDLK_KP0		= 256,
       
   217 	SDLK_KP1		= 257,
       
   218 	SDLK_KP2		= 258,
       
   219 	SDLK_KP3		= 259,
       
   220 	SDLK_KP4		= 260,
       
   221 	SDLK_KP5		= 261,
       
   222 	SDLK_KP6		= 262,
       
   223 	SDLK_KP7		= 263,
       
   224 	SDLK_KP8		= 264,
       
   225 	SDLK_KP9		= 265,
       
   226 	SDLK_KP_PERIOD		= 266,
       
   227 	SDLK_KP_DIVIDE		= 267,
       
   228 	SDLK_KP_MULTIPLY	= 268,
       
   229 	SDLK_KP_MINUS		= 269,
       
   230 	SDLK_KP_PLUS		= 270,
       
   231 	SDLK_KP_ENTER		= 271,
       
   232 	SDLK_KP_EQUALS		= 272,
       
   233 
       
   234 	/* Arrows + Home/End pad */
       
   235 	SDLK_UP			= 273,
       
   236 	SDLK_DOWN		= 274,
       
   237 	SDLK_RIGHT		= 275,
       
   238 	SDLK_LEFT		= 276,
       
   239 	SDLK_INSERT		= 277,
       
   240 	SDLK_HOME		= 278,
       
   241 	SDLK_END		= 279,
       
   242 	SDLK_PAGEUP		= 280,
       
   243 	SDLK_PAGEDOWN		= 281,
       
   244 
       
   245 	/* Function keys */
       
   246 	SDLK_F1			= 282,
       
   247 	SDLK_F2			= 283,
       
   248 	SDLK_F3			= 284,
       
   249 	SDLK_F4			= 285,
       
   250 	SDLK_F5			= 286,
       
   251 	SDLK_F6			= 287,
       
   252 	SDLK_F7			= 288,
       
   253 	SDLK_F8			= 289,
       
   254 	SDLK_F9			= 290,
       
   255 	SDLK_F10		= 291,
       
   256 	SDLK_F11		= 292,
       
   257 	SDLK_F12		= 293,
       
   258 	SDLK_F13		= 294,
       
   259 	SDLK_F14		= 295,
       
   260 	SDLK_F15		= 296,
       
   261 
       
   262 	/* Key state modifier keys */
       
   263 	SDLK_NUMLOCK		= 300,
       
   264 	SDLK_CAPSLOCK		= 301,
       
   265 	SDLK_SCROLLOCK		= 302,
       
   266 	SDLK_RSHIFT		= 303,
       
   267 	SDLK_LSHIFT		= 304,
       
   268 	SDLK_RCTRL		= 305,
       
   269 	SDLK_LCTRL		= 306,
       
   270 	SDLK_RALT		= 307,
       
   271 	SDLK_LALT		= 308,
       
   272 	SDLK_RMETA		= 309,
       
   273 	SDLK_LMETA		= 310,
       
   274 	SDLK_LSUPER		= 311,		/* Left "Windows" key */
       
   275 	SDLK_RSUPER		= 312,		/* Right "Windows" key */
       
   276 	SDLK_MODE		= 313,		/* "Alt Gr" key */
       
   277 	SDLK_COMPOSE		= 314,		/* Multi-key compose key */
       
   278 
       
   279 	/* Miscellaneous function keys */
       
   280 	SDLK_HELP		= 315,
       
   281 	SDLK_PRINT		= 316,
       
   282 	SDLK_SYSREQ		= 317,
       
   283 	SDLK_BREAK		= 318,
       
   284 	SDLK_MENU		= 319,
       
   285 	SDLK_POWER		= 320,		/* Power Macintosh power key */
       
   286 	SDLK_EURO		= 321,		/* Some european keyboards */
       
   287 
       
   288 	/* Add any other keys here */
       
   289 
       
   290 	SDLK_LAST
       
   291 } SDLKey;
       
   292 
       
   293 /* Enumeration of valid key mods (possibly OR'd together) */
       
   294 typedef enum {
       
   295 	KMOD_NONE  = 0x0000,
       
   296 	KMOD_LSHIFT= 0x0001,
       
   297 	KMOD_RSHIFT= 0x0002,
       
   298 	KMOD_LCTRL = 0x0040,
       
   299 	KMOD_RCTRL = 0x0080,
       
   300 	KMOD_LALT  = 0x0100,
       
   301 	KMOD_RALT  = 0x0200,
       
   302 	KMOD_LMETA = 0x0400,
       
   303 	KMOD_RMETA = 0x0800,
       
   304 	KMOD_NUM   = 0x1000,
       
   305 	KMOD_CAPS  = 0x2000,
       
   306 	KMOD_MODE  = 0x4000,
       
   307 	KMOD_RESERVED = 0x8000
       
   308 } SDLMod;
       
   309 
       
   310 #define KMOD_CTRL	(KMOD_LCTRL|KMOD_RCTRL)
       
   311 #define KMOD_SHIFT	(KMOD_LSHIFT|KMOD_RSHIFT)
       
   312 #define KMOD_ALT	(KMOD_LALT|KMOD_RALT)
       
   313 #define KMOD_META	(KMOD_LMETA|KMOD_RMETA)
       
   314 
       
   315 #endif /* _SDL_keysym_h */