GTK3MappingHelper.cs 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154
  1. using System.Runtime.CompilerServices;
  2. using GtkKey = Gdk.Key;
  3. namespace Ryujinx.Input.GTK3
  4. {
  5. public static class GTK3MappingHelper
  6. {
  7. private static readonly GtkKey[] _keyMapping = new GtkKey[(int)Key.Count]
  8. {
  9. // NOTE: invalid
  10. GtkKey.blank,
  11. GtkKey.Shift_L,
  12. GtkKey.Shift_R,
  13. GtkKey.Control_L,
  14. GtkKey.Control_R,
  15. GtkKey.Alt_L,
  16. GtkKey.Alt_R,
  17. GtkKey.Super_L,
  18. GtkKey.Super_R,
  19. GtkKey.Menu,
  20. GtkKey.F1,
  21. GtkKey.F2,
  22. GtkKey.F3,
  23. GtkKey.F4,
  24. GtkKey.F5,
  25. GtkKey.F6,
  26. GtkKey.F7,
  27. GtkKey.F8,
  28. GtkKey.F9,
  29. GtkKey.F10,
  30. GtkKey.F11,
  31. GtkKey.F12,
  32. GtkKey.F13,
  33. GtkKey.F14,
  34. GtkKey.F15,
  35. GtkKey.F16,
  36. GtkKey.F17,
  37. GtkKey.F18,
  38. GtkKey.F19,
  39. GtkKey.F20,
  40. GtkKey.F21,
  41. GtkKey.F22,
  42. GtkKey.F23,
  43. GtkKey.F24,
  44. GtkKey.F25,
  45. GtkKey.F26,
  46. GtkKey.F27,
  47. GtkKey.F28,
  48. GtkKey.F29,
  49. GtkKey.F30,
  50. GtkKey.F31,
  51. GtkKey.F32,
  52. GtkKey.F33,
  53. GtkKey.F34,
  54. GtkKey.F35,
  55. GtkKey.Up,
  56. GtkKey.Down,
  57. GtkKey.Left,
  58. GtkKey.Right,
  59. GtkKey.Return,
  60. GtkKey.Escape,
  61. GtkKey.space,
  62. GtkKey.Tab,
  63. GtkKey.BackSpace,
  64. GtkKey.Insert,
  65. GtkKey.Delete,
  66. GtkKey.Page_Up,
  67. GtkKey.Page_Down,
  68. GtkKey.Home,
  69. GtkKey.End,
  70. GtkKey.Caps_Lock,
  71. GtkKey.Scroll_Lock,
  72. GtkKey.Print,
  73. GtkKey.Pause,
  74. GtkKey.Num_Lock,
  75. GtkKey.Clear,
  76. GtkKey.KP_0,
  77. GtkKey.KP_1,
  78. GtkKey.KP_2,
  79. GtkKey.KP_3,
  80. GtkKey.KP_4,
  81. GtkKey.KP_5,
  82. GtkKey.KP_6,
  83. GtkKey.KP_7,
  84. GtkKey.KP_8,
  85. GtkKey.KP_9,
  86. GtkKey.KP_Divide,
  87. GtkKey.KP_Multiply,
  88. GtkKey.KP_Subtract,
  89. GtkKey.KP_Add,
  90. GtkKey.KP_Decimal,
  91. GtkKey.KP_Enter,
  92. GtkKey.a,
  93. GtkKey.b,
  94. GtkKey.c,
  95. GtkKey.d,
  96. GtkKey.e,
  97. GtkKey.f,
  98. GtkKey.g,
  99. GtkKey.h,
  100. GtkKey.i,
  101. GtkKey.j,
  102. GtkKey.k,
  103. GtkKey.l,
  104. GtkKey.m,
  105. GtkKey.n,
  106. GtkKey.o,
  107. GtkKey.p,
  108. GtkKey.q,
  109. GtkKey.r,
  110. GtkKey.s,
  111. GtkKey.t,
  112. GtkKey.u,
  113. GtkKey.v,
  114. GtkKey.w,
  115. GtkKey.x,
  116. GtkKey.y,
  117. GtkKey.z,
  118. GtkKey.Key_0,
  119. GtkKey.Key_1,
  120. GtkKey.Key_2,
  121. GtkKey.Key_3,
  122. GtkKey.Key_4,
  123. GtkKey.Key_5,
  124. GtkKey.Key_6,
  125. GtkKey.Key_7,
  126. GtkKey.Key_8,
  127. GtkKey.Key_9,
  128. GtkKey.grave,
  129. GtkKey.grave,
  130. GtkKey.minus,
  131. GtkKey.plus,
  132. GtkKey.bracketleft,
  133. GtkKey.bracketright,
  134. GtkKey.semicolon,
  135. GtkKey.quoteright,
  136. GtkKey.comma,
  137. GtkKey.period,
  138. GtkKey.slash,
  139. GtkKey.backslash,
  140. // NOTE: invalid
  141. GtkKey.blank,
  142. };
  143. [MethodImpl(MethodImplOptions.AggressiveInlining)]
  144. public static GtkKey ToGtkKey(Key key)
  145. {
  146. return _keyMapping[(int)key];
  147. }
  148. }
  149. }