factor/library/sdl/sdl-keysym.factor

297 lines
7.6 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 ]
[ "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