Chromium Code Reviews| Index: ui/events/keycodes/dom4/keycode_converter.cc |
| diff --git a/ui/events/keycodes/dom4/keycode_converter.cc b/ui/events/keycodes/dom4/keycode_converter.cc |
| index d9a26a2c44461edf2c8c2deb9151f0afb755c23a..2a7fd228222afc82b1aa862c49bef6a4e26b11ce 100644 |
| --- a/ui/events/keycodes/dom4/keycode_converter.cc |
| +++ b/ui/events/keycodes/dom4/keycode_converter.cc |
| @@ -139,6 +139,55 @@ const char* KeycodeConverter::DomCodeToCodeString(DomCode dom_code) { |
| } |
| // static |
| +DomCodeLocation KeycodeConverter::DomCodeToLocation(DomCode dom_code) { |
| + static const struct { |
| + DomCode code; |
| + DomCodeLocation location; |
| + } kLocations[] = {{DomCode::CONTROL_LEFT, DomCodeLocation::LEFT}, |
|
Wez
2015/05/05 00:29:09
Will this cause a static to be initialized on firs
kpschoedel
2015/05/05 16:30:08
'static const' lets it use the data directly from
|
| + {DomCode::SHIFT_LEFT, DomCodeLocation::LEFT}, |
| + {DomCode::ALT_LEFT, DomCodeLocation::LEFT}, |
| + {DomCode::OS_LEFT, DomCodeLocation::LEFT}, |
| + {DomCode::CONTROL_RIGHT, DomCodeLocation::RIGHT}, |
| + {DomCode::SHIFT_RIGHT, DomCodeLocation::RIGHT}, |
| + {DomCode::ALT_RIGHT, DomCodeLocation::RIGHT}, |
| + {DomCode::OS_RIGHT, DomCodeLocation::RIGHT}, |
| + {DomCode::NUMPAD_DIVIDE, DomCodeLocation::NUMPAD}, |
| + {DomCode::NUMPAD_MULTIPLY, DomCodeLocation::NUMPAD}, |
| + {DomCode::NUMPAD_SUBTRACT, DomCodeLocation::NUMPAD}, |
| + {DomCode::NUMPAD_ADD, DomCodeLocation::NUMPAD}, |
| + {DomCode::NUMPAD_ENTER, DomCodeLocation::NUMPAD}, |
| + {DomCode::NUMPAD1, DomCodeLocation::NUMPAD}, |
| + {DomCode::NUMPAD2, DomCodeLocation::NUMPAD}, |
| + {DomCode::NUMPAD3, DomCodeLocation::NUMPAD}, |
| + {DomCode::NUMPAD4, DomCodeLocation::NUMPAD}, |
| + {DomCode::NUMPAD5, DomCodeLocation::NUMPAD}, |
| + {DomCode::NUMPAD6, DomCodeLocation::NUMPAD}, |
| + {DomCode::NUMPAD7, DomCodeLocation::NUMPAD}, |
| + {DomCode::NUMPAD8, DomCodeLocation::NUMPAD}, |
| + {DomCode::NUMPAD9, DomCodeLocation::NUMPAD}, |
| + {DomCode::NUMPAD0, DomCodeLocation::NUMPAD}, |
| + {DomCode::NUMPAD_DECIMAL, DomCodeLocation::NUMPAD}, |
| + {DomCode::NUMPAD_EQUAL, DomCodeLocation::NUMPAD}, |
| + {DomCode::NUMPAD_COMMA, DomCodeLocation::NUMPAD}, |
| + {DomCode::NUMPAD_PAREN_LEFT, DomCodeLocation::NUMPAD}, |
| + {DomCode::NUMPAD_PAREN_RIGHT, DomCodeLocation::NUMPAD}, |
| + {DomCode::NUMPAD_BACKSPACE, DomCodeLocation::NUMPAD}, |
| + {DomCode::NUMPAD_MEMORY_STORE, DomCodeLocation::NUMPAD}, |
| + {DomCode::NUMPAD_MEMORY_RECALL, DomCodeLocation::NUMPAD}, |
| + {DomCode::NUMPAD_MEMORY_CLEAR, DomCodeLocation::NUMPAD}, |
| + {DomCode::NUMPAD_MEMORY_ADD, DomCodeLocation::NUMPAD}, |
| + {DomCode::NUMPAD_MEMORY_SUBTRACT, DomCodeLocation::NUMPAD}, |
| + {DomCode::NUMPAD_SIGN_CHANGE, DomCodeLocation::NUMPAD}, |
| + {DomCode::NUMPAD_CLEAR, DomCodeLocation::NUMPAD}, |
| + {DomCode::NUMPAD_CLEAR_ENTRY, DomCodeLocation::NUMPAD}}; |
|
Wez
2015/05/05 00:29:09
nit: Although this is future-proof, you could reas
kpschoedel
2015/05/05 16:30:08
Yes; my reasoning was that the non-digit NUMPAD va
Wez
2015/05/05 21:23:44
Acknowledged.
|
| + for (const auto& key : kLocations) { |
| + if (key.code == dom_code) |
| + return key.location; |
| + } |
| + return DomCodeLocation::STANDARD; |
| +} |
| + |
| +// static |
| DomKey KeycodeConverter::KeyStringToDomKey(const char* key) { |
| if (!key || !*key) |
| return DomKey::NONE; |