MCPcopy Create free account
hub / github.com/davisking/dlib / map_keys

Function map_keys

dlib/gui_core/gui_core_kernel_2.cpp:366–616  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

364 // ----------------------------------------------------------------------------------------
365
366 static bool map_keys (
367 KeySym keycode,
368 bool ,
369 bool ,
370 unsigned long& result,
371 bool& is_printable
372 )
373 /*!
374 requires
375 - if (shift was down for this key) then
376 - shift == true
377 - if (caps lock was on for this key) then
378 - caps == true
379 - keycode == the keycode from windows that we are to process
380 - keycode < keyboard_keys_size
381 ensures
382 - if (this key should be ignored) then
383 - returns false
384 - else
385 - returns true
386 - #is_printable == true if result is a printable ascii character
387 - #result == the keycode converted into the proper number to tbe
388 returned by the event handler.
389 !*/
390 {
391 is_printable = true;
392 if ((keycode <= 'z' && keycode >= 'a') ||
393 (keycode <= 'Z' && keycode >= 'A') ||
394 (keycode <= '9' && keycode >= '0'))
395 {
396 result = keycode;
397 }
398 else
399 {
400 is_printable = false;
401 switch (keycode)
402 {
403 case XK_Home: result = base_window::KEY_HOME; break;
404 case XK_Left: result = base_window::KEY_LEFT; break;
405 case XK_Right: result = base_window::KEY_RIGHT; break;
406 case XK_Down: result = base_window::KEY_DOWN; break;
407 case XK_Up: result = base_window::KEY_UP; break;
408 case XK_Prior: result = base_window::KEY_PAGE_UP; break;
409 case XK_Next: result = base_window::KEY_PAGE_DOWN; break;
410 case XK_End: result = base_window::KEY_END; break;
411 case XK_Escape: result = base_window::KEY_ESC; break;
412
413 case XK_KP_Delete: result = base_window::KEY_DELETE; break;
414 case XK_KP_Prior: result = base_window::KEY_PAGE_UP; break;
415 case XK_KP_Next: result = base_window::KEY_PAGE_DOWN; break;
416
417
418 case XK_F1: result = base_window::KEY_F1; break;
419 case XK_F2: result = base_window::KEY_F2; break;
420 case XK_F3: result = base_window::KEY_F3; break;
421 case XK_F4: result = base_window::KEY_F4; break;
422 case XK_F5: result = base_window::KEY_F5; break;
423 case XK_F6: result = base_window::KEY_F6; break;

Callers 1

event_handlerMethod · 0.70

Calls

no outgoing calls

Tested by

no test coverage detected