Code
348CvString CvHotKeyInfo::CreateKeyStringFromKBCode(const char* pszHotKey)349{350 struct CvKeyBoardMapping351 {352 const char* szDefineString;353 const char* szKeyString;354 bool bIsLocalizedText;355 };356357 // TODO - this should be a stl map instead of looping strcmp358 const CvKeyBoardMapping asCvKeyBoardMapping[] =359 {360 {"KB_ESCAPE", "TXT_KEY_KEYBOARD_ESCAPE", true},361 {"KB_0","0", false},362 {"KB_1","1", false},363 {"KB_2","2", false},364 {"KB_3","3", false},365 {"KB_4","4", false},366 {"KB_5","5", false},367 {"KB_6","6", false},368 {"KB_7","7", false},369 {"KB_8","8", false},370 {"KB_9","9", false},371 {"KB_MINUS","-", false}, // - on main keyboard372 {"KB_A","A", false},373 {"KB_B","B", false},374 {"KB_C","C", false},375 {"KB_D","D", false},376 {"KB_E","E", false},377 {"KB_F","F", false},378 {"KB_G","G", false},379 {"KB_H","H", false},380 {"KB_I","I", false},381 {"KB_J","J", false},382 {"KB_K","K", false},383 {"KB_L","L", false},384 {"KB_M","M", false},385 {"KB_N","N", false},386 {"KB_O","O", false},387 {"KB_P","P", false},388 {"KB_Q","Q", false},389 {"KB_R","R", false},390 {"KB_S","S", false},391 {"KB_T","T", false},392 {"KB_U","U", false},393 {"KB_V","V", false},394 {"KB_W","W", false},395 {"KB_X","X", false},396 {"KB_Y","Y", false},397 {"KB_Z","Z", false},398 {"KB_EQUALS","=", false},399 {"KB_BACKSPACE", "TXT_KEY_KEYBOARD_BACKSPACE", true},400 {"KB_TAB","TAB", false},401 {"KB_LBRACKET","[", false},402 {"KB_RBRACKET","]", false},403 {"KB_RETURN", "TXT_KEY_KEYBOARD_ENTER", true}, // Enter on main keyboard404 {"KB_LCONTROL", "TXT_KEY_KEYBOARD_LEFT_CONTROL_KEY", true},405 {"KB_SEMICOLON",";", false},406 {"KB_APOSTROPHE","'", false},407 {"KB_GRAVE","`", false}, // accent grave408 {"KB_LSHIFT", "TXT_KEY_KEYBOARD_LEFT_SHIFT_KEY", true},409 {"KB_BACKSLASH","\\"},410 {"KB_COMMA",",", false},411 {"KB_PERIOD",".", false},412 {"KB_SLASH","/", false},413 {"KB_RSHIFT", "TXT_KEY_KEYBOARD_RIGHT_SHIFT_KEY", true},414 {"KB_NUMPADSTAR", "TXT_KEY_KEYBOARD_NUM_PAD_STAR", true},415 {"KB_LALT", "TXT_KEY_KEYBOARD_LEFT_ALT_KEY", true},416 {"KB_SPACE", "TXT_KEY_KEYBOARD_SPACE_KEY", true},417 {"KB_CAPSLOCK", "TXT_KEY_KEYBOARD_CAPS_LOCK", true},418 {"KB_F1","F1", false},419 {"KB_F2","F2", false},420 {"KB_F3","F3", false},421 {"KB_F4","F4", false},422 {"KB_F5","F5", false},423 {"KB_F6","F6", false},424 {"KB_F7","F7", false},425 {"KB_F8","F8", false},426 {"KB_F9","F9", false},427 {"KB_F10","F10", false},428 {"KB_NUMLOCK", "TXT_KEY_KEYBOARD_NUM_LOCK", true},429 {"KB_SCROLL", "TXT_KEY_KEYBOARD_SCROLL_KEY", true},430 {"KB_NUMPAD7", "TXT_KEY_KEYBOARD_NUMPAD_NUMBER7", true},431 {"KB_NUMPAD8", "TXT_KEY_KEYBOARD_NUMPAD_NUMBER8", true},432 {"KB_NUMPAD9", "TXT_KEY_KEYBOARD_NUMPAD_NUMBER9", true},433 {"KB_NUMPADMINUS", "TXT_KEY_KEYBOARD_NUMPAD_MINUS", true},434 {"KB_NUMPAD4", "TXT_KEY_KEYBOARD_NUMPAD_NUMBER4", true},435 {"KB_NUMPAD5", "TXT_KEY_KEYBOARD_NUMPAD_NUMBER5", true},436 {"KB_NUMPAD6", "TXT_KEY_KEYBOARD_NUMPAD_NUMBER6", true},437 {"KB_NUMPADPLUS", "TXT_KEY_KEYBOARD_NUMPAD_PLUS", true},438 {"KB_NUMPAD1", "TXT_KEY_KEYBOARD_NUMPAD_NUMBER1", true},439 {"KB_NUMPAD2", "TXT_KEY_KEYBOARD_NUMPAD_NUMBER2", true},440 {"KB_NUMPAD3", "TXT_KEY_KEYBOARD_NUMPAD_NUMBER3", true},441 {"KB_NUMPAD0", "TXT_KEY_KEYBOARD_NUMPAD_NUMBER0", true},442 {"KB_NUMPADPERIOD", "TXT_KEY_KEYBOARD_NUMPAD_PERIOD", true},443 {"KB_F11","F11", false},444 {"KB_F12","F12", false},445 {"KB_NUMPADEQUALS", "TXT_KEY_KEYBOARD_NUMPAD_EQUALS", true},446 {"KB_AT","@", false},447 {"KB_UNDERLINE","_", false},448 {"KB_COLON",":", false},449 {"KB_NUMPADENTER", "TXT_KEY_KEYBOARD_NUMPAD_ENTER_KEY", true},450 {"KB_RCONTROL", "TXT_KEY_KEYBOARD_RIGHT_CONTROL_KEY", true},451 {"KB_VOLUMEDOWN", "TXT_KEY_KEYBOARD_VOLUME_DOWN", true},452 {"KB_VOLUMEUP", "TXT_KEY_KEYBOARD_VOLUME_UP", true},453 {"KB_NUMPADCOMMA", "TXT_KEY_KEYBOARD_NUMPAD_COMMA", true},454 {"KB_NUMPADSLASH", "TXT_KEY_KEYBOARD_NUMPAD_SLASH", true},455 {"KB_SYSRQ", "TXT_KEY_KEYBOARD_SYSRQ", true},456 {"KB_RALT", "TXT_KEY_KEYBOARD_RIGHT_ALT_KEY", true},457 {"KB_PAUSE", "TXT_KEY_KEYBOARD_PAUSE_KEY", true},458 {"KB_HOME", "TXT_KEY_KEYBOARD_HOME_KEY", true},459 {"KB_UP", "TXT_KEY_KEYBOARD_UP_ARROW", true},460 {"KB_PGUP", "TXT_KEY_KEYBOARD_PAGE_UP", true},461 {"KB_LEFT", "TXT_KEY_KEYBOARD_LEFT_ARROW", true},462 {"KB_RIGHT", "TXT_KEY_KEYBOARD_RIGHT_ARROW", true},463 {"KB_END", "TXT_KEY_KEYBOARD_END_KEY", true},464 {"KB_DOWN", "TXT_KEY_KEYBOARD_DOWN_ARROW", true},465 {"KB_PGDN", "TXT_KEY_KEYBOARD_PAGE_DOWN", true},466 {"KB_INSERT", "TXT_KEY_KEYBOARD_INSERT_KEY", true},467 {"KB_DELETE", "TXT_KEY_KEYBOARD_DELETE_KEY", true},468 {NULL, NULL, false},469 };470471 size_t i = 0;472 while(asCvKeyBoardMapping[i].szDefineString != NULL)473 {474 if(strcmp(pszHotKey, asCvKeyBoardMapping[i].szDefineString) == 0)475 {476 if(asCvKeyBoardMapping[i].bIsLocalizedText)477 {478 return GetLocalizedText(asCvKeyBoardMapping[i].szKeyString);479 }480 else481 {482 return asCvKeyBoardMapping[i].szKeyString;483 }484 }485 i++;486 }487488 return "";489}