src/video/sdl_v.cpp
branchnoai
changeset 9694 e72987579514
parent 9631 8a2d1c2ceb88
child 9701 d1ac22c62f64
equal deleted inserted replaced
9693:31fcaa5375a1 9694:e72987579514
   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;