dr_eyeball 16 Posted August 19, 2007 <span style='color:blue'>Solved:</span> Thanks for the info T_D and guys. That reverse matching works great. Is there a function which converts a key code (number) to a config file UI Key "Purpose" Name? Eg: I want to return the (default) key assignment "menuBack" from the key press "BACK SPACE" (or key code 14) via the OnKeyDown UI Event Handler. It's not keyName or keyImage, which both return a quoted string """BACK SPACE""" for key code 14. The addAction command shows the a list of Keys Mappings available for use, so I'm wondering if they can be referenced for use in dialogs? It would make the UI control keys consistent. Share this post Link to post Share on other sites
.kju 3245 Posted August 19, 2007 if T_D doesn't spot this topic himself, i guess you should send him a pm. he or his fellow team members might know it. Share this post Link to post Share on other sites
Synide 0 Posted August 19, 2007 are these any help? edit: sorry, just read your post properly... these probably won't be use... <table border="0" align="center" width="95%" cellpadding="0" cellspacing="0"><tr><td>Code Sample </td></tr><tr><td id="CODE"> #define DIK_ESCAPE Â Â Â Â Â 0x01 #define DIK_1 Â Â Â Â Â Â Â 0x02 #define DIK_2 Â Â Â Â Â Â Â 0x03 #define DIK_3 Â Â Â Â Â Â Â 0x04 #define DIK_4 Â Â Â Â Â Â Â 0x05 #define DIK_5 Â Â Â Â Â Â Â 0x06 #define DIK_6 Â Â Â Â Â Â Â 0x07 #define DIK_7 Â Â Â Â Â Â Â 0x08 #define DIK_8 Â Â Â Â Â Â Â 0x09 #define DIK_9 Â Â Â Â Â Â Â 0x0A #define DIK_0 Â Â Â Â Â Â Â 0x0B #define DIK_MINUS Â Â Â Â Â 0x0C Â Â /* - on main keyboard */ #define DIK_EQUALS Â Â Â Â Â 0x0D #define DIK_BACK Â Â Â Â Â Â 0x0E Â Â /* backspace */ #define DIK_TAB Â Â Â Â Â Â 0x0F #define DIK_Q Â Â Â Â Â Â Â 0x10 #define DIK_W Â Â Â Â Â Â Â 0x11 #define DIK_E Â Â Â Â Â Â Â 0x12 #define DIK_R Â Â Â Â Â Â Â 0x13 #define DIK_T Â Â Â Â Â Â Â 0x14 #define DIK_Y Â Â Â Â Â Â Â 0x15 #define DIK_U Â Â Â Â Â Â Â 0x16 #define DIK_I Â Â Â Â Â Â Â 0x17 #define DIK_O Â Â Â Â Â Â Â 0x18 #define DIK_P Â Â Â Â Â Â Â 0x19 #define DIK_LBRACKET Â Â Â Â 0x1A #define DIK_RBRACKET Â Â Â Â 0x1B #define DIK_RETURN Â Â Â Â Â 0x1C Â Â /* Enter on main keyboard */ #define DIK_LCONTROL Â Â Â Â 0x1D #define DIK_A Â Â Â Â Â Â Â 0x1E #define DIK_S Â Â Â Â Â Â Â 0x1F #define DIK_D Â Â Â Â Â Â Â 0x20 #define DIK_F Â Â Â Â Â Â Â 0x21 #define DIK_G Â Â Â Â Â Â Â 0x22 #define DIK_H Â Â Â Â Â Â Â 0x23 #define DIK_J Â Â Â Â Â Â Â 0x24 #define DIK_K Â Â Â Â Â Â Â 0x25 #define DIK_L Â Â Â Â Â Â Â 0x26 #define DIK_SEMICOLON Â Â Â 0x27 #define DIK_APOSTROPHE Â Â Â 0x28 #define DIK_GRAVE Â Â Â Â Â 0x29 Â Â /* accent grave */ #define DIK_LSHIFT Â Â Â Â Â 0x2A #define DIK_BACKSLASH Â Â Â 0x2B #define DIK_Z Â Â Â Â Â Â Â 0x2C #define DIK_X Â Â Â Â Â Â Â 0x2D #define DIK_C Â Â Â Â Â Â Â 0x2E #define DIK_V Â Â Â Â Â Â Â 0x2F #define DIK_B Â Â Â Â Â Â Â 0x30 #define DIK_N Â Â Â Â Â Â Â 0x31 #define DIK_M Â Â Â Â Â Â Â 0x32 #define DIK_COMMA Â Â Â Â Â 0x33 #define DIK_PERIOD Â Â Â Â Â 0x34 Â Â /* . on main keyboard */ #define DIK_SLASH Â Â Â Â Â 0x35 Â Â /* / on main keyboard */ #define DIK_RSHIFT Â Â Â Â Â 0x36 #define DIK_MULTIPLY Â Â Â Â 0x37 Â Â /* * on numeric keypad */ #define DIK_LMENU Â Â Â Â Â 0x38 Â Â /* left Alt */ #define DIK_SPACE Â Â Â Â Â 0x39 #define DIK_CAPITAL Â Â Â Â 0x3A #define DIK_F1 Â Â Â Â Â Â Â 0x3B #define DIK_F2 Â Â Â Â Â Â Â 0x3C #define DIK_F3 Â Â Â Â Â Â Â 0x3D #define DIK_F4 Â Â Â Â Â Â Â 0x3E #define DIK_F5 Â Â Â Â Â Â Â 0x3F #define DIK_F6 Â Â Â Â Â Â Â 0x40 #define DIK_F7 Â Â Â Â Â Â Â 0x41 #define DIK_F8 Â Â Â Â Â Â Â 0x42 #define DIK_F9 Â Â Â Â Â Â Â 0x43 #define DIK_F10 Â Â Â Â Â Â 0x44 #define DIK_NUMLOCK Â Â Â Â 0x45 #define DIK_SCROLL Â Â Â Â Â 0x46 Â Â /* Scroll Lock */ #define DIK_NUMPAD7 Â Â Â Â 0x47 #define DIK_NUMPAD8 Â Â Â Â 0x48 #define DIK_NUMPAD9 Â Â Â Â 0x49 #define DIK_SUBTRACT Â Â Â Â 0x4A Â Â /* - on numeric keypad */ #define DIK_NUMPAD4 Â Â Â Â 0x4B #define DIK_NUMPAD5 Â Â Â Â 0x4C #define DIK_NUMPAD6 Â Â Â Â 0x4D #define DIK_ADD Â Â Â Â Â Â 0x4E Â Â /* + on numeric keypad */ #define DIK_NUMPAD1 Â Â Â Â 0x4F #define DIK_NUMPAD2 Â Â Â Â 0x50 #define DIK_NUMPAD3 Â Â Â Â 0x51 #define DIK_NUMPAD0 Â Â Â Â 0x52 #define DIK_DECIMAL Â Â Â Â 0x53 Â Â /* . on numeric keypad */ #define DIK_OEM_102 Â Â Â Â 0x56 Â Â /* <> or \| on RT 102-key keyboard (Non-U.S.) */ #define DIK_F11 Â Â Â Â Â Â 0x57 #define DIK_F12 Â Â Â Â Â Â 0x58 #define DIK_F13 Â Â Â Â Â Â 0x64 Â Â /* Â Â Â Â Â Â Â Â Â Â (NEC PC98) */ #define DIK_F14 Â Â Â Â Â Â 0x65 Â Â /* Â Â Â Â Â Â Â Â Â Â (NEC PC98) */ #define DIK_F15 Â Â Â Â Â Â 0x66 Â Â /* Â Â Â Â Â Â Â Â Â Â (NEC PC98) */ #define DIK_KANA Â Â Â Â Â Â 0x70 Â Â /* (Japanese keyboard) Â Â Â Â Â Â */ #define DIK_ABNT_C1 Â Â Â Â 0x73 Â Â /* /? on Brazilian keyboard */ #define DIK_CONVERT Â Â Â Â 0x79 Â Â /* (Japanese keyboard) Â Â Â Â Â Â */ #define DIK_NOCONVERT Â Â Â 0x7B Â Â /* (Japanese keyboard) Â Â Â Â Â Â */ #define DIK_YEN Â Â Â Â Â Â 0x7D Â Â /* (Japanese keyboard) Â Â Â Â Â Â */ #define DIK_ABNT_C2 Â Â Â Â 0x7E Â Â /* Numpad . on Brazilian keyboard */ #define DIK_NUMPADEQUALS Â Â 0x8D Â Â /* = on numeric keypad (NEC PC98) */ #define DIK_PREVTRACK Â Â Â 0x90 Â Â /* Previous Track (DIK_CIRCUMFLEX on Japanese keyboard) */ #define DIK_AT Â Â Â Â Â Â Â 0x91 Â Â /* Â Â Â Â Â Â Â Â Â Â (NEC PC98) */ #define DIK_COLON Â Â Â Â Â 0x92 Â Â /* Â Â Â Â Â Â Â Â Â Â (NEC PC98) */ #define DIK_UNDERLINE Â Â Â 0x93 Â Â /* Â Â Â Â Â Â Â Â Â Â (NEC PC98) */ #define DIK_KANJI Â Â Â Â Â 0x94 Â Â /* (Japanese keyboard) Â Â Â Â Â Â */ #define DIK_STOP Â Â Â Â Â Â 0x95 Â Â /* Â Â Â Â Â Â Â Â Â Â (NEC PC98) */ #define DIK_AX Â Â Â Â Â Â Â 0x96 Â Â /* Â Â Â Â Â Â Â Â Â Â (Japan AX) */ #define DIK_UNLABELED Â Â Â 0x97 Â Â /* Â Â Â Â Â Â Â Â Â Â Â Â (J3100) */ #define DIK_NEXTTRACK Â Â Â 0x99 Â Â /* Next Track */ #define DIK_NUMPADENTER Â Â 0x9C Â Â /* Enter on numeric keypad */ #define DIK_RCONTROL Â Â Â Â 0x9D #define DIK_MUTE Â Â Â Â Â Â 0xA0 Â Â /* Mute */ #define DIK_CALCULATOR Â Â Â 0xA1 Â Â /* Calculator */ #define DIK_PLAYPAUSE Â Â Â 0xA2 Â Â /* Play / Pause */ #define DIK_MEDIASTOP Â Â Â 0xA4 Â Â /* Media Stop */ #define DIK_VOLUMEDOWN Â Â Â 0xAE Â Â /* Volume - */ #define DIK_VOLUMEUP Â Â Â Â 0xB0 Â Â /* Volume + */ #define DIK_WEBHOME Â Â Â Â 0xB2 Â Â /* Web home */ #define DIK_NUMPADCOMMA Â Â 0xB3 Â Â /* , on numeric keypad (NEC PC98) */ #define DIK_DIVIDE Â Â Â Â Â 0xB5 Â Â /* / on numeric keypad */ #define DIK_SYSRQ Â Â Â Â Â 0xB7 #define DIK_RMENU Â Â Â Â Â 0xB8 Â Â /* right Alt */ #define DIK_PAUSE Â Â Â Â Â 0xC5 Â Â /* Pause */ #define DIK_HOME Â Â Â Â Â Â 0xC7 Â Â /* Home on arrow keypad */ #define DIK_UP Â Â Â Â Â Â Â 0xC8 Â Â /* UpArrow on arrow keypad */ #define DIK_PRIOR Â Â Â Â Â 0xC9 Â Â /* PgUp on arrow keypad */ #define DIK_LEFT Â Â Â Â Â Â 0xCB Â Â /* LeftArrow on arrow keypad */ #define DIK_RIGHT Â Â Â Â Â 0xCD Â Â /* RightArrow on arrow keypad */ #define DIK_END Â Â Â Â Â Â 0xCF Â Â /* End on arrow keypad */ #define DIK_DOWN Â Â Â Â Â Â 0xD0 Â Â /* DownArrow on arrow keypad */ #define DIK_NEXT Â Â Â Â Â Â 0xD1 Â Â /* PgDn on arrow keypad */ #define DIK_INSERT Â Â Â Â Â 0xD2 Â Â /* Insert on arrow keypad */ #define DIK_DELETE Â Â Â Â Â 0xD3 Â Â /* Delete on arrow keypad */ #define DIK_LWIN Â Â Â Â Â Â 0xDB Â Â /* Left Windows key */ #define DIK_RWIN Â Â Â Â Â Â 0xDC Â Â /* Right Windows key */ #define DIK_APPS Â Â Â Â Â Â 0xDD Â Â /* AppMenu key */ #define DIK_POWER Â Â Â Â Â 0xDE Â Â /* System Power */ #define DIK_SLEEP Â Â Â Â Â 0xDF Â Â /* System Sleep */ #define DIK_WAKE Â Â Â Â Â Â 0xE3 Â Â /* System Wake */ #define DIK_WEBSEARCH Â Â Â 0xE5 Â Â /* Web Search */ #define DIK_WEBFAVORITES Â Â 0xE6 Â Â /* Web Favorites */ #define DIK_WEBREFRESH Â Â Â 0xE7 Â Â /* Web Refresh */ #define DIK_WEBSTOP Â Â Â Â 0xE8 Â Â /* Web Stop */ #define DIK_WEBFORWARD Â Â Â 0xE9 Â Â /* Web Forward */ #define DIK_WEBBACK Â Â Â Â 0xEA Â Â /* Web Back */ #define DIK_MYCOMPUTER Â Â Â 0xEB Â Â /* My Computer */ #define DIK_MAIL Â Â Â Â Â Â 0xEC Â Â /* Mail */ #define DIK_MEDIASELECT Â Â 0xED Â Â /* Media Select */ Share this post Link to post Share on other sites
t_d 47 Posted August 19, 2007 Well there isnt a function for it so you will have to do some bruteforce-like stuff: <table border="0" align="center" width="95%" cellpadding="0" cellspacing="0"><tr><td>Code Sample </td></tr><tr><td id="CODE">_keyCode = _this; _actionNames = ["moveForward","moveBack","turnLeft","turnRight","moveUp"]; _cnt = count _actionNames; _result = ""; for "_i" from 0 to (_cnt-1) do { _actionName = _actionNames select _i; if(_keyCode in (actionKeys _actionName))exitWith{_result = _actionName}; }; _result; Just fill the _actionNames array with all UI Key "Purpose" Names that you want to test. Share this post Link to post Share on other sites