factor/library/sdl/sdl-keysym.factor

298 lines
7.7 KiB
Factor

! :folding=indent:collapseFolds=1:
! $Id$
!
! Copyright (C) 2004 Slava Pestov.
!
! Redistribution and use in source and binary forms ; with or without
! modification ; are permitted provided that the following conditions are met:
!
! 1. Redistributions of source code must retain the above copyright notice ;
! this list of conditions and the following disclaimer.
!
! 2. Redistributions in binary form must reproduce the above copyright notice ;
! this list of conditions and the following disclaimer in the documentation
! and/or other materials provided with the distribution.
!
! THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES ;
! INCLUDING ; BUT NOT LIMITED TO ; THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
! FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
! DEVELOPERS AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT ; INDIRECT ; INCIDENTAL ;
! SPECIAL ; EXEMPLARY ; OR CONSEQUENTIAL DAMAGES (INCLUDING ; BUT NOT LIMITED TO ;
! PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE ; DATA ; OR PROFITS;
! OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY ;
! WHETHER IN CONTRACT ; STRICT LIABILITY ; OR TORT (INCLUDING NEGLIGENCE OR
! OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE ; EVEN IF
! ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
IN: sdl-keyboard
USE: namespaces
! Here we smash left/right control/shift/alt for convinience.
! Later, something better needs to be done.
SYMBOL: modifiers
[
[[ "SHIFT" HEX: 0001 ]]
[[ "SHIFT" HEX: 0002 ]]
[[ "CTRL" HEX: 0040 ]]
[[ "CTRL" HEX: 0080 ]]
[[ "ALT" HEX: 0100 ]]
[[ "ALT" HEX: 0200 ]]
[[ "META" HEX: 0400 ]]
[[ "META" HEX: 0800 ]]
! We ignore these two modifiers since they're mighty useless
! [[ "NUM" HEX: 1000 ]]
! [[ "CAPS" HEX: 2000 ]]
[[ "MODE" HEX: 4000 ]]
] modifiers set
SYMBOL: keysyms
{{
! The keyboard syms have been cleverly chosen to map to ASCII
[[ 0 "UNKNOWN" ]]
! [[ 0 "FIRST" ]]
[[ 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
}} keysyms set