Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(245)

Side by Side Diff: ui/base/ime/chromeos/ime_keymap.cc

Issue 466223004: Set correct DOM key code string for functional keys. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « ui/base/ime/chromeos/ime_keymap.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
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
OLDNEW
« no previous file with comments | « ui/base/ime/chromeos/ime_keymap.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698