Bazaar developer reference

CvHotKeyInfo::CreateKeyStringFromKBCode(const char *)

Defined in
CvInfos.cpp, line 348
Class
CvHotKeyInfo
Hook name
CivHooks::CvHotKeyInfo_CreateKeyStringFromKBCode

Hooks

static bool BeforeCvHotKeyInfo_CreateKeyStringFromKBCode(const char* pszHotKey, CvString& result);static void AfterCvHotKeyInfo_CreateKeyStringFromKBCode(const char* pszHotKey, CvString& result);static CvString ReplaceCvHotKeyInfo_CreateKeyStringFromKBCode(CvString (*original)(const char*), const char* pszHotKey);CivRegisterBefore<CivHooks::CvHotKeyInfo_CreateKeyStringFromKBCode>(host, &BeforeCvHotKeyInfo_CreateKeyStringFromKBCode);CivRegisterAfter<CivHooks::CvHotKeyInfo_CreateKeyStringFromKBCode>(host, &AfterCvHotKeyInfo_CreateKeyStringFromKBCode);CivRegisterReplace<CivHooks::CvHotKeyInfo_CreateKeyStringFromKBCode>(host, &ReplaceCvHotKeyInfo_CreateKeyStringFromKBCode);

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}

Calls

Called by