| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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/chromeos/input_method/ibus_keymap.h" | 5 #include "chrome/browser/chromeos/input_method/ibus_keymap.h" |
| 6 | 6 |
| 7 #if defined(HAVE_IBUS) | 7 #define XK_MISCELLANY |
| 8 #include <ibus.h> | 8 #include <X11/keysymdef.h> |
| 9 #endif | |
| 10 | 9 |
| 11 namespace chromeos { | 10 namespace chromeos { |
| 12 namespace input_method { | 11 namespace input_method { |
| 13 | 12 |
| 14 #if defined(HAVE_IBUS) | |
| 15 std::string GetIBusKey(int keyval) { | 13 std::string GetIBusKey(int keyval) { |
| 16 // TODO: Ensure all keys are supported. | 14 // TODO: Ensure all keys are supported. |
| 17 switch (keyval) { | 15 switch (keyval) { |
| 18 case IBUS_Escape: | 16 case XK_Escape: |
| 19 return "Esc"; | 17 return "Esc"; |
| 20 case IBUS_F1: | 18 case XK_F1: |
| 21 return "HistoryBack"; | 19 return "HistoryBack"; |
| 22 case IBUS_F2: | 20 case XK_F2: |
| 23 return "HistoryForward"; | 21 return "HistoryForward"; |
| 24 case IBUS_F3: | 22 case XK_F3: |
| 25 return "BrowserRefresh"; | 23 return "BrowserRefresh"; |
| 26 case IBUS_F4: | 24 case XK_F4: |
| 27 return "ChromeOSFullscreen"; // TODO: Check this value | 25 return "ChromeOSFullscreen"; // TODO: Check this value |
| 28 case IBUS_F5: | 26 case XK_F5: |
| 29 return "ChromeOSSwitchWindow"; // TODO: Check this value | 27 return "ChromeOSSwitchWindow"; // TODO: Check this value |
| 30 case IBUS_F6: | 28 case XK_F6: |
| 31 return "BrightnessDown"; | 29 return "BrightnessDown"; |
| 32 case IBUS_F7: | 30 case XK_F7: |
| 33 return "BrightnessUp"; | 31 return "BrightnessUp"; |
| 34 case IBUS_F8: | 32 case XK_F8: |
| 35 return "AudioVolumeMute"; | 33 return "AudioVolumeMute"; |
| 36 case IBUS_F9: | 34 case XK_F9: |
| 37 return "AudioVolumeDown"; | 35 return "AudioVolumeDown"; |
| 38 case IBUS_F10: | 36 case XK_F10: |
| 39 return "AudioVolumeUp"; | 37 return "AudioVolumeUp"; |
| 40 case IBUS_BackSpace: | 38 case XK_BackSpace: |
| 41 return "Backspace"; | 39 return "Backspace"; |
| 42 case IBUS_Delete: | 40 case XK_Delete: |
| 43 case IBUS_KP_Delete: | 41 case XK_KP_Delete: |
| 44 return "Delete"; | 42 return "Delete"; |
| 45 case IBUS_Tab: | 43 case XK_Tab: |
| 46 return "Tab"; | 44 return "Tab"; |
| 47 case IBUS_KP_Enter: | 45 case XK_KP_Enter: |
| 48 case IBUS_Return: | 46 case XK_Return: |
| 49 return "Enter"; | 47 return "Enter"; |
| 50 case IBUS_Meta_L: | 48 case XK_Meta_L: |
| 51 return "BrowserSearch"; | 49 return "BrowserSearch"; |
| 52 case IBUS_Up: | 50 case XK_Up: |
| 53 case IBUS_KP_Up: | 51 case XK_KP_Up: |
| 54 return "Up"; | 52 return "Up"; |
| 55 case IBUS_Down: | 53 case XK_Down: |
| 56 case IBUS_KP_Down: | 54 case XK_KP_Down: |
| 57 return "Down"; | 55 return "Down"; |
| 58 case IBUS_Left: | 56 case XK_Left: |
| 59 case IBUS_KP_Left: | 57 case XK_KP_Left: |
| 60 return "Left"; | 58 return "Left"; |
| 61 case IBUS_Right: | 59 case XK_Right: |
| 62 case IBUS_KP_Right: | 60 case XK_KP_Right: |
| 63 return "Right"; | 61 return "Right"; |
| 64 case IBUS_Page_Up: | 62 case XK_Page_Up: |
| 65 return "PageUp"; | 63 return "PageUp"; |
| 66 case IBUS_Page_Down: | 64 case XK_Page_Down: |
| 67 return "PageDown"; | 65 return "PageDown"; |
| 68 case IBUS_Home: | 66 case XK_Home: |
| 69 return "Home"; | 67 return "Home"; |
| 70 case IBUS_End: | 68 case XK_End: |
| 71 return "End"; | 69 return "End"; |
| 72 default: { | 70 default: { |
| 73 // TODO: Properly support unicode characters. | 71 // TODO: Properly support unicode characters. |
| 74 char value[2]; | 72 char value[2]; |
| 75 value[0] = keyval; | 73 value[0] = keyval; |
| 76 value[1] = '\0'; | 74 value[1] = '\0'; |
| 77 return value; | 75 return value; |
| 78 } | 76 } |
| 79 } | 77 } |
| 80 } | 78 } |
| 81 | 79 |
| 82 std::string GetIBusKeyCode(int keycode) { | 80 std::string GetIBusKeyCode(int keycode) { |
| 83 // TODO: Support keyboard layouts properly. | 81 // TODO: Support keyboard layouts properly. |
| 84 return GetIBusKey(keycode); | 82 return GetIBusKey(keycode); |
| 85 } | 83 } |
| 86 #else | |
| 87 std::string GetIBusKey(int keyval) { | |
| 88 return ""; | |
| 89 } | |
| 90 | |
| 91 std::string GetIBusKeyCode(int keycode) { | |
| 92 return ""; | |
| 93 } | |
| 94 | |
| 95 #endif // HAVE_IBUS | |
| 96 | 84 |
| 97 } // namespace input_method | 85 } // namespace input_method |
| 98 } // namespace chromeos | 86 } // namespace chromeos |
| OLD | NEW |