| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "ui/base/ime/chromeos/ime_keymap.h" | 5 #include "ui/base/ime/chromeos/ime_keymap.h" |
| 6 | 6 |
| 7 #include <map> | 7 #include <map> |
| 8 | 8 |
| 9 #include "base/lazy_instance.h" | 9 #include "base/lazy_instance.h" |
| 10 | 10 |
| (...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 127 {VKEY_RMENU, "AltRight"}, | 127 {VKEY_RMENU, "AltRight"}, |
| 128 {VKEY_BROWSER_BACK, "BrowserBack"}, | 128 {VKEY_BROWSER_BACK, "BrowserBack"}, |
| 129 {VKEY_BROWSER_FORWARD, "BrowserForward"}, | 129 {VKEY_BROWSER_FORWARD, "BrowserForward"}, |
| 130 {VKEY_BROWSER_REFRESH, "BrowserRefresh"}, | 130 {VKEY_BROWSER_REFRESH, "BrowserRefresh"}, |
| 131 {VKEY_BROWSER_STOP, "BrowserStop"}, | 131 {VKEY_BROWSER_STOP, "BrowserStop"}, |
| 132 {VKEY_BROWSER_SEARCH, "BrowserSearch"}, | 132 {VKEY_BROWSER_SEARCH, "BrowserSearch"}, |
| 133 {VKEY_BROWSER_HOME, "BrowserHome"}, | 133 {VKEY_BROWSER_HOME, "BrowserHome"}, |
| 134 {VKEY_VOLUME_MUTE, "VolumeMute"}, | 134 {VKEY_VOLUME_MUTE, "VolumeMute"}, |
| 135 {VKEY_VOLUME_DOWN, "VolumeDown"}, | 135 {VKEY_VOLUME_DOWN, "VolumeDown"}, |
| 136 {VKEY_VOLUME_UP, "VolumeUp"}, | 136 {VKEY_VOLUME_UP, "VolumeUp"}, |
| 137 {VKEY_BRIGHTNESS_DOWN, "BrightnessDown"}, |
| 138 {VKEY_BRIGHTNESS_UP, "BrightnessUp"}, |
| 139 {VKEY_MEDIA_LAUNCH_APP1, "ChromeOSSwitchWindow"}, |
| 140 {VKEY_MEDIA_LAUNCH_APP2, "ChromeOSFullscreen"}, |
| 137 {VKEY_MEDIA_NEXT_TRACK, "MediaTrackNext"}, | 141 {VKEY_MEDIA_NEXT_TRACK, "MediaTrackNext"}, |
| 138 {VKEY_MEDIA_PREV_TRACK, "MediaTrackPrevious"}, | 142 {VKEY_MEDIA_PREV_TRACK, "MediaTrackPrevious"}, |
| 139 {VKEY_MEDIA_STOP, "MediaStop"}, | 143 {VKEY_MEDIA_STOP, "MediaStop"}, |
| 140 {VKEY_MEDIA_PLAY_PAUSE, "MediaPlayPause"}, | 144 {VKEY_MEDIA_PLAY_PAUSE, "MediaPlayPause"}, |
| 141 {VKEY_MEDIA_LAUNCH_MAIL, "LaunchMail"}, | 145 {VKEY_MEDIA_LAUNCH_MAIL, "LaunchMail"}, |
| 142 {VKEY_OEM_1, "Semicolon"}, | 146 {VKEY_OEM_1, "Semicolon"}, |
| 143 {VKEY_OEM_PLUS, "Equal"}, | 147 {VKEY_OEM_PLUS, "Equal"}, |
| 144 {VKEY_OEM_COMMA, "Comma"}, | 148 {VKEY_OEM_COMMA, "Comma"}, |
| 145 {VKEY_OEM_MINUS, "Minus"}, | 149 {VKEY_OEM_MINUS, "Minus"}, |
| 146 {VKEY_OEM_PERIOD, "Period"}, | 150 {VKEY_OEM_PERIOD, "Period"}, |
| 147 {VKEY_OEM_2, "Slash"}, | 151 {VKEY_OEM_2, "Slash"}, |
| 148 {VKEY_OEM_3, "Backquote"}, | 152 {VKEY_OEM_3, "Backquote"}, |
| 149 {VKEY_OEM_4, "BracketLeft"}, | 153 {VKEY_OEM_4, "BracketLeft"}, |
| 150 {VKEY_OEM_5, "Backslash"}, | 154 {VKEY_OEM_5, "Backslash"}, |
| 151 {VKEY_OEM_6, "BracketRight"}, | 155 {VKEY_OEM_6, "BracketRight"}, |
| 152 {VKEY_OEM_7, "Quote"}}; | 156 {VKEY_OEM_7, "Quote"}}; |
| 153 | 157 |
| 154 class KeyCodeMap { | 158 class KeyCodeMap { |
| 155 public: | 159 public: |
| 156 KeyCodeMap() { | 160 KeyCodeMap() { |
| 157 for (size_t i = 0; i < arraysize(kKeyCodeTable); ++i) | 161 for (size_t i = 0; i < arraysize(kKeyCodeTable); ++i) { |
| 158 map_[kKeyCodeTable[i].dom_code] = kKeyCodeTable[i].keyboard_code; | 162 map_dom_key_[kKeyCodeTable[i].dom_code] = kKeyCodeTable[i].keyboard_code; |
| 163 map_key_dom_[kKeyCodeTable[i].keyboard_code] = kKeyCodeTable[i].dom_code; |
| 164 } |
| 159 } | 165 } |
| 160 | 166 |
| 161 KeyboardCode GetKeyboardCode(const std::string& dom_code) const { | 167 KeyboardCode GetKeyboardCode(const std::string& dom_code) const { |
| 162 std::map<std::string, KeyboardCode>::const_iterator it = | 168 std::map<std::string, KeyboardCode>::const_iterator it = |
| 163 map_.find(dom_code); | 169 map_dom_key_.find(dom_code); |
| 164 return (it == map_.end()) ? VKEY_UNKNOWN : it->second; | 170 return (it == map_dom_key_.end()) ? VKEY_UNKNOWN : it->second; |
| 171 } |
| 172 |
| 173 std::string GetDomKeycode(KeyboardCode key_code) const { |
| 174 std::map<KeyboardCode, std::string>::const_iterator it = |
| 175 map_key_dom_.find(key_code); |
| 176 return (it == map_key_dom_.end()) ? "" : it->second; |
| 165 } | 177 } |
| 166 | 178 |
| 167 private: | 179 private: |
| 168 std::map<std::string, KeyboardCode> map_; | 180 std::map<std::string, KeyboardCode> map_dom_key_; |
| 181 std::map<KeyboardCode, std::string> map_key_dom_; |
| 169 }; | 182 }; |
| 170 | 183 |
| 171 base::LazyInstance<KeyCodeMap>::Leaky g_keycode_map = | 184 base::LazyInstance<KeyCodeMap>::Leaky g_keycode_map = |
| 172 LAZY_INSTANCE_INITIALIZER; | 185 LAZY_INSTANCE_INITIALIZER; |
| 173 | 186 |
| 174 } // namespace | 187 } // namespace |
| 175 | 188 |
| 176 KeyboardCode DomKeycodeToKeyboardCode(const std::string& code) { | 189 KeyboardCode DomKeycodeToKeyboardCode(const std::string& code) { |
| 177 return g_keycode_map.Get().GetKeyboardCode(code); | 190 return g_keycode_map.Get().GetKeyboardCode(code); |
| 178 } | 191 } |
| 179 | 192 |
| 193 std::string KeyboardCodeToDomKeycode(KeyboardCode code) { |
| 194 return g_keycode_map.Get().GetDomKeycode(code); |
| 195 } |
| 196 |
| 180 } // namespace ui | 197 } // namespace ui |
| OLD | NEW |