1%%  Copyright (c) 2001 Dan Gudmundsson
2%%
3%%  See the file "license.terms" for information on usage and redistribution
4%%  of this file, and for a DISCLAIMER OF ALL WARRANTIES.
5%%
6%%     $Id$
7%%
8%%%----------------------------------------------------------------------
9%%% File    : sdl_keyboard.hrl
10%%% Author  : Dan Gudmundsson <dgud@erix.ericsson.se>
11%%% Purpose : Define the available keys
12%%% Created : 7 Jul 2000 by Dan Gudmundsson <dgud@erix.ericsson.se>
13%%%----------------------------------------------------------------------
14
15-define(SDL_DEFAULT_REPEAT_DELAY,	500).
16-define(SDL_DEFAULT_REPEAT_INTERVAL,	30).
17
18-define(SDLK_UNKNOWN		, 0).
19-define(SDLK_FIRST		, 0).
20-define(SDLK_BACKSPACE		, 8).
21-define(SDLK_TAB		, 9).
22-define(SDLK_CLEAR		, 12).
23-define(SDLK_RETURN		, 13).
24-define(SDLK_PAUSE		, 19).
25-define(SDLK_ESCAPE		, 27).
26-define(SDLK_SPACE		, 32).
27-define(SDLK_EXCLAIM		, 33).
28-define(SDLK_QUOTEDBL		, 34).
29-define(SDLK_HASH		, 35).
30-define(SDLK_DOLLAR		, 36).
31-define(SDLK_AMPERSAND		, 38).
32-define(SDLK_QUOTE		, 39).
33-define(SDLK_LEFTPAREN		, 40).
34-define(SDLK_RIGHTPAREN		, 41).
35-define(SDLK_ASTERISK		, 42).
36-define(SDLK_PLUS		, 43).
37-define(SDLK_COMMA		, 44).
38-define(SDLK_MINUS		, 45).
39-define(SDLK_PERIOD		, 46).
40-define(SDLK_SLASH		, 47).
41-define(SDLK_0			, 48).
42-define(SDLK_1			, 49).
43-define(SDLK_2			, 50).
44-define(SDLK_3			, 51).
45-define(SDLK_4			, 52).
46-define(SDLK_5			, 53).
47-define(SDLK_6			, 54).
48-define(SDLK_7			, 55).
49-define(SDLK_8			, 56).
50-define(SDLK_9			, 57).
51-define(SDLK_COLON		, 58).
52-define(SDLK_SEMICOLON		, 59).
53-define(SDLK_LESS		, 60).
54-define(SDLK_EQUALS		, 61).
55-define(SDLK_GREATER		, 62).
56-define(SDLK_QUESTION		, 63).
57-define(SDLK_AT			, 64).
58%
59%%	   Skip uppercase letters
60%
61-define(SDLK_LEFTBRACKET	, 91).
62-define(SDLK_BACKSLASH		, 92).
63-define(SDLK_RIGHTBRACKET	, 93).
64-define(SDLK_CARET		, 94).
65-define(SDLK_UNDERSCORE		, 95).
66-define(SDLK_BACKQUOTE		, 96).
67-define(SDLK_a			, 97).
68-define(SDLK_b			, 98).
69-define(SDLK_c			, 99).
70-define(SDLK_d			, 100).
71-define(SDLK_e			, 101).
72-define(SDLK_f			, 102).
73-define(SDLK_g			, 103).
74-define(SDLK_h			, 104).
75-define(SDLK_i			, 105).
76-define(SDLK_j			, 106).
77-define(SDLK_k			, 107).
78-define(SDLK_l			, 108).
79-define(SDLK_m			, 109).
80-define(SDLK_n			, 110).
81-define(SDLK_o			, 111).
82-define(SDLK_p			, 112).
83-define(SDLK_q			, 113).
84-define(SDLK_r			, 114).
85-define(SDLK_s			, 115).
86-define(SDLK_t			, 116).
87-define(SDLK_u			, 117).
88-define(SDLK_v			, 118).
89-define(SDLK_w			, 119).
90-define(SDLK_x			, 120).
91-define(SDLK_y			, 121).
92-define(SDLK_z			, 122).
93-define(SDLK_DELETE		, 127).
94%%	 End of ASCII mapped keysyms
95
96%%	 International keyboard syms
97-define(SDLK_WORLD_0		, 160).	 %%	0xA0
98-define(SDLK_WORLD_1		, 161).
99-define(SDLK_WORLD_2		, 162).
100-define(SDLK_WORLD_3		, 163).
101-define(SDLK_WORLD_4		, 164).
102-define(SDLK_WORLD_5		, 165).
103-define(SDLK_WORLD_6		, 166).
104-define(SDLK_WORLD_7		, 167).
105-define(SDLK_WORLD_8		, 168).
106-define(SDLK_WORLD_9		, 169).
107-define(SDLK_WORLD_10		, 170).
108-define(SDLK_WORLD_11		, 171).
109-define(SDLK_WORLD_12		, 172).
110-define(SDLK_WORLD_13		, 173).
111-define(SDLK_WORLD_14		, 174).
112-define(SDLK_WORLD_15		, 175).
113-define(SDLK_WORLD_16		, 176).
114-define(SDLK_WORLD_17		, 177).
115-define(SDLK_WORLD_18		, 178).
116-define(SDLK_WORLD_19		, 179).
117-define(SDLK_WORLD_20		, 180).
118-define(SDLK_WORLD_21		, 181).
119-define(SDLK_WORLD_22		, 182).
120-define(SDLK_WORLD_23		, 183).
121-define(SDLK_WORLD_24		, 184).
122-define(SDLK_WORLD_25		, 185).
123-define(SDLK_WORLD_26		, 186).
124-define(SDLK_WORLD_27		, 187).
125-define(SDLK_WORLD_28		, 188).
126-define(SDLK_WORLD_29		, 189).
127-define(SDLK_WORLD_30		, 190).
128-define(SDLK_WORLD_31		, 191).
129-define(SDLK_WORLD_32		, 192).
130-define(SDLK_WORLD_33		, 193).
131-define(SDLK_WORLD_34		, 194).
132-define(SDLK_WORLD_35		, 195).
133-define(SDLK_WORLD_36		, 196).
134-define(SDLK_WORLD_37		, 197).
135-define(SDLK_WORLD_38		, 198).
136-define(SDLK_WORLD_39		, 199).
137-define(SDLK_WORLD_40		, 200).
138-define(SDLK_WORLD_41		, 201).
139-define(SDLK_WORLD_42		, 202).
140-define(SDLK_WORLD_43		, 203).
141-define(SDLK_WORLD_44		, 204).
142-define(SDLK_WORLD_45		, 205).
143-define(SDLK_WORLD_46		, 206).
144-define(SDLK_WORLD_47		, 207).
145-define(SDLK_WORLD_48		, 208).
146-define(SDLK_WORLD_49		, 209).
147-define(SDLK_WORLD_50		, 210).
148-define(SDLK_WORLD_51		, 211).
149-define(SDLK_WORLD_52		, 212).
150-define(SDLK_WORLD_53		, 213).
151-define(SDLK_WORLD_54		, 214).
152-define(SDLK_WORLD_55		, 215).
153-define(SDLK_WORLD_56		, 216).
154-define(SDLK_WORLD_57		, 217).
155-define(SDLK_WORLD_58		, 218).
156-define(SDLK_WORLD_59		, 219).
157-define(SDLK_WORLD_60		, 220).
158-define(SDLK_WORLD_61		, 221).
159-define(SDLK_WORLD_62		, 222).
160-define(SDLK_WORLD_63		, 223).
161-define(SDLK_WORLD_64		, 224).
162-define(SDLK_WORLD_65		, 225).
163-define(SDLK_WORLD_66		, 226).
164-define(SDLK_WORLD_67		, 227).
165-define(SDLK_WORLD_68		, 228).
166-define(SDLK_WORLD_69		, 229).
167-define(SDLK_WORLD_70		, 230).
168-define(SDLK_WORLD_71		, 231).
169-define(SDLK_WORLD_72		, 232).
170-define(SDLK_WORLD_73		, 233).
171-define(SDLK_WORLD_74		, 234).
172-define(SDLK_WORLD_75		, 235).
173-define(SDLK_WORLD_76		, 236).
174-define(SDLK_WORLD_77		, 237).
175-define(SDLK_WORLD_78		, 238).
176-define(SDLK_WORLD_79		, 239).
177-define(SDLK_WORLD_80		, 240).
178-define(SDLK_WORLD_81		, 241).
179-define(SDLK_WORLD_82		, 242).
180-define(SDLK_WORLD_83		, 243).
181-define(SDLK_WORLD_84		, 244).
182-define(SDLK_WORLD_85		, 245).
183-define(SDLK_WORLD_86		, 246).
184-define(SDLK_WORLD_87		, 247).
185-define(SDLK_WORLD_88		, 248).
186-define(SDLK_WORLD_89		, 249).
187-define(SDLK_WORLD_90		, 250).
188-define(SDLK_WORLD_91		, 251).
189-define(SDLK_WORLD_92		, 252).
190-define(SDLK_WORLD_93		, 253).
191-define(SDLK_WORLD_94		, 254).
192-define(SDLK_WORLD_95		, 255).	%% 0xFF
193
194%%	 Numeric keypad
195-define(SDLK_KP0		, 256).
196-define(SDLK_KP1		, 257).
197-define(SDLK_KP2		, 258).
198-define(SDLK_KP3		, 259).
199-define(SDLK_KP4		, 260).
200-define(SDLK_KP5		, 261).
201-define(SDLK_KP6		, 262).
202-define(SDLK_KP7		, 263).
203-define(SDLK_KP8		, 264).
204-define(SDLK_KP9		, 265).
205-define(SDLK_KP_PERIOD		, 266).
206-define(SDLK_KP_DIVIDE		, 267).
207-define(SDLK_KP_MULTIPLY	, 268).
208-define(SDLK_KP_MINUS		, 269).
209-define(SDLK_KP_PLUS		, 270).
210-define(SDLK_KP_ENTER		, 271).
211-define(SDLK_KP_EQUALS		, 272).
212
213%%	 Arrows + Home/End pad
214-define(SDLK_UP			, 273).
215-define(SDLK_DOWN		, 274).
216-define(SDLK_RIGHT		, 275).
217-define(SDLK_LEFT		, 276).
218-define(SDLK_INSERT		, 277).
219-define(SDLK_HOME		, 278).
220-define(SDLK_END		, 279).
221-define(SDLK_PAGEUP		, 280).
222-define(SDLK_PAGEDOWN		, 281).
223
224%%	 Function keys
225-define(SDLK_F1			, 282).
226-define(SDLK_F2			, 283).
227-define(SDLK_F3			, 284).
228-define(SDLK_F4			, 285).
229-define(SDLK_F5			, 286).
230-define(SDLK_F6			, 287).
231-define(SDLK_F7			, 288).
232-define(SDLK_F8			, 289).
233-define(SDLK_F9			, 290).
234-define(SDLK_F10		, 291).
235-define(SDLK_F11		, 292).
236-define(SDLK_F12		, 293).
237-define(SDLK_F13		, 294).
238-define(SDLK_F14		, 295).
239-define(SDLK_F15		, 296).
240
241%%	 Key state modifier keys
242-define(SDLK_NUMLOCK		, 300).
243-define(SDLK_CAPSLOCK		, 301).
244-define(SDLK_SCROLLOCK		, 302).
245-define(SDLK_RSHIFT		, 303).
246-define(SDLK_LSHIFT		, 304).
247-define(SDLK_RCTRL		, 305).
248-define(SDLK_LCTRL		, 306).
249-define(SDLK_RALT		, 307).
250-define(SDLK_LALT		, 308).
251-define(SDLK_RMETA		, 309).
252-define(SDLK_LMETA		, 310).
253-define(SDLK_LSUPER		, 311).	%%	 Left "Windows" key .
254-define(SDLK_RSUPER		, 312).	%%	 Right "Windows" key .
255-define(SDLK_MODE		, 313).	%%	 "Alt Gr" key .
256
257%%	 Miscellaneous function keys
258-define(SDLK_HELP		, 315).
259-define(SDLK_PRINT		, 316).
260-define(SDLK_SYSREQ		, 317).
261-define(SDLK_BREAK		, 318).
262-define(SDLK_MENU		, 319).
263-define(SDLK_POWER		, 320).	%%	 Power Macintosh power key .
264-define(SDLK_EURO		, 321). %%	 Some european keyboards .
265
266%%% /* Enumeration of valid key mods (possibly OR'd together) */
267-define(KMOD_NONE     , 16#0000).
268-define(KMOD_LSHIFT   , 16#0001).
269-define(KMOD_RSHIFT   , 16#0002).
270-define(KMOD_LCTRL    , 16#0040).
271-define(KMOD_RCTRL    , 16#0080).
272-define(KMOD_LALT     , 16#0100).
273-define(KMOD_RALT     , 16#0200).
274-define(KMOD_LMETA    , 16#0400).
275-define(KMOD_RMETA    , 16#0800).
276-define(KMOD_NUM      , 16#1000).
277-define(KMOD_CAPS     , 16#2000).
278-define(KMOD_MODE     , 16#4000).
279-define(KMOD_RESERVED , 16#8000).
280-define(KMOD_CTRL,      (?KMOD_LCTRL  bor ?KMOD_RCTRL)).
281-define(KMOD_SHIFT,     (?KMOD_LSHIFT bor ?KMOD_RSHIFT)).
282-define(KMOD_ALT,       (?KMOD_LALT   bor ?KMOD_RALT)).
283-define(KMOD_META,      (?KMOD_LMETA  bor ?KMOD_RMETA)).
284
285