factor/library/sdl/sdl-keysym.factor

261 lines
6.6 KiB
Factor

! Copyright (C) 2004, 2005 Slava Pestov.
! See http://factor.sf.net/license.txt for BSD license.
IN: sdl USING: namespaces ;
! Here we smash left/right control/shift/alt for convinience.
! Later, something better needs to be done.
: modifiers
{
[[ "SHIFT" HEX: 0003 ]]
[[ "CTRL" HEX: 00c0 ]]
[[ "ALT" HEX: 0300 ]]
[[ "META" HEX: 0c00 ]]
} ;
: keysyms
H{
! The keyboard syms have been cleverly chosen to map to ASCII
{ 0 "UNKNOWN" }
{ 8 "BACKSPACE" }
{ 9 "TAB" }
{ 12 "CLEAR" }
{ 13 "RETURN" }
{ 19 "PAUSE" }
{ 27 "ESCAPE" }
{ 32 "SPACE" }
{ 33 "EXCLAIM" }
{ 34 "QUOTEDBL" }
{ 35 "HASH" }
{ 36 "DOLLAR" }
{ 38 "AMPERSAND" }
{ 39 "QUOTE" }
{ 40 "LEFTPAREN" }
{ 41 "RIGHTPAREN" }
{ 42 "ASTERISK" }
{ 43 "PLUS" }
{ 44 "COMMA" }
{ 45 "MINUS" }
{ 46 "PERIOD" }
{ 47 "SLASH" }
{ 48 0 }
{ 49 1 }
{ 50 2 }
{ 51 3 }
{ 52 4 }
{ 53 5 }
{ 54 6 }
{ 55 7 }
{ 56 8 }
{ 57 9 }
{ 58 "COLON" }
{ 59 "SEMICOLON" }
{ 60 "LESS" }
{ 61 "EQUALS" }
{ 62 "GREATER" }
{ 63 "QUESTION" }
{ 64 "AT" }
! Skip uppercase letters
{ 91 "LEFTBRACKET" }
{ 92 "BACKSLASH" }
{ 93 "RIGHTBRACKET" }
{ 94 "CARET" }
{ 95 "UNDERSCORE" }
{ 96 "BACKQUOTE" }
{ 97 "a" }
{ 98 "b" }
{ 99 "c" }
{ 100 "d" }
{ 101 "e" }
{ 102 "f" }
{ 103 "g" }
{ 104 "h" }
{ 105 "i" }
{ 106 "j" }
{ 107 "k" }
{ 108 "l" }
{ 109 "m" }
{ 110 "n" }
{ 111 "o" }
{ 112 "p" }
{ 113 "q" }
{ 114 "r" }
{ 115 "s" }
{ 116 "t" }
{ 117 "u" }
{ 118 "v" }
{ 119 "w" }
{ 120 "x" }
{ 121 "y" }
{ 122 "z" }
{ 127 "DELETE" }
! End of ASCII mapped keysyms
! International keyboard syms
{ 160 "WORLD_0" } ! 0xA0
{ 161 "WORLD_1" }
{ 162 "WORLD_2" }
{ 163 "WORLD_3" }
{ 164 "WORLD_4" }
{ 165 "WORLD_5" }
{ 166 "WORLD_6" }
{ 167 "WORLD_7" }
{ 168 "WORLD_8" }
{ 169 "WORLD_9" }
{ 170 "WORLD_10" }
{ 171 "WORLD_11" }
{ 172 "WORLD_12" }
{ 173 "WORLD_13" }
{ 174 "WORLD_14" }
{ 175 "WORLD_15" }
{ 176 "WORLD_16" }
{ 177 "WORLD_17" }
{ 178 "WORLD_18" }
{ 179 "WORLD_19" }
{ 180 "WORLD_20" }
{ 181 "WORLD_21" }
{ 182 "WORLD_22" }
{ 183 "WORLD_23" }
{ 184 "WORLD_24" }
{ 185 "WORLD_25" }
{ 186 "WORLD_26" }
{ 187 "WORLD_27" }
{ 188 "WORLD_28" }
{ 189 "WORLD_29" }
{ 190 "WORLD_30" }
{ 191 "WORLD_31" }
{ 192 "WORLD_32" }
{ 193 "WORLD_33" }
{ 194 "WORLD_34" }
{ 195 "WORLD_35" }
{ 196 "WORLD_36" }
{ 197 "WORLD_37" }
{ 198 "WORLD_38" }
{ 199 "WORLD_39" }
{ 200 "WORLD_40" }
{ 201 "WORLD_41" }
{ 202 "WORLD_42" }
{ 203 "WORLD_43" }
{ 204 "WORLD_44" }
{ 205 "WORLD_45" }
{ 206 "WORLD_46" }
{ 207 "WORLD_47" }
{ 208 "WORLD_48" }
{ 209 "WORLD_49" }
{ 210 "WORLD_50" }
{ 211 "WORLD_51" }
{ 212 "WORLD_52" }
{ 213 "WORLD_53" }
{ 214 "WORLD_54" }
{ 215 "WORLD_55" }
{ 216 "WORLD_56" }
{ 217 "WORLD_57" }
{ 218 "WORLD_58" }
{ 219 "WORLD_59" }
{ 220 "WORLD_60" }
{ 221 "WORLD_61" }
{ 222 "WORLD_62" }
{ 223 "WORLD_63" }
{ 224 "WORLD_64" }
{ 225 "WORLD_65" }
{ 226 "WORLD_66" }
{ 227 "WORLD_67" }
{ 228 "WORLD_68" }
{ 229 "WORLD_69" }
{ 230 "WORLD_70" }
{ 231 "WORLD_71" }
{ 232 "WORLD_72" }
{ 233 "WORLD_73" }
{ 234 "WORLD_74" }
{ 235 "WORLD_75" }
{ 236 "WORLD_76" }
{ 237 "WORLD_77" }
{ 238 "WORLD_78" }
{ 239 "WORLD_79" }
{ 240 "WORLD_80" }
{ 241 "WORLD_81" }
{ 242 "WORLD_82" }
{ 243 "WORLD_83" }
{ 244 "WORLD_84" }
{ 245 "WORLD_85" }
{ 246 "WORLD_86" }
{ 247 "WORLD_87" }
{ 248 "WORLD_88" }
{ 249 "WORLD_89" }
{ 250 "WORLD_90" }
{ 251 "WORLD_91" }
{ 252 "WORLD_92" }
{ 253 "WORLD_93" }
{ 254 "WORLD_94" }
{ 255 "WORLD_95" } ! 0xFF
! Numeric keypad
{ 256 "KP0" }
{ 257 "KP1" }
{ 258 "KP2" }
{ 259 "KP3" }
{ 260 "KP4" }
{ 261 "KP5" }
{ 262 "KP6" }
{ 263 "KP7" }
{ 264 "KP8" }
{ 265 "KP9" }
{ 266 "KP_PERIOD" }
{ 267 "KP_DIVIDE" }
{ 268 "KP_MULTIPLY" }
{ 269 "KP_MINUS" }
{ 270 "KP_PLUS" }
{ 271 "KP_ENTER" }
{ 272 "KP_EQUALS" }
! Arrows + Home/End pad
{ 273 "UP" }
{ 274 "DOWN" }
{ 275 "RIGHT" }
{ 276 "LEFT" }
{ 277 "INSERT" }
{ 278 "HOME" }
{ 279 "END" }
{ 280 "PAGEUP" }
{ 281 "PAGEDOWN" }
! Function keys
{ 282 "F1" }
{ 283 "F2" }
{ 284 "F3" }
{ 285 "F4" }
{ 286 "F5" }
{ 287 "F6" }
{ 288 "F7" }
{ 289 "F8" }
{ 290 "F9" }
{ 291 "F10" }
{ 292 "F11" }
{ 293 "F12" }
{ 294 "F13" }
{ 295 "F14" }
{ 296 "F15" }
! Key state modifier keys
{ 300 "NUMLOCK" }
{ 301 "CAPSLOCK" }
{ 302 "SCROLLOCK" }
{ 303 "RSHIFT" }
{ 304 "LSHIFT" }
{ 305 "RCTRL" }
{ 306 "LCTRL" }
{ 307 "RALT" }
{ 308 "LALT" }
{ 309 "RMETA" }
{ 310 "LMETA" }
{ 311 "LSUPER" } ! Left "Windows" key
{ 312 "RSUPER" } ! Right "Windows" key
{ 313 "MODE" } ! "Alt Gr" key
{ 314 "COMPOSE" } ! Multi-key compose key
! Miscellaneous function keys
{ 315 "HELP" }
{ 316 "PRINT" }
{ 317 "SYSREQ" }
{ 318 "BREAK" }
{ 319 "MENU" }
{ 320 "POWER" } ! Power Macintosh power key
{ 321 "EURO" } ! Some european keyboards
{ 322 "UNDO" } ! Atari keyboard has Undo
! Add any other keys here
} ;