comparison src/video/x11/SDL_x11keyboard.c @ 5225:1fbe1c202501

Renamed SDL_Key to SDL_Keycode to clarify terminology.
author Sam Lantinga <slouken@libsdl.org>
date Mon, 07 Feb 2011 10:40:21 -0800
parents c1a92e61907d
children b530ef003506
comparison
equal deleted inserted replaced
5224:c1a92e61907d 5225:1fbe1c202501
32 #include "imKStoUCS.h" 32 #include "imKStoUCS.h"
33 33
34 /* *INDENT-OFF* */ 34 /* *INDENT-OFF* */
35 static const struct { 35 static const struct {
36 KeySym keysym; 36 KeySym keysym;
37 SDL_Key sdlkey; 37 SDL_Keycode sdlkey;
38 } KeySymToSDLKey[] = { 38 } KeySymToSDLKey[] = {
39 { XK_Return, SDLK_RETURN }, 39 { XK_Return, SDLK_RETURN },
40 { XK_Escape, SDLK_ESCAPE }, 40 { XK_Escape, SDLK_ESCAPE },
41 { XK_BackSpace, SDLK_BACKSPACE }, 41 { XK_BackSpace, SDLK_BACKSPACE },
42 { XK_Tab, SDLK_TAB }, 42 { XK_Tab, SDLK_TAB },
141 { xfree86_scancode_table, SDL_arraysize(xfree86_scancode_table) }, 141 { xfree86_scancode_table, SDL_arraysize(xfree86_scancode_table) },
142 { xfree86_scancode_table2, SDL_arraysize(xfree86_scancode_table2) }, 142 { xfree86_scancode_table2, SDL_arraysize(xfree86_scancode_table2) },
143 }; 143 };
144 /* *INDENT-OFF* */ 144 /* *INDENT-OFF* */
145 145
146 static SDL_Key 146 static SDL_Keycode
147 X11_KeyCodeToSDLKey(Display *display, KeyCode keycode) 147 X11_KeyCodeToSDLKey(Display *display, KeyCode keycode)
148 { 148 {
149 KeySym keysym; 149 KeySym keysym;
150 unsigned int ucs4; 150 unsigned int ucs4;
151 int i; 151 int i;
155 return SDLK_UNKNOWN; 155 return SDLK_UNKNOWN;
156 } 156 }
157 157
158 ucs4 = X11_KeySymToUcs4(keysym); 158 ucs4 = X11_KeySymToUcs4(keysym);
159 if (ucs4) { 159 if (ucs4) {
160 return (SDL_Key) ucs4; 160 return (SDL_Keycode) ucs4;
161 } 161 }
162 162
163 for (i = 0; i < SDL_arraysize(KeySymToSDLKey); ++i) { 163 for (i = 0; i < SDL_arraysize(KeySymToSDLKey); ++i) {
164 if (keysym == KeySymToSDLKey[i].keysym) { 164 if (keysym == KeySymToSDLKey[i].keysym) {
165 return KeySymToSDLKey[i].sdlkey; 165 return KeySymToSDLKey[i].sdlkey;
220 break; 220 break;
221 } 221 }
222 } 222 }
223 223
224 if (!fingerprint_detected) { 224 if (!fingerprint_detected) {
225 SDL_Key keymap[SDL_NUM_SCANCODES]; 225 SDL_Keycode keymap[SDL_NUM_SCANCODES];
226 226
227 printf 227 printf
228 ("Keyboard layout unknown, please send the following to the SDL mailing list (sdl@libsdl.org):\n"); 228 ("Keyboard layout unknown, please send the following to the SDL mailing list (sdl@libsdl.org):\n");
229 229
230 /* Determine key_layout - only works on US QWERTY layout */ 230 /* Determine key_layout - only works on US QWERTY layout */
231 SDL_GetDefaultKeymap(keymap); 231 SDL_GetDefaultKeymap(keymap);
232 for (i = min_keycode; i <= max_keycode; ++i) { 232 for (i = min_keycode; i <= max_keycode; ++i) {
233 KeySym sym; 233 KeySym sym;
234 sym = XKeycodeToKeysym(data->display, i, 0); 234 sym = XKeycodeToKeysym(data->display, i, 0);
235 if (sym != NoSymbol) { 235 if (sym != NoSymbol) {
236 SDL_Key key; 236 SDL_Keycode key;
237 printf("code = %d, sym = 0x%X (%s) ", i - min_keycode, 237 printf("code = %d, sym = 0x%X (%s) ", i - min_keycode,
238 (unsigned int) sym, XKeysymToString(sym)); 238 (unsigned int) sym, XKeysymToString(sym));
239 key = X11_KeyCodeToSDLKey(data->display, i); 239 key = X11_KeyCodeToSDLKey(data->display, i);
240 for (j = 0; j < SDL_arraysize(keymap); ++j) { 240 for (j = 0; j < SDL_arraysize(keymap); ++j) {
241 if (keymap[j] == key) { 241 if (keymap[j] == key) {
263 X11_UpdateKeymap(_THIS) 263 X11_UpdateKeymap(_THIS)
264 { 264 {
265 SDL_VideoData *data = (SDL_VideoData *) _this->driverdata; 265 SDL_VideoData *data = (SDL_VideoData *) _this->driverdata;
266 int i; 266 int i;
267 SDL_Scancode scancode; 267 SDL_Scancode scancode;
268 SDL_Key keymap[SDL_NUM_SCANCODES]; 268 SDL_Keycode keymap[SDL_NUM_SCANCODES];
269 269
270 SDL_zero(keymap); 270 SDL_zero(keymap);
271 271
272 for (i = 0; i < SDL_arraysize(data->key_layout); i++) { 272 for (i = 0; i < SDL_arraysize(data->key_layout); i++) {
273 273