keystouielements.c 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178
  1. //
  2. // Keep this Object up-to-date with KeyCodes Enum in EnSystem.c
  3. //
  4. // KeysToUIElements is mapping of KeyCodes to its literal name or icon from ImageSet
  5. // that will be displayed in floating widget for Default Actions - aka Action Target Selection
  6. typedef Param2<string, bool> KeyToUIElement;
  7. class KeysToUIElements
  8. {
  9. static private ref map<int, ref KeyToUIElement> m_KeysToUIElements;
  10. static private void RegisterKeyToUIElement(int key_code, string name, bool is_image_set )
  11. {
  12. if ( m_KeysToUIElements == NULL )
  13. {
  14. m_KeysToUIElements = new map<int, ref KeyToUIElement>;
  15. }
  16. if ( m_KeysToUIElements.Contains(key_code) )
  17. {
  18. Debug.Log("Template ID: "+string.ToString(key_code)+" is alredy exist!", "KeysToUIElements -> OnInit()", "System", "KeysToUIElements Registration", "None");
  19. }
  20. else
  21. {
  22. KeyToUIElement params = new KeyToUIElement(name, is_image_set);
  23. m_KeysToUIElements.Set(key_code, params);
  24. }
  25. }
  26. static KeyToUIElement GetKeyToUIElement(int key_code)
  27. {
  28. if ( m_KeysToUIElements && m_KeysToUIElements.Contains(key_code) )
  29. {
  30. return m_KeysToUIElements.Get(key_code);
  31. }
  32. Debug.Log("Template ID: "+string.ToString(key_code)+" does not exist!", "KeysToUIElements -> GetKeysToUIElement()", "System", "Get KeysToUIElements", "None");
  33. return NULL;
  34. }
  35. static void Init()
  36. {
  37. //////////////////////////////////////////////////////////////////////////////////////////////////////////
  38. //////// Register KeysToUIElements ///////////////////////////////////////////////////////////////////////
  39. // | KeyCode | Name | is_image_set //
  40. RegisterKeyToUIElement( KeyCode.KC_ESCAPE , "ESC" , false );
  41. RegisterKeyToUIElement( KeyCode.KC_1 , "1" , false );
  42. RegisterKeyToUIElement( KeyCode.KC_2 , "2" , false );
  43. RegisterKeyToUIElement( KeyCode.KC_3 , "3" , false );
  44. RegisterKeyToUIElement( KeyCode.KC_4 , "4" , false );
  45. RegisterKeyToUIElement( KeyCode.KC_5 , "5" , false );
  46. RegisterKeyToUIElement( KeyCode.KC_6 , "6" , false );
  47. RegisterKeyToUIElement( KeyCode.KC_7 , "7" , false );
  48. RegisterKeyToUIElement( KeyCode.KC_8 , "8" , false );
  49. RegisterKeyToUIElement( KeyCode.KC_9 , "9" , false );
  50. RegisterKeyToUIElement( KeyCode.KC_0 , "0" , false );
  51. RegisterKeyToUIElement( KeyCode.KC_MINUS , "-" , false );
  52. RegisterKeyToUIElement( KeyCode.KC_EQUALS , "=" , false );
  53. RegisterKeyToUIElement( KeyCode.KC_BACK , "BKSPC" , false );
  54. RegisterKeyToUIElement( KeyCode.KC_TAB , "TAB" , false );
  55. RegisterKeyToUIElement( KeyCode.KC_Q , "Q" , false );
  56. RegisterKeyToUIElement( KeyCode.KC_W , "W" , false );
  57. RegisterKeyToUIElement( KeyCode.KC_E , "E" , false );
  58. RegisterKeyToUIElement( KeyCode.KC_R , "R" , false );
  59. RegisterKeyToUIElement( KeyCode.KC_T , "T" , false );
  60. RegisterKeyToUIElement( KeyCode.KC_Y , "Y" , false );
  61. RegisterKeyToUIElement( KeyCode.KC_U , "U" , false );
  62. RegisterKeyToUIElement( KeyCode.KC_I , "I" , false );
  63. RegisterKeyToUIElement( KeyCode.KC_O , "O" , false );
  64. RegisterKeyToUIElement( KeyCode.KC_P , "P" , false );
  65. RegisterKeyToUIElement( KeyCode.KC_LBRACKET , "(" , false );
  66. RegisterKeyToUIElement( KeyCode.KC_RBRACKET , ")" , false );
  67. RegisterKeyToUIElement( KeyCode.KC_RETURN , "ENTER" , false );
  68. RegisterKeyToUIElement( KeyCode.KC_LCONTROL , "LCTRL" , false );
  69. RegisterKeyToUIElement( KeyCode.KC_A , "A" , false );
  70. RegisterKeyToUIElement( KeyCode.KC_S , "S" , false );
  71. RegisterKeyToUIElement( KeyCode.KC_D , "D" , false );
  72. RegisterKeyToUIElement( KeyCode.KC_F , "F" , false );
  73. RegisterKeyToUIElement( KeyCode.KC_G , "G" , false );
  74. RegisterKeyToUIElement( KeyCode.KC_H , "H" , false );
  75. RegisterKeyToUIElement( KeyCode.KC_J , "J" , false );
  76. RegisterKeyToUIElement( KeyCode.KC_K , "K" , false );
  77. RegisterKeyToUIElement( KeyCode.KC_L , "L" , false );
  78. RegisterKeyToUIElement( KeyCode.KC_SEMICOLON , ";" , false );
  79. RegisterKeyToUIElement( KeyCode.KC_APOSTROPHE , "'" , false );
  80. RegisterKeyToUIElement( KeyCode.KC_GRAVE , "`" , false );
  81. RegisterKeyToUIElement( KeyCode.KC_LSHIFT , "LSHIFT" , false );
  82. RegisterKeyToUIElement( KeyCode.KC_BACKSLASH , "\\" , false );
  83. RegisterKeyToUIElement( KeyCode.KC_Z , "Z" , false );
  84. RegisterKeyToUIElement( KeyCode.KC_X , "X" , false );
  85. RegisterKeyToUIElement( KeyCode.KC_C , "C" , false );
  86. RegisterKeyToUIElement( KeyCode.KC_V , "V" , false );
  87. RegisterKeyToUIElement( KeyCode.KC_B , "B" , false );
  88. RegisterKeyToUIElement( KeyCode.KC_N , "N" , false );
  89. RegisterKeyToUIElement( KeyCode.KC_M , "M" , false );
  90. RegisterKeyToUIElement( KeyCode.KC_COMMA , "," , false );
  91. RegisterKeyToUIElement( KeyCode.KC_PERIOD , "." , false );
  92. RegisterKeyToUIElement( KeyCode.KC_SLASH , "/" , false );
  93. RegisterKeyToUIElement( KeyCode.KC_RSHIFT , "RSHIFT" , false );
  94. RegisterKeyToUIElement( KeyCode.KC_MULTIPLY , "*" , false );
  95. RegisterKeyToUIElement( KeyCode.KC_LMENU , "LALT" , false );
  96. RegisterKeyToUIElement( KeyCode.KC_SPACE , "SPACE" , false );
  97. RegisterKeyToUIElement( KeyCode.KC_CAPITAL , "CPSLOCK" , false );
  98. RegisterKeyToUIElement( KeyCode.KC_F1 , "F1" , false );
  99. RegisterKeyToUIElement( KeyCode.KC_F2 , "F2" , false );
  100. RegisterKeyToUIElement( KeyCode.KC_F3 , "F3" , false );
  101. RegisterKeyToUIElement( KeyCode.KC_F4 , "F4" , false );
  102. RegisterKeyToUIElement( KeyCode.KC_F5 , "F5" , false );
  103. RegisterKeyToUIElement( KeyCode.KC_F6 , "F6" , false );
  104. RegisterKeyToUIElement( KeyCode.KC_F7 , "F7" , false );
  105. RegisterKeyToUIElement( KeyCode.KC_F8 , "F8" , false );
  106. RegisterKeyToUIElement( KeyCode.KC_F9 , "F9" , false );
  107. RegisterKeyToUIElement( KeyCode.KC_F10 , "F10" , false );
  108. RegisterKeyToUIElement( KeyCode.KC_NUMLOCK , "NMLOCK" , false );
  109. RegisterKeyToUIElement( KeyCode.KC_SCROLL , "SCRLOCK" , false );
  110. RegisterKeyToUIElement( KeyCode.KC_NUMPAD7 , "Num7" , false );
  111. RegisterKeyToUIElement( KeyCode.KC_NUMPAD8 , "Num8" , false );
  112. RegisterKeyToUIElement( KeyCode.KC_NUMPAD9 , "Num9" , false );
  113. RegisterKeyToUIElement( KeyCode.KC_SUBTRACT , "Num-" , false );
  114. RegisterKeyToUIElement( KeyCode.KC_NUMPAD4 , "Num4" , false );
  115. RegisterKeyToUIElement( KeyCode.KC_NUMPAD5 , "Num5" , false );
  116. RegisterKeyToUIElement( KeyCode.KC_NUMPAD6 , "Num6" , false );
  117. RegisterKeyToUIElement( KeyCode.KC_ADD , "Num+" , false );
  118. RegisterKeyToUIElement( KeyCode.KC_NUMPAD1 , "Num1" , false );
  119. RegisterKeyToUIElement( KeyCode.KC_NUMPAD2 , "Num2" , false );
  120. RegisterKeyToUIElement( KeyCode.KC_NUMPAD3 , "Num3" , false );
  121. RegisterKeyToUIElement( KeyCode.KC_NUMPAD0 , "Num0" , false );
  122. RegisterKeyToUIElement( KeyCode.KC_DECIMAL , "Num." , false );
  123. //RegisterKeyToUIElement( KeyCode.KC_OEM_102, ///< < > | on UK/Germany keyboards
  124. RegisterKeyToUIElement( KeyCode.KC_F11 , "F11" , false );
  125. RegisterKeyToUIElement( KeyCode.KC_F12 , "F12" , false );
  126. RegisterKeyToUIElement( KeyCode.KC_NUMPADEQUALS , "Num=" , false );
  127. RegisterKeyToUIElement( KeyCode.KC_PREVTRACK , "PrevTrack" , false );
  128. //RegisterKeyToUIElement( KeyCode.KC_AT, ///< (NEC PC98)
  129. RegisterKeyToUIElement( KeyCode.KC_COLON , ":" , false );
  130. RegisterKeyToUIElement( KeyCode.KC_UNDERLINE , "_" , false );
  131. //RegisterKeyToUIElement( KeyCode.KC_STOP, ///< (NEC PC98)
  132. //RegisterKeyToUIElement( KeyCode.KC_AX, ///< (Japan AX)
  133. //RegisterKeyToUIElement( KeyCode.KC_UNLABELED, ///< (J3100)
  134. RegisterKeyToUIElement( KeyCode.KC_NEXTTRACK , "NextTrack" , false );
  135. RegisterKeyToUIElement( KeyCode.KC_NUMPADENTER , "NumEnter" , false );
  136. RegisterKeyToUIElement( KeyCode.KC_RCONTROL , "RCTRL" , false );
  137. RegisterKeyToUIElement( KeyCode.KC_MUTE , "Mute" , false );
  138. RegisterKeyToUIElement( KeyCode.KC_CALCULATOR , "Calc" , false );
  139. RegisterKeyToUIElement( KeyCode.KC_PLAYPAUSE , "Play" , false );
  140. RegisterKeyToUIElement( KeyCode.KC_MEDIASTOP , "Stop" , false );
  141. RegisterKeyToUIElement( KeyCode.KC_VOLUMEDOWN , "Vol-" , false );
  142. RegisterKeyToUIElement( KeyCode.KC_VOLUMEUP , "Vol+" , false );
  143. RegisterKeyToUIElement( KeyCode.KC_WEBHOME , "Web Home" , false );
  144. RegisterKeyToUIElement( KeyCode.KC_NUMPADCOMMA , "Num," , false );
  145. RegisterKeyToUIElement( KeyCode.KC_DIVIDE , "Num/" , false );
  146. RegisterKeyToUIElement( KeyCode.KC_SYSRQ , "SysRq" , false );
  147. RegisterKeyToUIElement( KeyCode.KC_RMENU , "RALT" , false );
  148. RegisterKeyToUIElement( KeyCode.KC_PAUSE , "Pause" , false );
  149. RegisterKeyToUIElement( KeyCode.KC_HOME , "Home" , false );
  150. RegisterKeyToUIElement( KeyCode.KC_UP , "ArrowUp" , false );
  151. RegisterKeyToUIElement( KeyCode.KC_PRIOR , "PageUp" , false );
  152. RegisterKeyToUIElement( KeyCode.KC_LEFT , "ArrowLeft" , false );
  153. RegisterKeyToUIElement( KeyCode.KC_RIGHT , "ArrowRight" , false );
  154. RegisterKeyToUIElement( KeyCode.KC_END , "End" , false );
  155. RegisterKeyToUIElement( KeyCode.KC_DOWN , "ArrowDown" , false );
  156. RegisterKeyToUIElement( KeyCode.KC_NEXT , "PgDn" , false );
  157. RegisterKeyToUIElement( KeyCode.KC_INSERT , "Insert" , false );
  158. RegisterKeyToUIElement( KeyCode.KC_DELETE , "Delete" , false );
  159. RegisterKeyToUIElement( KeyCode.KC_LWIN , "LWIN" , false );
  160. RegisterKeyToUIElement( KeyCode.KC_RWIN , "RWIN" , false );
  161. //RegisterKeyToUIElement( KeyCode.KC_APPS, ///< AppMenu key
  162. //RegisterKeyToUIElement( KeyCode.KC_POWER, ///< System Power
  163. //RegisterKeyToUIElement( KeyCode.KC_SLEEP, ///< System Sleep
  164. //RegisterKeyToUIElement( KeyCode.KC_WAKE, ///< System Wake
  165. //RegisterKeyToUIElement( KeyCode.KC_MEDIASELECT ///< Media Selection
  166. // Mouse buttons
  167. RegisterKeyToUIElement( 1048576 , "set:dayz_gui image:left_mouse" , true );
  168. RegisterKeyToUIElement( 1048577 , "set:dayz_gui image:right_mouse" , true );
  169. RegisterKeyToUIElement( 1048578 , "set:dayz_gui image:middle_mouse" , true );
  170. }
  171. }