261 lines
6.6 KiB
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
|
|
} ;
|