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 |