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

Function map_keys

dlib/gui_core/gui_core_kernel_1.cpp:385–676  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

383 // ----------------------------------------------------------------------------------------
384
385 static bool map_keys (
386 unsigned long keycode,
387 bool shift,
388 bool caps,
389 unsigned long& result,
390 bool& is_printable
391 )
392 /*!
393 requires
394 - if (shift was down for this key) then
395 - shift == true
396 - if (caps lock was on for this key) then
397 - caps == true
398 - keycode == the keycode from windows that we are to process
399 - keycode < keyboard_keys_size
400 ensures
401 - if (this key should be ignored) then
402 - returns false
403 - else
404 - returns true
405 - #is_printable == true if result is a printable ascii character
406 - #result == the keycode converted into the proper number to tbe
407 returned by the event handler.
408 !*/
409 {
410 is_printable = true;
411
412 if (keycode <= '9' && keycode >= '0')
413 {
414 result = keycode;
415 if (shift)
416 {
417 switch (result)
418 {
419 case '0': result = ')'; break;
420 case '1': result = '!'; break;
421 case '2': result = '@'; break;
422 case '3': result = '#'; break;
423 case '4': result = '$'; break;
424 case '5': result = '%'; break;
425 case '6': result = '^'; break;
426 case '7': result = '&'; break;
427 case '8': result = '*'; break;
428 case '9': result = '('; break;
429 }
430 }
431 }
432 else if (keycode <= 'Z' && keycode >= 'A')
433 {
434 result = keycode;
435
436 // make the result lower case if we need to.
437 if ((shift && caps) || (!caps && !shift))
438 result = result - 'A' + 'a';
439 }
440 else
441 {
442 switch (keycode)

Callers 1

CALLBACKFunction · 0.70

Calls

no outgoing calls

Tested by

no test coverage detected