238 |
238 |
239 #define AS(x, z) {x, 0, z} |
239 #define AS(x, z) {x, 0, z} |
240 #define AM(x, y, z, w) {x, y - x, z} |
240 #define AM(x, y, z, w) {x, y - x, z} |
241 |
241 |
242 static const VkMapping _vk_mapping[] = { |
242 static const VkMapping _vk_mapping[] = { |
243 // Pageup stuff + up/down |
243 /* Pageup stuff + up/down */ |
244 AM(SDLK_PAGEUP, SDLK_PAGEDOWN, WKC_PAGEUP, WKC_PAGEDOWN), |
244 AM(SDLK_PAGEUP, SDLK_PAGEDOWN, WKC_PAGEUP, WKC_PAGEDOWN), |
245 AS(SDLK_UP, WKC_UP), |
245 AS(SDLK_UP, WKC_UP), |
246 AS(SDLK_DOWN, WKC_DOWN), |
246 AS(SDLK_DOWN, WKC_DOWN), |
247 AS(SDLK_LEFT, WKC_LEFT), |
247 AS(SDLK_LEFT, WKC_LEFT), |
248 AS(SDLK_RIGHT, WKC_RIGHT), |
248 AS(SDLK_RIGHT, WKC_RIGHT), |
251 AS(SDLK_END, WKC_END), |
251 AS(SDLK_END, WKC_END), |
252 |
252 |
253 AS(SDLK_INSERT, WKC_INSERT), |
253 AS(SDLK_INSERT, WKC_INSERT), |
254 AS(SDLK_DELETE, WKC_DELETE), |
254 AS(SDLK_DELETE, WKC_DELETE), |
255 |
255 |
256 // Map letters & digits |
256 /* Map letters & digits */ |
257 AM(SDLK_a, SDLK_z, 'A', 'Z'), |
257 AM(SDLK_a, SDLK_z, 'A', 'Z'), |
258 AM(SDLK_0, SDLK_9, '0', '9'), |
258 AM(SDLK_0, SDLK_9, '0', '9'), |
259 |
259 |
260 AS(SDLK_ESCAPE, WKC_ESC), |
260 AS(SDLK_ESCAPE, WKC_ESC), |
261 AS(SDLK_PAUSE, WKC_PAUSE), |
261 AS(SDLK_PAUSE, WKC_PAUSE), |
263 |
263 |
264 AS(SDLK_SPACE, WKC_SPACE), |
264 AS(SDLK_SPACE, WKC_SPACE), |
265 AS(SDLK_RETURN, WKC_RETURN), |
265 AS(SDLK_RETURN, WKC_RETURN), |
266 AS(SDLK_TAB, WKC_TAB), |
266 AS(SDLK_TAB, WKC_TAB), |
267 |
267 |
268 // Function keys |
268 /* Function keys */ |
269 AM(SDLK_F1, SDLK_F12, WKC_F1, WKC_F12), |
269 AM(SDLK_F1, SDLK_F12, WKC_F1, WKC_F12), |
270 |
270 |
271 // Numeric part. |
271 /* Numeric part. */ |
272 // What is the virtual keycode for numeric enter?? |
|
273 AM(SDLK_KP0, SDLK_KP9, WKC_NUM_0, WKC_NUM_9), |
272 AM(SDLK_KP0, SDLK_KP9, WKC_NUM_0, WKC_NUM_9), |
274 AS(SDLK_KP_DIVIDE, WKC_NUM_DIV), |
273 AS(SDLK_KP_DIVIDE, WKC_NUM_DIV), |
275 AS(SDLK_KP_MULTIPLY, WKC_NUM_MUL), |
274 AS(SDLK_KP_MULTIPLY, WKC_NUM_MUL), |
276 AS(SDLK_KP_MINUS, WKC_NUM_MINUS), |
275 AS(SDLK_KP_MINUS, WKC_NUM_MINUS), |
277 AS(SDLK_KP_PLUS, WKC_NUM_PLUS), |
276 AS(SDLK_KP_PLUS, WKC_NUM_PLUS), |
278 AS(SDLK_KP_ENTER, WKC_NUM_ENTER), |
277 AS(SDLK_KP_ENTER, WKC_NUM_ENTER), |
279 AS(SDLK_KP_PERIOD, WKC_NUM_DECIMAL) |
278 AS(SDLK_KP_PERIOD, WKC_NUM_DECIMAL), |
|
279 |
|
280 /* Other non-letter keys */ |
|
281 AS(SDLK_SLASH, WKC_SLASH), |
|
282 AS(SDLK_SEMICOLON, WKC_SEMICOLON), |
|
283 AS(SDLK_EQUALS, WKC_EQUALS), |
|
284 AS(SDLK_LEFTBRACKET, WKC_L_BRACKET), |
|
285 AS(SDLK_BACKSLASH, WKC_BACKSLASH), |
|
286 AS(SDLK_RIGHTBRACKET, WKC_R_BRACKET), |
|
287 |
|
288 AS(SDLK_QUOTE, WKC_SINGLEQUOTE), |
|
289 AS(SDLK_COMMA, WKC_COMMA), |
|
290 AS(SDLK_MINUS, WKC_MINUS), |
|
291 AS(SDLK_PERIOD, WKC_PERIOD) |
280 }; |
292 }; |
281 |
293 |
282 static uint32 ConvertSdlKeyIntoMy(SDL_keysym *sym) |
294 static uint32 ConvertSdlKeyIntoMy(SDL_keysym *sym) |
283 { |
295 { |
284 const VkMapping *map; |
296 const VkMapping *map; |