keyboard_layout_monitor.cc 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137
  1. // Copyright 2019 The Chromium Authors. All rights reserved.
  2. // Use of this source code is governed by a BSD-style license that can be
  3. // found in the LICENSE file.
  4. #include "remoting/host/keyboard_layout_monitor.h"
  5. #include "base/containers/span.h"
  6. #include "ui/events/keycodes/dom/dom_code.h"
  7. namespace remoting {
  8. namespace {
  9. const ui::DomCode kSupportedKeysArray[] = {
  10. ui::DomCode::ALT_LEFT,
  11. ui::DomCode::ALT_RIGHT,
  12. ui::DomCode::ARROW_DOWN,
  13. ui::DomCode::ARROW_RIGHT,
  14. ui::DomCode::ARROW_LEFT,
  15. ui::DomCode::ARROW_UP,
  16. ui::DomCode::BACKQUOTE,
  17. ui::DomCode::BACKSLASH,
  18. ui::DomCode::BACKSPACE,
  19. ui::DomCode::BRACKET_LEFT,
  20. ui::DomCode::BRACKET_RIGHT,
  21. ui::DomCode::CAPS_LOCK,
  22. ui::DomCode::COMMA,
  23. ui::DomCode::CONTEXT_MENU,
  24. ui::DomCode::CONTROL_LEFT,
  25. ui::DomCode::CONTROL_RIGHT,
  26. ui::DomCode::CONVERT,
  27. ui::DomCode::DEL,
  28. ui::DomCode::DIGIT0,
  29. ui::DomCode::DIGIT1,
  30. ui::DomCode::DIGIT2,
  31. ui::DomCode::DIGIT3,
  32. ui::DomCode::DIGIT4,
  33. ui::DomCode::DIGIT5,
  34. ui::DomCode::DIGIT6,
  35. ui::DomCode::DIGIT7,
  36. ui::DomCode::DIGIT8,
  37. ui::DomCode::DIGIT9,
  38. ui::DomCode::END,
  39. ui::DomCode::ENTER,
  40. ui::DomCode::EQUAL,
  41. ui::DomCode::ESCAPE,
  42. ui::DomCode::F1,
  43. ui::DomCode::F2,
  44. ui::DomCode::F3,
  45. ui::DomCode::F4,
  46. ui::DomCode::F5,
  47. ui::DomCode::F6,
  48. ui::DomCode::F7,
  49. ui::DomCode::F8,
  50. ui::DomCode::F9,
  51. ui::DomCode::F10,
  52. ui::DomCode::F11,
  53. ui::DomCode::F12,
  54. ui::DomCode::HOME,
  55. ui::DomCode::INSERT,
  56. ui::DomCode::INTL_BACKSLASH,
  57. ui::DomCode::INTL_RO,
  58. ui::DomCode::INTL_YEN,
  59. ui::DomCode::KANA_MODE,
  60. ui::DomCode::LANG1,
  61. ui::DomCode::LANG2,
  62. ui::DomCode::META_LEFT,
  63. ui::DomCode::META_RIGHT,
  64. ui::DomCode::MINUS,
  65. ui::DomCode::NON_CONVERT,
  66. ui::DomCode::NUM_LOCK,
  67. ui::DomCode::NUMPAD0,
  68. ui::DomCode::NUMPAD1,
  69. ui::DomCode::NUMPAD2,
  70. ui::DomCode::NUMPAD3,
  71. ui::DomCode::NUMPAD4,
  72. ui::DomCode::NUMPAD5,
  73. ui::DomCode::NUMPAD6,
  74. ui::DomCode::NUMPAD7,
  75. ui::DomCode::NUMPAD8,
  76. ui::DomCode::NUMPAD9,
  77. ui::DomCode::NUMPAD_ADD,
  78. ui::DomCode::NUMPAD_COMMA,
  79. ui::DomCode::NUMPAD_DECIMAL,
  80. ui::DomCode::NUMPAD_DIVIDE,
  81. ui::DomCode::NUMPAD_ENTER,
  82. ui::DomCode::NUMPAD_EQUAL,
  83. ui::DomCode::NUMPAD_MULTIPLY,
  84. ui::DomCode::NUMPAD_SUBTRACT,
  85. ui::DomCode::PAGE_DOWN,
  86. ui::DomCode::PAGE_UP,
  87. ui::DomCode::PAUSE,
  88. ui::DomCode::PERIOD,
  89. ui::DomCode::PRINT_SCREEN,
  90. ui::DomCode::QUOTE,
  91. ui::DomCode::SCROLL_LOCK,
  92. ui::DomCode::SEMICOLON,
  93. ui::DomCode::SHIFT_LEFT,
  94. ui::DomCode::SHIFT_RIGHT,
  95. ui::DomCode::SLASH,
  96. ui::DomCode::SPACE,
  97. ui::DomCode::TAB,
  98. ui::DomCode::US_A,
  99. ui::DomCode::US_B,
  100. ui::DomCode::US_C,
  101. ui::DomCode::US_D,
  102. ui::DomCode::US_E,
  103. ui::DomCode::US_F,
  104. ui::DomCode::US_G,
  105. ui::DomCode::US_H,
  106. ui::DomCode::US_I,
  107. ui::DomCode::US_J,
  108. ui::DomCode::US_K,
  109. ui::DomCode::US_L,
  110. ui::DomCode::US_M,
  111. ui::DomCode::US_N,
  112. ui::DomCode::US_O,
  113. ui::DomCode::US_P,
  114. ui::DomCode::US_Q,
  115. ui::DomCode::US_R,
  116. ui::DomCode::US_S,
  117. ui::DomCode::US_T,
  118. ui::DomCode::US_U,
  119. ui::DomCode::US_V,
  120. ui::DomCode::US_W,
  121. ui::DomCode::US_X,
  122. ui::DomCode::US_Y,
  123. ui::DomCode::US_Z,
  124. };
  125. } // namespace
  126. // static
  127. const base::span<const ui::DomCode> KeyboardLayoutMonitor::kSupportedKeys(
  128. kSupportedKeysArray);
  129. } // namespace remoting