| 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 "chrome/browser/extensions/api/braille_display_private/brlapi_keycode_m
ap.h" | 5 #include "chrome/browser/extensions/api/braille_display_private/brlapi_keycode_m
ap.h" |
| 6 | 6 |
| 7 #include "base/strings/stringprintf.h" | 7 #include "base/strings/stringprintf.h" |
| 8 #include "base/strings/utf_string_conversion_utils.h" | 8 #include "base/strings/utf_string_conversion_utils.h" |
| 9 | 9 |
| 10 namespace extensions { | 10 namespace extensions { |
| 11 namespace api { | 11 namespace api { |
| 12 namespace braille_display_private { | 12 namespace braille_display_private { |
| 13 | 13 |
| 14 namespace { | 14 namespace { |
| 15 // Bitmask for all braille dots in a key command argument, which coincides | 15 // Bitmask for all braille dots in a key command argument, which coincides |
| 16 // with the representation in the braille_dots member of the KeyEvent | 16 // with the representation in the braille_dots member of the KeyEvent |
| 17 // class. | 17 // class. |
| 18 const int kAllDots = BRLAPI_DOT1 | BRLAPI_DOT2 | BRLAPI_DOT3 | BRLAPI_DOT4 | | 18 const int kAllDots = BRLAPI_DOT1 | BRLAPI_DOT2 | BRLAPI_DOT3 | BRLAPI_DOT4 | |
| 19 BRLAPI_DOT5 | BRLAPI_DOT6 | BRLAPI_DOT7 | BRLAPI_DOT8; | 19 BRLAPI_DOT5 | BRLAPI_DOT6 | BRLAPI_DOT7 | BRLAPI_DOT8; |
| 20 | 20 |
| 21 // Maximum Latin 1 character keyboard symbol. | 21 // Maximum Latin 1 character keyboard symbol. |
| 22 const brlapi_keyCode_t kMaxLatin1KeySym = 0xff; | 22 const brlapi_keyCode_t kMaxLatin1KeySym = 0xff; |
| 23 | 23 |
| 24 // Range of function keys that we support. | 24 // Range of function keys that we support. |
| 25 // See ui/events/keycodes/dom4/keycode_converter_data.h for the list of all | 25 // See ui/events/keycodes/dom/keycode_converter_data.inc for the list of all |
| 26 // key codes. | 26 // key codes. |
| 27 const brlapi_keyCode_t kMinFunctionKey = BRLAPI_KEY_SYM_FUNCTION; | 27 const brlapi_keyCode_t kMinFunctionKey = BRLAPI_KEY_SYM_FUNCTION; |
| 28 const brlapi_keyCode_t kMaxFunctionKey = BRLAPI_KEY_SYM_FUNCTION + 23; | 28 const brlapi_keyCode_t kMaxFunctionKey = BRLAPI_KEY_SYM_FUNCTION + 23; |
| 29 | 29 |
| 30 // Maps the keyboard modifier flags to their corresponding flags in a | 30 // Maps the keyboard modifier flags to their corresponding flags in a |
| 31 // |KeyEvent|. | 31 // |KeyEvent|. |
| 32 void MapModifierFlags(brlapi_keyCode_t code, KeyEvent* event) { | 32 void MapModifierFlags(brlapi_keyCode_t code, KeyEvent* event) { |
| 33 if (code & BRLAPI_KEY_FLG_CONTROL) | 33 if (code & BRLAPI_KEY_FLG_CONTROL) |
| 34 event->ctrl_key.reset(new bool(true)); | 34 event->ctrl_key.reset(new bool(true)); |
| 35 if (code & BRLAPI_KEY_FLG_META) | 35 if (code & BRLAPI_KEY_FLG_META) |
| 36 event->alt_key.reset(new bool(true)); | 36 event->alt_key.reset(new bool(true)); |
| 37 if (code & BRLAPI_KEY_FLG_SHIFT) | 37 if (code & BRLAPI_KEY_FLG_SHIFT) |
| 38 event->shift_key.reset(new bool(true)); | 38 event->shift_key.reset(new bool(true)); |
| 39 } | 39 } |
| 40 | 40 |
| 41 // Maps a brlapi keysym, which is similar to an X keysym into the | 41 // Maps a brlapi keysym, which is similar to an X keysym into the |
| 42 // provided event. | 42 // provided event. |
| 43 // See ui/events/keycodes/dom4/keycode_converter_data.cc for the full | 43 // See ui/events/keycodes/dom/keycode_converter_data.cc for the full |
| 44 // list of key codes. | 44 // list of key codes. |
| 45 void MapKeySym(brlapi_keyCode_t code, KeyEvent* event) { | 45 void MapKeySym(brlapi_keyCode_t code, KeyEvent* event) { |
| 46 brlapi_keyCode_t key_sym = code & BRLAPI_KEY_CODE_MASK; | 46 brlapi_keyCode_t key_sym = code & BRLAPI_KEY_CODE_MASK; |
| 47 if (key_sym < kMaxLatin1KeySym || | 47 if (key_sym < kMaxLatin1KeySym || |
| 48 (key_sym & BRLAPI_KEY_SYM_UNICODE) != 0) { | 48 (key_sym & BRLAPI_KEY_SYM_UNICODE) != 0) { |
| 49 uint32 code_point = key_sym & ~BRLAPI_KEY_SYM_UNICODE; | 49 uint32 code_point = key_sym & ~BRLAPI_KEY_SYM_UNICODE; |
| 50 if (!base::IsValidCharacter(code_point)) | 50 if (!base::IsValidCharacter(code_point)) |
| 51 return; | 51 return; |
| 52 event->standard_key_char.reset(new std::string); | 52 event->standard_key_char.reset(new std::string); |
| 53 base::WriteUnicodeCharacter(code_point, event->standard_key_char.get()); | 53 base::WriteUnicodeCharacter(code_point, event->standard_key_char.get()); |
| (...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 162 break; | 162 break; |
| 163 } | 163 } |
| 164 if (result->command == KEY_COMMAND_NONE) | 164 if (result->command == KEY_COMMAND_NONE) |
| 165 result.reset(); | 165 result.reset(); |
| 166 return result.Pass(); | 166 return result.Pass(); |
| 167 } | 167 } |
| 168 | 168 |
| 169 } // namespace braille_display_private | 169 } // namespace braille_display_private |
| 170 } // namespace api | 170 } // namespace api |
| 171 } // namespace extensions | 171 } // namespace extensions |
| OLD | NEW |