From efda3deaecc922a2a57c32f351394f5397935734 Mon Sep 17 00:00:00 2001 From: Matthias Date: Fri, 27 Jan 2023 16:41:49 +0100 Subject: [PATCH 01/24] Change TSDL_ScanCode from DWord to cint --- units/sdlscancode.inc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/units/sdlscancode.inc b/units/sdlscancode.inc index 6f1ea1aa..16fb0fb6 100644 --- a/units/sdlscancode.inc +++ b/units/sdlscancode.inc @@ -12,7 +12,8 @@ *} type PSDL_ScanCode = ^TSDL_ScanCode; - TSDL_ScanCode = type DWord; + TSDL_ScanCode = type cint; + const SDL_SCANCODE_UNKNOWN = TSDL_ScanCode(0); From 7ca8b4b756786b3c6da99a4cfe6f4b2aec755cbf Mon Sep 17 00:00:00 2001 From: Matthias Date: Fri, 27 Jan 2023 16:52:24 +0100 Subject: [PATCH 02/24] Update enum hint --- CHEATSHEET.md | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/CHEATSHEET.md b/CHEATSHEET.md index 066739f4..e9f68a33 100644 --- a/CHEATSHEET.md +++ b/CHEATSHEET.md @@ -70,8 +70,14 @@ const Hint 1: C enums start at 0 if no explicit value is set. -Hint 2: The type should be Word if only unsigned values are possible. Otherwise -it should be Integer. +Hint 2: The type should always be cint. Most C compilers have the enum elements +> In C, each enumeration constant has type int and each enumeration type +> is compatible with some integer type. (The integer types include all three +> character types–plain, signed, and unsigned.) The choice of compatible +> type is implementation-defined. The C standard grants the freedom to +> use different integer types to represent different enumeration types, +> but most compilers just use int to represent all enumeration types. +Ref.: [https://www.embedded.com/enumerations-are-integers-except-when-theyre-not/](https://www.embedded.com/enumerations-are-integers-except-when-theyre-not/) Hint 3: Do not translate C enums to Pascal enums. C enums are handled like plain integers which will make bitwise operations (e. g. in macros) possible From b34337784a275734b9f8a4d597521e200d55104f Mon Sep 17 00:00:00 2001 From: Matthias Date: Fri, 27 Jan 2023 16:56:22 +0100 Subject: [PATCH 03/24] Update link in comment --- units/sdlscancode.inc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/units/sdlscancode.inc b/units/sdlscancode.inc index 16fb0fb6..8eed6421 100644 --- a/units/sdlscancode.inc +++ b/units/sdlscancode.inc @@ -8,7 +8,7 @@ * SDL_Event structure. * * The values in this enumeration are based on the USB usage page standard: - * http://www.usb.org/developers/devclass_docs/Hut1_12v2.pdf + * https://www.usb.org/sites/default/files/documents/hut1_12v2.pdf *} type PSDL_ScanCode = ^TSDL_ScanCode; From 717b910ab1ebaff6a327b41547ceb4b1298ef524 Mon Sep 17 00:00:00 2001 From: Matthias Date: Fri, 27 Jan 2023 17:02:42 +0100 Subject: [PATCH 04/24] add comments for AC keys --- units/sdlscancode.inc | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/units/sdlscancode.inc b/units/sdlscancode.inc index 8eed6421..9b4b83d4 100644 --- a/units/sdlscancode.inc +++ b/units/sdlscancode.inc @@ -197,16 +197,16 @@ const SDL_SCANCODE_F23 = TSDL_ScanCode(114); SDL_SCANCODE_F24 = TSDL_ScanCode(115); SDL_SCANCODE_EXECUTE = TSDL_ScanCode(116); - SDL_SCANCODE_HELP = TSDL_ScanCode(117); - SDL_SCANCODE_MENU = TSDL_ScanCode(118); + SDL_SCANCODE_HELP = TSDL_ScanCode(117); { AL Integrated Help Center } + SDL_SCANCODE_MENU = TSDL_ScanCode(118); { Menu (show menu) } SDL_SCANCODE_SELECT = TSDL_ScanCode(119); - SDL_SCANCODE_STOP = TSDL_ScanCode(120); - SDL_SCANCODE_AGAIN = TSDL_ScanCode(121); {**< redo *} - SDL_SCANCODE_UNDO = TSDL_ScanCode(122); - SDL_SCANCODE_CUT = TSDL_ScanCode(123); - SDL_SCANCODE_COPY = TSDL_ScanCode(124); - SDL_SCANCODE_PASTE = TSDL_ScanCode(125); - SDL_SCANCODE_FIND = TSDL_ScanCode(126); + SDL_SCANCODE_STOP = TSDL_ScanCode(120); { AC Stop } + SDL_SCANCODE_AGAIN = TSDL_ScanCode(121); { AC Redo/Repeat } + SDL_SCANCODE_UNDO = TSDL_ScanCode(122); { AC Undo } + SDL_SCANCODE_CUT = TSDL_ScanCode(123); { AC Cut } + SDL_SCANCODE_COPY = TSDL_ScanCode(124); { AC Copy } + SDL_SCANCODE_PASTE = TSDL_ScanCode(125); { AC Paste } + SDL_SCANCODE_FIND = TSDL_ScanCode(126); { AC Find } SDL_SCANCODE_MUTE = TSDL_ScanCode(127); SDL_SCANCODE_VOLUMEUP = TSDL_ScanCode(128); SDL_SCANCODE_VOLUMEDOWN = TSDL_ScanCode(129); From 8c1af931f37d77aa108d31eee20d1e2f169de4c2 Mon Sep 17 00:00:00 2001 From: Matthias Date: Fri, 27 Jan 2023 17:04:09 +0100 Subject: [PATCH 05/24] update a key comment --- units/sdlscancode.inc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/units/sdlscancode.inc b/units/sdlscancode.inc index 9b4b83d4..5524caf8 100644 --- a/units/sdlscancode.inc +++ b/units/sdlscancode.inc @@ -217,7 +217,8 @@ const SDL_SCANCODE_KP_COMMA = TSDL_ScanCode(133); SDL_SCANCODE_KP_EQUALSAS400 = TSDL_ScanCode(134); - SDL_SCANCODE_INTERNATIONAL1 = TSDL_ScanCode(135); {**< used on Asian keyboards; see footnotes in USB doc *} + SDL_SCANCODE_INTERNATIONAL1 = TSDL_ScanCode(135); {**< used on Asian keyboards; see + footnotes in USB doc *} SDL_SCANCODE_INTERNATIONAL2 = TSDL_ScanCode(136); SDL_SCANCODE_INTERNATIONAL3 = TSDL_ScanCode(137); {**< Yen *} SDL_SCANCODE_INTERNATIONAL4 = TSDL_ScanCode(138); From 0006ac8cc491d44a8ab7d552f15c6413773e1ef3 Mon Sep 17 00:00:00 2001 From: Matthias Date: Fri, 27 Jan 2023 17:08:54 +0100 Subject: [PATCH 06/24] Replace two accidental (dangerous) curly brackets in comments --- units/sdlscancode.inc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/units/sdlscancode.inc b/units/sdlscancode.inc index 5524caf8..94989cb8 100644 --- a/units/sdlscancode.inc +++ b/units/sdlscancode.inc @@ -227,11 +227,11 @@ const SDL_SCANCODE_INTERNATIONAL7 = TSDL_ScanCode(141); SDL_SCANCODE_INTERNATIONAL8 = TSDL_ScanCode(142); SDL_SCANCODE_INTERNATIONAL9 = TSDL_ScanCode(143); - SDL_SCANCODE_LANG1 = TSDL_ScanCode(144); {**< Hangul{English toggle *} + SDL_SCANCODE_LANG1 = TSDL_ScanCode(144); {**< Hangul/English toggle *} SDL_SCANCODE_LANG2 = TSDL_ScanCode(145); {**< Hanja conversion *} SDL_SCANCODE_LANG3 = TSDL_ScanCode(146); {**< Katakana *} SDL_SCANCODE_LANG4 = TSDL_ScanCode(147); {**< Hiragana *} - SDL_SCANCODE_LANG5 = TSDL_ScanCode(148); {**< Zenkaku{Hankaku *} + SDL_SCANCODE_LANG5 = TSDL_ScanCode(148); {**< Zenkaku/Hankaku *} SDL_SCANCODE_LANG6 = TSDL_ScanCode(149); {**< reserved *} SDL_SCANCODE_LANG7 = TSDL_ScanCode(150); {**< reserved *} SDL_SCANCODE_LANG8 = TSDL_ScanCode(151); {**< reserved *} From 2ad4a63d0e03ec723b5653ce293004eb0e16b9a0 Mon Sep 17 00:00:00 2001 From: Matthias Date: Fri, 27 Jan 2023 17:09:39 +0100 Subject: [PATCH 07/24] Add a key comment --- units/sdlscancode.inc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/units/sdlscancode.inc b/units/sdlscancode.inc index 94989cb8..91a1d17b 100644 --- a/units/sdlscancode.inc +++ b/units/sdlscancode.inc @@ -239,7 +239,7 @@ const SDL_SCANCODE_ALTERASE = TSDL_ScanCode(153); {**< Erase-Eaze *} SDL_SCANCODE_SYSREQ = TSDL_ScanCode(154); - SDL_SCANCODE_CANCEL = TSDL_ScanCode(155); + SDL_SCANCODE_CANCEL = TSDL_ScanCode(155); { AC Cancel } SDL_SCANCODE_CLEAR = TSDL_ScanCode(156); SDL_SCANCODE_PRIOR = TSDL_ScanCode(157); SDL_SCANCODE_RETURN2 = TSDL_ScanCode(158); From 21ff6095fe1b28860899b1e43658de618003901e Mon Sep 17 00:00:00 2001 From: Matthias Date: Fri, 27 Jan 2023 17:12:41 +0100 Subject: [PATCH 08/24] Update comment of 0x0C block --- units/sdlscancode.inc | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/units/sdlscancode.inc b/units/sdlscancode.inc index 91a1d17b..300c98e7 100644 --- a/units/sdlscancode.inc +++ b/units/sdlscancode.inc @@ -314,9 +314,15 @@ const {*Usage page $07*} {** - * Usage page $0C - * - * These values are mapped from usage page $0C (USB consumer page). + * \name Usage page 0x0C + * + * These values are mapped from usage page 0x0C (USB consumer page). + * See https://usb.org/sites/default/files/hut1_2.pdf + * + * There are way more keys in the spec than we can represent in the + * current scancode range, so pick the ones that commonly come up in + * real world usage. + */ These values are mapped from usage page $0C (USB consumer page). *} SDL_SCANCODE_AUDIONEXT = TSDL_ScanCode(258); From 7438a6901967c845ec50137df59109febad460e9 Mon Sep 17 00:00:00 2001 From: Matthias Date: Fri, 27 Jan 2023 17:21:37 +0100 Subject: [PATCH 09/24] Replace curly bracket in comment --- units/sdlscancode.inc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/units/sdlscancode.inc b/units/sdlscancode.inc index 300c98e7..04cfe172 100644 --- a/units/sdlscancode.inc +++ b/units/sdlscancode.inc @@ -353,8 +353,8 @@ const SDL_SCANCODE_BRIGHTNESSDOWN = TSDL_ScanCode(275); SDL_SCANCODE_BRIGHTNESSUP = TSDL_ScanCode(276); - SDL_SCANCODE_DISPLAYSWITCH = TSDL_ScanCode(277); {**< display mirroring{dual display - switch; video mode switch *} + SDL_SCANCODE_DISPLAYSWITCH = TSDL_ScanCode(277); {**< display mirroring/dual display + switch; video mode switch *} SDL_SCANCODE_KBDILLUMTOGGLE = TSDL_ScanCode(278); SDL_SCANCODE_KBDILLUMDOWN = TSDL_ScanCode(279); SDL_SCANCODE_KBDILLUMUP = TSDL_ScanCode(280); From 89645331a8affb86aacafac08cb14765f2562a4b Mon Sep 17 00:00:00 2001 From: Matthias Date: Fri, 27 Jan 2023 17:22:20 +0100 Subject: [PATCH 10/24] Add a key comment --- units/sdlscancode.inc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/units/sdlscancode.inc b/units/sdlscancode.inc index 04cfe172..3090d41e 100644 --- a/units/sdlscancode.inc +++ b/units/sdlscancode.inc @@ -359,7 +359,7 @@ const SDL_SCANCODE_KBDILLUMDOWN = TSDL_ScanCode(279); SDL_SCANCODE_KBDILLUMUP = TSDL_ScanCode(280); SDL_SCANCODE_EJECT = TSDL_ScanCode(281); - SDL_SCANCODE_SLEEP = TSDL_ScanCode(282); + SDL_SCANCODE_SLEEP = TSDL_ScanCode(282); { SC System Sleep } SDL_SCANCODE_APP1 = TSDL_ScanCode(283); SDL_SCANCODE_APP2 = TSDL_ScanCode(284); From 859f4e4543ef3125ecc859a1996ade88958e5d57 Mon Sep 17 00:00:00 2001 From: Matthias Date: Fri, 27 Jan 2023 17:30:36 +0100 Subject: [PATCH 11/24] Add additional media keys --- units/sdlscancode.inc | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/units/sdlscancode.inc b/units/sdlscancode.inc index 3090d41e..58ccc61c 100644 --- a/units/sdlscancode.inc +++ b/units/sdlscancode.inc @@ -364,7 +364,31 @@ const SDL_SCANCODE_APP1 = TSDL_ScanCode(283); SDL_SCANCODE_APP2 = TSDL_ScanCode(284); - {*Walther keys*} + {** + * \name Usage page 0x0C (additional media keys) + * + * These values are mapped from usage page 0x0C (USB consumer page). + *} + + SDL_SCANCODE_AUDIOREWIND = TSDL_ScanCode(285); + SDL_SCANCODE_AUDIOFASTFORWARD = TSDL_ScanCode(286); + + {** + * \name Mobile keys + * + * These are values that are often used on mobile phones. + *} + + SDL_SCANCODE_SOFTLEFT = TSDL_ScanCode(287); {**< Usually situated below the display on phones and + used as a multi-function feature key for selecting + a software defined function shown on the bottom left + of the display. *} + SDL_SCANCODE_SOFTRIGHT = TSDL_ScanCode(288); {**< Usually situated below the display on phones and + used as a multi-function feature key for selecting + a software defined function shown on the bottom right + of the display. *} + SDL_SCANCODE_CALL = TSDL_ScanCode(289); {**< Used for accepting phone calls. *} + SDL_SCANCODE_ENDCALL = TSDL_ScanCode(290); {**< Used for rejecting phone calls. *} {* Add any other keys here. *} From e1e2402a09b97977e6556dae13f88154ba598d25 Mon Sep 17 00:00:00 2001 From: Matthias Date: Fri, 27 Jan 2023 17:33:41 +0100 Subject: [PATCH 12/24] Type SDL_NUM_SCANCODES --- units/sdlscancode.inc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/units/sdlscancode.inc b/units/sdlscancode.inc index 58ccc61c..4539e40d 100644 --- a/units/sdlscancode.inc +++ b/units/sdlscancode.inc @@ -392,8 +392,8 @@ const {* Add any other keys here. *} - SDL_NUM_SCANCODES = 512; {**< not a key, just marks the number of scancodes - for array bounds *} + SDL_NUM_SCANCODES = TSDL_ScanCode(512); {**< not a key, just marks the number of scancodes + for array bounds *} //from "sdl_keycode.h" From 09438a19415c69cc0db9358624b34c3b73afbac5 Mon Sep 17 00:00:00 2001 From: Matthias Date: Fri, 27 Jan 2023 17:35:32 +0100 Subject: [PATCH 13/24] Remove block-closing comments --- units/sdlscancode.inc | 4 ---- 1 file changed, 4 deletions(-) diff --git a/units/sdlscancode.inc b/units/sdlscancode.inc index 4539e40d..74ff0c85 100644 --- a/units/sdlscancode.inc +++ b/units/sdlscancode.inc @@ -310,8 +310,6 @@ const * by any of the above; but since there's a * special KMOD_MODE for it I'm adding it here *} - - {*Usage page $07*} {** * \name Usage page 0x0C @@ -343,8 +341,6 @@ const SDL_SCANCODE_AC_REFRESH = TSDL_ScanCode(273); SDL_SCANCODE_AC_BOOKMARKS = TSDL_ScanCode(274); - {*Usage page $0C*} - {** * Walther keys * From 4acd01ccd22126e392d89b1141812fa0e3a5d1c0 Mon Sep 17 00:00:00 2001 From: Matthias Date: Fri, 27 Jan 2023 18:17:10 +0100 Subject: [PATCH 14/24] Add version tag 2.26.2 for sdlscancode.inc --- units/sdl2.pas | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/units/sdl2.pas b/units/sdl2.pas index 2d68861b..ebd2ae92 100644 --- a/units/sdl2.pas +++ b/units/sdl2.pas @@ -179,7 +179,7 @@ interface {$I sdlloadso.inc} // 2.24.1 {$I sdlmessagebox.inc} // 2.0.14 {$I sdlrenderer.inc} // 2.0.22 -{$I sdlscancode.inc} +{$I sdlscancode.inc} // 2.26.2 {$I sdlkeyboard.inc} // 2.24.1 {$I sdlmouse.inc} // 2.0.24 {$I sdlguid.inc} // 2.24.0 From bf74667b794b7ad941788c484cd002cdfdcc3464 Mon Sep 17 00:00:00 2001 From: Matthias Date: Fri, 27 Jan 2023 18:27:30 +0100 Subject: [PATCH 15/24] Move SDL_keycode.h part into new separate file sdlkeycode.inc --- units/sdlkeycode.inc | 295 ++++++++++++++++++++++++++++++++++++++++++ units/sdlscancode.inc | 295 ------------------------------------------ 2 files changed, 295 insertions(+), 295 deletions(-) create mode 100644 units/sdlkeycode.inc diff --git a/units/sdlkeycode.inc b/units/sdlkeycode.inc new file mode 100644 index 00000000..d027971a --- /dev/null +++ b/units/sdlkeycode.inc @@ -0,0 +1,295 @@ +//from "sdl_keycode.h" + + {** + * The SDL virtual key representation. + * + * Values of this type are used to represent keyboard keys using the current + * layout of the keyboard. These values include Unicode values representing + * the unmodified character that would be generated by pressing the key, or + * an SDLK_* constant for those keys that do not generate characters. + *} +type + PSDL_KeyCode = ^TSDL_KeyCode; + TSDL_KeyCode = type cint32; + +const + SDLK_SCANCODE_MASK = 1 shl 30; + + SDLK_UNKNOWN = TSDL_KeyCode(0); + + SDLK_RETURN = TSDL_KeyCode(#13); // C: '\r' + SDLK_ESCAPE = TSDL_KeyCode(#27); // C: '\033' + SDLK_BACKSPACE = TSDL_KeyCode(#8); // C: '\b' + SDLK_TAB = TSDL_KeyCode(#9); // C: '\t' + SDLK_SPACE = TSDL_KeyCode(' '); + SDLK_EXCLAIM = TSDL_KeyCode('!'); + SDLK_QUOTEDBL = TSDL_KeyCode('"'); + SDLK_HASH = TSDL_KeyCode('#'); + SDLK_PERCENT = TSDL_KeyCode('%'); + SDLK_DOLLAR = TSDL_KeyCode('$'); + SDLK_AMPERSAND = TSDL_KeyCode('&'); + SDLK_QUOTE = TSDL_KeyCode('\'); + SDLK_LEFTPAREN = TSDL_KeyCode('('); + SDLK_RIGHTPAREN = TSDL_KeyCode(')'); + SDLK_ASTERISK = TSDL_KeyCode('*'); + SDLK_PLUS = TSDL_KeyCode('+'); + SDLK_COMMA = TSDL_KeyCode(','); + SDLK_MINUS = TSDL_KeyCode('-'); + SDLK_PERIOD = TSDL_KeyCode('.'); + SDLK_SLASH = TSDL_KeyCode('/'); + SDLK_0 = TSDL_KeyCode('0'); + SDLK_1 = TSDL_KeyCode('1'); + SDLK_2 = TSDL_KeyCode('2'); + SDLK_3 = TSDL_KeyCode('3'); + SDLK_4 = TSDL_KeyCode('4'); + SDLK_5 = TSDL_KeyCode('5'); + SDLK_6 = TSDL_KeyCode('6'); + SDLK_7 = TSDL_KeyCode('7'); + SDLK_8 = TSDL_KeyCode('8'); + SDLK_9 = TSDL_KeyCode('9'); + SDLK_COLON = TSDL_KeyCode(':'); + SDLK_SEMICOLON = TSDL_KeyCode(';'); + SDLK_LESS = TSDL_KeyCode('<'); + SDLK_EQUALS = TSDL_KeyCode('='); + SDLK_GREATER = TSDL_KeyCode('>'); + SDLK_QUESTION = TSDL_KeyCode('?'); + SDLK_AT = TSDL_KeyCode('@'); + {* + Skip uppercase letters + *} + SDLK_LEFTBRACKET = TSDL_KeyCode('['); + SDLK_BACKSLASH = TSDL_KeyCode('\'); + SDLK_RIGHTBRACKET = TSDL_KeyCode(']'); + SDLK_CARET = TSDL_KeyCode('^'); + SDLK_UNDERSCORE = TSDL_KeyCode('_'); + SDLK_BACKQUOTE = TSDL_KeyCode('`'); + SDLK_a = TSDL_KeyCode('a'); + SDLK_b = TSDL_KeyCode('b'); + SDLK_c = TSDL_KeyCode('c'); + SDLK_d = TSDL_KeyCode('d'); + SDLK_e = TSDL_KeyCode('e'); + SDLK_f = TSDL_KeyCode('f'); + SDLK_g = TSDL_KeyCode('g'); + SDLK_h = TSDL_KeyCode('h'); + SDLK_i = TSDL_KeyCode('i'); + SDLK_j = TSDL_KeyCode('j'); + SDLK_k = TSDL_KeyCode('k'); + SDLK_l = TSDL_KeyCode('l'); + SDLK_m = TSDL_KeyCode('m'); + SDLK_n = TSDL_KeyCode('n'); + SDLK_o = TSDL_KeyCode('o'); + SDLK_p = TSDL_KeyCode('p'); + SDLK_q = TSDL_KeyCode('q'); + SDLK_r = TSDL_KeyCode('r'); + SDLK_s = TSDL_KeyCode('s'); + SDLK_t = TSDL_KeyCode('t'); + SDLK_u = TSDL_KeyCode('u'); + SDLK_v = TSDL_KeyCode('v'); + SDLK_w = TSDL_KeyCode('w'); + SDLK_x = TSDL_KeyCode('x'); + SDLK_y = TSDL_KeyCode('y'); + SDLK_z = TSDL_KeyCode('z'); + + SDLK_CAPSLOCK = TSDL_KeyCode(SDL_SCANCODE_CAPSLOCK or SDLK_SCANCODE_MASK); + + SDLK_F1 = TSDL_KeyCode(SDL_SCANCODE_F1 or SDLK_SCANCODE_MASK); + SDLK_F2 = TSDL_KeyCode(SDL_SCANCODE_F2 or SDLK_SCANCODE_MASK); + SDLK_F3 = TSDL_KeyCode(SDL_SCANCODE_F3 or SDLK_SCANCODE_MASK); + SDLK_F4 = TSDL_KeyCode(SDL_SCANCODE_F4 or SDLK_SCANCODE_MASK); + SDLK_F5 = TSDL_KeyCode(SDL_SCANCODE_F5 or SDLK_SCANCODE_MASK); + SDLK_F6 = TSDL_KeyCode(SDL_SCANCODE_F6 or SDLK_SCANCODE_MASK); + SDLK_F7 = TSDL_KeyCode(SDL_SCANCODE_F7 or SDLK_SCANCODE_MASK); + SDLK_F8 = TSDL_KeyCode(SDL_SCANCODE_F8 or SDLK_SCANCODE_MASK); + SDLK_F9 = TSDL_KeyCode(SDL_SCANCODE_F9 or SDLK_SCANCODE_MASK); + SDLK_F10 = TSDL_KeyCode(SDL_SCANCODE_F10 or SDLK_SCANCODE_MASK); + SDLK_F11 = TSDL_KeyCode(SDL_SCANCODE_F11 or SDLK_SCANCODE_MASK); + SDLK_F12 = TSDL_KeyCode(SDL_SCANCODE_F12 or SDLK_SCANCODE_MASK); + + SDLK_PRINTSCREEN = TSDL_KeyCode(SDL_SCANCODE_PRINTSCREEN or SDLK_SCANCODE_MASK); + SDLK_SCROLLLOCK = TSDL_KeyCode(SDL_SCANCODE_SCROLLLOCK or SDLK_SCANCODE_MASK); + SDLK_PAUSE = TSDL_KeyCode(SDL_SCANCODE_PAUSE or SDLK_SCANCODE_MASK); + SDLK_INSERT = TSDL_KeyCode(SDL_SCANCODE_INSERT or SDLK_SCANCODE_MASK); + SDLK_HOME = TSDL_KeyCode(SDL_SCANCODE_HOME or SDLK_SCANCODE_MASK); + SDLK_PAGEUP = TSDL_KeyCode(SDL_SCANCODE_PAGEUP or SDLK_SCANCODE_MASK); + SDLK_DELETE = TSDL_KeyCode(#127); // C: '\177' + SDLK_END = TSDL_KeyCode(SDL_SCANCODE_END or SDLK_SCANCODE_MASK); + SDLK_PAGEDOWN = TSDL_KeyCode(SDL_SCANCODE_PAGEDOWN or SDLK_SCANCODE_MASK); + SDLK_RIGHT = TSDL_KeyCode(SDL_SCANCODE_RIGHT or SDLK_SCANCODE_MASK); + SDLK_LEFT = TSDL_KeyCode(SDL_SCANCODE_LEFT or SDLK_SCANCODE_MASK); + SDLK_DOWN = TSDL_KeyCode(SDL_SCANCODE_DOWN or SDLK_SCANCODE_MASK); + SDLK_UP = TSDL_KeyCode(SDL_SCANCODE_UP or SDLK_SCANCODE_MASK); + + SDLK_NUMLOCKCLEAR = TSDL_KeyCode(SDL_SCANCODE_NUMLOCKCLEAR or SDLK_SCANCODE_MASK); + SDLK_KP_DIVIDE = TSDL_KeyCode(SDL_SCANCODE_KP_DIVIDE or SDLK_SCANCODE_MASK); + SDLK_KP_MULTIPLY = TSDL_KeyCode(SDL_SCANCODE_KP_MULTIPLY or SDLK_SCANCODE_MASK); + SDLK_KP_MINUS = TSDL_KeyCode(SDL_SCANCODE_KP_MINUS or SDLK_SCANCODE_MASK); + SDLK_KP_PLUS = TSDL_KeyCode(SDL_SCANCODE_KP_PLUS or SDLK_SCANCODE_MASK); + SDLK_KP_ENTER = TSDL_KeyCode(SDL_SCANCODE_KP_ENTER or SDLK_SCANCODE_MASK); + SDLK_KP_1 = TSDL_KeyCode(SDL_SCANCODE_KP_1 or SDLK_SCANCODE_MASK); + SDLK_KP_2 = TSDL_KeyCode(SDL_SCANCODE_KP_2 or SDLK_SCANCODE_MASK); + SDLK_KP_3 = TSDL_KeyCode(SDL_SCANCODE_KP_3 or SDLK_SCANCODE_MASK); + SDLK_KP_4 = TSDL_KeyCode(SDL_SCANCODE_KP_4 or SDLK_SCANCODE_MASK); + SDLK_KP_5 = TSDL_KeyCode(SDL_SCANCODE_KP_5 or SDLK_SCANCODE_MASK); + SDLK_KP_6 = TSDL_KeyCode(SDL_SCANCODE_KP_6 or SDLK_SCANCODE_MASK); + SDLK_KP_7 = TSDL_KeyCode(SDL_SCANCODE_KP_7 or SDLK_SCANCODE_MASK); + SDLK_KP_8 = TSDL_KeyCode(SDL_SCANCODE_KP_8 or SDLK_SCANCODE_MASK); + SDLK_KP_9 = TSDL_KeyCode(SDL_SCANCODE_KP_9 or SDLK_SCANCODE_MASK); + SDLK_KP_0 = TSDL_KeyCode(SDL_SCANCODE_KP_0 or SDLK_SCANCODE_MASK); + SDLK_KP_PERIOD = TSDL_KeyCode(SDL_SCANCODE_KP_PERIOD or SDLK_SCANCODE_MASK); + + SDLK_APPLICATION = TSDL_KeyCode(SDL_SCANCODE_APPLICATION or SDLK_SCANCODE_MASK); + SDLK_POWER = TSDL_KeyCode(SDL_SCANCODE_POWER or SDLK_SCANCODE_MASK); + SDLK_KP_EQUALS = TSDL_KeyCode(SDL_SCANCODE_KP_EQUALS or SDLK_SCANCODE_MASK); + SDLK_F13 = TSDL_KeyCode(SDL_SCANCODE_F13 or SDLK_SCANCODE_MASK); + SDLK_F14 = TSDL_KeyCode(SDL_SCANCODE_F14 or SDLK_SCANCODE_MASK); + SDLK_F15 = TSDL_KeyCode(SDL_SCANCODE_F15 or SDLK_SCANCODE_MASK); + SDLK_F16 = TSDL_KeyCode(SDL_SCANCODE_F16 or SDLK_SCANCODE_MASK); + SDLK_F17 = TSDL_KeyCode(SDL_SCANCODE_F17 or SDLK_SCANCODE_MASK); + SDLK_F18 = TSDL_KeyCode(SDL_SCANCODE_F18 or SDLK_SCANCODE_MASK); + SDLK_F19 = TSDL_KeyCode(SDL_SCANCODE_F19 or SDLK_SCANCODE_MASK); + SDLK_F20 = TSDL_KeyCode(SDL_SCANCODE_F20 or SDLK_SCANCODE_MASK); + SDLK_F21 = TSDL_KeyCode(SDL_SCANCODE_F21 or SDLK_SCANCODE_MASK); + SDLK_F22 = TSDL_KeyCode(SDL_SCANCODE_F22 or SDLK_SCANCODE_MASK); + SDLK_F23 = TSDL_KeyCode(SDL_SCANCODE_F23 or SDLK_SCANCODE_MASK); + SDLK_F24 = TSDL_KeyCode(SDL_SCANCODE_F24 or SDLK_SCANCODE_MASK); + SDLK_EXECUTE = TSDL_KeyCode(SDL_SCANCODE_EXECUTE or SDLK_SCANCODE_MASK); + SDLK_HELP = TSDL_KeyCode(SDL_SCANCODE_HELP or SDLK_SCANCODE_MASK); + SDLK_MENU = TSDL_KeyCode(SDL_SCANCODE_MENU or SDLK_SCANCODE_MASK); + SDLK_SELECT = TSDL_KeyCode(SDL_SCANCODE_SELECT or SDLK_SCANCODE_MASK); + SDLK_STOP = TSDL_KeyCode(SDL_SCANCODE_STOP or SDLK_SCANCODE_MASK); + SDLK_AGAIN = TSDL_KeyCode(SDL_SCANCODE_AGAIN or SDLK_SCANCODE_MASK); + SDLK_UNDO = TSDL_KeyCode(SDL_SCANCODE_UNDO or SDLK_SCANCODE_MASK); + SDLK_CUT = TSDL_KeyCode(SDL_SCANCODE_CUT or SDLK_SCANCODE_MASK); + SDLK_COPY = TSDL_KeyCode(SDL_SCANCODE_COPY or SDLK_SCANCODE_MASK); + SDLK_PASTE = TSDL_KeyCode(SDL_SCANCODE_PASTE or SDLK_SCANCODE_MASK); + SDLK_FIND = TSDL_KeyCode(SDL_SCANCODE_FIND or SDLK_SCANCODE_MASK); + SDLK_MUTE = TSDL_KeyCode(SDL_SCANCODE_MUTE or SDLK_SCANCODE_MASK); + SDLK_VOLUMEUP = TSDL_KeyCode(SDL_SCANCODE_VOLUMEUP or SDLK_SCANCODE_MASK); + SDLK_VOLUMEDOWN = TSDL_KeyCode(SDL_SCANCODE_VOLUMEDOWN or SDLK_SCANCODE_MASK); + SDLK_KP_COMMA = TSDL_KeyCode(SDL_SCANCODE_KP_COMMA or SDLK_SCANCODE_MASK); + SDLK_KP_EQUALSAS400 = TSDL_KeyCode(SDL_SCANCODE_KP_EQUALSAS400 or SDLK_SCANCODE_MASK); + + SDLK_ALTERASE = TSDL_KeyCode(SDL_SCANCODE_ALTERASE or SDLK_SCANCODE_MASK); + SDLK_SYSREQ = TSDL_KeyCode(SDL_SCANCODE_SYSREQ or SDLK_SCANCODE_MASK); + SDLK_CANCEL = TSDL_KeyCode(SDL_SCANCODE_CANCEL or SDLK_SCANCODE_MASK); + SDLK_CLEAR = TSDL_KeyCode(SDL_SCANCODE_CLEAR or SDLK_SCANCODE_MASK); + SDLK_PRIOR = TSDL_KeyCode(SDL_SCANCODE_PRIOR or SDLK_SCANCODE_MASK); + SDLK_RETURN2 = TSDL_KeyCode(SDL_SCANCODE_RETURN2 or SDLK_SCANCODE_MASK); + SDLK_SEPARATOR = TSDL_KeyCode(SDL_SCANCODE_SEPARATOR or SDLK_SCANCODE_MASK); + SDLK_OUT = TSDL_KeyCode(SDL_SCANCODE_OUT or SDLK_SCANCODE_MASK); + SDLK_OPER = TSDL_KeyCode(SDL_SCANCODE_OPER or SDLK_SCANCODE_MASK); + SDLK_CLEARAGAIN = TSDL_KeyCode(SDL_SCANCODE_CLEARAGAIN or SDLK_SCANCODE_MASK); + SDLK_CRSEL = TSDL_KeyCode(SDL_SCANCODE_CRSEL or SDLK_SCANCODE_MASK); + SDLK_EXSEL = TSDL_KeyCode(SDL_SCANCODE_EXSEL or SDLK_SCANCODE_MASK); + + SDLK_KP_00 = TSDL_KeyCode(SDL_SCANCODE_KP_00 or SDLK_SCANCODE_MASK); + SDLK_KP_000 = TSDL_KeyCode(SDL_SCANCODE_KP_000 or SDLK_SCANCODE_MASK); + SDLK_THOUSANDSSEPARATOR = TSDL_KeyCode(SDL_SCANCODE_THOUSANDSSEPARATOR or SDLK_SCANCODE_MASK); + SDLK_DECIMALSEPARATOR = TSDL_KeyCode(SDL_SCANCODE_DECIMALSEPARATOR or SDLK_SCANCODE_MASK); + SDLK_CURRENCYUNIT = TSDL_KeyCode(SDL_SCANCODE_CURRENCYUNIT or SDLK_SCANCODE_MASK); + SDLK_CURRENCYSUBUNIT = TSDL_KeyCode(SDL_SCANCODE_CURRENCYSUBUNIT or SDLK_SCANCODE_MASK); + SDLK_KP_LEFTPAREN = TSDL_KeyCode(SDL_SCANCODE_KP_LEFTPAREN or SDLK_SCANCODE_MASK); + SDLK_KP_RIGHTPAREN = TSDL_KeyCode(SDL_SCANCODE_KP_RIGHTPAREN or SDLK_SCANCODE_MASK); + SDLK_KP_LEFTBRACE = TSDL_KeyCode(SDL_SCANCODE_KP_LEFTBRACE or SDLK_SCANCODE_MASK); + SDLK_KP_RIGHTBRACE = TSDL_KeyCode(SDL_SCANCODE_KP_RIGHTBRACE or SDLK_SCANCODE_MASK); + SDLK_KP_TAB = TSDL_KeyCode(SDL_SCANCODE_KP_TAB or SDLK_SCANCODE_MASK); + SDLK_KP_BACKSPACE = TSDL_KeyCode(SDL_SCANCODE_KP_BACKSPACE or SDLK_SCANCODE_MASK); + SDLK_KP_A = TSDL_KeyCode(SDL_SCANCODE_KP_A or SDLK_SCANCODE_MASK); + SDLK_KP_B = TSDL_KeyCode(SDL_SCANCODE_KP_B or SDLK_SCANCODE_MASK); + SDLK_KP_C = TSDL_KeyCode(SDL_SCANCODE_KP_C or SDLK_SCANCODE_MASK); + SDLK_KP_D = TSDL_KeyCode(SDL_SCANCODE_KP_D or SDLK_SCANCODE_MASK); + SDLK_KP_E = TSDL_KeyCode(SDL_SCANCODE_KP_E or SDLK_SCANCODE_MASK); + SDLK_KP_F = TSDL_KeyCode(SDL_SCANCODE_KP_F or SDLK_SCANCODE_MASK); + SDLK_KP_XOR = TSDL_KeyCode(SDL_SCANCODE_KP_XOR or SDLK_SCANCODE_MASK); + SDLK_KP_POWER = TSDL_KeyCode(SDL_SCANCODE_KP_POWER or SDLK_SCANCODE_MASK); + SDLK_KP_PERCENT = TSDL_KeyCode(SDL_SCANCODE_KP_PERCENT or SDLK_SCANCODE_MASK); + SDLK_KP_LESS = TSDL_KeyCode(SDL_SCANCODE_KP_LESS or SDLK_SCANCODE_MASK); + SDLK_KP_GREATER = TSDL_KeyCode(SDL_SCANCODE_KP_GREATER or SDLK_SCANCODE_MASK); + SDLK_KP_AMPERSAND = TSDL_KeyCode(SDL_SCANCODE_KP_AMPERSAND or SDLK_SCANCODE_MASK); + SDLK_KP_DBLAMPERSAND = TSDL_KeyCode(SDL_SCANCODE_KP_DBLAMPERSAND or SDLK_SCANCODE_MASK); + SDLK_KP_VERTICALBAR = TSDL_KeyCode(SDL_SCANCODE_KP_VERTICALBAR or SDLK_SCANCODE_MASK); + SDLK_KP_DBLVERTICALBAR = TSDL_KeyCode(SDL_SCANCODE_KP_DBLVERTICALBAR or SDLK_SCANCODE_MASK); + SDLK_KP_COLON = TSDL_KeyCode(SDL_SCANCODE_KP_COLON or SDLK_SCANCODE_MASK); + SDLK_KP_HASH = TSDL_KeyCode(SDL_SCANCODE_KP_HASH or SDLK_SCANCODE_MASK); + SDLK_KP_SPACE = TSDL_KeyCode(SDL_SCANCODE_KP_SPACE or SDLK_SCANCODE_MASK); + SDLK_KP_AT = TSDL_KeyCode(SDL_SCANCODE_KP_AT or SDLK_SCANCODE_MASK); + SDLK_KP_EXCLAM = TSDL_KeyCode(SDL_SCANCODE_KP_EXCLAM or SDLK_SCANCODE_MASK); + SDLK_KP_MEMSTORE = TSDL_KeyCode(SDL_SCANCODE_KP_MEMSTORE or SDLK_SCANCODE_MASK); + SDLK_KP_MEMRECALL = TSDL_KeyCode(SDL_SCANCODE_KP_MEMRECALL or SDLK_SCANCODE_MASK); + SDLK_KP_MEMCLEAR = TSDL_KeyCode(SDL_SCANCODE_KP_MEMCLEAR or SDLK_SCANCODE_MASK); + SDLK_KP_MEMADD = TSDL_KeyCode(SDL_SCANCODE_KP_MEMADD or SDLK_SCANCODE_MASK); + SDLK_KP_MEMSUBTRACT = TSDL_KeyCode(SDL_SCANCODE_KP_MEMSUBTRACT or SDLK_SCANCODE_MASK); + SDLK_KP_MEMMULTIPLY = TSDL_KeyCode(SDL_SCANCODE_KP_MEMMULTIPLY or SDLK_SCANCODE_MASK); + SDLK_KP_MEMDIVIDE = TSDL_KeyCode(SDL_SCANCODE_KP_MEMDIVIDE or SDLK_SCANCODE_MASK); + SDLK_KP_PLUSMINUS = TSDL_KeyCode(SDL_SCANCODE_KP_PLUSMINUS or SDLK_SCANCODE_MASK); + SDLK_KP_CLEAR = TSDL_KeyCode(SDL_SCANCODE_KP_CLEAR or SDLK_SCANCODE_MASK); + SDLK_KP_CLEARENTRY = TSDL_KeyCode(SDL_SCANCODE_KP_CLEARENTRY or SDLK_SCANCODE_MASK); + SDLK_KP_BINARY = TSDL_KeyCode(SDL_SCANCODE_KP_BINARY or SDLK_SCANCODE_MASK); + SDLK_KP_OCTAL = TSDL_KeyCode(SDL_SCANCODE_KP_OCTAL or SDLK_SCANCODE_MASK); + SDLK_KP_DECIMAL = TSDL_KeyCode(SDL_SCANCODE_KP_DECIMAL or SDLK_SCANCODE_MASK); + SDLK_KP_HEXADECIMAL = TSDL_KeyCode(SDL_SCANCODE_KP_HEXADECIMAL or SDLK_SCANCODE_MASK); + + SDLK_LCTRL = TSDL_KeyCode(SDL_SCANCODE_LCTRL or SDLK_SCANCODE_MASK); + SDLK_LSHIFT = TSDL_KeyCode(SDL_SCANCODE_LSHIFT or SDLK_SCANCODE_MASK); + SDLK_LALT = TSDL_KeyCode(SDL_SCANCODE_LALT or SDLK_SCANCODE_MASK); + SDLK_LGUI = TSDL_KeyCode(SDL_SCANCODE_LGUI or SDLK_SCANCODE_MASK); + SDLK_RCTRL = TSDL_KeyCode(SDL_SCANCODE_RCTRL or SDLK_SCANCODE_MASK); + SDLK_RSHIFT = TSDL_KeyCode(SDL_SCANCODE_RSHIFT or SDLK_SCANCODE_MASK); + SDLK_RALT = TSDL_KeyCode(SDL_SCANCODE_RALT or SDLK_SCANCODE_MASK); + SDLK_RGUI = TSDL_KeyCode(SDL_SCANCODE_RGUI or SDLK_SCANCODE_MASK); + + SDLK_MODE = TSDL_KeyCode(SDL_SCANCODE_MODE or SDLK_SCANCODE_MASK); + + SDLK_AUDIONEXT = TSDL_KeyCode(SDL_SCANCODE_AUDIONEXT or SDLK_SCANCODE_MASK); + SDLK_AUDIOPREV = TSDL_KeyCode(SDL_SCANCODE_AUDIOPREV or SDLK_SCANCODE_MASK); + SDLK_AUDIOSTOP = TSDL_KeyCode(SDL_SCANCODE_AUDIOSTOP or SDLK_SCANCODE_MASK); + SDLK_AUDIOPLAY = TSDL_KeyCode(SDL_SCANCODE_AUDIOPLAY or SDLK_SCANCODE_MASK); + SDLK_AUDIOMUTE = TSDL_KeyCode(SDL_SCANCODE_AUDIOMUTE or SDLK_SCANCODE_MASK); + SDLK_MEDIASELECT = TSDL_KeyCode(SDL_SCANCODE_MEDIASELECT or SDLK_SCANCODE_MASK); + SDLK_WWW = TSDL_KeyCode(SDL_SCANCODE_WWW or SDLK_SCANCODE_MASK); + SDLK_MAIL = TSDL_KeyCode(SDL_SCANCODE_MAIL or SDLK_SCANCODE_MASK); + SDLK_CALCULATOR = TSDL_KeyCode(SDL_SCANCODE_CALCULATOR or SDLK_SCANCODE_MASK); + SDLK_COMPUTER = TSDL_KeyCode(SDL_SCANCODE_COMPUTER or SDLK_SCANCODE_MASK); + SDLK_AC_SEARCH = TSDL_KeyCode(SDL_SCANCODE_AC_SEARCH or SDLK_SCANCODE_MASK); + SDLK_AC_HOME = TSDL_KeyCode(SDL_SCANCODE_AC_HOME or SDLK_SCANCODE_MASK); + SDLK_AC_BACK = TSDL_KeyCode(SDL_SCANCODE_AC_BACK or SDLK_SCANCODE_MASK); + SDLK_AC_FORWARD = TSDL_KeyCode(SDL_SCANCODE_AC_FORWARD or SDLK_SCANCODE_MASK); + SDLK_AC_STOP = TSDL_KeyCode(SDL_SCANCODE_AC_STOP or SDLK_SCANCODE_MASK); + SDLK_AC_REFRESH = TSDL_KeyCode(SDL_SCANCODE_AC_REFRESH or SDLK_SCANCODE_MASK); + SDLK_AC_BOOKMARKS = TSDL_KeyCode(SDL_SCANCODE_AC_BOOKMARKS or SDLK_SCANCODE_MASK); + + SDLK_BRIGHTNESSDOWN = TSDL_KeyCode(SDL_SCANCODE_BRIGHTNESSDOWN or SDLK_SCANCODE_MASK); + SDLK_BRIGHTNESSUP = TSDL_KeyCode(SDL_SCANCODE_BRIGHTNESSUP or SDLK_SCANCODE_MASK); + SDLK_DISPLAYSWITCH = TSDL_KeyCode(SDL_SCANCODE_DISPLAYSWITCH or SDLK_SCANCODE_MASK); + SDLK_KBDILLUMTOGGLE = TSDL_KeyCode(SDL_SCANCODE_KBDILLUMTOGGLE or SDLK_SCANCODE_MASK); + SDLK_KBDILLUMDOWN = TSDL_KeyCode(SDL_SCANCODE_KBDILLUMDOWN or SDLK_SCANCODE_MASK); + SDLK_KBDILLUMUP = TSDL_KeyCode(SDL_SCANCODE_KBDILLUMUP or SDLK_SCANCODE_MASK); + SDLK_EJECT = TSDL_KeyCode(SDL_SCANCODE_EJECT or SDLK_SCANCODE_MASK); + SDLK_SLEEP = TSDL_KeyCode(SDL_SCANCODE_SLEEP or SDLK_SCANCODE_MASK); + + {** + * Enumeration of valid key mods (possibly OR'd together). + *} +type + PSDL_KeyMod = ^TSDL_KeyMod; + TSDL_KeyMod = type Word; + +const + KMOD_NONE = TSDL_KeyMod($0000); + KMOD_LSHIFT = TSDL_KeyMod($0001); + KMOD_RSHIFT = TSDL_KeyMod($0002); + KMOD_LCTRL = TSDL_KeyMod($0040); + KMOD_RCTRL = TSDL_KeyMod($0080); + KMOD_LALT = TSDL_KeyMod($0100); + KMOD_RALT = TSDL_KeyMod($0200); + KMOD_LGUI = TSDL_KeyMod($0400); + KMOD_RGUI = TSDL_KeyMod($0800); + KMOD_NUM = TSDL_KeyMod($1000); + KMOD_CAPS = TSDL_KeyMod($2000); + KMOD_MODE = TSDL_KeyMod($4000); + KMOD_RESERVED = TSDL_KeyMod($8000); + + KMOD_CTRL = KMOD_LCTRL or KMOD_RCTRL; + KMOD_SHIFT = KMOD_LSHIFT or KMOD_RSHIFT; + KMOD_ALT = KMOD_LALT or KMOD_RALT; + KMOD_GUI = KMOD_LGUI or KMOD_RGUI; diff --git a/units/sdlscancode.inc b/units/sdlscancode.inc index 74ff0c85..50b41af6 100644 --- a/units/sdlscancode.inc +++ b/units/sdlscancode.inc @@ -391,298 +391,3 @@ const SDL_NUM_SCANCODES = TSDL_ScanCode(512); {**< not a key, just marks the number of scancodes for array bounds *} - //from "sdl_keycode.h" - - {** - * The SDL virtual key representation. - * - * Values of this type are used to represent keyboard keys using the current - * layout of the keyboard. These values include Unicode values representing - * the unmodified character that would be generated by pressing the key, or - * an SDLK_* constant for those keys that do not generate characters. - *} -type - PSDL_KeyCode = ^TSDL_KeyCode; - TSDL_KeyCode = type cint32; - -const - SDLK_SCANCODE_MASK = 1 shl 30; - - SDLK_UNKNOWN = TSDL_KeyCode(0); - - SDLK_RETURN = TSDL_KeyCode(#13); // C: '\r' - SDLK_ESCAPE = TSDL_KeyCode(#27); // C: '\033' - SDLK_BACKSPACE = TSDL_KeyCode(#8); // C: '\b' - SDLK_TAB = TSDL_KeyCode(#9); // C: '\t' - SDLK_SPACE = TSDL_KeyCode(' '); - SDLK_EXCLAIM = TSDL_KeyCode('!'); - SDLK_QUOTEDBL = TSDL_KeyCode('"'); - SDLK_HASH = TSDL_KeyCode('#'); - SDLK_PERCENT = TSDL_KeyCode('%'); - SDLK_DOLLAR = TSDL_KeyCode('$'); - SDLK_AMPERSAND = TSDL_KeyCode('&'); - SDLK_QUOTE = TSDL_KeyCode('\'); - SDLK_LEFTPAREN = TSDL_KeyCode('('); - SDLK_RIGHTPAREN = TSDL_KeyCode(')'); - SDLK_ASTERISK = TSDL_KeyCode('*'); - SDLK_PLUS = TSDL_KeyCode('+'); - SDLK_COMMA = TSDL_KeyCode(','); - SDLK_MINUS = TSDL_KeyCode('-'); - SDLK_PERIOD = TSDL_KeyCode('.'); - SDLK_SLASH = TSDL_KeyCode('/'); - SDLK_0 = TSDL_KeyCode('0'); - SDLK_1 = TSDL_KeyCode('1'); - SDLK_2 = TSDL_KeyCode('2'); - SDLK_3 = TSDL_KeyCode('3'); - SDLK_4 = TSDL_KeyCode('4'); - SDLK_5 = TSDL_KeyCode('5'); - SDLK_6 = TSDL_KeyCode('6'); - SDLK_7 = TSDL_KeyCode('7'); - SDLK_8 = TSDL_KeyCode('8'); - SDLK_9 = TSDL_KeyCode('9'); - SDLK_COLON = TSDL_KeyCode(':'); - SDLK_SEMICOLON = TSDL_KeyCode(';'); - SDLK_LESS = TSDL_KeyCode('<'); - SDLK_EQUALS = TSDL_KeyCode('='); - SDLK_GREATER = TSDL_KeyCode('>'); - SDLK_QUESTION = TSDL_KeyCode('?'); - SDLK_AT = TSDL_KeyCode('@'); - {* - Skip uppercase letters - *} - SDLK_LEFTBRACKET = TSDL_KeyCode('['); - SDLK_BACKSLASH = TSDL_KeyCode('\'); - SDLK_RIGHTBRACKET = TSDL_KeyCode(']'); - SDLK_CARET = TSDL_KeyCode('^'); - SDLK_UNDERSCORE = TSDL_KeyCode('_'); - SDLK_BACKQUOTE = TSDL_KeyCode('`'); - SDLK_a = TSDL_KeyCode('a'); - SDLK_b = TSDL_KeyCode('b'); - SDLK_c = TSDL_KeyCode('c'); - SDLK_d = TSDL_KeyCode('d'); - SDLK_e = TSDL_KeyCode('e'); - SDLK_f = TSDL_KeyCode('f'); - SDLK_g = TSDL_KeyCode('g'); - SDLK_h = TSDL_KeyCode('h'); - SDLK_i = TSDL_KeyCode('i'); - SDLK_j = TSDL_KeyCode('j'); - SDLK_k = TSDL_KeyCode('k'); - SDLK_l = TSDL_KeyCode('l'); - SDLK_m = TSDL_KeyCode('m'); - SDLK_n = TSDL_KeyCode('n'); - SDLK_o = TSDL_KeyCode('o'); - SDLK_p = TSDL_KeyCode('p'); - SDLK_q = TSDL_KeyCode('q'); - SDLK_r = TSDL_KeyCode('r'); - SDLK_s = TSDL_KeyCode('s'); - SDLK_t = TSDL_KeyCode('t'); - SDLK_u = TSDL_KeyCode('u'); - SDLK_v = TSDL_KeyCode('v'); - SDLK_w = TSDL_KeyCode('w'); - SDLK_x = TSDL_KeyCode('x'); - SDLK_y = TSDL_KeyCode('y'); - SDLK_z = TSDL_KeyCode('z'); - - SDLK_CAPSLOCK = TSDL_KeyCode(SDL_SCANCODE_CAPSLOCK or SDLK_SCANCODE_MASK); - - SDLK_F1 = TSDL_KeyCode(SDL_SCANCODE_F1 or SDLK_SCANCODE_MASK); - SDLK_F2 = TSDL_KeyCode(SDL_SCANCODE_F2 or SDLK_SCANCODE_MASK); - SDLK_F3 = TSDL_KeyCode(SDL_SCANCODE_F3 or SDLK_SCANCODE_MASK); - SDLK_F4 = TSDL_KeyCode(SDL_SCANCODE_F4 or SDLK_SCANCODE_MASK); - SDLK_F5 = TSDL_KeyCode(SDL_SCANCODE_F5 or SDLK_SCANCODE_MASK); - SDLK_F6 = TSDL_KeyCode(SDL_SCANCODE_F6 or SDLK_SCANCODE_MASK); - SDLK_F7 = TSDL_KeyCode(SDL_SCANCODE_F7 or SDLK_SCANCODE_MASK); - SDLK_F8 = TSDL_KeyCode(SDL_SCANCODE_F8 or SDLK_SCANCODE_MASK); - SDLK_F9 = TSDL_KeyCode(SDL_SCANCODE_F9 or SDLK_SCANCODE_MASK); - SDLK_F10 = TSDL_KeyCode(SDL_SCANCODE_F10 or SDLK_SCANCODE_MASK); - SDLK_F11 = TSDL_KeyCode(SDL_SCANCODE_F11 or SDLK_SCANCODE_MASK); - SDLK_F12 = TSDL_KeyCode(SDL_SCANCODE_F12 or SDLK_SCANCODE_MASK); - - SDLK_PRINTSCREEN = TSDL_KeyCode(SDL_SCANCODE_PRINTSCREEN or SDLK_SCANCODE_MASK); - SDLK_SCROLLLOCK = TSDL_KeyCode(SDL_SCANCODE_SCROLLLOCK or SDLK_SCANCODE_MASK); - SDLK_PAUSE = TSDL_KeyCode(SDL_SCANCODE_PAUSE or SDLK_SCANCODE_MASK); - SDLK_INSERT = TSDL_KeyCode(SDL_SCANCODE_INSERT or SDLK_SCANCODE_MASK); - SDLK_HOME = TSDL_KeyCode(SDL_SCANCODE_HOME or SDLK_SCANCODE_MASK); - SDLK_PAGEUP = TSDL_KeyCode(SDL_SCANCODE_PAGEUP or SDLK_SCANCODE_MASK); - SDLK_DELETE = TSDL_KeyCode(#127); // C: '\177' - SDLK_END = TSDL_KeyCode(SDL_SCANCODE_END or SDLK_SCANCODE_MASK); - SDLK_PAGEDOWN = TSDL_KeyCode(SDL_SCANCODE_PAGEDOWN or SDLK_SCANCODE_MASK); - SDLK_RIGHT = TSDL_KeyCode(SDL_SCANCODE_RIGHT or SDLK_SCANCODE_MASK); - SDLK_LEFT = TSDL_KeyCode(SDL_SCANCODE_LEFT or SDLK_SCANCODE_MASK); - SDLK_DOWN = TSDL_KeyCode(SDL_SCANCODE_DOWN or SDLK_SCANCODE_MASK); - SDLK_UP = TSDL_KeyCode(SDL_SCANCODE_UP or SDLK_SCANCODE_MASK); - - SDLK_NUMLOCKCLEAR = TSDL_KeyCode(SDL_SCANCODE_NUMLOCKCLEAR or SDLK_SCANCODE_MASK); - SDLK_KP_DIVIDE = TSDL_KeyCode(SDL_SCANCODE_KP_DIVIDE or SDLK_SCANCODE_MASK); - SDLK_KP_MULTIPLY = TSDL_KeyCode(SDL_SCANCODE_KP_MULTIPLY or SDLK_SCANCODE_MASK); - SDLK_KP_MINUS = TSDL_KeyCode(SDL_SCANCODE_KP_MINUS or SDLK_SCANCODE_MASK); - SDLK_KP_PLUS = TSDL_KeyCode(SDL_SCANCODE_KP_PLUS or SDLK_SCANCODE_MASK); - SDLK_KP_ENTER = TSDL_KeyCode(SDL_SCANCODE_KP_ENTER or SDLK_SCANCODE_MASK); - SDLK_KP_1 = TSDL_KeyCode(SDL_SCANCODE_KP_1 or SDLK_SCANCODE_MASK); - SDLK_KP_2 = TSDL_KeyCode(SDL_SCANCODE_KP_2 or SDLK_SCANCODE_MASK); - SDLK_KP_3 = TSDL_KeyCode(SDL_SCANCODE_KP_3 or SDLK_SCANCODE_MASK); - SDLK_KP_4 = TSDL_KeyCode(SDL_SCANCODE_KP_4 or SDLK_SCANCODE_MASK); - SDLK_KP_5 = TSDL_KeyCode(SDL_SCANCODE_KP_5 or SDLK_SCANCODE_MASK); - SDLK_KP_6 = TSDL_KeyCode(SDL_SCANCODE_KP_6 or SDLK_SCANCODE_MASK); - SDLK_KP_7 = TSDL_KeyCode(SDL_SCANCODE_KP_7 or SDLK_SCANCODE_MASK); - SDLK_KP_8 = TSDL_KeyCode(SDL_SCANCODE_KP_8 or SDLK_SCANCODE_MASK); - SDLK_KP_9 = TSDL_KeyCode(SDL_SCANCODE_KP_9 or SDLK_SCANCODE_MASK); - SDLK_KP_0 = TSDL_KeyCode(SDL_SCANCODE_KP_0 or SDLK_SCANCODE_MASK); - SDLK_KP_PERIOD = TSDL_KeyCode(SDL_SCANCODE_KP_PERIOD or SDLK_SCANCODE_MASK); - - SDLK_APPLICATION = TSDL_KeyCode(SDL_SCANCODE_APPLICATION or SDLK_SCANCODE_MASK); - SDLK_POWER = TSDL_KeyCode(SDL_SCANCODE_POWER or SDLK_SCANCODE_MASK); - SDLK_KP_EQUALS = TSDL_KeyCode(SDL_SCANCODE_KP_EQUALS or SDLK_SCANCODE_MASK); - SDLK_F13 = TSDL_KeyCode(SDL_SCANCODE_F13 or SDLK_SCANCODE_MASK); - SDLK_F14 = TSDL_KeyCode(SDL_SCANCODE_F14 or SDLK_SCANCODE_MASK); - SDLK_F15 = TSDL_KeyCode(SDL_SCANCODE_F15 or SDLK_SCANCODE_MASK); - SDLK_F16 = TSDL_KeyCode(SDL_SCANCODE_F16 or SDLK_SCANCODE_MASK); - SDLK_F17 = TSDL_KeyCode(SDL_SCANCODE_F17 or SDLK_SCANCODE_MASK); - SDLK_F18 = TSDL_KeyCode(SDL_SCANCODE_F18 or SDLK_SCANCODE_MASK); - SDLK_F19 = TSDL_KeyCode(SDL_SCANCODE_F19 or SDLK_SCANCODE_MASK); - SDLK_F20 = TSDL_KeyCode(SDL_SCANCODE_F20 or SDLK_SCANCODE_MASK); - SDLK_F21 = TSDL_KeyCode(SDL_SCANCODE_F21 or SDLK_SCANCODE_MASK); - SDLK_F22 = TSDL_KeyCode(SDL_SCANCODE_F22 or SDLK_SCANCODE_MASK); - SDLK_F23 = TSDL_KeyCode(SDL_SCANCODE_F23 or SDLK_SCANCODE_MASK); - SDLK_F24 = TSDL_KeyCode(SDL_SCANCODE_F24 or SDLK_SCANCODE_MASK); - SDLK_EXECUTE = TSDL_KeyCode(SDL_SCANCODE_EXECUTE or SDLK_SCANCODE_MASK); - SDLK_HELP = TSDL_KeyCode(SDL_SCANCODE_HELP or SDLK_SCANCODE_MASK); - SDLK_MENU = TSDL_KeyCode(SDL_SCANCODE_MENU or SDLK_SCANCODE_MASK); - SDLK_SELECT = TSDL_KeyCode(SDL_SCANCODE_SELECT or SDLK_SCANCODE_MASK); - SDLK_STOP = TSDL_KeyCode(SDL_SCANCODE_STOP or SDLK_SCANCODE_MASK); - SDLK_AGAIN = TSDL_KeyCode(SDL_SCANCODE_AGAIN or SDLK_SCANCODE_MASK); - SDLK_UNDO = TSDL_KeyCode(SDL_SCANCODE_UNDO or SDLK_SCANCODE_MASK); - SDLK_CUT = TSDL_KeyCode(SDL_SCANCODE_CUT or SDLK_SCANCODE_MASK); - SDLK_COPY = TSDL_KeyCode(SDL_SCANCODE_COPY or SDLK_SCANCODE_MASK); - SDLK_PASTE = TSDL_KeyCode(SDL_SCANCODE_PASTE or SDLK_SCANCODE_MASK); - SDLK_FIND = TSDL_KeyCode(SDL_SCANCODE_FIND or SDLK_SCANCODE_MASK); - SDLK_MUTE = TSDL_KeyCode(SDL_SCANCODE_MUTE or SDLK_SCANCODE_MASK); - SDLK_VOLUMEUP = TSDL_KeyCode(SDL_SCANCODE_VOLUMEUP or SDLK_SCANCODE_MASK); - SDLK_VOLUMEDOWN = TSDL_KeyCode(SDL_SCANCODE_VOLUMEDOWN or SDLK_SCANCODE_MASK); - SDLK_KP_COMMA = TSDL_KeyCode(SDL_SCANCODE_KP_COMMA or SDLK_SCANCODE_MASK); - SDLK_KP_EQUALSAS400 = TSDL_KeyCode(SDL_SCANCODE_KP_EQUALSAS400 or SDLK_SCANCODE_MASK); - - SDLK_ALTERASE = TSDL_KeyCode(SDL_SCANCODE_ALTERASE or SDLK_SCANCODE_MASK); - SDLK_SYSREQ = TSDL_KeyCode(SDL_SCANCODE_SYSREQ or SDLK_SCANCODE_MASK); - SDLK_CANCEL = TSDL_KeyCode(SDL_SCANCODE_CANCEL or SDLK_SCANCODE_MASK); - SDLK_CLEAR = TSDL_KeyCode(SDL_SCANCODE_CLEAR or SDLK_SCANCODE_MASK); - SDLK_PRIOR = TSDL_KeyCode(SDL_SCANCODE_PRIOR or SDLK_SCANCODE_MASK); - SDLK_RETURN2 = TSDL_KeyCode(SDL_SCANCODE_RETURN2 or SDLK_SCANCODE_MASK); - SDLK_SEPARATOR = TSDL_KeyCode(SDL_SCANCODE_SEPARATOR or SDLK_SCANCODE_MASK); - SDLK_OUT = TSDL_KeyCode(SDL_SCANCODE_OUT or SDLK_SCANCODE_MASK); - SDLK_OPER = TSDL_KeyCode(SDL_SCANCODE_OPER or SDLK_SCANCODE_MASK); - SDLK_CLEARAGAIN = TSDL_KeyCode(SDL_SCANCODE_CLEARAGAIN or SDLK_SCANCODE_MASK); - SDLK_CRSEL = TSDL_KeyCode(SDL_SCANCODE_CRSEL or SDLK_SCANCODE_MASK); - SDLK_EXSEL = TSDL_KeyCode(SDL_SCANCODE_EXSEL or SDLK_SCANCODE_MASK); - - SDLK_KP_00 = TSDL_KeyCode(SDL_SCANCODE_KP_00 or SDLK_SCANCODE_MASK); - SDLK_KP_000 = TSDL_KeyCode(SDL_SCANCODE_KP_000 or SDLK_SCANCODE_MASK); - SDLK_THOUSANDSSEPARATOR = TSDL_KeyCode(SDL_SCANCODE_THOUSANDSSEPARATOR or SDLK_SCANCODE_MASK); - SDLK_DECIMALSEPARATOR = TSDL_KeyCode(SDL_SCANCODE_DECIMALSEPARATOR or SDLK_SCANCODE_MASK); - SDLK_CURRENCYUNIT = TSDL_KeyCode(SDL_SCANCODE_CURRENCYUNIT or SDLK_SCANCODE_MASK); - SDLK_CURRENCYSUBUNIT = TSDL_KeyCode(SDL_SCANCODE_CURRENCYSUBUNIT or SDLK_SCANCODE_MASK); - SDLK_KP_LEFTPAREN = TSDL_KeyCode(SDL_SCANCODE_KP_LEFTPAREN or SDLK_SCANCODE_MASK); - SDLK_KP_RIGHTPAREN = TSDL_KeyCode(SDL_SCANCODE_KP_RIGHTPAREN or SDLK_SCANCODE_MASK); - SDLK_KP_LEFTBRACE = TSDL_KeyCode(SDL_SCANCODE_KP_LEFTBRACE or SDLK_SCANCODE_MASK); - SDLK_KP_RIGHTBRACE = TSDL_KeyCode(SDL_SCANCODE_KP_RIGHTBRACE or SDLK_SCANCODE_MASK); - SDLK_KP_TAB = TSDL_KeyCode(SDL_SCANCODE_KP_TAB or SDLK_SCANCODE_MASK); - SDLK_KP_BACKSPACE = TSDL_KeyCode(SDL_SCANCODE_KP_BACKSPACE or SDLK_SCANCODE_MASK); - SDLK_KP_A = TSDL_KeyCode(SDL_SCANCODE_KP_A or SDLK_SCANCODE_MASK); - SDLK_KP_B = TSDL_KeyCode(SDL_SCANCODE_KP_B or SDLK_SCANCODE_MASK); - SDLK_KP_C = TSDL_KeyCode(SDL_SCANCODE_KP_C or SDLK_SCANCODE_MASK); - SDLK_KP_D = TSDL_KeyCode(SDL_SCANCODE_KP_D or SDLK_SCANCODE_MASK); - SDLK_KP_E = TSDL_KeyCode(SDL_SCANCODE_KP_E or SDLK_SCANCODE_MASK); - SDLK_KP_F = TSDL_KeyCode(SDL_SCANCODE_KP_F or SDLK_SCANCODE_MASK); - SDLK_KP_XOR = TSDL_KeyCode(SDL_SCANCODE_KP_XOR or SDLK_SCANCODE_MASK); - SDLK_KP_POWER = TSDL_KeyCode(SDL_SCANCODE_KP_POWER or SDLK_SCANCODE_MASK); - SDLK_KP_PERCENT = TSDL_KeyCode(SDL_SCANCODE_KP_PERCENT or SDLK_SCANCODE_MASK); - SDLK_KP_LESS = TSDL_KeyCode(SDL_SCANCODE_KP_LESS or SDLK_SCANCODE_MASK); - SDLK_KP_GREATER = TSDL_KeyCode(SDL_SCANCODE_KP_GREATER or SDLK_SCANCODE_MASK); - SDLK_KP_AMPERSAND = TSDL_KeyCode(SDL_SCANCODE_KP_AMPERSAND or SDLK_SCANCODE_MASK); - SDLK_KP_DBLAMPERSAND = TSDL_KeyCode(SDL_SCANCODE_KP_DBLAMPERSAND or SDLK_SCANCODE_MASK); - SDLK_KP_VERTICALBAR = TSDL_KeyCode(SDL_SCANCODE_KP_VERTICALBAR or SDLK_SCANCODE_MASK); - SDLK_KP_DBLVERTICALBAR = TSDL_KeyCode(SDL_SCANCODE_KP_DBLVERTICALBAR or SDLK_SCANCODE_MASK); - SDLK_KP_COLON = TSDL_KeyCode(SDL_SCANCODE_KP_COLON or SDLK_SCANCODE_MASK); - SDLK_KP_HASH = TSDL_KeyCode(SDL_SCANCODE_KP_HASH or SDLK_SCANCODE_MASK); - SDLK_KP_SPACE = TSDL_KeyCode(SDL_SCANCODE_KP_SPACE or SDLK_SCANCODE_MASK); - SDLK_KP_AT = TSDL_KeyCode(SDL_SCANCODE_KP_AT or SDLK_SCANCODE_MASK); - SDLK_KP_EXCLAM = TSDL_KeyCode(SDL_SCANCODE_KP_EXCLAM or SDLK_SCANCODE_MASK); - SDLK_KP_MEMSTORE = TSDL_KeyCode(SDL_SCANCODE_KP_MEMSTORE or SDLK_SCANCODE_MASK); - SDLK_KP_MEMRECALL = TSDL_KeyCode(SDL_SCANCODE_KP_MEMRECALL or SDLK_SCANCODE_MASK); - SDLK_KP_MEMCLEAR = TSDL_KeyCode(SDL_SCANCODE_KP_MEMCLEAR or SDLK_SCANCODE_MASK); - SDLK_KP_MEMADD = TSDL_KeyCode(SDL_SCANCODE_KP_MEMADD or SDLK_SCANCODE_MASK); - SDLK_KP_MEMSUBTRACT = TSDL_KeyCode(SDL_SCANCODE_KP_MEMSUBTRACT or SDLK_SCANCODE_MASK); - SDLK_KP_MEMMULTIPLY = TSDL_KeyCode(SDL_SCANCODE_KP_MEMMULTIPLY or SDLK_SCANCODE_MASK); - SDLK_KP_MEMDIVIDE = TSDL_KeyCode(SDL_SCANCODE_KP_MEMDIVIDE or SDLK_SCANCODE_MASK); - SDLK_KP_PLUSMINUS = TSDL_KeyCode(SDL_SCANCODE_KP_PLUSMINUS or SDLK_SCANCODE_MASK); - SDLK_KP_CLEAR = TSDL_KeyCode(SDL_SCANCODE_KP_CLEAR or SDLK_SCANCODE_MASK); - SDLK_KP_CLEARENTRY = TSDL_KeyCode(SDL_SCANCODE_KP_CLEARENTRY or SDLK_SCANCODE_MASK); - SDLK_KP_BINARY = TSDL_KeyCode(SDL_SCANCODE_KP_BINARY or SDLK_SCANCODE_MASK); - SDLK_KP_OCTAL = TSDL_KeyCode(SDL_SCANCODE_KP_OCTAL or SDLK_SCANCODE_MASK); - SDLK_KP_DECIMAL = TSDL_KeyCode(SDL_SCANCODE_KP_DECIMAL or SDLK_SCANCODE_MASK); - SDLK_KP_HEXADECIMAL = TSDL_KeyCode(SDL_SCANCODE_KP_HEXADECIMAL or SDLK_SCANCODE_MASK); - - SDLK_LCTRL = TSDL_KeyCode(SDL_SCANCODE_LCTRL or SDLK_SCANCODE_MASK); - SDLK_LSHIFT = TSDL_KeyCode(SDL_SCANCODE_LSHIFT or SDLK_SCANCODE_MASK); - SDLK_LALT = TSDL_KeyCode(SDL_SCANCODE_LALT or SDLK_SCANCODE_MASK); - SDLK_LGUI = TSDL_KeyCode(SDL_SCANCODE_LGUI or SDLK_SCANCODE_MASK); - SDLK_RCTRL = TSDL_KeyCode(SDL_SCANCODE_RCTRL or SDLK_SCANCODE_MASK); - SDLK_RSHIFT = TSDL_KeyCode(SDL_SCANCODE_RSHIFT or SDLK_SCANCODE_MASK); - SDLK_RALT = TSDL_KeyCode(SDL_SCANCODE_RALT or SDLK_SCANCODE_MASK); - SDLK_RGUI = TSDL_KeyCode(SDL_SCANCODE_RGUI or SDLK_SCANCODE_MASK); - - SDLK_MODE = TSDL_KeyCode(SDL_SCANCODE_MODE or SDLK_SCANCODE_MASK); - - SDLK_AUDIONEXT = TSDL_KeyCode(SDL_SCANCODE_AUDIONEXT or SDLK_SCANCODE_MASK); - SDLK_AUDIOPREV = TSDL_KeyCode(SDL_SCANCODE_AUDIOPREV or SDLK_SCANCODE_MASK); - SDLK_AUDIOSTOP = TSDL_KeyCode(SDL_SCANCODE_AUDIOSTOP or SDLK_SCANCODE_MASK); - SDLK_AUDIOPLAY = TSDL_KeyCode(SDL_SCANCODE_AUDIOPLAY or SDLK_SCANCODE_MASK); - SDLK_AUDIOMUTE = TSDL_KeyCode(SDL_SCANCODE_AUDIOMUTE or SDLK_SCANCODE_MASK); - SDLK_MEDIASELECT = TSDL_KeyCode(SDL_SCANCODE_MEDIASELECT or SDLK_SCANCODE_MASK); - SDLK_WWW = TSDL_KeyCode(SDL_SCANCODE_WWW or SDLK_SCANCODE_MASK); - SDLK_MAIL = TSDL_KeyCode(SDL_SCANCODE_MAIL or SDLK_SCANCODE_MASK); - SDLK_CALCULATOR = TSDL_KeyCode(SDL_SCANCODE_CALCULATOR or SDLK_SCANCODE_MASK); - SDLK_COMPUTER = TSDL_KeyCode(SDL_SCANCODE_COMPUTER or SDLK_SCANCODE_MASK); - SDLK_AC_SEARCH = TSDL_KeyCode(SDL_SCANCODE_AC_SEARCH or SDLK_SCANCODE_MASK); - SDLK_AC_HOME = TSDL_KeyCode(SDL_SCANCODE_AC_HOME or SDLK_SCANCODE_MASK); - SDLK_AC_BACK = TSDL_KeyCode(SDL_SCANCODE_AC_BACK or SDLK_SCANCODE_MASK); - SDLK_AC_FORWARD = TSDL_KeyCode(SDL_SCANCODE_AC_FORWARD or SDLK_SCANCODE_MASK); - SDLK_AC_STOP = TSDL_KeyCode(SDL_SCANCODE_AC_STOP or SDLK_SCANCODE_MASK); - SDLK_AC_REFRESH = TSDL_KeyCode(SDL_SCANCODE_AC_REFRESH or SDLK_SCANCODE_MASK); - SDLK_AC_BOOKMARKS = TSDL_KeyCode(SDL_SCANCODE_AC_BOOKMARKS or SDLK_SCANCODE_MASK); - - SDLK_BRIGHTNESSDOWN = TSDL_KeyCode(SDL_SCANCODE_BRIGHTNESSDOWN or SDLK_SCANCODE_MASK); - SDLK_BRIGHTNESSUP = TSDL_KeyCode(SDL_SCANCODE_BRIGHTNESSUP or SDLK_SCANCODE_MASK); - SDLK_DISPLAYSWITCH = TSDL_KeyCode(SDL_SCANCODE_DISPLAYSWITCH or SDLK_SCANCODE_MASK); - SDLK_KBDILLUMTOGGLE = TSDL_KeyCode(SDL_SCANCODE_KBDILLUMTOGGLE or SDLK_SCANCODE_MASK); - SDLK_KBDILLUMDOWN = TSDL_KeyCode(SDL_SCANCODE_KBDILLUMDOWN or SDLK_SCANCODE_MASK); - SDLK_KBDILLUMUP = TSDL_KeyCode(SDL_SCANCODE_KBDILLUMUP or SDLK_SCANCODE_MASK); - SDLK_EJECT = TSDL_KeyCode(SDL_SCANCODE_EJECT or SDLK_SCANCODE_MASK); - SDLK_SLEEP = TSDL_KeyCode(SDL_SCANCODE_SLEEP or SDLK_SCANCODE_MASK); - - {** - * Enumeration of valid key mods (possibly OR'd together). - *} -type - PSDL_KeyMod = ^TSDL_KeyMod; - TSDL_KeyMod = type Word; - -const - KMOD_NONE = TSDL_KeyMod($0000); - KMOD_LSHIFT = TSDL_KeyMod($0001); - KMOD_RSHIFT = TSDL_KeyMod($0002); - KMOD_LCTRL = TSDL_KeyMod($0040); - KMOD_RCTRL = TSDL_KeyMod($0080); - KMOD_LALT = TSDL_KeyMod($0100); - KMOD_RALT = TSDL_KeyMod($0200); - KMOD_LGUI = TSDL_KeyMod($0400); - KMOD_RGUI = TSDL_KeyMod($0800); - KMOD_NUM = TSDL_KeyMod($1000); - KMOD_CAPS = TSDL_KeyMod($2000); - KMOD_MODE = TSDL_KeyMod($4000); - KMOD_RESERVED = TSDL_KeyMod($8000); - - KMOD_CTRL = KMOD_LCTRL or KMOD_RCTRL; - KMOD_SHIFT = KMOD_LSHIFT or KMOD_RSHIFT; - KMOD_ALT = KMOD_LALT or KMOD_RALT; - KMOD_GUI = KMOD_LGUI or KMOD_RGUI; From fb067a8d64aeec05e7af6edeb913fe911cf34cec Mon Sep 17 00:00:00 2001 From: Matthias Date: Fri, 27 Jan 2023 18:29:16 +0100 Subject: [PATCH 16/24] Add sdlkeycode.inc --- units/sdl2.pas | 1 + 1 file changed, 1 insertion(+) diff --git a/units/sdl2.pas b/units/sdl2.pas index ebd2ae92..eb625d74 100644 --- a/units/sdl2.pas +++ b/units/sdl2.pas @@ -180,6 +180,7 @@ interface {$I sdlmessagebox.inc} // 2.0.14 {$I sdlrenderer.inc} // 2.0.22 {$I sdlscancode.inc} // 2.26.2 +{$I sdlkeycode.inc} {$I sdlkeyboard.inc} // 2.24.1 {$I sdlmouse.inc} // 2.0.24 {$I sdlguid.inc} // 2.24.0 From 829206dccb2fae98bbafb6640e696e205e84ace6 Mon Sep 17 00:00:00 2001 From: Matthias Date: Fri, 27 Jan 2023 18:29:35 +0100 Subject: [PATCH 17/24] Update header comment --- units/sdlkeycode.inc | 3 +++ 1 file changed, 3 insertions(+) diff --git a/units/sdlkeycode.inc b/units/sdlkeycode.inc index d027971a..e8975fbb 100644 --- a/units/sdlkeycode.inc +++ b/units/sdlkeycode.inc @@ -7,6 +7,9 @@ * layout of the keyboard. These values include Unicode values representing * the unmodified character that would be generated by pressing the key, or * an SDLK_* constant for those keys that do not generate characters. + * + * A special exception is the number keys at the top of the keyboard which + * always map to SDLK_0...SDLK_9, regardless of layout. *} type PSDL_KeyCode = ^TSDL_KeyCode; From 8752fef5e9e52907a33fff941d563c69440716a4 Mon Sep 17 00:00:00 2001 From: Matthias Date: Fri, 27 Jan 2023 19:10:12 +0100 Subject: [PATCH 18/24] Add comment: Clarify handling of macro SDL_SCANCODE_TO_KEYCODE --- units/sdlkeycode.inc | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/units/sdlkeycode.inc b/units/sdlkeycode.inc index e8975fbb..f5a1a61e 100644 --- a/units/sdlkeycode.inc +++ b/units/sdlkeycode.inc @@ -17,6 +17,8 @@ type const SDLK_SCANCODE_MASK = 1 shl 30; + //#define SDL_SCANCODE_TO_KEYCODE(X) (X | SDLK_SCANCODE_MASK) + //SDL2-for-Pascal: Not translated, see comment about this macro below. SDLK_UNKNOWN = TSDL_KeyCode(0); @@ -93,6 +95,12 @@ const SDLK_y = TSDL_KeyCode('y'); SDLK_z = TSDL_KeyCode('z'); + {SDL2-for-Pascal: In C the following scancodes are or'd by a macro: + SDL_SCANCODE_TO_KEYCODE(X) (X | SDLK_SCANCODE_MASK) + + We convert the scancodes directly by: + TSDL_KeyCode(X or SDLK_SCANCODE_MASK); } + SDLK_CAPSLOCK = TSDL_KeyCode(SDL_SCANCODE_CAPSLOCK or SDLK_SCANCODE_MASK); SDLK_F1 = TSDL_KeyCode(SDL_SCANCODE_F1 or SDLK_SCANCODE_MASK); From bfe5cd3cf09bbc1b03c86b4ad1edc943398e4b4e Mon Sep 17 00:00:00 2001 From: Matthias Date: Fri, 27 Jan 2023 19:16:09 +0100 Subject: [PATCH 19/24] Add 8 new keycodes --- units/sdlkeycode.inc | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/units/sdlkeycode.inc b/units/sdlkeycode.inc index f5a1a61e..766f4585 100644 --- a/units/sdlkeycode.inc +++ b/units/sdlkeycode.inc @@ -277,6 +277,16 @@ const SDLK_KBDILLUMUP = TSDL_KeyCode(SDL_SCANCODE_KBDILLUMUP or SDLK_SCANCODE_MASK); SDLK_EJECT = TSDL_KeyCode(SDL_SCANCODE_EJECT or SDLK_SCANCODE_MASK); SDLK_SLEEP = TSDL_KeyCode(SDL_SCANCODE_SLEEP or SDLK_SCANCODE_MASK); + SDLK_APP1 = TSDL_KeyCode(SDL_SCANCODE_APP1 or SDLK_SCANCODE_MASK); + SDLK_APP2 = TSDL_KeyCode(SDL_SCANCODE_APP2 or SDLK_SCANCODE_MASK); + + SDLK_AUDIOREWIND = TSDL_KeyCode(SDL_SCANCODE_AUDIOREWIND or SDLK_SCANCODE_MASK); + SDLK_AUDIOFASTFORWARD = TSDL_KeyCode(SDL_SCANCODE_AUDIOFASTFORWARD or SDLK_SCANCODE_MASK); + + SDLK_SOFTLEFT = TSDL_KeyCode(SDL_SCANCODE_SOFTLEFT or SDLK_SCANCODE_MASK); + SDLK_SOFTRIGHT = TSDL_KeyCode(SDL_SCANCODE_SOFTRIGHT or SDLK_SCANCODE_MASK); + SDLK_CALL = TSDL_KeyCode(SDL_SCANCODE_CALL or SDLK_SCANCODE_MASK); + SDLK_ENDCALL = TSDL_KeyCode(SDL_SCANCODE_ENDCALL or SDLK_SCANCODE_MASK); {** * Enumeration of valid key mods (possibly OR'd together). From 0ff32b2eea1b0a942f92912db0e932a8bc34c391 Mon Sep 17 00:00:00 2001 From: Matthias Date: Fri, 27 Jan 2023 19:18:09 +0100 Subject: [PATCH 20/24] Change type of TSDL_KeyMod --- units/sdlkeycode.inc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/units/sdlkeycode.inc b/units/sdlkeycode.inc index 766f4585..62759ef4 100644 --- a/units/sdlkeycode.inc +++ b/units/sdlkeycode.inc @@ -293,7 +293,7 @@ const *} type PSDL_KeyMod = ^TSDL_KeyMod; - TSDL_KeyMod = type Word; + TSDL_KeyMod = type cint; const KMOD_NONE = TSDL_KeyMod($0000); From 931e4f072141fdf295e16daba63053a713d2c4cf Mon Sep 17 00:00:00 2001 From: Matthias Date: Fri, 27 Jan 2023 19:19:50 +0100 Subject: [PATCH 21/24] Add KMOD_RESERVED --- units/sdlkeycode.inc | 2 ++ 1 file changed, 2 insertions(+) diff --git a/units/sdlkeycode.inc b/units/sdlkeycode.inc index 62759ef4..3db27205 100644 --- a/units/sdlkeycode.inc +++ b/units/sdlkeycode.inc @@ -314,3 +314,5 @@ const KMOD_SHIFT = KMOD_LSHIFT or KMOD_RSHIFT; KMOD_ALT = KMOD_LALT or KMOD_RALT; KMOD_GUI = KMOD_LGUI or KMOD_RGUI; + + KMOD_RESERVED = KMOD_SCROLL; {* This is for source-level compatibility with SDL 2.0.0. *} From 78a1a3d78a9c1e082ef048dd7312197b6a1f792e Mon Sep 17 00:00:00 2001 From: Matthias Date: Fri, 27 Jan 2023 19:23:25 +0100 Subject: [PATCH 22/24] Update/add comments for 3 keycodes --- units/sdlkeycode.inc | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/units/sdlkeycode.inc b/units/sdlkeycode.inc index 3db27205..0039a893 100644 --- a/units/sdlkeycode.inc +++ b/units/sdlkeycode.inc @@ -23,7 +23,7 @@ const SDLK_UNKNOWN = TSDL_KeyCode(0); SDLK_RETURN = TSDL_KeyCode(#13); // C: '\r' - SDLK_ESCAPE = TSDL_KeyCode(#27); // C: '\033' + SDLK_ESCAPE = TSDL_KeyCode(#27); // C: '\x1B' SDLK_BACKSPACE = TSDL_KeyCode(#8); // C: '\b' SDLK_TAB = TSDL_KeyCode(#9); // C: '\t' SDLK_SPACE = TSDL_KeyCode(' '); @@ -63,7 +63,7 @@ const Skip uppercase letters *} SDLK_LEFTBRACKET = TSDL_KeyCode('['); - SDLK_BACKSLASH = TSDL_KeyCode('\'); + SDLK_BACKSLASH = TSDL_KeyCode('\'); // C: '\\' SDLK_RIGHTBRACKET = TSDL_KeyCode(']'); SDLK_CARET = TSDL_KeyCode('^'); SDLK_UNDERSCORE = TSDL_KeyCode('_'); @@ -122,7 +122,7 @@ const SDLK_INSERT = TSDL_KeyCode(SDL_SCANCODE_INSERT or SDLK_SCANCODE_MASK); SDLK_HOME = TSDL_KeyCode(SDL_SCANCODE_HOME or SDLK_SCANCODE_MASK); SDLK_PAGEUP = TSDL_KeyCode(SDL_SCANCODE_PAGEUP or SDLK_SCANCODE_MASK); - SDLK_DELETE = TSDL_KeyCode(#127); // C: '\177' + SDLK_DELETE = TSDL_KeyCode(#127); // C: '\x7F' SDLK_END = TSDL_KeyCode(SDL_SCANCODE_END or SDLK_SCANCODE_MASK); SDLK_PAGEDOWN = TSDL_KeyCode(SDL_SCANCODE_PAGEDOWN or SDLK_SCANCODE_MASK); SDLK_RIGHT = TSDL_KeyCode(SDL_SCANCODE_RIGHT or SDLK_SCANCODE_MASK); From 528483bfd038b20591f072c60ffed48e32a7d6ce Mon Sep 17 00:00:00 2001 From: Matthias Date: Fri, 27 Jan 2023 19:28:21 +0100 Subject: [PATCH 23/24] Add KMOD_SCROLL --- units/sdlkeycode.inc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/units/sdlkeycode.inc b/units/sdlkeycode.inc index 0039a893..529ad37a 100644 --- a/units/sdlkeycode.inc +++ b/units/sdlkeycode.inc @@ -308,7 +308,7 @@ const KMOD_NUM = TSDL_KeyMod($1000); KMOD_CAPS = TSDL_KeyMod($2000); KMOD_MODE = TSDL_KeyMod($4000); - KMOD_RESERVED = TSDL_KeyMod($8000); + KMOD_SCROLL = TSDL_KeyMod($8000); KMOD_CTRL = KMOD_LCTRL or KMOD_RCTRL; KMOD_SHIFT = KMOD_LSHIFT or KMOD_RSHIFT; From d8a4dbd7749963909b10d0b9d5b0786125dbfeed Mon Sep 17 00:00:00 2001 From: Matthias Date: Fri, 27 Jan 2023 19:30:53 +0100 Subject: [PATCH 24/24] Add version tag 2.26.2 for sdlkeycode.inc --- units/sdl2.pas | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/units/sdl2.pas b/units/sdl2.pas index eb625d74..5bcdc070 100644 --- a/units/sdl2.pas +++ b/units/sdl2.pas @@ -180,7 +180,7 @@ interface {$I sdlmessagebox.inc} // 2.0.14 {$I sdlrenderer.inc} // 2.0.22 {$I sdlscancode.inc} // 2.26.2 -{$I sdlkeycode.inc} +{$I sdlkeycode.inc} // 2.26.2 {$I sdlkeyboard.inc} // 2.24.1 {$I sdlmouse.inc} // 2.0.24 {$I sdlguid.inc} // 2.24.0