From 7e9acd08b34f56b7eab5f9d93a8c69c556d5b0c7 Mon Sep 17 00:00:00 2001 From: "sky@chromium.org" Date: Tue, 17 Sep 2013 23:31:16 +0000 Subject: Moves most files from ui/base/keycodes to ui/events/keycodes I'm leaving usb_keycodes_map in ui/base for now. BUG=none TEST=none R=ben@chromium.org, benm@chromium.org, scherkus@chromium.org TBR=benm@chromium.org, brettw@chromium.org, scherkus@chromium.org Review URL: https://codereview.chromium.org/23480084 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@223739 0039d316-1c4b-4281-b951-d872f2087c98 --- ui/aura/remote_root_window_host_win.cc | 2 +- ui/aura/root_window_host_x11.cc | 2 +- ui/aura/root_window_unittest.cc | 2 +- ui/aura/test/event_generator.cc | 2 +- ui/aura/test/event_generator.h | 2 +- ui/aura/test/test_window_delegate.h | 2 +- ui/aura/test/ui_controls_factory_aurax11.cc | 2 +- ui/aura/window_unittest.cc | 2 +- ui/base/accelerators/accelerator.cc | 2 +- ui/base/accelerators/accelerator.h | 2 +- .../accelerators/accelerator_manager_unittest.cc | 2 +- ui/base/accelerators/platform_accelerator_gtk.cc | 2 +- ui/base/cocoa/events_mac.mm | 2 +- ui/base/events/event.cc | 4 +- ui/base/events/event.h | 2 +- ui/base/events/event_utils.h | 2 +- ui/base/gtk/event_synthesis_gtk.cc | 2 +- ui/base/gtk/event_synthesis_gtk.h | 2 +- ui/base/ime/fake_input_method.cc | 4 +- ui/base/ime/input_method.h | 2 +- ui/base/ime/input_method_delegate.h | 2 +- ui/base/ime/input_method_ibus.cc | 6 +- ui/base/ime/input_method_win.cc | 2 +- ui/base/keycodes/keyboard_code_conversion.cc | 115 --- ui/base/keycodes/keyboard_code_conversion.h | 38 - .../keycodes/keyboard_code_conversion_android.cc | 305 -------- .../keycodes/keyboard_code_conversion_android.h | 17 - ui/base/keycodes/keyboard_code_conversion_gtk.cc | 85 --- ui/base/keycodes/keyboard_code_conversion_gtk.h | 57 -- ui/base/keycodes/keyboard_code_conversion_mac.h | 41 -- ui/base/keycodes/keyboard_code_conversion_mac.mm | 558 -------------- ui/base/keycodes/keyboard_code_conversion_win.cc | 17 - ui/base/keycodes/keyboard_code_conversion_win.h | 19 - ui/base/keycodes/keyboard_code_conversion_x.cc | 804 --------------------- ui/base/keycodes/keyboard_code_conversion_x.h | 31 - ui/base/keycodes/keyboard_codes.h | 16 - ui/base/keycodes/keyboard_codes_posix.h | 228 ------ ui/base/keycodes/keyboard_codes_win.h | 192 ----- ui/base/ozone/evdev/key_event_converter_ozone.cc | 2 +- ui/base/test/ui_controls.h | 2 +- ui/base/test/ui_controls_aura.h | 2 +- ui/base/test/ui_controls_internal_win.cc | 4 +- ui/base/test/ui_controls_mac.mm | 2 +- ui/base/win/events_win.cc | 2 +- ui/base/x/events_x.cc | 2 +- ui/base/x/x11_util.cc | 2 +- ui/base/x/x11_util.h | 2 +- ui/events/keycodes/keyboard_code_conversion.cc | 115 +++ ui/events/keycodes/keyboard_code_conversion.h | 38 + .../keycodes/keyboard_code_conversion_android.cc | 305 ++++++++ .../keycodes/keyboard_code_conversion_android.h | 17 + ui/events/keycodes/keyboard_code_conversion_gtk.cc | 85 +++ ui/events/keycodes/keyboard_code_conversion_gtk.h | 57 ++ ui/events/keycodes/keyboard_code_conversion_mac.h | 41 ++ ui/events/keycodes/keyboard_code_conversion_mac.mm | 558 ++++++++++++++ ui/events/keycodes/keyboard_code_conversion_win.cc | 17 + ui/events/keycodes/keyboard_code_conversion_win.h | 19 + ui/events/keycodes/keyboard_code_conversion_x.cc | 804 +++++++++++++++++++++ ui/events/keycodes/keyboard_code_conversion_x.h | 31 + ui/events/keycodes/keyboard_codes.h | 16 + ui/events/keycodes/keyboard_codes_posix.h | 228 ++++++ ui/events/keycodes/keyboard_codes_win.h | 192 +++++ ui/message_center/views/notifier_settings_view.cc | 2 +- ui/ui.gyp | 30 +- ui/views/color_chooser/color_chooser_view.cc | 2 +- ui/views/controls/button/custom_button.cc | 2 +- ui/views/controls/combobox/combobox.cc | 2 +- ui/views/controls/combobox/combobox_unittest.cc | 2 +- ui/views/controls/link.cc | 2 +- ui/views/controls/menu/menu_controller.cc | 2 +- ui/views/controls/menu/menu_win.cc | 2 +- ui/views/controls/menu/native_menu_win.cc | 2 +- ui/views/controls/native_control.cc | 4 +- ui/views/controls/native_control.h | 2 +- ui/views/controls/scrollbar/base_scroll_bar.cc | 2 +- ui/views/controls/scrollbar/bitmap_scroll_bar.cc | 2 +- .../controls/scrollbar/native_scroll_bar_views.cc | 2 +- ui/views/controls/tabbed_pane/tabbed_pane.cc | 2 +- ui/views/controls/table/table_view_observer.h | 2 +- .../textfield/native_textfield_views_unittest.cc | 2 +- .../controls/textfield/native_textfield_win.cc | 2 +- ui/views/controls/textfield/textfield.cc | 2 +- ui/views/controls/textfield/textfield.h | 2 +- ui/views/controls/tree/tree_view.cc | 2 +- ui/views/controls/tree/tree_view_controller.h | 2 +- ui/views/controls/webview/web_dialog_view.cc | 2 +- ui/views/focus/accelerator_handler_win.cc | 4 +- ui/views/focus/focus_manager.cc | 2 +- ui/views/focus/focus_manager_unittest.cc | 2 +- ui/views/ime/mock_input_method.cc | 2 +- ui/views/view_unittest.cc | 2 +- ui/views/widget/native_widget_win.cc | 2 +- ui/views/widget/root_view.cc | 2 +- ui/views/win/hwnd_message_handler.cc | 2 +- ui/views/window/dialog_client_view.cc | 2 +- 95 files changed, 2609 insertions(+), 2609 deletions(-) delete mode 100644 ui/base/keycodes/keyboard_code_conversion.cc delete mode 100644 ui/base/keycodes/keyboard_code_conversion.h delete mode 100644 ui/base/keycodes/keyboard_code_conversion_android.cc delete mode 100644 ui/base/keycodes/keyboard_code_conversion_android.h delete mode 100644 ui/base/keycodes/keyboard_code_conversion_gtk.cc delete mode 100644 ui/base/keycodes/keyboard_code_conversion_gtk.h delete mode 100644 ui/base/keycodes/keyboard_code_conversion_mac.h delete mode 100644 ui/base/keycodes/keyboard_code_conversion_mac.mm delete mode 100644 ui/base/keycodes/keyboard_code_conversion_win.cc delete mode 100644 ui/base/keycodes/keyboard_code_conversion_win.h delete mode 100644 ui/base/keycodes/keyboard_code_conversion_x.cc delete mode 100644 ui/base/keycodes/keyboard_code_conversion_x.h delete mode 100644 ui/base/keycodes/keyboard_codes.h delete mode 100644 ui/base/keycodes/keyboard_codes_posix.h delete mode 100644 ui/base/keycodes/keyboard_codes_win.h create mode 100644 ui/events/keycodes/keyboard_code_conversion.cc create mode 100644 ui/events/keycodes/keyboard_code_conversion.h create mode 100644 ui/events/keycodes/keyboard_code_conversion_android.cc create mode 100644 ui/events/keycodes/keyboard_code_conversion_android.h create mode 100644 ui/events/keycodes/keyboard_code_conversion_gtk.cc create mode 100644 ui/events/keycodes/keyboard_code_conversion_gtk.h create mode 100644 ui/events/keycodes/keyboard_code_conversion_mac.h create mode 100644 ui/events/keycodes/keyboard_code_conversion_mac.mm create mode 100644 ui/events/keycodes/keyboard_code_conversion_win.cc create mode 100644 ui/events/keycodes/keyboard_code_conversion_win.h create mode 100644 ui/events/keycodes/keyboard_code_conversion_x.cc create mode 100644 ui/events/keycodes/keyboard_code_conversion_x.h create mode 100644 ui/events/keycodes/keyboard_codes.h create mode 100644 ui/events/keycodes/keyboard_codes_posix.h create mode 100644 ui/events/keycodes/keyboard_codes_win.h (limited to 'ui') diff --git a/ui/aura/remote_root_window_host_win.cc b/ui/aura/remote_root_window_host_win.cc index 8122e3d..871df52 100644 --- a/ui/aura/remote_root_window_host_win.cc +++ b/ui/aura/remote_root_window_host_win.cc @@ -16,7 +16,7 @@ #include "ui/aura/root_window.h" #include "ui/base/cursor/cursor_loader_win.h" #include "ui/base/events/event_utils.h" -#include "ui/base/keycodes/keyboard_code_conversion_win.h" +#include "ui/events/keycodes/keyboard_code_conversion_win.h" #include "ui/base/view_prop.h" #include "ui/gfx/insets.h" #include "ui/metro_viewer/metro_viewer_messages.h" diff --git a/ui/aura/root_window_host_x11.cc b/ui/aura/root_window_host_x11.cc index 56f311b..8395547 100644 --- a/ui/aura/root_window_host_x11.cc +++ b/ui/aura/root_window_host_x11.cc @@ -34,7 +34,6 @@ #include "ui/base/cursor/cursor.h" #include "ui/base/events/event.h" #include "ui/base/events/event_utils.h" -#include "ui/base/keycodes/keyboard_codes.h" #include "ui/base/touch/touch_factory_x11.h" #include "ui/base/ui_base_switches.h" #include "ui/base/view_prop.h" @@ -42,6 +41,7 @@ #include "ui/base/x/x11_util.h" #include "ui/compositor/dip_util.h" #include "ui/compositor/layer.h" +#include "ui/events/keycodes/keyboard_codes.h" #include "ui/gfx/screen.h" #if defined(OS_CHROMEOS) diff --git a/ui/aura/root_window_unittest.cc b/ui/aura/root_window_unittest.cc index f29c926..92930af 100644 --- a/ui/aura/root_window_unittest.cc +++ b/ui/aura/root_window_unittest.cc @@ -22,7 +22,7 @@ #include "ui/base/events/event_utils.h" #include "ui/base/gestures/gesture_configuration.h" #include "ui/base/hit_test.h" -#include "ui/base/keycodes/keyboard_codes.h" +#include "ui/events/keycodes/keyboard_codes.h" #include "ui/gfx/point.h" #include "ui/gfx/rect.h" #include "ui/gfx/screen.h" diff --git a/ui/aura/test/event_generator.cc b/ui/aura/test/event_generator.cc index d111220..91bcee7 100644 --- a/ui/aura/test/event_generator.cc +++ b/ui/aura/test/event_generator.cc @@ -19,7 +19,7 @@ #endif #if defined(OS_WIN) -#include "ui/base/keycodes/keyboard_code_conversion.h" +#include "ui/events/keycodes/keyboard_code_conversion.h" #endif namespace aura { diff --git a/ui/aura/test/event_generator.h b/ui/aura/test/event_generator.h index 511dd77..36ad695 100644 --- a/ui/aura/test/event_generator.h +++ b/ui/aura/test/event_generator.h @@ -12,7 +12,7 @@ #include "base/callback.h" #include "base/memory/scoped_ptr.h" #include "ui/base/events/event_constants.h" -#include "ui/base/keycodes/keyboard_codes.h" +#include "ui/events/keycodes/keyboard_codes.h" #include "ui/gfx/point.h" namespace base { diff --git a/ui/aura/test/test_window_delegate.h b/ui/aura/test/test_window_delegate.h index 3e711f7..44e94c8 100644 --- a/ui/aura/test/test_window_delegate.h +++ b/ui/aura/test/test_window_delegate.h @@ -10,7 +10,7 @@ #include "base/compiler_specific.h" #include "third_party/skia/include/core/SkColor.h" #include "ui/aura/window_delegate.h" -#include "ui/base/keycodes/keyboard_codes.h" +#include "ui/events/keycodes/keyboard_codes.h" #include "ui/gfx/rect.h" namespace aura { diff --git a/ui/aura/test/ui_controls_factory_aurax11.cc b/ui/aura/test/ui_controls_factory_aurax11.cc index 5dc8577a..faef340 100644 --- a/ui/aura/test/ui_controls_factory_aurax11.cc +++ b/ui/aura/test/ui_controls_factory_aurax11.cc @@ -16,9 +16,9 @@ #include "ui/aura/env.h" #include "ui/aura/root_window.h" #include "ui/aura/test/ui_controls_factory_aura.h" -#include "ui/base/keycodes/keyboard_code_conversion_x.h" #include "ui/base/test/ui_controls_aura.h" #include "ui/compositor/dip_util.h" +#include "ui/events/keycodes/keyboard_code_conversion_x.h" namespace aura { namespace test { diff --git a/ui/aura/window_unittest.cc b/ui/aura/window_unittest.cc index 4c16f9d..126f358 100644 --- a/ui/aura/window_unittest.cc +++ b/ui/aura/window_unittest.cc @@ -31,11 +31,11 @@ #include "ui/base/events/event_utils.h" #include "ui/base/gestures/gesture_configuration.h" #include "ui/base/hit_test.h" -#include "ui/base/keycodes/keyboard_codes.h" #include "ui/compositor/layer.h" #include "ui/compositor/scoped_animation_duration_scale_mode.h" #include "ui/compositor/scoped_layer_animation_settings.h" #include "ui/compositor/test/test_layers.h" +#include "ui/events/keycodes/keyboard_codes.h" #include "ui/gfx/canvas.h" #include "ui/gfx/screen.h" diff --git a/ui/base/accelerators/accelerator.cc b/ui/base/accelerators/accelerator.cc index d9560e2..4439af5 100644 --- a/ui/base/accelerators/accelerator.cc +++ b/ui/base/accelerators/accelerator.cc @@ -18,7 +18,7 @@ #include "ui/base/l10n/l10n_util.h" #if !defined(OS_WIN) && (defined(USE_AURA) || defined(OS_MACOSX)) -#include "ui/base/keycodes/keyboard_code_conversion.h" +#include "ui/events/keycodes/keyboard_code_conversion.h" #endif namespace ui { diff --git a/ui/base/accelerators/accelerator.h b/ui/base/accelerators/accelerator.h index e86538c..c2e2aa6 100644 --- a/ui/base/accelerators/accelerator.h +++ b/ui/base/accelerators/accelerator.h @@ -15,8 +15,8 @@ #include "base/strings/string16.h" #include "ui/base/accelerators/platform_accelerator.h" #include "ui/base/events/event_constants.h" -#include "ui/base/keycodes/keyboard_codes.h" #include "ui/base/ui_export.h" +#include "ui/events/keycodes/keyboard_codes.h" namespace ui { diff --git a/ui/base/accelerators/accelerator_manager_unittest.cc b/ui/base/accelerators/accelerator_manager_unittest.cc index 73d1a1d..46e0bc1 100644 --- a/ui/base/accelerators/accelerator_manager_unittest.cc +++ b/ui/base/accelerators/accelerator_manager_unittest.cc @@ -7,7 +7,7 @@ #include "base/compiler_specific.h" #include "testing/gtest/include/gtest/gtest.h" #include "ui/base/events/event_constants.h" -#include "ui/base/keycodes/keyboard_codes.h" +#include "ui/events/keycodes/keyboard_codes.h" namespace ui { namespace test { diff --git a/ui/base/accelerators/platform_accelerator_gtk.cc b/ui/base/accelerators/platform_accelerator_gtk.cc index cae259b..0e0ad34 100644 --- a/ui/base/accelerators/platform_accelerator_gtk.cc +++ b/ui/base/accelerators/platform_accelerator_gtk.cc @@ -5,7 +5,7 @@ #include "ui/base/accelerators/platform_accelerator_gtk.h" #include "ui/base/events/event_conversion_gtk.h" -#include "ui/base/keycodes/keyboard_code_conversion_gtk.h" +#include "ui/events/keycodes/keyboard_code_conversion_gtk.h" namespace ui { diff --git a/ui/base/cocoa/events_mac.mm b/ui/base/cocoa/events_mac.mm index eacfb96..878240d 100644 --- a/ui/base/cocoa/events_mac.mm +++ b/ui/base/cocoa/events_mac.mm @@ -10,7 +10,7 @@ #include "base/logging.h" #include "base/time/time.h" #include "ui/base/events/event_utils.h" -#import "ui/base/keycodes/keyboard_code_conversion_mac.h" +#import "ui/events/keycodes/keyboard_code_conversion_mac.h" #include "ui/gfx/point.h" namespace ui { diff --git a/ui/base/events/event.cc b/ui/base/events/event.cc index 663cd25..9fc80d4 100644 --- a/ui/base/events/event.cc +++ b/ui/base/events/event.cc @@ -14,14 +14,14 @@ #include "base/metrics/histogram.h" #include "base/strings/stringprintf.h" #include "ui/base/events/event_utils.h" -#include "ui/base/keycodes/keyboard_code_conversion.h" +#include "ui/events/keycodes/keyboard_code_conversion.h" #include "ui/gfx/point3_f.h" #include "ui/gfx/point_conversions.h" #include "ui/gfx/transform.h" #include "ui/gfx/transform_util.h" #if defined(USE_X11) -#include "ui/base/keycodes/keyboard_code_conversion_x.h" +#include "ui/events/keycodes/keyboard_code_conversion_x.h" #endif namespace { diff --git a/ui/base/events/event.h b/ui/base/events/event.h index d5e3bb2..d305574 100644 --- a/ui/base/events/event.h +++ b/ui/base/events/event.h @@ -13,9 +13,9 @@ #include "ui/base/dragdrop/os_exchange_data.h" #include "ui/base/events/event_constants.h" #include "ui/base/gestures/gesture_types.h" -#include "ui/base/keycodes/keyboard_codes.h" #include "ui/base/latency_info.h" #include "ui/base/ui_export.h" +#include "ui/events/keycodes/keyboard_codes.h" #include "ui/gfx/point.h" namespace gfx { diff --git a/ui/base/events/event_utils.h b/ui/base/events/event_utils.h index d57ced9..e544221 100644 --- a/ui/base/events/event_utils.h +++ b/ui/base/events/event_utils.h @@ -7,7 +7,7 @@ #include "base/event_types.h" #include "ui/base/events/event_constants.h" -#include "ui/base/keycodes/keyboard_codes.h" +#include "ui/events/keycodes/keyboard_codes.h" #include "ui/gfx/native_widget_types.h" #if defined(OS_WIN) diff --git a/ui/base/gtk/event_synthesis_gtk.cc b/ui/base/gtk/event_synthesis_gtk.cc index bd3cb8a..ea56162 100644 --- a/ui/base/gtk/event_synthesis_gtk.cc +++ b/ui/base/gtk/event_synthesis_gtk.cc @@ -4,7 +4,7 @@ #include "ui/base/gtk/event_synthesis_gtk.h" -#include "ui/base/keycodes/keyboard_code_conversion_gtk.h" +#include "ui/events/keycodes/keyboard_code_conversion_gtk.h" namespace ui { diff --git a/ui/base/gtk/event_synthesis_gtk.h b/ui/base/gtk/event_synthesis_gtk.h index 50dde0f..1839e29 100644 --- a/ui/base/gtk/event_synthesis_gtk.h +++ b/ui/base/gtk/event_synthesis_gtk.h @@ -13,8 +13,8 @@ #include #include -#include "ui/base/keycodes/keyboard_codes.h" #include "ui/base/ui_export.h" +#include "ui/events/keycodes/keyboard_codes.h" namespace ui { diff --git a/ui/base/ime/fake_input_method.cc b/ui/base/ime/fake_input_method.cc index b643bd8..ff3f5e4cf 100644 --- a/ui/base/ime/fake_input_method.cc +++ b/ui/base/ime/fake_input_method.cc @@ -12,13 +12,13 @@ #include "ui/base/glib/glib_integers.h" #include "ui/base/ime/input_method_delegate.h" #include "ui/base/ime/text_input_client.h" -#include "ui/base/keycodes/keyboard_code_conversion.h" +#include "ui/events/keycodes/keyboard_code_conversion.h" #if defined(USE_X11) #include #include #include -#include "ui/base/keycodes/keyboard_code_conversion_x.h" +#include "ui/events/keycodes/keyboard_code_conversion_x.h" #endif namespace { diff --git a/ui/base/ime/input_method.h b/ui/base/ime/input_method.h index 735b0e9..ac24f77 100644 --- a/ui/base/ime/input_method.h +++ b/ui/base/ime/input_method.h @@ -12,8 +12,8 @@ #include "base/i18n/rtl.h" #include "ui/base/ime/text_input_mode.h" #include "ui/base/ime/text_input_type.h" -#include "ui/base/keycodes/keyboard_codes.h" #include "ui/base/ui_export.h" +#include "ui/events/keycodes/keyboard_codes.h" namespace ui { diff --git a/ui/base/ime/input_method_delegate.h b/ui/base/ime/input_method_delegate.h index c0846b1..d7e5ea2 100644 --- a/ui/base/ime/input_method_delegate.h +++ b/ui/base/ime/input_method_delegate.h @@ -7,8 +7,8 @@ #include "base/event_types.h" #include "ui/base/events/event_constants.h" -#include "ui/base/keycodes/keyboard_codes.h" #include "ui/base/ui_export.h" +#include "ui/events/keycodes/keyboard_codes.h" namespace ui { namespace internal { diff --git a/ui/base/ime/input_method_ibus.cc b/ui/base/ime/input_method_ibus.cc index c5bdb0e..f1f0293 100644 --- a/ui/base/ime/input_method_ibus.cc +++ b/ui/base/ime/input_method_ibus.cc @@ -30,9 +30,9 @@ #include "ui/base/events/event_constants.h" #include "ui/base/events/event_utils.h" #include "ui/base/ime/text_input_client.h" -#include "ui/base/keycodes/keyboard_code_conversion.h" -#include "ui/base/keycodes/keyboard_code_conversion_x.h" -#include "ui/base/keycodes/keyboard_codes.h" +#include "ui/events/keycodes/keyboard_code_conversion.h" +#include "ui/events/keycodes/keyboard_code_conversion_x.h" +#include "ui/events/keycodes/keyboard_codes.h" #include "ui/gfx/rect.h" namespace { diff --git a/ui/base/ime/input_method_win.cc b/ui/base/ime/input_method_win.cc index 3982c22..343a861 100644 --- a/ui/base/ime/input_method_win.cc +++ b/ui/base/ime/input_method_win.cc @@ -9,7 +9,7 @@ #include "ui/base/events/event_constants.h" #include "ui/base/events/event_utils.h" #include "ui/base/ime/text_input_client.h" -#include "ui/base/keycodes/keyboard_codes.h" +#include "ui/events/keycodes/keyboard_codes.h" #include "ui/gfx/win/hwnd_util.h" namespace ui { diff --git a/ui/base/keycodes/keyboard_code_conversion.cc b/ui/base/keycodes/keyboard_code_conversion.cc deleted file mode 100644 index 1a4d92a..0000000 --- a/ui/base/keycodes/keyboard_code_conversion.cc +++ /dev/null @@ -1,115 +0,0 @@ -// Copyright (c) 2011 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include "ui/base/keycodes/keyboard_code_conversion.h" - -#include "ui/base/events/event_constants.h" - -namespace ui { - -uint16 GetCharacterFromKeyCode(KeyboardCode key_code, int flags) { - const bool ctrl = (flags & EF_CONTROL_DOWN) != 0; - const bool shift = (flags & EF_SHIFT_DOWN) != 0; - const bool upper = shift ^ ((flags & EF_CAPS_LOCK_DOWN) != 0); - - // Following Windows behavior to map ctrl-a ~ ctrl-z to \x01 ~ \x1A. - if (key_code >= VKEY_A && key_code <= VKEY_Z) - return key_code - VKEY_A + (ctrl ? 1 : (upper ? 'A' : 'a')); - - // Other ctrl characters - if (ctrl) { - if (shift) { - // following graphics chars require shift key to input. - switch (key_code) { - // ctrl-@ maps to \x00 (Null byte) - case VKEY_2: - return 0; - // ctrl-^ maps to \x1E (Record separator, Information separator two) - case VKEY_6: - return 0x1E; - // ctrl-_ maps to \x1F (Unit separator, Information separator one) - case VKEY_OEM_MINUS: - return 0x1F; - // Returns 0 for all other keys to avoid inputting unexpected chars. - default: - return 0; - } - } else { - switch (key_code) { - // ctrl-[ maps to \x1B (Escape) - case VKEY_OEM_4: - return 0x1B; - // ctrl-\ maps to \x1C (File separator, Information separator four) - case VKEY_OEM_5: - return 0x1C; - // ctrl-] maps to \x1D (Group separator, Information separator three) - case VKEY_OEM_6: - return 0x1D; - // ctrl-Enter maps to \x0A (Line feed) - case VKEY_RETURN: - return 0x0A; - // Returns 0 for all other keys to avoid inputting unexpected chars. - default: - return 0; - } - } - } - - // For IME support. - if (key_code == ui::VKEY_PROCESSKEY) - return 0xE5; - - // Normal characters - if (key_code >= VKEY_0 && key_code <= VKEY_9) { - return shift ? ")!@#$%^&*("[key_code - VKEY_0] : - static_cast(key_code); - } else if (key_code >= VKEY_NUMPAD0 && key_code <= VKEY_NUMPAD9) { - return key_code - VKEY_NUMPAD0 + '0'; - } - - switch (key_code) { - case VKEY_TAB: - return '\t'; - case VKEY_RETURN: - return '\r'; - case VKEY_MULTIPLY: - return '*'; - case VKEY_ADD: - return '+'; - case VKEY_SUBTRACT: - return '-'; - case VKEY_DECIMAL: - return '.'; - case VKEY_DIVIDE: - return '/'; - case VKEY_SPACE: - return ' '; - case VKEY_OEM_1: - return shift ? ':' : ';'; - case VKEY_OEM_PLUS: - return shift ? '+' : '='; - case VKEY_OEM_COMMA: - return shift ? '<' : ','; - case VKEY_OEM_MINUS: - return shift ? '_' : '-'; - case VKEY_OEM_PERIOD: - return shift ? '>' : '.'; - case VKEY_OEM_2: - return shift ? '?' : '/'; - case VKEY_OEM_3: - return shift ? '~' : '`'; - case VKEY_OEM_4: - return shift ? '{' : '['; - case VKEY_OEM_5: - return shift ? '|' : '\\'; - case VKEY_OEM_6: - return shift ? '}' : ']'; - case VKEY_OEM_7: - return shift ? '"' : '\''; - default: - return 0; - } -} - -} // namespace ui diff --git a/ui/base/keycodes/keyboard_code_conversion.h b/ui/base/keycodes/keyboard_code_conversion.h deleted file mode 100644 index afc7aad..0000000 --- a/ui/base/keycodes/keyboard_code_conversion.h +++ /dev/null @@ -1,38 +0,0 @@ -// Copyright (c) 2011 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#ifndef UI_BASE_KEYCODES_KEYBOARD_CODE_CONVERSION_H_ -#define UI_BASE_KEYCODES_KEYBOARD_CODE_CONVERSION_H_ - -#include "base/basictypes.h" -#include "ui/base/keycodes/keyboard_codes.h" -#include "ui/base/ui_export.h" - -namespace ui { - -// A helper function to get the character generated by a key event in a -// platform independent way. It supports control characters as well. -// It assumes a US keyboard layout is used, so it may only be used when there -// is no native event or no better way to get the character. -// For example, if a virtual keyboard implementation can only generate key -// events with key_code and flags information, then there is no way for us to -// determine the actual character that should be generate by the key. Because -// a key_code only represents a physical key on the keyboard, it has nothing -// to do with the actual character printed on that key. In such case, the only -// thing we can do is to assume that we are using a US keyboard and get the -// character according to US keyboard layout definition. -// If a virtual keyboard implementation wants to support other keyboard -// layouts, that may generate different text for a certain key than on a US -// keyboard, a special native event object should be introduced to carry extra -// information to help determine the correct character. -// Take XKeyEvent as an example, it contains not only keycode and modifier -// flags but also group and other extra XKB information to help determine the -// correct character. That's why we can use XLookupString() function to get -// the correct text generated by a X key event (See how is GetCharacter() -// implemented in event_x.cc). -UI_EXPORT uint16 GetCharacterFromKeyCode(KeyboardCode key_code, int flags); - -} // namespace ui - -#endif // UI_BASE_KEYCODES_KEYBOARD_CODE_CONVERSION_H_ diff --git a/ui/base/keycodes/keyboard_code_conversion_android.cc b/ui/base/keycodes/keyboard_code_conversion_android.cc deleted file mode 100644 index 42f2cc7..0000000 --- a/ui/base/keycodes/keyboard_code_conversion_android.cc +++ /dev/null @@ -1,305 +0,0 @@ -// Copyright 2013 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include "ui/base/keycodes/keyboard_code_conversion_android.h" - -#include - -namespace ui { - -namespace { - -// The Android NDK does not provide values for these yet: -enum { - AKEYCODE_ESCAPE = 111, - AKEYCODE_FORWARD_DEL = 112, - AKEYCODE_CTRL_LEFT = 113, - AKEYCODE_CTRL_RIGHT = 114, - AKEYCODE_CAPS_LOCK = 115, - AKEYCODE_SCROLL_LOCK = 116, - AKEYCODE_META_LEFT = 117, - AKEYCODE_META_RIGHT = 118, - AKEYCODE_BREAK = 121, - AKEYCODE_INSERT = 124, - AKEYCODE_MEDIA_PLAY = 126, - AKEYCODE_MEDIA_PAUSE = 127, - AKEYCODE_F1 = 131, - AKEYCODE_F2 = 132, - AKEYCODE_F3 = 133, - AKEYCODE_F4 = 134, - AKEYCODE_F5 = 135, - AKEYCODE_F6 = 136, - AKEYCODE_F7 = 137, - AKEYCODE_F8 = 138, - AKEYCODE_F9 = 139, - AKEYCODE_F10 = 140, - AKEYCODE_F11 = 141, - AKEYCODE_F12 = 142, - AKEYCODE_NUM_LOCK = 143, - AKEYCODE_NUMPAD_0 = 144, - AKEYCODE_NUMPAD_1 = 145, - AKEYCODE_NUMPAD_2 = 146, - AKEYCODE_NUMPAD_3 = 147, - AKEYCODE_NUMPAD_4 = 148, - AKEYCODE_NUMPAD_5 = 149, - AKEYCODE_NUMPAD_6 = 150, - AKEYCODE_NUMPAD_7 = 151, - AKEYCODE_NUMPAD_8 = 152, - AKEYCODE_NUMPAD_9 = 153, - AKEYCODE_NUMPAD_DIVIDE = 154, - AKEYCODE_NUMPAD_MULTIPLY = 155, - AKEYCODE_NUMPAD_SUBTRACT = 156, - AKEYCODE_NUMPAD_ADD = 157, - AKEYCODE_NUMPAD_DOT = 158, - AKEYCODE_VOLUME_MUTE = 164, - AKEYCODE_CHANNEL_UP = 166, - AKEYCODE_CHANNEL_DOWN = 167, -}; - -} // namespace - -KeyboardCode KeyboardCodeFromAndroidKeyCode(int keycode) { - // Does not provide all key codes, and does not handle all keys. - switch (keycode) { - case AKEYCODE_DEL: - return VKEY_BACK; - case AKEYCODE_TAB: - return VKEY_TAB; - case AKEYCODE_CLEAR: - return VKEY_CLEAR; - case AKEYCODE_DPAD_CENTER: - case AKEYCODE_ENTER: - return VKEY_RETURN; - case AKEYCODE_SHIFT_LEFT: - return VKEY_LSHIFT; - case AKEYCODE_SHIFT_RIGHT: - return VKEY_RSHIFT; - // Back will serve as escape, although we may not have access to it. - case AKEYCODE_BACK: - return VKEY_ESCAPE; - case AKEYCODE_SPACE: - return VKEY_SPACE; - case AKEYCODE_HOME: - return VKEY_HOME; - case AKEYCODE_DPAD_LEFT: - return VKEY_LEFT; - case AKEYCODE_DPAD_UP: - return VKEY_UP; - case AKEYCODE_DPAD_RIGHT: - return VKEY_RIGHT; - case AKEYCODE_DPAD_DOWN: - return VKEY_DOWN; - case AKEYCODE_0: - return VKEY_0; - case AKEYCODE_1: - return VKEY_1; - case AKEYCODE_2: - return VKEY_2; - case AKEYCODE_3: - return VKEY_3; - case AKEYCODE_4: - return VKEY_4; - case AKEYCODE_5: - return VKEY_5; - case AKEYCODE_6: - return VKEY_6; - case AKEYCODE_7: - return VKEY_7; - case AKEYCODE_8: - return VKEY_8; - case AKEYCODE_9: - return VKEY_9; - case AKEYCODE_A: - return VKEY_A; - case AKEYCODE_B: - return VKEY_B; - case AKEYCODE_C: - return VKEY_C; - case AKEYCODE_D: - return VKEY_D; - case AKEYCODE_E: - return VKEY_E; - case AKEYCODE_F: - return VKEY_F; - case AKEYCODE_G: - return VKEY_G; - case AKEYCODE_H: - return VKEY_H; - case AKEYCODE_I: - return VKEY_I; - case AKEYCODE_J: - return VKEY_J; - case AKEYCODE_K: - return VKEY_K; - case AKEYCODE_L: - return VKEY_L; - case AKEYCODE_M: - return VKEY_M; - case AKEYCODE_N: - return VKEY_N; - case AKEYCODE_O: - return VKEY_O; - case AKEYCODE_P: - return VKEY_P; - case AKEYCODE_Q: - return VKEY_Q; - case AKEYCODE_R: - return VKEY_R; - case AKEYCODE_S: - return VKEY_S; - case AKEYCODE_T: - return VKEY_T; - case AKEYCODE_U: - return VKEY_U; - case AKEYCODE_V: - return VKEY_V; - case AKEYCODE_W: - return VKEY_W; - case AKEYCODE_X: - return VKEY_X; - case AKEYCODE_Y: - return VKEY_Y; - case AKEYCODE_Z: - return VKEY_Z; - case AKEYCODE_VOLUME_DOWN: - return VKEY_VOLUME_DOWN; - case AKEYCODE_VOLUME_UP: - return VKEY_VOLUME_UP; - case AKEYCODE_MEDIA_NEXT: - return VKEY_MEDIA_NEXT_TRACK; - case AKEYCODE_MEDIA_PREVIOUS: - return VKEY_MEDIA_PREV_TRACK; - case AKEYCODE_MEDIA_STOP: - return VKEY_MEDIA_STOP; - case AKEYCODE_MEDIA_PAUSE: - return VKEY_MEDIA_PLAY_PAUSE; - // Colon key. - case AKEYCODE_SEMICOLON: - return VKEY_OEM_1; - case AKEYCODE_COMMA: - return VKEY_OEM_COMMA; - case AKEYCODE_MINUS: - return VKEY_OEM_MINUS; - case AKEYCODE_EQUALS: - return VKEY_OEM_PLUS; - case AKEYCODE_PERIOD: - return VKEY_OEM_PERIOD; - case AKEYCODE_SLASH: - return VKEY_OEM_2; - case AKEYCODE_LEFT_BRACKET: - return VKEY_OEM_4; - case AKEYCODE_BACKSLASH: - return VKEY_OEM_5; - case AKEYCODE_RIGHT_BRACKET: - return VKEY_OEM_6; - case AKEYCODE_MUTE: - case AKEYCODE_VOLUME_MUTE: - return VKEY_VOLUME_MUTE; - case AKEYCODE_ESCAPE: - return VKEY_ESCAPE; - case AKEYCODE_MEDIA_PLAY: - case AKEYCODE_MEDIA_PLAY_PAUSE: - return VKEY_MEDIA_PLAY_PAUSE; - case AKEYCODE_CALL: - return VKEY_END; - case AKEYCODE_ALT_LEFT: - return VKEY_LMENU; - case AKEYCODE_ALT_RIGHT: - return VKEY_RMENU; - case AKEYCODE_GRAVE: - return VKEY_OEM_3; - case AKEYCODE_APOSTROPHE: - return VKEY_OEM_3; - case AKEYCODE_MEDIA_REWIND: - return VKEY_OEM_103; - case AKEYCODE_MEDIA_FAST_FORWARD: - return VKEY_OEM_104; - case AKEYCODE_PAGE_UP: - return VKEY_PRIOR; - case AKEYCODE_PAGE_DOWN: - return VKEY_NEXT; - case AKEYCODE_FORWARD_DEL: - return VKEY_DELETE; - case AKEYCODE_CTRL_LEFT: - return VKEY_LCONTROL; - case AKEYCODE_CTRL_RIGHT: - return VKEY_RCONTROL; - case AKEYCODE_CAPS_LOCK: - return VKEY_CAPITAL; - case AKEYCODE_SCROLL_LOCK: - return VKEY_SCROLL; - case AKEYCODE_META_LEFT: - return VKEY_LWIN; - case AKEYCODE_META_RIGHT: - return VKEY_RWIN; - case AKEYCODE_BREAK: - return VKEY_PAUSE; - case AKEYCODE_INSERT: - return VKEY_INSERT; - case AKEYCODE_F1: - return VKEY_F1; - case AKEYCODE_F2: - return VKEY_F2; - case AKEYCODE_F3: - return VKEY_F3; - case AKEYCODE_F4: - return VKEY_F4; - case AKEYCODE_F5: - return VKEY_F5; - case AKEYCODE_F6: - return VKEY_F6; - case AKEYCODE_F7: - return VKEY_F7; - case AKEYCODE_F8: - return VKEY_F8; - case AKEYCODE_F9: - return VKEY_F9; - case AKEYCODE_F10: - return VKEY_F10; - case AKEYCODE_F11: - return VKEY_F11; - case AKEYCODE_F12: - return VKEY_F12; - case AKEYCODE_NUM_LOCK: - return VKEY_NUMLOCK; - case AKEYCODE_NUMPAD_0: - return VKEY_NUMPAD0; - case AKEYCODE_NUMPAD_1: - return VKEY_NUMPAD1; - case AKEYCODE_NUMPAD_2: - return VKEY_NUMPAD2; - case AKEYCODE_NUMPAD_3: - return VKEY_NUMPAD3; - case AKEYCODE_NUMPAD_4: - return VKEY_NUMPAD4; - case AKEYCODE_NUMPAD_5: - return VKEY_NUMPAD5; - case AKEYCODE_NUMPAD_6: - return VKEY_NUMPAD6; - case AKEYCODE_NUMPAD_7: - return VKEY_NUMPAD7; - case AKEYCODE_NUMPAD_8: - return VKEY_NUMPAD8; - case AKEYCODE_NUMPAD_9: - return VKEY_NUMPAD9; - case AKEYCODE_NUMPAD_DIVIDE: - return VKEY_DIVIDE; - case AKEYCODE_NUMPAD_MULTIPLY: - return VKEY_MULTIPLY; - case AKEYCODE_NUMPAD_SUBTRACT: - return VKEY_SUBTRACT; - case AKEYCODE_NUMPAD_ADD: - return VKEY_ADD; - case AKEYCODE_NUMPAD_DOT: - return VKEY_DECIMAL; - case AKEYCODE_CHANNEL_UP: - return VKEY_PRIOR; - case AKEYCODE_CHANNEL_DOWN: - return VKEY_NEXT; - default: - return VKEY_UNKNOWN; - } -} - -} // namespace ui diff --git a/ui/base/keycodes/keyboard_code_conversion_android.h b/ui/base/keycodes/keyboard_code_conversion_android.h deleted file mode 100644 index 8bf2789..0000000 --- a/ui/base/keycodes/keyboard_code_conversion_android.h +++ /dev/null @@ -1,17 +0,0 @@ -// Copyright 2013 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#ifndef UI_BASE_KEYCODES_KEYBOARD_CODE_CONVERSION_ANDROID_H_ -#define UI_BASE_KEYCODES_KEYBOARD_CODE_CONVERSION_ANDROID_H_ - -#include "ui/base/keycodes/keyboard_codes_posix.h" -#include "ui/base/ui_export.h" - -namespace ui { - -UI_EXPORT KeyboardCode KeyboardCodeFromAndroidKeyCode(int keycode); - -} // namespace ui - -#endif // UI_BASE_KEYCODES_KEYBOARD_CODE_CONVERSION_ANDROID_H_ diff --git a/ui/base/keycodes/keyboard_code_conversion_gtk.cc b/ui/base/keycodes/keyboard_code_conversion_gtk.cc deleted file mode 100644 index 0d3fcae..0000000 --- a/ui/base/keycodes/keyboard_code_conversion_gtk.cc +++ /dev/null @@ -1,85 +0,0 @@ -// Copyright (c) 2011 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -/* - * Copyright (C) 2006, 2007 Apple Inc. All rights reserved. - * Copyright (C) 2006 Michael Emmel mike.emmel@gmail.com - * Copyright (C) 2007 Holger Hans Peter Freyther - * Copyright (C) 2008 Collabora, Ltd. All rights reserved. - * Copyright (C) 2008, 2009 Google Inc. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR - * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY - * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -// WindowsKeyCodeForGdkKeyCode is copied from platform/gtk/KeyEventGtk.cpp - -#include "ui/base/keycodes/keyboard_code_conversion_gtk.h" - -#include -#include -#include - -#include "base/basictypes.h" -#include "build/build_config.h" -#include "ui/base/keycodes/keyboard_code_conversion_x.h" -#include "ui/base/keycodes/keyboard_codes_posix.h" - -namespace ui { - -KeyboardCode WindowsKeyCodeForGdkKeyCode(int keycode) { - // Gdk key codes (e.g. GDK_BackSpace) and X keysyms (e.g. XK_BackSpace) share - // the same values. - return KeyboardCodeFromXKeysym(keycode); -} - -int GdkKeyCodeForWindowsKeyCode(KeyboardCode keycode, bool shift) { - // Gdk key codes and X keysyms share the same values. - return XKeysymForWindowsKeyCode(keycode, shift); -} - -// Just in case, test whether Gdk key codes match X ones. -COMPILE_ASSERT(GDK_KP_0 == XK_KP_0, keycode_check); -COMPILE_ASSERT(GDK_A == XK_A, keycode_check); -COMPILE_ASSERT(GDK_Escape == XK_Escape, keycode_check); -COMPILE_ASSERT(GDK_F1 == XK_F1, keycode_check); -COMPILE_ASSERT(GDK_Kanji == XK_Kanji, keycode_check); -COMPILE_ASSERT(GDK_Page_Up == XK_Page_Up, keycode_check); -COMPILE_ASSERT(GDK_Tab == XK_Tab, keycode_check); -COMPILE_ASSERT(GDK_a == XK_a, keycode_check); -COMPILE_ASSERT(GDK_space == XK_space, keycode_check); - -int GdkNativeKeyCodeForWindowsKeyCode(KeyboardCode keycode, bool shift) { - int keyval = GdkKeyCodeForWindowsKeyCode(keycode, shift); - GdkKeymapKey* keys; - gint n_keys; - - int native_keycode = 0; - if (keyval && gdk_keymap_get_entries_for_keyval(0, keyval, &keys, &n_keys)) { - native_keycode = keys[0].keycode; - g_free(keys); - } - - return native_keycode; -} - -} // namespace ui diff --git a/ui/base/keycodes/keyboard_code_conversion_gtk.h b/ui/base/keycodes/keyboard_code_conversion_gtk.h deleted file mode 100644 index 3593d0c..0000000 --- a/ui/base/keycodes/keyboard_code_conversion_gtk.h +++ /dev/null @@ -1,57 +0,0 @@ -// Copyright (c) 2011 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -/* - * Copyright (C) 2006, 2007 Apple Inc. All rights reserved. - * Copyright (C) 2006 Michael Emmel mike.emmel@gmail.com - * Copyright (C) 2007 Holger Hans Peter Freyther - * Copyright (C) 2008 Collabora, Ltd. All rights reserved. - * Copyright (C) 2008, 2009 Google Inc. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR - * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY - * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -// WindowsKeyCodeForGdkKeyCode is copied from platform/gtk/KeyEventGtk.cpp - -#ifndef UI_BASE_KEYCODES_KEYBOARD_CODE_CONVERSION_GTK_H_ -#define UI_BASE_KEYCODES_KEYBOARD_CODE_CONVERSION_GTK_H_ - -#include "ui/base/keycodes/keyboard_codes_posix.h" -#include "ui/base/ui_export.h" - -typedef struct _GdkEventKey GdkEventKey; - -namespace ui { - -UI_EXPORT KeyboardCode WindowsKeyCodeForGdkKeyCode(int keycode); - -UI_EXPORT int GdkKeyCodeForWindowsKeyCode(KeyboardCode keycode, bool shift); - -// For WebKit DRT testing: simulate the native keycode for the given -// input |keycode|. Return the native keycode. -UI_EXPORT int GdkNativeKeyCodeForWindowsKeyCode(KeyboardCode keycode, - bool shift); - -} // namespace ui - -#endif // UI_BASE_KEYCODES_KEYBOARD_CODE_CONVERSION_GTK_H_ diff --git a/ui/base/keycodes/keyboard_code_conversion_mac.h b/ui/base/keycodes/keyboard_code_conversion_mac.h deleted file mode 100644 index b0e9779..0000000 --- a/ui/base/keycodes/keyboard_code_conversion_mac.h +++ /dev/null @@ -1,41 +0,0 @@ -// Copyright (c) 2011 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#ifndef UI_BASE_KEYCODES_KEYBOARD_CODE_CONVERSION_MAC_H_ -#define UI_BASE_KEYCODES_KEYBOARD_CODE_CONVERSION_MAC_H_ - -#import - -#include "base/basictypes.h" -#include "ui/base/keycodes/keyboard_codes_posix.h" -#include "ui/base/ui_export.h" - -namespace ui { - -// We use windows virtual keycodes throughout our keyboard event related code, -// including unit tests. But Mac uses a different set of virtual keycodes. -// This function converts a windows virtual keycode into Mac's virtual key code -// and corresponding unicode character. |flags| is the modifiers mask such -// as NSControlKeyMask, NSShiftKeyMask, etc. -// When success, the corresponding Mac's virtual key code will be returned. -// The corresponding unicode character will be stored in |character|, and the -// corresponding unicode character ignoring the modifiers will be stored in -// |characterIgnoringModifiers|. -// -1 will be returned if the keycode can't be converted. -// This function is mainly for simulating keyboard events in unit tests. -// See |KeyboardCodeFromNSEvent| for reverse conversion. -UI_EXPORT int MacKeyCodeForWindowsKeyCode(KeyboardCode keycode, - NSUInteger flags, - unichar* character, - unichar* characterIgnoringModifiers); - -// This implementation cribbed from: -// third_party/WebKit/Source/web/mac/WebInputEventFactory.mm -// Converts |event| into a |KeyboardCode|. The mapping is not direct as the Mac -// has a different notion of key codes. -UI_EXPORT KeyboardCode KeyboardCodeFromNSEvent(NSEvent* event); - -} // namespace ui - -#endif // UI_BASE_KEYCODES_KEYBOARD_CODE_CONVERSION_MAC_H_ diff --git a/ui/base/keycodes/keyboard_code_conversion_mac.mm b/ui/base/keycodes/keyboard_code_conversion_mac.mm deleted file mode 100644 index 2f8c211..0000000 --- a/ui/base/keycodes/keyboard_code_conversion_mac.mm +++ /dev/null @@ -1,558 +0,0 @@ -// Copyright (c) 2012 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#import "ui/base/keycodes/keyboard_code_conversion_mac.h" - -#include - -#import - -#include "base/logging.h" - -namespace ui { - -namespace { - -// A struct to hold a Windows keycode to Mac virtual keycode mapping. -struct KeyCodeMap { - KeyboardCode keycode; - int macKeycode; - unichar characterIgnoringModifiers; -}; - -// Customized less operator for using std::lower_bound() on a KeyCodeMap array. -bool operator<(const KeyCodeMap& a, const KeyCodeMap& b) { - return a.keycode < b.keycode; -} - -// This array must keep sorted ascending according to the value of |keycode|, -// so that we can binary search it. -// TODO(suzhe): This map is not complete, missing entries have macKeycode == -1. -const KeyCodeMap kKeyCodesMap[] = { - { VKEY_BACK /* 0x08 */, kVK_Delete, kBackspaceCharCode }, - { VKEY_TAB /* 0x09 */, kVK_Tab, kTabCharCode }, - { VKEY_BACKTAB /* 0x0A */, 0x21E4, '\031' }, - { VKEY_CLEAR /* 0x0C */, kVK_ANSI_KeypadClear, kClearCharCode }, - { VKEY_RETURN /* 0x0D */, kVK_Return, kReturnCharCode }, - { VKEY_SHIFT /* 0x10 */, kVK_Shift, 0 }, - { VKEY_CONTROL /* 0x11 */, kVK_Control, 0 }, - { VKEY_MENU /* 0x12 */, kVK_Option, 0 }, - { VKEY_PAUSE /* 0x13 */, -1, NSPauseFunctionKey }, - { VKEY_CAPITAL /* 0x14 */, kVK_CapsLock, 0 }, - { VKEY_KANA /* 0x15 */, kVK_JIS_Kana, 0 }, - { VKEY_HANGUL /* 0x15 */, -1, 0 }, - { VKEY_JUNJA /* 0x17 */, -1, 0 }, - { VKEY_FINAL /* 0x18 */, -1, 0 }, - { VKEY_HANJA /* 0x19 */, -1, 0 }, - { VKEY_KANJI /* 0x19 */, -1, 0 }, - { VKEY_ESCAPE /* 0x1B */, kVK_Escape, kEscapeCharCode }, - { VKEY_CONVERT /* 0x1C */, -1, 0 }, - { VKEY_NONCONVERT /* 0x1D */, -1, 0 }, - { VKEY_ACCEPT /* 0x1E */, -1, 0 }, - { VKEY_MODECHANGE /* 0x1F */, -1, 0 }, - { VKEY_SPACE /* 0x20 */, kVK_Space, kSpaceCharCode }, - { VKEY_PRIOR /* 0x21 */, kVK_PageUp, NSPageUpFunctionKey }, - { VKEY_NEXT /* 0x22 */, kVK_PageDown, NSPageDownFunctionKey }, - { VKEY_END /* 0x23 */, kVK_End, NSEndFunctionKey }, - { VKEY_HOME /* 0x24 */, kVK_Home, NSHomeFunctionKey }, - { VKEY_LEFT /* 0x25 */, kVK_LeftArrow, NSLeftArrowFunctionKey }, - { VKEY_UP /* 0x26 */, kVK_UpArrow, NSUpArrowFunctionKey }, - { VKEY_RIGHT /* 0x27 */, kVK_RightArrow, NSRightArrowFunctionKey }, - { VKEY_DOWN /* 0x28 */, kVK_DownArrow, NSDownArrowFunctionKey }, - { VKEY_SELECT /* 0x29 */, -1, 0 }, - { VKEY_PRINT /* 0x2A */, -1, NSPrintFunctionKey }, - { VKEY_EXECUTE /* 0x2B */, -1, NSExecuteFunctionKey }, - { VKEY_SNAPSHOT /* 0x2C */, -1, NSPrintScreenFunctionKey }, - { VKEY_INSERT /* 0x2D */, -1, NSInsertFunctionKey }, - { VKEY_DELETE /* 0x2E */, kVK_ForwardDelete, kDeleteCharCode }, - { VKEY_HELP /* 0x2F */, kVK_Help, kHelpCharCode }, - { VKEY_0 /* 0x30 */, kVK_ANSI_0, '0' }, - { VKEY_1 /* 0x31 */, kVK_ANSI_1, '1' }, - { VKEY_2 /* 0x32 */, kVK_ANSI_2, '2' }, - { VKEY_3 /* 0x33 */, kVK_ANSI_3, '3' }, - { VKEY_4 /* 0x34 */, kVK_ANSI_4, '4' }, - { VKEY_5 /* 0x35 */, kVK_ANSI_5, '5' }, - { VKEY_6 /* 0x36 */, kVK_ANSI_6, '6' }, - { VKEY_7 /* 0x37 */, kVK_ANSI_7, '7' }, - { VKEY_8 /* 0x38 */, kVK_ANSI_8, '8' }, - { VKEY_9 /* 0x39 */, kVK_ANSI_9, '9' }, - { VKEY_A /* 0x41 */, kVK_ANSI_A, 'a' }, - { VKEY_B /* 0x42 */, kVK_ANSI_B, 'b' }, - { VKEY_C /* 0x43 */, kVK_ANSI_C, 'c' }, - { VKEY_D /* 0x44 */, kVK_ANSI_D, 'd' }, - { VKEY_E /* 0x45 */, kVK_ANSI_E, 'e' }, - { VKEY_F /* 0x46 */, kVK_ANSI_F, 'f' }, - { VKEY_G /* 0x47 */, kVK_ANSI_G, 'g' }, - { VKEY_H /* 0x48 */, kVK_ANSI_H, 'h' }, - { VKEY_I /* 0x49 */, kVK_ANSI_I, 'i' }, - { VKEY_J /* 0x4A */, kVK_ANSI_J, 'j' }, - { VKEY_K /* 0x4B */, kVK_ANSI_K, 'k' }, - { VKEY_L /* 0x4C */, kVK_ANSI_L, 'l' }, - { VKEY_M /* 0x4D */, kVK_ANSI_M, 'm' }, - { VKEY_N /* 0x4E */, kVK_ANSI_N, 'n' }, - { VKEY_O /* 0x4F */, kVK_ANSI_O, 'o' }, - { VKEY_P /* 0x50 */, kVK_ANSI_P, 'p' }, - { VKEY_Q /* 0x51 */, kVK_ANSI_Q, 'q' }, - { VKEY_R /* 0x52 */, kVK_ANSI_R, 'r' }, - { VKEY_S /* 0x53 */, kVK_ANSI_S, 's' }, - { VKEY_T /* 0x54 */, kVK_ANSI_T, 't' }, - { VKEY_U /* 0x55 */, kVK_ANSI_U, 'u' }, - { VKEY_V /* 0x56 */, kVK_ANSI_V, 'v' }, - { VKEY_W /* 0x57 */, kVK_ANSI_W, 'w' }, - { VKEY_X /* 0x58 */, kVK_ANSI_X, 'x' }, - { VKEY_Y /* 0x59 */, kVK_ANSI_Y, 'y' }, - { VKEY_Z /* 0x5A */, kVK_ANSI_Z, 'z' }, - { VKEY_LWIN /* 0x5B */, kVK_Command, 0 }, - { VKEY_RWIN /* 0x5C */, 0x36, 0 }, - { VKEY_APPS /* 0x5D */, 0x36, 0 }, - { VKEY_SLEEP /* 0x5F */, -1, 0 }, - { VKEY_NUMPAD0 /* 0x60 */, kVK_ANSI_Keypad0, '0' }, - { VKEY_NUMPAD1 /* 0x61 */, kVK_ANSI_Keypad1, '1' }, - { VKEY_NUMPAD2 /* 0x62 */, kVK_ANSI_Keypad2, '2' }, - { VKEY_NUMPAD3 /* 0x63 */, kVK_ANSI_Keypad3, '3' }, - { VKEY_NUMPAD4 /* 0x64 */, kVK_ANSI_Keypad4, '4' }, - { VKEY_NUMPAD5 /* 0x65 */, kVK_ANSI_Keypad5, '5' }, - { VKEY_NUMPAD6 /* 0x66 */, kVK_ANSI_Keypad6, '6' }, - { VKEY_NUMPAD7 /* 0x67 */, kVK_ANSI_Keypad7, '7' }, - { VKEY_NUMPAD8 /* 0x68 */, kVK_ANSI_Keypad8, '8' }, - { VKEY_NUMPAD9 /* 0x69 */, kVK_ANSI_Keypad9, '9' }, - { VKEY_MULTIPLY /* 0x6A */, kVK_ANSI_KeypadMultiply, '*' }, - { VKEY_ADD /* 0x6B */, kVK_ANSI_KeypadPlus, '+' }, - { VKEY_SEPARATOR /* 0x6C */, -1, 0 }, - { VKEY_SUBTRACT /* 0x6D */, kVK_ANSI_KeypadMinus, '-' }, - { VKEY_DECIMAL /* 0x6E */, kVK_ANSI_KeypadDecimal, '.' }, - { VKEY_DIVIDE /* 0x6F */, kVK_ANSI_KeypadDivide, '/' }, - { VKEY_F1 /* 0x70 */, kVK_F1, NSF1FunctionKey }, - { VKEY_F2 /* 0x71 */, kVK_F2, NSF2FunctionKey }, - { VKEY_F3 /* 0x72 */, kVK_F3, NSF3FunctionKey }, - { VKEY_F4 /* 0x73 */, kVK_F4, NSF4FunctionKey }, - { VKEY_F5 /* 0x74 */, kVK_F5, NSF5FunctionKey }, - { VKEY_F6 /* 0x75 */, kVK_F6, NSF6FunctionKey }, - { VKEY_F7 /* 0x76 */, kVK_F7, NSF7FunctionKey }, - { VKEY_F8 /* 0x77 */, kVK_F8, NSF8FunctionKey }, - { VKEY_F9 /* 0x78 */, kVK_F9, NSF9FunctionKey }, - { VKEY_F10 /* 0x79 */, kVK_F10, NSF10FunctionKey }, - { VKEY_F11 /* 0x7A */, kVK_F11, NSF11FunctionKey }, - { VKEY_F12 /* 0x7B */, kVK_F12, NSF12FunctionKey }, - { VKEY_F13 /* 0x7C */, kVK_F13, NSF13FunctionKey }, - { VKEY_F14 /* 0x7D */, kVK_F14, NSF14FunctionKey }, - { VKEY_F15 /* 0x7E */, kVK_F15, NSF15FunctionKey }, - { VKEY_F16 /* 0x7F */, kVK_F16, NSF16FunctionKey }, - { VKEY_F17 /* 0x80 */, kVK_F17, NSF17FunctionKey }, - { VKEY_F18 /* 0x81 */, kVK_F18, NSF18FunctionKey }, - { VKEY_F19 /* 0x82 */, kVK_F19, NSF19FunctionKey }, - { VKEY_F20 /* 0x83 */, kVK_F20, NSF20FunctionKey }, - { VKEY_F21 /* 0x84 */, -1, NSF21FunctionKey }, - { VKEY_F22 /* 0x85 */, -1, NSF22FunctionKey }, - { VKEY_F23 /* 0x86 */, -1, NSF23FunctionKey }, - { VKEY_F24 /* 0x87 */, -1, NSF24FunctionKey }, - { VKEY_NUMLOCK /* 0x90 */, -1, 0 }, - { VKEY_SCROLL /* 0x91 */, -1, NSScrollLockFunctionKey }, - { VKEY_LSHIFT /* 0xA0 */, kVK_Shift, 0 }, - { VKEY_RSHIFT /* 0xA1 */, kVK_Shift, 0 }, - { VKEY_LCONTROL /* 0xA2 */, kVK_Control, 0 }, - { VKEY_RCONTROL /* 0xA3 */, kVK_Control, 0 }, - { VKEY_LMENU /* 0xA4 */, -1, 0 }, - { VKEY_RMENU /* 0xA5 */, -1, 0 }, - { VKEY_BROWSER_BACK /* 0xA6 */, -1, 0 }, - { VKEY_BROWSER_FORWARD /* 0xA7 */, -1, 0 }, - { VKEY_BROWSER_REFRESH /* 0xA8 */, -1, 0 }, - { VKEY_BROWSER_STOP /* 0xA9 */, -1, 0 }, - { VKEY_BROWSER_SEARCH /* 0xAA */, -1, 0 }, - { VKEY_BROWSER_FAVORITES /* 0xAB */, -1, 0 }, - { VKEY_BROWSER_HOME /* 0xAC */, -1, 0 }, - { VKEY_VOLUME_MUTE /* 0xAD */, -1, 0 }, - { VKEY_VOLUME_DOWN /* 0xAE */, -1, 0 }, - { VKEY_VOLUME_UP /* 0xAF */, -1, 0 }, - { VKEY_MEDIA_NEXT_TRACK /* 0xB0 */, -1, 0 }, - { VKEY_MEDIA_PREV_TRACK /* 0xB1 */, -1, 0 }, - { VKEY_MEDIA_STOP /* 0xB2 */, -1, 0 }, - { VKEY_MEDIA_PLAY_PAUSE /* 0xB3 */, -1, 0 }, - { VKEY_MEDIA_LAUNCH_MAIL /* 0xB4 */, -1, 0 }, - { VKEY_MEDIA_LAUNCH_MEDIA_SELECT /* 0xB5 */, -1, 0 }, - { VKEY_MEDIA_LAUNCH_APP1 /* 0xB6 */, -1, 0 }, - { VKEY_MEDIA_LAUNCH_APP2 /* 0xB7 */, -1, 0 }, - { VKEY_OEM_1 /* 0xBA */, kVK_ANSI_Semicolon, ';' }, - { VKEY_OEM_PLUS /* 0xBB */, kVK_ANSI_Equal, '=' }, - { VKEY_OEM_COMMA /* 0xBC */, kVK_ANSI_Comma, ',' }, - { VKEY_OEM_MINUS /* 0xBD */, kVK_ANSI_Minus, '-' }, - { VKEY_OEM_PERIOD /* 0xBE */, kVK_ANSI_Period, '.' }, - { VKEY_OEM_2 /* 0xBF */, kVK_ANSI_Slash, '/' }, - { VKEY_OEM_3 /* 0xC0 */, kVK_ANSI_Grave, '`' }, - { VKEY_OEM_4 /* 0xDB */, kVK_ANSI_LeftBracket, '[' }, - { VKEY_OEM_5 /* 0xDC */, kVK_ANSI_Backslash, '\\' }, - { VKEY_OEM_6 /* 0xDD */, kVK_ANSI_RightBracket, ']' }, - { VKEY_OEM_7 /* 0xDE */, kVK_ANSI_Quote, '\'' }, - { VKEY_OEM_8 /* 0xDF */, -1, 0 }, - { VKEY_OEM_102 /* 0xE2 */, -1, 0 }, - { VKEY_PROCESSKEY /* 0xE5 */, -1, 0 }, - { VKEY_PACKET /* 0xE7 */, -1, 0 }, - { VKEY_ATTN /* 0xF6 */, -1, 0 }, - { VKEY_CRSEL /* 0xF7 */, -1, 0 }, - { VKEY_EXSEL /* 0xF8 */, -1, 0 }, - { VKEY_EREOF /* 0xF9 */, -1, 0 }, - { VKEY_PLAY /* 0xFA */, -1, 0 }, - { VKEY_ZOOM /* 0xFB */, -1, 0 }, - { VKEY_NONAME /* 0xFC */, -1, 0 }, - { VKEY_PA1 /* 0xFD */, -1, 0 }, - { VKEY_OEM_CLEAR /* 0xFE */, kVK_ANSI_KeypadClear, kClearCharCode } -}; - -// A convenient array for getting symbol characters on the number keys. -const char kShiftCharsForNumberKeys[] = ")!@#$%^&*("; - -// Translates from character code to keyboard code. -KeyboardCode KeyboardCodeFromCharCode(unichar charCode) { - switch (charCode) { - case 8: case 0x7F: return VKEY_BACK; - case 9: return VKEY_TAB; - case 0xD: case 3: return VKEY_RETURN; - case 0x1B: return VKEY_ESCAPE; - case ' ': return VKEY_SPACE; - case NSHomeFunctionKey: return VKEY_HOME; - case NSEndFunctionKey: return VKEY_END; - case NSPageUpFunctionKey: return VKEY_PRIOR; - case NSPageDownFunctionKey: return VKEY_NEXT; - case NSUpArrowFunctionKey: return VKEY_UP; - case NSDownArrowFunctionKey: return VKEY_DOWN; - case NSLeftArrowFunctionKey: return VKEY_LEFT; - case NSRightArrowFunctionKey: return VKEY_RIGHT; - case NSDeleteFunctionKey: return VKEY_DELETE; - - case '0': case ')': return VKEY_0; - case '1': case '!': return VKEY_1; - case '2': case '@': return VKEY_2; - case '3': case '#': return VKEY_3; - case '4': case '$': return VKEY_4; - case '5': case '%': return VKEY_5; - case '6': case '^': return VKEY_6; - case '7': case '&': return VKEY_7; - case '8': case '*': return VKEY_8; - case '9': case '(': return VKEY_9; - - case 'a': case 'A': return VKEY_A; - case 'b': case 'B': return VKEY_B; - case 'c': case 'C': return VKEY_C; - case 'd': case 'D': return VKEY_D; - case 'e': case 'E': return VKEY_E; - case 'f': case 'F': return VKEY_F; - case 'g': case 'G': return VKEY_G; - case 'h': case 'H': return VKEY_H; - case 'i': case 'I': return VKEY_I; - case 'j': case 'J': return VKEY_J; - case 'k': case 'K': return VKEY_K; - case 'l': case 'L': return VKEY_L; - case 'm': case 'M': return VKEY_M; - case 'n': case 'N': return VKEY_N; - case 'o': case 'O': return VKEY_O; - case 'p': case 'P': return VKEY_P; - case 'q': case 'Q': return VKEY_Q; - case 'r': case 'R': return VKEY_R; - case 's': case 'S': return VKEY_S; - case 't': case 'T': return VKEY_T; - case 'u': case 'U': return VKEY_U; - case 'v': case 'V': return VKEY_V; - case 'w': case 'W': return VKEY_W; - case 'x': case 'X': return VKEY_X; - case 'y': case 'Y': return VKEY_Y; - case 'z': case 'Z': return VKEY_Z; - - case NSPauseFunctionKey: return VKEY_PAUSE; - case NSSelectFunctionKey: return VKEY_SELECT; - case NSPrintFunctionKey: return VKEY_PRINT; - case NSExecuteFunctionKey: return VKEY_EXECUTE; - case NSPrintScreenFunctionKey: return VKEY_SNAPSHOT; - case NSInsertFunctionKey: return VKEY_INSERT; - case NSHelpFunctionKey: return VKEY_INSERT; - - case NSF1FunctionKey: return VKEY_F1; - case NSF2FunctionKey: return VKEY_F2; - case NSF3FunctionKey: return VKEY_F3; - case NSF4FunctionKey: return VKEY_F4; - case NSF5FunctionKey: return VKEY_F5; - case NSF6FunctionKey: return VKEY_F6; - case NSF7FunctionKey: return VKEY_F7; - case NSF8FunctionKey: return VKEY_F8; - case NSF9FunctionKey: return VKEY_F9; - case NSF10FunctionKey: return VKEY_F10; - case NSF11FunctionKey: return VKEY_F11; - case NSF12FunctionKey: return VKEY_F12; - case NSF13FunctionKey: return VKEY_F13; - case NSF14FunctionKey: return VKEY_F14; - case NSF15FunctionKey: return VKEY_F15; - case NSF16FunctionKey: return VKEY_F16; - case NSF17FunctionKey: return VKEY_F17; - case NSF18FunctionKey: return VKEY_F18; - case NSF19FunctionKey: return VKEY_F19; - case NSF20FunctionKey: return VKEY_F20; - - case NSF21FunctionKey: return VKEY_F21; - case NSF22FunctionKey: return VKEY_F22; - case NSF23FunctionKey: return VKEY_F23; - case NSF24FunctionKey: return VKEY_F24; - case NSScrollLockFunctionKey: return VKEY_SCROLL; - - // U.S. Specific mappings. Mileage may vary. - case ';': case ':': return VKEY_OEM_1; - case '=': case '+': return VKEY_OEM_PLUS; - case ',': case '<': return VKEY_OEM_COMMA; - case '-': case '_': return VKEY_OEM_MINUS; - case '.': case '>': return VKEY_OEM_PERIOD; - case '/': case '?': return VKEY_OEM_2; - case '`': case '~': return VKEY_OEM_3; - case '[': case '{': return VKEY_OEM_4; - case '\\': case '|': return VKEY_OEM_5; - case ']': case '}': return VKEY_OEM_6; - case '\'': case '"': return VKEY_OEM_7; - } - - return VKEY_UNKNOWN; -} - -KeyboardCode KeyboardCodeFromKeyCode(unsigned short keyCode) { - static const KeyboardCode kKeyboardCodes[] = { - /* 0 */ VKEY_A, - /* 1 */ VKEY_S, - /* 2 */ VKEY_D, - /* 3 */ VKEY_F, - /* 4 */ VKEY_H, - /* 5 */ VKEY_G, - /* 6 */ VKEY_Z, - /* 7 */ VKEY_X, - /* 8 */ VKEY_C, - /* 9 */ VKEY_V, - /* 0x0A */ VKEY_OEM_3, // Section key. - /* 0x0B */ VKEY_B, - /* 0x0C */ VKEY_Q, - /* 0x0D */ VKEY_W, - /* 0x0E */ VKEY_E, - /* 0x0F */ VKEY_R, - /* 0x10 */ VKEY_Y, - /* 0x11 */ VKEY_T, - /* 0x12 */ VKEY_1, - /* 0x13 */ VKEY_2, - /* 0x14 */ VKEY_3, - /* 0x15 */ VKEY_4, - /* 0x16 */ VKEY_6, - /* 0x17 */ VKEY_5, - /* 0x18 */ VKEY_OEM_PLUS, // =+ - /* 0x19 */ VKEY_9, - /* 0x1A */ VKEY_7, - /* 0x1B */ VKEY_OEM_MINUS, // -_ - /* 0x1C */ VKEY_8, - /* 0x1D */ VKEY_0, - /* 0x1E */ VKEY_OEM_6, // ]} - /* 0x1F */ VKEY_O, - /* 0x20 */ VKEY_U, - /* 0x21 */ VKEY_OEM_4, // {[ - /* 0x22 */ VKEY_I, - /* 0x23 */ VKEY_P, - /* 0x24 */ VKEY_RETURN, // Return - /* 0x25 */ VKEY_L, - /* 0x26 */ VKEY_J, - /* 0x27 */ VKEY_OEM_7, // '" - /* 0x28 */ VKEY_K, - /* 0x29 */ VKEY_OEM_1, // ;: - /* 0x2A */ VKEY_OEM_5, // \| - /* 0x2B */ VKEY_OEM_COMMA, // ,< - /* 0x2C */ VKEY_OEM_2, // /? - /* 0x2D */ VKEY_N, - /* 0x2E */ VKEY_M, - /* 0x2F */ VKEY_OEM_PERIOD, // .> - /* 0x30 */ VKEY_TAB, - /* 0x31 */ VKEY_SPACE, - /* 0x32 */ VKEY_OEM_3, // `~ - /* 0x33 */ VKEY_BACK, // Backspace - /* 0x34 */ VKEY_UNKNOWN, // n/a - /* 0x35 */ VKEY_ESCAPE, - /* 0x36 */ VKEY_APPS, // Right Command - /* 0x37 */ VKEY_LWIN, // Left Command - /* 0x38 */ VKEY_SHIFT, // Left Shift - /* 0x39 */ VKEY_CAPITAL, // Caps Lock - /* 0x3A */ VKEY_MENU, // Left Option - /* 0x3B */ VKEY_CONTROL, // Left Ctrl - /* 0x3C */ VKEY_SHIFT, // Right Shift - /* 0x3D */ VKEY_MENU, // Right Option - /* 0x3E */ VKEY_CONTROL, // Right Ctrl - /* 0x3F */ VKEY_UNKNOWN, // fn - /* 0x40 */ VKEY_F17, - /* 0x41 */ VKEY_DECIMAL, // Num Pad . - /* 0x42 */ VKEY_UNKNOWN, // n/a - /* 0x43 */ VKEY_MULTIPLY, // Num Pad * - /* 0x44 */ VKEY_UNKNOWN, // n/a - /* 0x45 */ VKEY_ADD, // Num Pad + - /* 0x46 */ VKEY_UNKNOWN, // n/a - /* 0x47 */ VKEY_CLEAR, // Num Pad Clear - /* 0x48 */ VKEY_VOLUME_UP, - /* 0x49 */ VKEY_VOLUME_DOWN, - /* 0x4A */ VKEY_VOLUME_MUTE, - /* 0x4B */ VKEY_DIVIDE, // Num Pad / - /* 0x4C */ VKEY_RETURN, // Num Pad Enter - /* 0x4D */ VKEY_UNKNOWN, // n/a - /* 0x4E */ VKEY_SUBTRACT, // Num Pad - - /* 0x4F */ VKEY_F18, - /* 0x50 */ VKEY_F19, - /* 0x51 */ VKEY_OEM_PLUS, // Num Pad =. - /* 0x52 */ VKEY_NUMPAD0, - /* 0x53 */ VKEY_NUMPAD1, - /* 0x54 */ VKEY_NUMPAD2, - /* 0x55 */ VKEY_NUMPAD3, - /* 0x56 */ VKEY_NUMPAD4, - /* 0x57 */ VKEY_NUMPAD5, - /* 0x58 */ VKEY_NUMPAD6, - /* 0x59 */ VKEY_NUMPAD7, - /* 0x5A */ VKEY_F20, - /* 0x5B */ VKEY_NUMPAD8, - /* 0x5C */ VKEY_NUMPAD9, - /* 0x5D */ VKEY_UNKNOWN, // Yen (JIS Keyboard Only) - /* 0x5E */ VKEY_UNKNOWN, // Underscore (JIS Keyboard Only) - /* 0x5F */ VKEY_UNKNOWN, // KeypadComma (JIS Keyboard Only) - /* 0x60 */ VKEY_F5, - /* 0x61 */ VKEY_F6, - /* 0x62 */ VKEY_F7, - /* 0x63 */ VKEY_F3, - /* 0x64 */ VKEY_F8, - /* 0x65 */ VKEY_F9, - /* 0x66 */ VKEY_UNKNOWN, // Eisu (JIS Keyboard Only) - /* 0x67 */ VKEY_F11, - /* 0x68 */ VKEY_UNKNOWN, // Kana (JIS Keyboard Only) - /* 0x69 */ VKEY_F13, - /* 0x6A */ VKEY_F16, - /* 0x6B */ VKEY_F14, - /* 0x6C */ VKEY_UNKNOWN, // n/a - /* 0x6D */ VKEY_F10, - /* 0x6E */ VKEY_UNKNOWN, // n/a (Windows95 key?) - /* 0x6F */ VKEY_F12, - /* 0x70 */ VKEY_UNKNOWN, // n/a - /* 0x71 */ VKEY_F15, - /* 0x72 */ VKEY_INSERT, // Help - /* 0x73 */ VKEY_HOME, // Home - /* 0x74 */ VKEY_PRIOR, // Page Up - /* 0x75 */ VKEY_DELETE, // Forward Delete - /* 0x76 */ VKEY_F4, - /* 0x77 */ VKEY_END, // End - /* 0x78 */ VKEY_F2, - /* 0x79 */ VKEY_NEXT, // Page Down - /* 0x7A */ VKEY_F1, - /* 0x7B */ VKEY_LEFT, // Left Arrow - /* 0x7C */ VKEY_RIGHT, // Right Arrow - /* 0x7D */ VKEY_DOWN, // Down Arrow - /* 0x7E */ VKEY_UP, // Up Arrow - /* 0x7F */ VKEY_UNKNOWN // n/a - }; - - if (keyCode >= 0x80) - return VKEY_UNKNOWN; - - return kKeyboardCodes[keyCode]; -} - -} // namespace - -int MacKeyCodeForWindowsKeyCode(KeyboardCode keycode, - NSUInteger flags, - unichar* character, - unichar* characterIgnoringModifiers) { - KeyCodeMap from; - from.keycode = keycode; - - const KeyCodeMap* ptr = std::lower_bound( - kKeyCodesMap, kKeyCodesMap + arraysize(kKeyCodesMap), from); - - if (ptr >= kKeyCodesMap + arraysize(kKeyCodesMap) || - ptr->keycode != keycode || ptr->macKeycode == -1) - return -1; - - int macKeycode = ptr->macKeycode; - if (characterIgnoringModifiers) - *characterIgnoringModifiers = ptr->characterIgnoringModifiers; - - if (!character) - return macKeycode; - - *character = ptr->characterIgnoringModifiers; - - // Fill in |character| according to flags. - if (flags & NSShiftKeyMask) { - if (keycode >= VKEY_0 && keycode <= VKEY_9) { - *character = kShiftCharsForNumberKeys[keycode - VKEY_0]; - } else if (keycode >= VKEY_A && keycode <= VKEY_Z) { - *character = 'A' + (keycode - VKEY_A); - } else { - switch (macKeycode) { - case kVK_ANSI_Grave: - *character = '~'; - break; - case kVK_ANSI_Minus: - *character = '_'; - break; - case kVK_ANSI_Equal: - *character = '+'; - break; - case kVK_ANSI_LeftBracket: - *character = '{'; - break; - case kVK_ANSI_RightBracket: - *character = '}'; - break; - case kVK_ANSI_Backslash: - *character = '|'; - break; - case kVK_ANSI_Semicolon: - *character = ':'; - break; - case kVK_ANSI_Quote: - *character = '\"'; - break; - case kVK_ANSI_Comma: - *character = '<'; - break; - case kVK_ANSI_Period: - *character = '>'; - break; - case kVK_ANSI_Slash: - *character = '?'; - break; - default: - break; - } - } - } - - // Control characters. - if (flags & NSControlKeyMask) { - if (keycode >= VKEY_A && keycode <= VKEY_Z) - *character = 1 + keycode - VKEY_A; - else if (macKeycode == kVK_ANSI_LeftBracket) - *character = 27; - else if (macKeycode == kVK_ANSI_Backslash) - *character = 28; - else if (macKeycode == kVK_ANSI_RightBracket) - *character = 29; - } - - // TODO(suzhe): Support characters for Option key bindings. - return macKeycode; -} - -KeyboardCode KeyboardCodeFromNSEvent(NSEvent* event) { - KeyboardCode code = VKEY_UNKNOWN; - - if ([event type] == NSKeyDown || [event type] == NSKeyUp) { - NSString* characters = [event characters]; - if ([characters length] > 0) - code = KeyboardCodeFromCharCode([characters characterAtIndex:0]); - if (code) - return code; - - characters = [event charactersIgnoringModifiers]; - if ([characters length] > 0) - code = KeyboardCodeFromCharCode([characters characterAtIndex:0]); - if (code) - return code; - } - return KeyboardCodeFromKeyCode([event keyCode]); -} - -} // namespace ui diff --git a/ui/base/keycodes/keyboard_code_conversion_win.cc b/ui/base/keycodes/keyboard_code_conversion_win.cc deleted file mode 100644 index f85cc50..0000000 --- a/ui/base/keycodes/keyboard_code_conversion_win.cc +++ /dev/null @@ -1,17 +0,0 @@ -// Copyright (c) 2011 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include "ui/base/keycodes/keyboard_code_conversion_win.h" - -namespace ui { - -WORD WindowsKeyCodeForKeyboardCode(KeyboardCode keycode) { - return static_cast(keycode); -} - -KeyboardCode KeyboardCodeForWindowsKeyCode(WORD keycode) { - return static_cast(keycode); -} - -} // namespace ui diff --git a/ui/base/keycodes/keyboard_code_conversion_win.h b/ui/base/keycodes/keyboard_code_conversion_win.h deleted file mode 100644 index 1cf91de..0000000 --- a/ui/base/keycodes/keyboard_code_conversion_win.h +++ /dev/null @@ -1,19 +0,0 @@ -// Copyright (c) 2011 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#ifndef UI_BASE_KEYCODES_KEYBOARD_CODE_CONVERSION_WIN_H_ -#define UI_BASE_KEYCODES_KEYBOARD_CODE_CONVERSION_WIN_H_ - -#include "ui/base/keycodes/keyboard_codes.h" -#include "ui/base/ui_export.h" - -namespace ui { - -// Methods to convert ui::KeyboardCode/Windows virtual key type methods. -UI_EXPORT WORD WindowsKeyCodeForKeyboardCode(KeyboardCode keycode); -UI_EXPORT KeyboardCode KeyboardCodeForWindowsKeyCode(WORD keycode); - -} // namespace ui - -#endif // UI_BASE_KEYCODES_KEYBOARD_CODE_CONVERSION_WIN_H_ diff --git a/ui/base/keycodes/keyboard_code_conversion_x.cc b/ui/base/keycodes/keyboard_code_conversion_x.cc deleted file mode 100644 index a78354f1..0000000 --- a/ui/base/keycodes/keyboard_code_conversion_x.cc +++ /dev/null @@ -1,804 +0,0 @@ -// Copyright (c) 2012 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include "ui/base/keycodes/keyboard_code_conversion_x.h" - -#define XK_3270 // for XK_3270_BackTab -#include -#include -#include -#include - -#include "base/basictypes.h" -#include "base/logging.h" -#include "base/strings/stringprintf.h" -#include "base/strings/utf_string_conversions.h" - -namespace ui { - -// Get an ui::KeyboardCode from an X keyevent -KeyboardCode KeyboardCodeFromXKeyEvent(XEvent* xev) { - // XLookupKeysym does not take into consideration the state of the lock/shift - // etc. keys. So it is necessary to use XLookupString instead. - KeySym keysym; - XLookupString(&xev->xkey, NULL, 0, &keysym, NULL); - KeyboardCode keycode = KeyboardCodeFromXKeysym(keysym); - if (keycode == VKEY_UNKNOWN) { - keysym = DefaultXKeysymFromHardwareKeycode(xev->xkey.keycode); - keycode = KeyboardCodeFromXKeysym(keysym); - } - - return keycode; -} - -KeyboardCode KeyboardCodeFromXKeysym(unsigned int keysym) { - // TODO(sad): Have |keysym| go through the X map list? - - switch (keysym) { - case XK_BackSpace: - return VKEY_BACK; - case XK_Delete: - case XK_KP_Delete: - return VKEY_DELETE; - case XK_Tab: - case XK_KP_Tab: - case XK_ISO_Left_Tab: - case XK_3270_BackTab: - return VKEY_TAB; - case XK_Linefeed: - case XK_Return: - case XK_KP_Enter: - case XK_ISO_Enter: - return VKEY_RETURN; - case XK_Clear: - case XK_KP_Begin: // NumPad 5 without Num Lock, for crosbug.com/29169. - return VKEY_CLEAR; - case XK_KP_Space: - case XK_space: - return VKEY_SPACE; - case XK_Home: - case XK_KP_Home: - return VKEY_HOME; - case XK_End: - case XK_KP_End: - return VKEY_END; - case XK_Page_Up: - case XK_KP_Page_Up: // aka XK_KP_Prior - return VKEY_PRIOR; - case XK_Page_Down: - case XK_KP_Page_Down: // aka XK_KP_Next - return VKEY_NEXT; - case XK_Left: - case XK_KP_Left: - return VKEY_LEFT; - case XK_Right: - case XK_KP_Right: - return VKEY_RIGHT; - case XK_Down: - case XK_KP_Down: - return VKEY_DOWN; - case XK_Up: - case XK_KP_Up: - return VKEY_UP; - case XK_Escape: - return VKEY_ESCAPE; - case XK_Kana_Lock: - case XK_Kana_Shift: - return VKEY_KANA; - case XK_Hangul: - return VKEY_HANGUL; - case XK_Hangul_Hanja: - return VKEY_HANJA; - case XK_Kanji: - return VKEY_KANJI; - case XK_Henkan: - return VKEY_CONVERT; - case XK_Muhenkan: - return VKEY_NONCONVERT; - case XK_Zenkaku_Hankaku: - return VKEY_DBE_DBCSCHAR; - case XK_A: - case XK_a: - return VKEY_A; - case XK_B: - case XK_b: - return VKEY_B; - case XK_C: - case XK_c: - return VKEY_C; - case XK_D: - case XK_d: - return VKEY_D; - case XK_E: - case XK_e: - return VKEY_E; - case XK_F: - case XK_f: - return VKEY_F; - case XK_G: - case XK_g: - return VKEY_G; - case XK_H: - case XK_h: - return VKEY_H; - case XK_I: - case XK_i: - return VKEY_I; - case XK_J: - case XK_j: - return VKEY_J; - case XK_K: - case XK_k: - return VKEY_K; - case XK_L: - case XK_l: - return VKEY_L; - case XK_M: - case XK_m: - return VKEY_M; - case XK_N: - case XK_n: - return VKEY_N; - case XK_O: - case XK_o: - return VKEY_O; - case XK_P: - case XK_p: - return VKEY_P; - case XK_Q: - case XK_q: - return VKEY_Q; - case XK_R: - case XK_r: - return VKEY_R; - case XK_S: - case XK_s: - return VKEY_S; - case XK_T: - case XK_t: - return VKEY_T; - case XK_U: - case XK_u: - return VKEY_U; - case XK_V: - case XK_v: - return VKEY_V; - case XK_W: - case XK_w: - return VKEY_W; - case XK_X: - case XK_x: - return VKEY_X; - case XK_Y: - case XK_y: - return VKEY_Y; - case XK_Z: - case XK_z: - return VKEY_Z; - - case XK_0: - case XK_1: - case XK_2: - case XK_3: - case XK_4: - case XK_5: - case XK_6: - case XK_7: - case XK_8: - case XK_9: - return static_cast(VKEY_0 + (keysym - XK_0)); - - case XK_parenright: - return VKEY_0; - case XK_exclam: - return VKEY_1; - case XK_at: - return VKEY_2; - case XK_numbersign: - return VKEY_3; - case XK_dollar: - return VKEY_4; - case XK_percent: - return VKEY_5; - case XK_asciicircum: - return VKEY_6; - case XK_ampersand: - return VKEY_7; - case XK_asterisk: - return VKEY_8; - case XK_parenleft: - return VKEY_9; - - case XK_KP_0: - case XK_KP_1: - case XK_KP_2: - case XK_KP_3: - case XK_KP_4: - case XK_KP_5: - case XK_KP_6: - case XK_KP_7: - case XK_KP_8: - case XK_KP_9: - return static_cast(VKEY_NUMPAD0 + (keysym - XK_KP_0)); - - case XK_multiply: - case XK_KP_Multiply: - return VKEY_MULTIPLY; - case XK_KP_Add: - return VKEY_ADD; - case XK_KP_Separator: - return VKEY_SEPARATOR; - case XK_KP_Subtract: - return VKEY_SUBTRACT; - case XK_KP_Decimal: - return VKEY_DECIMAL; - case XK_KP_Divide: - return VKEY_DIVIDE; - case XK_KP_Equal: - case XK_equal: - case XK_plus: - return VKEY_OEM_PLUS; - case XK_comma: - case XK_less: - return VKEY_OEM_COMMA; - case XK_minus: - case XK_underscore: - return VKEY_OEM_MINUS; - case XK_greater: - case XK_period: - return VKEY_OEM_PERIOD; - case XK_colon: - case XK_semicolon: - return VKEY_OEM_1; - case XK_question: - case XK_slash: - return VKEY_OEM_2; - case XK_asciitilde: - case XK_quoteleft: - return VKEY_OEM_3; - case XK_bracketleft: - case XK_braceleft: - return VKEY_OEM_4; - case XK_backslash: - case XK_bar: - return VKEY_OEM_5; - case XK_bracketright: - case XK_braceright: - return VKEY_OEM_6; - case XK_quoteright: - case XK_quotedbl: - return VKEY_OEM_7; - case XK_ISO_Level5_Shift: - return VKEY_OEM_8; - case XK_Shift_L: - case XK_Shift_R: - return VKEY_SHIFT; - case XK_Control_L: - case XK_Control_R: - return VKEY_CONTROL; - case XK_Meta_L: - case XK_Meta_R: - case XK_Alt_L: - case XK_Alt_R: - return VKEY_MENU; - case XK_ISO_Level3_Shift: - return VKEY_ALTGR; - case XK_Pause: - return VKEY_PAUSE; - case XK_Caps_Lock: - return VKEY_CAPITAL; - case XK_Num_Lock: - return VKEY_NUMLOCK; - case XK_Scroll_Lock: - return VKEY_SCROLL; - case XK_Select: - return VKEY_SELECT; - case XK_Print: - return VKEY_PRINT; - case XK_Execute: - return VKEY_EXECUTE; - case XK_Insert: - case XK_KP_Insert: - return VKEY_INSERT; - case XK_Help: - return VKEY_HELP; - case XK_Super_L: - return VKEY_LWIN; - case XK_Super_R: - return VKEY_RWIN; - case XK_Menu: - return VKEY_APPS; - case XK_F1: - case XK_F2: - case XK_F3: - case XK_F4: - case XK_F5: - case XK_F6: - case XK_F7: - case XK_F8: - case XK_F9: - case XK_F10: - case XK_F11: - case XK_F12: - case XK_F13: - case XK_F14: - case XK_F15: - case XK_F16: - case XK_F17: - case XK_F18: - case XK_F19: - case XK_F20: - case XK_F21: - case XK_F22: - case XK_F23: - case XK_F24: - return static_cast(VKEY_F1 + (keysym - XK_F1)); - case XK_KP_F1: - case XK_KP_F2: - case XK_KP_F3: - case XK_KP_F4: - return static_cast(VKEY_F1 + (keysym - XK_KP_F1)); - - case XK_guillemotleft: - case XK_guillemotright: - case XK_degree: - // In the case of canadian multilingual keyboard layout, VKEY_OEM_102 is - // assigned to ugrave key. - case XK_ugrave: - case XK_Ugrave: - case XK_brokenbar: - return VKEY_OEM_102; // international backslash key in 102 keyboard. - - // When evdev is in use, /usr/share/X11/xkb/symbols/inet maps F13-18 keys - // to the special XF86XK symbols to support Microsoft Ergonomic keyboards: - // https://bugs.freedesktop.org/show_bug.cgi?id=5783 - // In Chrome, we map these X key symbols back to F13-18 since we don't have - // VKEYs for these XF86XK symbols. - case XF86XK_Tools: - return VKEY_F13; - case XF86XK_Launch5: - return VKEY_F14; - case XF86XK_Launch6: - return VKEY_F15; - case XF86XK_Launch7: - return VKEY_F16; - case XF86XK_Launch8: - return VKEY_F17; - case XF86XK_Launch9: - return VKEY_F18; - -#if defined(TOOLKIT_GTK) - case XF86XK_Refresh: - case XF86XK_History: - case XF86XK_OpenURL: - case XF86XK_AddFavorite: - case XF86XK_Go: - case XF86XK_ZoomIn: - case XF86XK_ZoomOut: - // ui::AcceleratorGtk tries to convert the XF86XK_ keysyms on Chrome - // startup. It's safe to return VKEY_UNKNOWN here since ui::AcceleratorGtk - // also checks a Gdk keysym. http://crbug.com/109843 - return VKEY_UNKNOWN; -#endif - - // For supporting multimedia buttons on a USB keyboard. - case XF86XK_Back: - return VKEY_BROWSER_BACK; - case XF86XK_Forward: - return VKEY_BROWSER_FORWARD; - case XF86XK_Reload: - return VKEY_BROWSER_REFRESH; - case XF86XK_Stop: - return VKEY_BROWSER_STOP; - case XF86XK_Search: - return VKEY_BROWSER_SEARCH; - case XF86XK_Favorites: - return VKEY_BROWSER_FAVORITES; - case XF86XK_HomePage: - return VKEY_BROWSER_HOME; - case XF86XK_AudioMute: - return VKEY_VOLUME_MUTE; - case XF86XK_AudioLowerVolume: - return VKEY_VOLUME_DOWN; - case XF86XK_AudioRaiseVolume: - return VKEY_VOLUME_UP; - case XF86XK_AudioNext: - return VKEY_MEDIA_NEXT_TRACK; - case XF86XK_AudioPrev: - return VKEY_MEDIA_PREV_TRACK; - case XF86XK_AudioStop: - return VKEY_MEDIA_STOP; - case XF86XK_AudioPlay: - return VKEY_MEDIA_PLAY_PAUSE; - case XF86XK_Mail: - return VKEY_MEDIA_LAUNCH_MAIL; - case XF86XK_LaunchA: // F3 on an Apple keyboard. - return VKEY_MEDIA_LAUNCH_APP1; - case XF86XK_LaunchB: // F4 on an Apple keyboard. - case XF86XK_Calculator: - return VKEY_MEDIA_LAUNCH_APP2; - case XF86XK_WLAN: - return VKEY_WLAN; - case XF86XK_PowerOff: - return VKEY_POWER; - case XF86XK_MonBrightnessDown: - return VKEY_BRIGHTNESS_DOWN; - case XF86XK_MonBrightnessUp: - return VKEY_BRIGHTNESS_UP; - case XF86XK_KbdBrightnessDown: - return VKEY_KBD_BRIGHTNESS_DOWN; - case XF86XK_KbdBrightnessUp: - return VKEY_KBD_BRIGHTNESS_UP; - - // TODO(sad): some keycodes are still missing. - } - DLOG(WARNING) << "Unknown keysym: " << base::StringPrintf("0x%x", keysym); - return VKEY_UNKNOWN; -} - -uint16 GetCharacterFromXEvent(XEvent* xev) { - char buf[6]; - int bytes_written = XLookupString(&xev->xkey, buf, 6, NULL, NULL); - DCHECK_LE(bytes_written, 6); - - string16 result; - return (bytes_written > 0 && UTF8ToUTF16(buf, bytes_written, &result) && - result.length() == 1) ? result[0] : 0; -} - -unsigned int DefaultXKeysymFromHardwareKeycode(unsigned int hardware_code) { - static const unsigned int kHardwareKeycodeMap[] = { - 0, // 0x00: - 0, // 0x01: - 0, // 0x02: - 0, // 0x03: - 0, // 0x04: - 0, // 0x05: - 0, // 0x06: - 0, // 0x07: - 0, // 0x08: - XK_Escape, // 0x09: XK_Escape - XK_1, // 0x0A: XK_1 - XK_2, // 0x0B: XK_2 - XK_3, // 0x0C: XK_3 - XK_4, // 0x0D: XK_4 - XK_5, // 0x0E: XK_5 - XK_6, // 0x0F: XK_6 - XK_7, // 0x10: XK_7 - XK_8, // 0x11: XK_8 - XK_9, // 0x12: XK_9 - XK_0, // 0x13: XK_0 - XK_minus, // 0x14: XK_minus - XK_equal, // 0x15: XK_equal - XK_BackSpace, // 0x16: XK_BackSpace - XK_Tab, // 0x17: XK_Tab - XK_q, // 0x18: XK_q - XK_w, // 0x19: XK_w - XK_e, // 0x1A: XK_e - XK_r, // 0x1B: XK_r - XK_t, // 0x1C: XK_t - XK_y, // 0x1D: XK_y - XK_u, // 0x1E: XK_u - XK_i, // 0x1F: XK_i - XK_o, // 0x20: XK_o - XK_p, // 0x21: XK_p - XK_bracketleft, // 0x22: XK_bracketleft - XK_bracketright, // 0x23: XK_bracketright - XK_Return, // 0x24: XK_Return - XK_Control_L, // 0x25: XK_Control_L - XK_a, // 0x26: XK_a - XK_s, // 0x27: XK_s - XK_d, // 0x28: XK_d - XK_f, // 0x29: XK_f - XK_g, // 0x2A: XK_g - XK_h, // 0x2B: XK_h - XK_j, // 0x2C: XK_j - XK_k, // 0x2D: XK_k - XK_l, // 0x2E: XK_l - XK_semicolon, // 0x2F: XK_semicolon - XK_apostrophe, // 0x30: XK_apostrophe - XK_grave, // 0x31: XK_grave - XK_Shift_L, // 0x32: XK_Shift_L - XK_backslash, // 0x33: XK_backslash - XK_z, // 0x34: XK_z - XK_x, // 0x35: XK_x - XK_c, // 0x36: XK_c - XK_v, // 0x37: XK_v - XK_b, // 0x38: XK_b - XK_n, // 0x39: XK_n - XK_m, // 0x3A: XK_m - XK_comma, // 0x3B: XK_comma - XK_period, // 0x3C: XK_period - XK_slash, // 0x3D: XK_slash - XK_Shift_R, // 0x3E: XK_Shift_R - 0, // 0x3F: XK_KP_Multiply - XK_Alt_L, // 0x40: XK_Alt_L - XK_space, // 0x41: XK_space - XK_Caps_Lock, // 0x42: XK_Caps_Lock - XK_F1, // 0x43: XK_F1 - XK_F2, // 0x44: XK_F2 - XK_F3, // 0x45: XK_F3 - XK_F4, // 0x46: XK_F4 - XK_F5, // 0x47: XK_F5 - XK_F6, // 0x48: XK_F6 - XK_F7, // 0x49: XK_F7 - XK_F8, // 0x4A: XK_F8 - XK_F9, // 0x4B: XK_F9 - XK_F10, // 0x4C: XK_F10 - XK_Num_Lock, // 0x4D: XK_Num_Lock - XK_Scroll_Lock, // 0x4E: XK_Scroll_Lock - }; - - return hardware_code < arraysize(kHardwareKeycodeMap) ? - kHardwareKeycodeMap[hardware_code] : 0; -} - -// TODO(jcampan): this method might be incomplete. -int XKeysymForWindowsKeyCode(KeyboardCode keycode, bool shift) { - switch (keycode) { - case VKEY_NUMPAD0: - return XK_KP_0; - case VKEY_NUMPAD1: - return XK_KP_1; - case VKEY_NUMPAD2: - return XK_KP_2; - case VKEY_NUMPAD3: - return XK_KP_3; - case VKEY_NUMPAD4: - return XK_KP_4; - case VKEY_NUMPAD5: - return XK_KP_5; - case VKEY_NUMPAD6: - return XK_KP_6; - case VKEY_NUMPAD7: - return XK_KP_7; - case VKEY_NUMPAD8: - return XK_KP_8; - case VKEY_NUMPAD9: - return XK_KP_9; - case VKEY_MULTIPLY: - return XK_KP_Multiply; - case VKEY_ADD: - return XK_KP_Add; - case VKEY_SUBTRACT: - return XK_KP_Subtract; - case VKEY_DECIMAL: - return XK_KP_Decimal; - case VKEY_DIVIDE: - return XK_KP_Divide; - - case VKEY_BACK: - return XK_BackSpace; - case VKEY_TAB: - return shift ? XK_ISO_Left_Tab : XK_Tab; - case VKEY_CLEAR: - return XK_Clear; - case VKEY_RETURN: - return XK_Return; - case VKEY_SHIFT: - return XK_Shift_L; - case VKEY_CONTROL: - return XK_Control_L; - case VKEY_MENU: - return XK_Alt_L; - case VKEY_APPS: - return XK_Menu; - case VKEY_ALTGR: - return XK_ISO_Level3_Shift; - - case VKEY_PAUSE: - return XK_Pause; - case VKEY_CAPITAL: - return XK_Caps_Lock; - case VKEY_KANA: - return XK_Kana_Lock; - case VKEY_HANJA: - return XK_Hangul_Hanja; - case VKEY_CONVERT: - return XK_Henkan; - case VKEY_NONCONVERT: - return XK_Muhenkan; - case VKEY_DBE_SBCSCHAR: - return XK_Zenkaku_Hankaku; - case VKEY_DBE_DBCSCHAR: - return XK_Zenkaku_Hankaku; - case VKEY_ESCAPE: - return XK_Escape; - case VKEY_SPACE: - return XK_space; - case VKEY_PRIOR: - return XK_Page_Up; - case VKEY_NEXT: - return XK_Page_Down; - case VKEY_END: - return XK_End; - case VKEY_HOME: - return XK_Home; - case VKEY_LEFT: - return XK_Left; - case VKEY_UP: - return XK_Up; - case VKEY_RIGHT: - return XK_Right; - case VKEY_DOWN: - return XK_Down; - case VKEY_SELECT: - return XK_Select; - case VKEY_PRINT: - return XK_Print; - case VKEY_EXECUTE: - return XK_Execute; - case VKEY_INSERT: - return XK_Insert; - case VKEY_DELETE: - return XK_Delete; - case VKEY_HELP: - return XK_Help; - case VKEY_0: - return shift ? XK_parenright : XK_0; - case VKEY_1: - return shift ? XK_exclam : XK_1; - case VKEY_2: - return shift ? XK_at : XK_2; - case VKEY_3: - return shift ? XK_numbersign : XK_3; - case VKEY_4: - return shift ? XK_dollar : XK_4; - case VKEY_5: - return shift ? XK_percent : XK_5; - case VKEY_6: - return shift ? XK_asciicircum : XK_6; - case VKEY_7: - return shift ? XK_ampersand : XK_7; - case VKEY_8: - return shift ? XK_asterisk : XK_8; - case VKEY_9: - return shift ? XK_parenleft : XK_9; - - case VKEY_A: - case VKEY_B: - case VKEY_C: - case VKEY_D: - case VKEY_E: - case VKEY_F: - case VKEY_G: - case VKEY_H: - case VKEY_I: - case VKEY_J: - case VKEY_K: - case VKEY_L: - case VKEY_M: - case VKEY_N: - case VKEY_O: - case VKEY_P: - case VKEY_Q: - case VKEY_R: - case VKEY_S: - case VKEY_T: - case VKEY_U: - case VKEY_V: - case VKEY_W: - case VKEY_X: - case VKEY_Y: - case VKEY_Z: - return (shift ? XK_A : XK_a) + (keycode - VKEY_A); - - case VKEY_LWIN: - return XK_Super_L; - case VKEY_RWIN: - return XK_Super_R; - - case VKEY_NUMLOCK: - return XK_Num_Lock; - - case VKEY_SCROLL: - return XK_Scroll_Lock; - - case VKEY_OEM_1: - return shift ? XK_colon : XK_semicolon; - case VKEY_OEM_PLUS: - return shift ? XK_plus : XK_equal; - case VKEY_OEM_COMMA: - return shift ? XK_less : XK_comma; - case VKEY_OEM_MINUS: - return shift ? XK_underscore : XK_minus; - case VKEY_OEM_PERIOD: - return shift ? XK_greater : XK_period; - case VKEY_OEM_2: - return shift ? XK_question : XK_slash; - case VKEY_OEM_3: - return shift ? XK_asciitilde : XK_quoteleft; - case VKEY_OEM_4: - return shift ? XK_braceleft : XK_bracketleft; - case VKEY_OEM_5: - return shift ? XK_bar : XK_backslash; - case VKEY_OEM_6: - return shift ? XK_braceright : XK_bracketright; - case VKEY_OEM_7: - return shift ? XK_quotedbl : XK_quoteright; - case VKEY_OEM_8: - return XK_ISO_Level5_Shift; - case VKEY_OEM_102: - return shift ? XK_guillemotleft : XK_guillemotright; - - case VKEY_F1: - case VKEY_F2: - case VKEY_F3: - case VKEY_F4: - case VKEY_F5: - case VKEY_F6: - case VKEY_F7: - case VKEY_F8: - case VKEY_F9: - case VKEY_F10: - case VKEY_F11: - case VKEY_F12: - case VKEY_F13: - case VKEY_F14: - case VKEY_F15: - case VKEY_F16: - case VKEY_F17: - case VKEY_F18: - case VKEY_F19: - case VKEY_F20: - case VKEY_F21: - case VKEY_F22: - case VKEY_F23: - case VKEY_F24: - return XK_F1 + (keycode - VKEY_F1); - - case VKEY_BROWSER_BACK: - return XF86XK_Back; - case VKEY_BROWSER_FORWARD: - return XF86XK_Forward; - case VKEY_BROWSER_REFRESH: - return XF86XK_Reload; - case VKEY_BROWSER_STOP: - return XF86XK_Stop; - case VKEY_BROWSER_SEARCH: - return XF86XK_Search; - case VKEY_BROWSER_FAVORITES: - return XF86XK_Favorites; - case VKEY_BROWSER_HOME: - return XF86XK_HomePage; - case VKEY_VOLUME_MUTE: - return XF86XK_AudioMute; - case VKEY_VOLUME_DOWN: - return XF86XK_AudioLowerVolume; - case VKEY_VOLUME_UP: - return XF86XK_AudioRaiseVolume; - case VKEY_MEDIA_NEXT_TRACK: - return XF86XK_AudioNext; - case VKEY_MEDIA_PREV_TRACK: - return XF86XK_AudioPrev; - case VKEY_MEDIA_STOP: - return XF86XK_AudioStop; - case VKEY_MEDIA_PLAY_PAUSE: - return XF86XK_AudioPlay; - case VKEY_MEDIA_LAUNCH_MAIL: - return XF86XK_Mail; - case VKEY_MEDIA_LAUNCH_APP1: - return XF86XK_LaunchA; - case VKEY_MEDIA_LAUNCH_APP2: - return XF86XK_LaunchB; - case VKEY_WLAN: - return XF86XK_WLAN; - case VKEY_POWER: - return XF86XK_PowerOff; - case VKEY_BRIGHTNESS_DOWN: - return XF86XK_MonBrightnessDown; - case VKEY_BRIGHTNESS_UP: - return XF86XK_MonBrightnessUp; - case VKEY_KBD_BRIGHTNESS_DOWN: - return XF86XK_KbdBrightnessDown; - case VKEY_KBD_BRIGHTNESS_UP: - return XF86XK_KbdBrightnessUp; - - default: - LOG(WARNING) << "Unknown keycode:" << keycode; - return 0; - } -} - -} // namespace ui diff --git a/ui/base/keycodes/keyboard_code_conversion_x.h b/ui/base/keycodes/keyboard_code_conversion_x.h deleted file mode 100644 index f394de1..0000000 --- a/ui/base/keycodes/keyboard_code_conversion_x.h +++ /dev/null @@ -1,31 +0,0 @@ -// Copyright (c) 2011 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#ifndef UI_BASE_KEYCODES_KEYBOARD_CODE_CONVERSION_X_H_ -#define UI_BASE_KEYCODES_KEYBOARD_CODE_CONVERSION_X_H_ - -#include "base/basictypes.h" -#include "ui/base/keycodes/keyboard_codes_posix.h" -#include "ui/base/ui_export.h" - -typedef union _XEvent XEvent; - -namespace ui { - -UI_EXPORT KeyboardCode KeyboardCodeFromXKeyEvent(XEvent* xev); - -UI_EXPORT KeyboardCode KeyboardCodeFromXKeysym(unsigned int keysym); - -// Returns a character on a standard US PC keyboard from an XEvent. -UI_EXPORT uint16 GetCharacterFromXEvent(XEvent* xev); - -// Converts a KeyboardCode into an X KeySym. -UI_EXPORT int XKeysymForWindowsKeyCode(KeyboardCode keycode, bool shift); - -// Converts an X keycode into an X KeySym. -unsigned int DefaultXKeysymFromHardwareKeycode(unsigned int keycode); - -} // namespace ui - -#endif // UI_BASE_KEYCODES_KEYBOARD_CODE_CONVERSION_X_H_ diff --git a/ui/base/keycodes/keyboard_codes.h b/ui/base/keycodes/keyboard_codes.h deleted file mode 100644 index 19d6e38..0000000 --- a/ui/base/keycodes/keyboard_codes.h +++ /dev/null @@ -1,16 +0,0 @@ -// Copyright (c) 2011 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#ifndef UI_BASE_KEYCODES_KEYBOARD_CODES_H_ -#define UI_BASE_KEYCODES_KEYBOARD_CODES_H_ - -#include "build/build_config.h" - -#if defined(OS_WIN) -#include "ui/base/keycodes/keyboard_codes_win.h" -#elif defined(OS_POSIX) -#include "ui/base/keycodes/keyboard_codes_posix.h" -#endif - -#endif // UI_BASE_KEYCODES_KEYBOARD_CODES_H_ diff --git a/ui/base/keycodes/keyboard_codes_posix.h b/ui/base/keycodes/keyboard_codes_posix.h deleted file mode 100644 index 5879c99..0000000 --- a/ui/base/keycodes/keyboard_codes_posix.h +++ /dev/null @@ -1,228 +0,0 @@ -// Copyright (c) 2012 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -/* - * Copyright (C) 2006 Michael Emmel mike.emmel@gmail.com. All rights reserved. - * Copyright (C) 2008, 2009 Google Inc. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR - * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, LOSS OF USE, DATA, OR - * PROFITS, OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY - * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#ifndef UI_BASE_KEYCODES_KEYBOARD_CODES_POSIX_H_ -#define UI_BASE_KEYCODES_KEYBOARD_CODES_POSIX_H_ - -namespace ui { - -enum KeyboardCode { - VKEY_BACK = 0x08, - VKEY_TAB = 0x09, - VKEY_BACKTAB = 0x0A, - VKEY_CLEAR = 0x0C, - VKEY_RETURN = 0x0D, - VKEY_SHIFT = 0x10, - VKEY_CONTROL = 0x11, - VKEY_MENU = 0x12, - VKEY_PAUSE = 0x13, - VKEY_CAPITAL = 0x14, - VKEY_KANA = 0x15, - VKEY_HANGUL = 0x15, - VKEY_JUNJA = 0x17, - VKEY_FINAL = 0x18, - VKEY_HANJA = 0x19, - VKEY_KANJI = 0x19, - VKEY_ESCAPE = 0x1B, - VKEY_CONVERT = 0x1C, - VKEY_NONCONVERT = 0x1D, - VKEY_ACCEPT = 0x1E, - VKEY_MODECHANGE = 0x1F, - VKEY_SPACE = 0x20, - VKEY_PRIOR = 0x21, - VKEY_NEXT = 0x22, - VKEY_END = 0x23, - VKEY_HOME = 0x24, - VKEY_LEFT = 0x25, - VKEY_UP = 0x26, - VKEY_RIGHT = 0x27, - VKEY_DOWN = 0x28, - VKEY_SELECT = 0x29, - VKEY_PRINT = 0x2A, - VKEY_EXECUTE = 0x2B, - VKEY_SNAPSHOT = 0x2C, - VKEY_INSERT = 0x2D, - VKEY_DELETE = 0x2E, - VKEY_HELP = 0x2F, - VKEY_0 = 0x30, - VKEY_1 = 0x31, - VKEY_2 = 0x32, - VKEY_3 = 0x33, - VKEY_4 = 0x34, - VKEY_5 = 0x35, - VKEY_6 = 0x36, - VKEY_7 = 0x37, - VKEY_8 = 0x38, - VKEY_9 = 0x39, - VKEY_A = 0x41, - VKEY_B = 0x42, - VKEY_C = 0x43, - VKEY_D = 0x44, - VKEY_E = 0x45, - VKEY_F = 0x46, - VKEY_G = 0x47, - VKEY_H = 0x48, - VKEY_I = 0x49, - VKEY_J = 0x4A, - VKEY_K = 0x4B, - VKEY_L = 0x4C, - VKEY_M = 0x4D, - VKEY_N = 0x4E, - VKEY_O = 0x4F, - VKEY_P = 0x50, - VKEY_Q = 0x51, - VKEY_R = 0x52, - VKEY_S = 0x53, - VKEY_T = 0x54, - VKEY_U = 0x55, - VKEY_V = 0x56, - VKEY_W = 0x57, - VKEY_X = 0x58, - VKEY_Y = 0x59, - VKEY_Z = 0x5A, - VKEY_LWIN = 0x5B, - VKEY_COMMAND = VKEY_LWIN, // Provide the Mac name for convenience. - VKEY_RWIN = 0x5C, - VKEY_APPS = 0x5D, - VKEY_SLEEP = 0x5F, - VKEY_NUMPAD0 = 0x60, - VKEY_NUMPAD1 = 0x61, - VKEY_NUMPAD2 = 0x62, - VKEY_NUMPAD3 = 0x63, - VKEY_NUMPAD4 = 0x64, - VKEY_NUMPAD5 = 0x65, - VKEY_NUMPAD6 = 0x66, - VKEY_NUMPAD7 = 0x67, - VKEY_NUMPAD8 = 0x68, - VKEY_NUMPAD9 = 0x69, - VKEY_MULTIPLY = 0x6A, - VKEY_ADD = 0x6B, - VKEY_SEPARATOR = 0x6C, - VKEY_SUBTRACT = 0x6D, - VKEY_DECIMAL = 0x6E, - VKEY_DIVIDE = 0x6F, - VKEY_F1 = 0x70, - VKEY_F2 = 0x71, - VKEY_F3 = 0x72, - VKEY_F4 = 0x73, - VKEY_F5 = 0x74, - VKEY_F6 = 0x75, - VKEY_F7 = 0x76, - VKEY_F8 = 0x77, - VKEY_F9 = 0x78, - VKEY_F10 = 0x79, - VKEY_F11 = 0x7A, - VKEY_F12 = 0x7B, - VKEY_F13 = 0x7C, - VKEY_F14 = 0x7D, - VKEY_F15 = 0x7E, - VKEY_F16 = 0x7F, - VKEY_F17 = 0x80, - VKEY_F18 = 0x81, - VKEY_F19 = 0x82, - VKEY_F20 = 0x83, - VKEY_F21 = 0x84, - VKEY_F22 = 0x85, - VKEY_F23 = 0x86, - VKEY_F24 = 0x87, - VKEY_NUMLOCK = 0x90, - VKEY_SCROLL = 0x91, - VKEY_LSHIFT = 0xA0, - VKEY_RSHIFT = 0xA1, - VKEY_LCONTROL = 0xA2, - VKEY_RCONTROL = 0xA3, - VKEY_LMENU = 0xA4, - VKEY_RMENU = 0xA5, - VKEY_BROWSER_BACK = 0xA6, - VKEY_BROWSER_FORWARD = 0xA7, - VKEY_BROWSER_REFRESH = 0xA8, - VKEY_BROWSER_STOP = 0xA9, - VKEY_BROWSER_SEARCH = 0xAA, - VKEY_BROWSER_FAVORITES = 0xAB, - VKEY_BROWSER_HOME = 0xAC, - VKEY_VOLUME_MUTE = 0xAD, - VKEY_VOLUME_DOWN = 0xAE, - VKEY_VOLUME_UP = 0xAF, - VKEY_MEDIA_NEXT_TRACK = 0xB0, - VKEY_MEDIA_PREV_TRACK = 0xB1, - VKEY_MEDIA_STOP = 0xB2, - VKEY_MEDIA_PLAY_PAUSE = 0xB3, - VKEY_MEDIA_LAUNCH_MAIL = 0xB4, - VKEY_MEDIA_LAUNCH_MEDIA_SELECT = 0xB5, - VKEY_MEDIA_LAUNCH_APP1 = 0xB6, - VKEY_MEDIA_LAUNCH_APP2 = 0xB7, - VKEY_OEM_1 = 0xBA, - VKEY_OEM_PLUS = 0xBB, - VKEY_OEM_COMMA = 0xBC, - VKEY_OEM_MINUS = 0xBD, - VKEY_OEM_PERIOD = 0xBE, - VKEY_OEM_2 = 0xBF, - VKEY_OEM_3 = 0xC0, - VKEY_OEM_4 = 0xDB, - VKEY_OEM_5 = 0xDC, - VKEY_OEM_6 = 0xDD, - VKEY_OEM_7 = 0xDE, - VKEY_OEM_8 = 0xDF, - VKEY_OEM_102 = 0xE2, - VKEY_OEM_103 = 0xE3, // GTV KEYCODE_MEDIA_REWIND - VKEY_OEM_104 = 0xE4, // GTV KEYCODE_MEDIA_FAST_FORWARD - VKEY_PROCESSKEY = 0xE5, - VKEY_PACKET = 0xE7, - VKEY_DBE_SBCSCHAR = 0xF3, - VKEY_DBE_DBCSCHAR = 0xF4, - VKEY_ATTN = 0xF6, - VKEY_CRSEL = 0xF7, - VKEY_EXSEL = 0xF8, - VKEY_EREOF = 0xF9, - VKEY_PLAY = 0xFA, - VKEY_ZOOM = 0xFB, - VKEY_NONAME = 0xFC, - VKEY_PA1 = 0xFD, - VKEY_OEM_CLEAR = 0xFE, - VKEY_UNKNOWN = 0, - - // POSIX specific VKEYs. Note that as of Windows SDK 7.1, 0x97-9F, 0xD8-DA, - // and 0xE8 are unassigned. - VKEY_WLAN = 0x97, - VKEY_POWER = 0x98, - VKEY_BRIGHTNESS_DOWN = 0xD8, - VKEY_BRIGHTNESS_UP = 0xD9, - VKEY_KBD_BRIGHTNESS_DOWN = 0xDA, - VKEY_KBD_BRIGHTNESS_UP = 0xE8, - - // Windows does not have a specific key code for AltGr. We use the unused 0xE1 - // (VK_OEM_AX) code to represent AltGr, matching the behaviour of Firefox on - // Linux. - VKEY_ALTGR = 0xE1, -}; - -} // namespace ui - -#endif // UI_BASE_KEYCODES_KEYBOARD_CODES_POSIX_H_ diff --git a/ui/base/keycodes/keyboard_codes_win.h b/ui/base/keycodes/keyboard_codes_win.h deleted file mode 100644 index fb8ac20..0000000 --- a/ui/base/keycodes/keyboard_codes_win.h +++ /dev/null @@ -1,192 +0,0 @@ -// Copyright (c) 2012 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#ifndef UI_BASE_KEYCODES_KEYBOARD_CODES_WIN_H_ -#define UI_BASE_KEYCODES_KEYBOARD_CODES_WIN_H_ - -#include -#include - -namespace ui { - -enum KeyboardCode { - VKEY_BACK = VK_BACK, - VKEY_TAB = VK_TAB, - VKEY_CLEAR = VK_CLEAR, - VKEY_RETURN = VK_RETURN, - VKEY_SHIFT = VK_SHIFT, - VKEY_CONTROL = VK_CONTROL, - VKEY_MENU = VK_MENU, // a.k.a. ALT - VKEY_PAUSE = VK_PAUSE, - VKEY_CAPITAL = VK_CAPITAL, - VKEY_KANA = VK_KANA, - VKEY_HANGUL = VK_HANGUL, - VKEY_JUNJA = VK_JUNJA, - VKEY_FINAL = VK_FINAL, - VKEY_HANJA = VK_HANJA, - VKEY_KANJI = VK_KANJI, - VKEY_ESCAPE = VK_ESCAPE, - VKEY_CONVERT = VK_CONVERT, - VKEY_NONCONVERT = VK_NONCONVERT, - VKEY_ACCEPT = VK_ACCEPT, - VKEY_MODECHANGE = VK_MODECHANGE, - VKEY_SPACE = VK_SPACE, - VKEY_PRIOR = VK_PRIOR, - VKEY_NEXT = VK_NEXT, - VKEY_END = VK_END, - VKEY_HOME = VK_HOME, - VKEY_LEFT = VK_LEFT, - VKEY_UP = VK_UP, - VKEY_RIGHT = VK_RIGHT, - VKEY_DOWN = VK_DOWN, - VKEY_SELECT = VK_SELECT, - VKEY_PRINT = VK_PRINT, - VKEY_EXECUTE = VK_EXECUTE, - VKEY_SNAPSHOT = VK_SNAPSHOT, - VKEY_INSERT = VK_INSERT, - VKEY_DELETE = VK_DELETE, - VKEY_HELP = VK_HELP, - VKEY_0 = '0', - VKEY_1 = '1', - VKEY_2 = '2', - VKEY_3 = '3', - VKEY_4 = '4', - VKEY_5 = '5', - VKEY_6 = '6', - VKEY_7 = '7', - VKEY_8 = '8', - VKEY_9 = '9', - VKEY_A = 'A', - VKEY_B = 'B', - VKEY_C = 'C', - VKEY_D = 'D', - VKEY_E = 'E', - VKEY_F = 'F', - VKEY_G = 'G', - VKEY_H = 'H', - VKEY_I = 'I', - VKEY_J = 'J', - VKEY_K = 'K', - VKEY_L = 'L', - VKEY_M = 'M', - VKEY_N = 'N', - VKEY_O = 'O', - VKEY_P = 'P', - VKEY_Q = 'Q', - VKEY_R = 'R', - VKEY_S = 'S', - VKEY_T = 'T', - VKEY_U = 'U', - VKEY_V = 'V', - VKEY_W = 'W', - VKEY_X = 'X', - VKEY_Y = 'Y', - VKEY_Z = 'Z', - VKEY_LWIN = VK_LWIN, - VKEY_COMMAND = VKEY_LWIN, // Provide the Mac name for convenience. - VKEY_RWIN = VK_RWIN, - VKEY_APPS = VK_APPS, - VKEY_SLEEP = VK_SLEEP, - VKEY_NUMPAD0 = VK_NUMPAD0, - VKEY_NUMPAD1 = VK_NUMPAD1, - VKEY_NUMPAD2 = VK_NUMPAD2, - VKEY_NUMPAD3 = VK_NUMPAD3, - VKEY_NUMPAD4 = VK_NUMPAD4, - VKEY_NUMPAD5 = VK_NUMPAD5, - VKEY_NUMPAD6 = VK_NUMPAD6, - VKEY_NUMPAD7 = VK_NUMPAD7, - VKEY_NUMPAD8 = VK_NUMPAD8, - VKEY_NUMPAD9 = VK_NUMPAD9, - VKEY_MULTIPLY = VK_MULTIPLY, - VKEY_ADD = VK_ADD, - VKEY_SEPARATOR = VK_SEPARATOR, - VKEY_SUBTRACT = VK_SUBTRACT, - VKEY_DECIMAL = VK_DECIMAL, - VKEY_DIVIDE = VK_DIVIDE, - VKEY_F1 = VK_F1, - VKEY_F2 = VK_F2, - VKEY_F3 = VK_F3, - VKEY_F4 = VK_F4, - VKEY_F5 = VK_F5, - VKEY_F6 = VK_F6, - VKEY_F7 = VK_F7, - VKEY_F8 = VK_F8, - VKEY_F9 = VK_F9, - VKEY_F10 = VK_F10, - VKEY_F11 = VK_F11, - VKEY_F12 = VK_F12, - VKEY_F13 = VK_F13, - VKEY_F14 = VK_F14, - VKEY_F15 = VK_F15, - VKEY_F16 = VK_F16, - VKEY_F17 = VK_F17, - VKEY_F18 = VK_F18, - VKEY_F19 = VK_F19, - VKEY_F20 = VK_F20, - VKEY_F21 = VK_F21, - VKEY_F22 = VK_F22, - VKEY_F23 = VK_F23, - VKEY_F24 = VK_F24, - VKEY_NUMLOCK = VK_NUMLOCK, - VKEY_SCROLL = VK_SCROLL, - VKEY_LSHIFT = VK_LSHIFT, - VKEY_RSHIFT = VK_RSHIFT, - VKEY_LCONTROL = VK_LCONTROL, - VKEY_RCONTROL = VK_RCONTROL, - VKEY_LMENU = VK_LMENU, - VKEY_RMENU = VK_RMENU, - VKEY_BROWSER_BACK = VK_BROWSER_BACK, - VKEY_BROWSER_FORWARD = VK_BROWSER_FORWARD, - VKEY_BROWSER_REFRESH = VK_BROWSER_REFRESH, - VKEY_BROWSER_STOP = VK_BROWSER_STOP, - VKEY_BROWSER_SEARCH = VK_BROWSER_SEARCH, - VKEY_BROWSER_FAVORITES = VK_BROWSER_FAVORITES, - VKEY_BROWSER_HOME = VK_BROWSER_HOME, - VKEY_VOLUME_MUTE = VK_VOLUME_MUTE, - VKEY_VOLUME_DOWN = VK_VOLUME_DOWN, - VKEY_VOLUME_UP = VK_VOLUME_UP, - VKEY_MEDIA_NEXT_TRACK = VK_MEDIA_NEXT_TRACK, - VKEY_MEDIA_PREV_TRACK = VK_MEDIA_PREV_TRACK, - VKEY_MEDIA_STOP = VK_MEDIA_STOP, - VKEY_MEDIA_PLAY_PAUSE = VK_MEDIA_PLAY_PAUSE, - VKEY_MEDIA_LAUNCH_MAIL = 0xB4, - VKEY_MEDIA_LAUNCH_MEDIA_SELECT = 0xB5, - VKEY_MEDIA_LAUNCH_APP1 = 0xB6, - VKEY_MEDIA_LAUNCH_APP2 = 0xB7, - VKEY_OEM_1 = VK_OEM_1, - VKEY_OEM_PLUS = VK_OEM_PLUS, - VKEY_OEM_COMMA = VK_OEM_COMMA, - VKEY_OEM_MINUS = VK_OEM_MINUS, - VKEY_OEM_PERIOD = VK_OEM_PERIOD, - VKEY_OEM_2 = VK_OEM_2, - VKEY_OEM_3 = VK_OEM_3, - VKEY_OEM_4 = VK_OEM_4, - VKEY_OEM_5 = VK_OEM_5, - VKEY_OEM_6 = VK_OEM_6, - VKEY_OEM_7 = VK_OEM_7, - VKEY_OEM_8 = VK_OEM_8, - VKEY_OEM_102 = VK_OEM_102, - VKEY_PROCESSKEY = VK_PROCESSKEY, - VKEY_PACKET = VK_PACKET, - VKEY_DBE_SBCSCHAR = VK_DBE_SBCSCHAR, - VKEY_DBE_DBCSCHAR = VK_DBE_DBCSCHAR, - VKEY_ATTN = VK_ATTN, - VKEY_CRSEL = VK_CRSEL, - VKEY_EXSEL = VK_EXSEL, - VKEY_EREOF = VK_EREOF, - VKEY_PLAY = VK_PLAY, - VKEY_ZOOM = VK_ZOOM, - VKEY_NONAME = VK_NONAME, - VKEY_PA1 = VK_PA1, - VKEY_OEM_CLEAR = VK_OEM_CLEAR, - VKEY_UNKNOWN = 0, - - // Windows does not have a specific key code for AltGr. We use the unused - // VK_OEM_AX to represent AltGr, matching the behaviour of Firefox on Linux. - VKEY_ALTGR = VK_OEM_AX, -}; - -} // namespace ui - -#endif // UI_BASE_KEYCODES_KEYBOARD_CODES_WIN_H_ diff --git a/ui/base/ozone/evdev/key_event_converter_ozone.cc b/ui/base/ozone/evdev/key_event_converter_ozone.cc index 8766164..10da4a1 100644 --- a/ui/base/ozone/evdev/key_event_converter_ozone.cc +++ b/ui/base/ozone/evdev/key_event_converter_ozone.cc @@ -7,7 +7,7 @@ #include #include "ui/base/events/event.h" -#include "ui/base/keycodes/keyboard_codes.h" +#include "ui/events/keycodes/keyboard_codes.h" namespace { diff --git a/ui/base/test/ui_controls.h b/ui/base/test/ui_controls.h index 827c61b..4960d13 100644 --- a/ui/base/test/ui_controls.h +++ b/ui/base/test/ui_controls.h @@ -7,7 +7,7 @@ #include "base/callback_forward.h" #include "build/build_config.h" -#include "ui/base/keycodes/keyboard_codes.h" +#include "ui/events/keycodes/keyboard_codes.h" #include "ui/gfx/native_widget_types.h" namespace ui_controls { diff --git a/ui/base/test/ui_controls_aura.h b/ui/base/test/ui_controls_aura.h index d379136..2224944 100644 --- a/ui/base/test/ui_controls_aura.h +++ b/ui/base/test/ui_controls_aura.h @@ -6,8 +6,8 @@ #define UI_TEST_BASE_UI_CONTROLS_AURA_H_ #include "base/callback_forward.h" -#include "ui/base/keycodes/keyboard_codes.h" #include "ui/base/test/ui_controls.h" +#include "ui/events/keycodes/keyboard_codes.h" #include "ui/gfx/native_widget_types.h" namespace ui_controls { diff --git a/ui/base/test/ui_controls_internal_win.cc b/ui/base/test/ui_controls_internal_win.cc index e5110da1..9e8c17c 100644 --- a/ui/base/test/ui_controls_internal_win.cc +++ b/ui/base/test/ui_controls_internal_win.cc @@ -9,8 +9,8 @@ #include "base/logging.h" #include "base/memory/ref_counted.h" #include "base/message_loop/message_loop.h" -#include "ui/base/keycodes/keyboard_code_conversion_win.h" -#include "ui/base/keycodes/keyboard_codes.h" +#include "ui/events/keycodes/keyboard_code_conversion_win.h" +#include "ui/events/keycodes/keyboard_codes.h" #if defined(USE_AURA) #include "ui/aura/root_window.h" diff --git a/ui/base/test/ui_controls_mac.mm b/ui/base/test/ui_controls_mac.mm index 72f8325..c5e8f75 100644 --- a/ui/base/test/ui_controls_mac.mm +++ b/ui/base/test/ui_controls_mac.mm @@ -11,7 +11,7 @@ #include "base/bind.h" #include "base/callback.h" #include "base/message_loop/message_loop.h" -#include "ui/base/keycodes/keyboard_code_conversion_mac.h" +#include "ui/events/keycodes/keyboard_code_conversion_mac.h" // Implementation details: We use [NSApplication sendEvent:] instead diff --git a/ui/base/win/events_win.cc b/ui/base/win/events_win.cc index 6cb6d81..94faf21 100644 --- a/ui/base/win/events_win.cc +++ b/ui/base/win/events_win.cc @@ -10,7 +10,7 @@ #include "base/time/time.h" #include "base/win/win_util.h" #include "ui/base/events/event_utils.h" -#include "ui/base/keycodes/keyboard_code_conversion_win.h" +#include "ui/events/keycodes/keyboard_code_conversion_win.h" #include "ui/gfx/point.h" #include "ui/gfx/win/dpi.h" diff --git a/ui/base/x/events_x.cc b/ui/base/x/events_x.cc index a0fa2e9..d032db1 100644 --- a/ui/base/x/events_x.cc +++ b/ui/base/x/events_x.cc @@ -13,12 +13,12 @@ #include "base/memory/singleton.h" #include "base/message_loop/message_pump_x11.h" #include "ui/base/events/event_utils.h" -#include "ui/base/keycodes/keyboard_code_conversion_x.h" #include "ui/base/touch/touch_factory_x11.h" #include "ui/base/x/device_data_manager.h" #include "ui/base/x/device_list_cache_x.h" #include "ui/base/x/x11_atom_cache.h" #include "ui/base/x/x11_util.h" +#include "ui/events/keycodes/keyboard_code_conversion_x.h" #include "ui/gfx/display.h" #include "ui/gfx/point.h" #include "ui/gfx/rect.h" diff --git a/ui/base/x/x11_util.cc b/ui/base/x/x11_util.cc index a9a1e3a..122b469 100644 --- a/ui/base/x/x11_util.cc +++ b/ui/base/x/x11_util.cc @@ -35,11 +35,11 @@ #include "third_party/skia/include/core/SkBitmap.h" #include "third_party/skia/include/core/SkPostConfig.h" #include "ui/base/events/event_utils.h" -#include "ui/base/keycodes/keyboard_code_conversion_x.h" #include "ui/base/touch/touch_factory_x11.h" #include "ui/base/x/device_data_manager.h" #include "ui/base/x/x11_error_tracker.h" #include "ui/base/x/x11_util_internal.h" +#include "ui/events/keycodes/keyboard_code_conversion_x.h" #include "ui/gfx/canvas.h" #include "ui/gfx/image/image_skia.h" #include "ui/gfx/image/image_skia_rep.h" diff --git a/ui/base/x/x11_util.h b/ui/base/x/x11_util.h index 40eb9c5..5163537 100644 --- a/ui/base/x/x11_util.h +++ b/ui/base/x/x11_util.h @@ -18,8 +18,8 @@ #include "base/event_types.h" #include "base/memory/ref_counted_memory.h" #include "ui/base/events/event_constants.h" -#include "ui/base/keycodes/keyboard_codes.h" #include "ui/base/ui_export.h" +#include "ui/events/keycodes/keyboard_codes.h" #include "ui/gfx/point.h" typedef unsigned long Atom; diff --git a/ui/events/keycodes/keyboard_code_conversion.cc b/ui/events/keycodes/keyboard_code_conversion.cc new file mode 100644 index 0000000..293790b --- /dev/null +++ b/ui/events/keycodes/keyboard_code_conversion.cc @@ -0,0 +1,115 @@ +// Copyright (c) 2011 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "ui/events/keycodes/keyboard_code_conversion.h" + +#include "ui/base/events/event_constants.h" + +namespace ui { + +uint16 GetCharacterFromKeyCode(KeyboardCode key_code, int flags) { + const bool ctrl = (flags & EF_CONTROL_DOWN) != 0; + const bool shift = (flags & EF_SHIFT_DOWN) != 0; + const bool upper = shift ^ ((flags & EF_CAPS_LOCK_DOWN) != 0); + + // Following Windows behavior to map ctrl-a ~ ctrl-z to \x01 ~ \x1A. + if (key_code >= VKEY_A && key_code <= VKEY_Z) + return key_code - VKEY_A + (ctrl ? 1 : (upper ? 'A' : 'a')); + + // Other ctrl characters + if (ctrl) { + if (shift) { + // following graphics chars require shift key to input. + switch (key_code) { + // ctrl-@ maps to \x00 (Null byte) + case VKEY_2: + return 0; + // ctrl-^ maps to \x1E (Record separator, Information separator two) + case VKEY_6: + return 0x1E; + // ctrl-_ maps to \x1F (Unit separator, Information separator one) + case VKEY_OEM_MINUS: + return 0x1F; + // Returns 0 for all other keys to avoid inputting unexpected chars. + default: + return 0; + } + } else { + switch (key_code) { + // ctrl-[ maps to \x1B (Escape) + case VKEY_OEM_4: + return 0x1B; + // ctrl-\ maps to \x1C (File separator, Information separator four) + case VKEY_OEM_5: + return 0x1C; + // ctrl-] maps to \x1D (Group separator, Information separator three) + case VKEY_OEM_6: + return 0x1D; + // ctrl-Enter maps to \x0A (Line feed) + case VKEY_RETURN: + return 0x0A; + // Returns 0 for all other keys to avoid inputting unexpected chars. + default: + return 0; + } + } + } + + // For IME support. + if (key_code == ui::VKEY_PROCESSKEY) + return 0xE5; + + // Normal characters + if (key_code >= VKEY_0 && key_code <= VKEY_9) { + return shift ? ")!@#$%^&*("[key_code - VKEY_0] : + static_cast(key_code); + } else if (key_code >= VKEY_NUMPAD0 && key_code <= VKEY_NUMPAD9) { + return key_code - VKEY_NUMPAD0 + '0'; + } + + switch (key_code) { + case VKEY_TAB: + return '\t'; + case VKEY_RETURN: + return '\r'; + case VKEY_MULTIPLY: + return '*'; + case VKEY_ADD: + return '+'; + case VKEY_SUBTRACT: + return '-'; + case VKEY_DECIMAL: + return '.'; + case VKEY_DIVIDE: + return '/'; + case VKEY_SPACE: + return ' '; + case VKEY_OEM_1: + return shift ? ':' : ';'; + case VKEY_OEM_PLUS: + return shift ? '+' : '='; + case VKEY_OEM_COMMA: + return shift ? '<' : ','; + case VKEY_OEM_MINUS: + return shift ? '_' : '-'; + case VKEY_OEM_PERIOD: + return shift ? '>' : '.'; + case VKEY_OEM_2: + return shift ? '?' : '/'; + case VKEY_OEM_3: + return shift ? '~' : '`'; + case VKEY_OEM_4: + return shift ? '{' : '['; + case VKEY_OEM_5: + return shift ? '|' : '\\'; + case VKEY_OEM_6: + return shift ? '}' : ']'; + case VKEY_OEM_7: + return shift ? '"' : '\''; + default: + return 0; + } +} + +} // namespace ui diff --git a/ui/events/keycodes/keyboard_code_conversion.h b/ui/events/keycodes/keyboard_code_conversion.h new file mode 100644 index 0000000..0dd5a12 --- /dev/null +++ b/ui/events/keycodes/keyboard_code_conversion.h @@ -0,0 +1,38 @@ +// Copyright (c) 2011 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef UI_EVENTS_KEYCODES_KEYBOARD_CODE_CONVERSION_H_ +#define UI_EVENTS_KEYCODES_KEYBOARD_CODE_CONVERSION_H_ + +#include "base/basictypes.h" +#include "ui/base/ui_export.h" +#include "ui/events/keycodes/keyboard_codes.h" + +namespace ui { + +// A helper function to get the character generated by a key event in a +// platform independent way. It supports control characters as well. +// It assumes a US keyboard layout is used, so it may only be used when there +// is no native event or no better way to get the character. +// For example, if a virtual keyboard implementation can only generate key +// events with key_code and flags information, then there is no way for us to +// determine the actual character that should be generate by the key. Because +// a key_code only represents a physical key on the keyboard, it has nothing +// to do with the actual character printed on that key. In such case, the only +// thing we can do is to assume that we are using a US keyboard and get the +// character according to US keyboard layout definition. +// If a virtual keyboard implementation wants to support other keyboard +// layouts, that may generate different text for a certain key than on a US +// keyboard, a special native event object should be introduced to carry extra +// information to help determine the correct character. +// Take XKeyEvent as an example, it contains not only keycode and modifier +// flags but also group and other extra XKB information to help determine the +// correct character. That's why we can use XLookupString() function to get +// the correct text generated by a X key event (See how is GetCharacter() +// implemented in event_x.cc). +UI_EXPORT uint16 GetCharacterFromKeyCode(KeyboardCode key_code, int flags); + +} // namespace ui + +#endif // UI_EVENTS_KEYCODES_KEYBOARD_CODE_CONVERSION_H_ diff --git a/ui/events/keycodes/keyboard_code_conversion_android.cc b/ui/events/keycodes/keyboard_code_conversion_android.cc new file mode 100644 index 0000000..fa0ed31 --- /dev/null +++ b/ui/events/keycodes/keyboard_code_conversion_android.cc @@ -0,0 +1,305 @@ +// Copyright 2013 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "ui/events/keycodes/keyboard_code_conversion_android.h" + +#include + +namespace ui { + +namespace { + +// The Android NDK does not provide values for these yet: +enum { + AKEYCODE_ESCAPE = 111, + AKEYCODE_FORWARD_DEL = 112, + AKEYCODE_CTRL_LEFT = 113, + AKEYCODE_CTRL_RIGHT = 114, + AKEYCODE_CAPS_LOCK = 115, + AKEYCODE_SCROLL_LOCK = 116, + AKEYCODE_META_LEFT = 117, + AKEYCODE_META_RIGHT = 118, + AKEYCODE_BREAK = 121, + AKEYCODE_INSERT = 124, + AKEYCODE_MEDIA_PLAY = 126, + AKEYCODE_MEDIA_PAUSE = 127, + AKEYCODE_F1 = 131, + AKEYCODE_F2 = 132, + AKEYCODE_F3 = 133, + AKEYCODE_F4 = 134, + AKEYCODE_F5 = 135, + AKEYCODE_F6 = 136, + AKEYCODE_F7 = 137, + AKEYCODE_F8 = 138, + AKEYCODE_F9 = 139, + AKEYCODE_F10 = 140, + AKEYCODE_F11 = 141, + AKEYCODE_F12 = 142, + AKEYCODE_NUM_LOCK = 143, + AKEYCODE_NUMPAD_0 = 144, + AKEYCODE_NUMPAD_1 = 145, + AKEYCODE_NUMPAD_2 = 146, + AKEYCODE_NUMPAD_3 = 147, + AKEYCODE_NUMPAD_4 = 148, + AKEYCODE_NUMPAD_5 = 149, + AKEYCODE_NUMPAD_6 = 150, + AKEYCODE_NUMPAD_7 = 151, + AKEYCODE_NUMPAD_8 = 152, + AKEYCODE_NUMPAD_9 = 153, + AKEYCODE_NUMPAD_DIVIDE = 154, + AKEYCODE_NUMPAD_MULTIPLY = 155, + AKEYCODE_NUMPAD_SUBTRACT = 156, + AKEYCODE_NUMPAD_ADD = 157, + AKEYCODE_NUMPAD_DOT = 158, + AKEYCODE_VOLUME_MUTE = 164, + AKEYCODE_CHANNEL_UP = 166, + AKEYCODE_CHANNEL_DOWN = 167, +}; + +} // namespace + +KeyboardCode KeyboardCodeFromAndroidKeyCode(int keycode) { + // Does not provide all key codes, and does not handle all keys. + switch (keycode) { + case AKEYCODE_DEL: + return VKEY_BACK; + case AKEYCODE_TAB: + return VKEY_TAB; + case AKEYCODE_CLEAR: + return VKEY_CLEAR; + case AKEYCODE_DPAD_CENTER: + case AKEYCODE_ENTER: + return VKEY_RETURN; + case AKEYCODE_SHIFT_LEFT: + return VKEY_LSHIFT; + case AKEYCODE_SHIFT_RIGHT: + return VKEY_RSHIFT; + // Back will serve as escape, although we may not have access to it. + case AKEYCODE_BACK: + return VKEY_ESCAPE; + case AKEYCODE_SPACE: + return VKEY_SPACE; + case AKEYCODE_HOME: + return VKEY_HOME; + case AKEYCODE_DPAD_LEFT: + return VKEY_LEFT; + case AKEYCODE_DPAD_UP: + return VKEY_UP; + case AKEYCODE_DPAD_RIGHT: + return VKEY_RIGHT; + case AKEYCODE_DPAD_DOWN: + return VKEY_DOWN; + case AKEYCODE_0: + return VKEY_0; + case AKEYCODE_1: + return VKEY_1; + case AKEYCODE_2: + return VKEY_2; + case AKEYCODE_3: + return VKEY_3; + case AKEYCODE_4: + return VKEY_4; + case AKEYCODE_5: + return VKEY_5; + case AKEYCODE_6: + return VKEY_6; + case AKEYCODE_7: + return VKEY_7; + case AKEYCODE_8: + return VKEY_8; + case AKEYCODE_9: + return VKEY_9; + case AKEYCODE_A: + return VKEY_A; + case AKEYCODE_B: + return VKEY_B; + case AKEYCODE_C: + return VKEY_C; + case AKEYCODE_D: + return VKEY_D; + case AKEYCODE_E: + return VKEY_E; + case AKEYCODE_F: + return VKEY_F; + case AKEYCODE_G: + return VKEY_G; + case AKEYCODE_H: + return VKEY_H; + case AKEYCODE_I: + return VKEY_I; + case AKEYCODE_J: + return VKEY_J; + case AKEYCODE_K: + return VKEY_K; + case AKEYCODE_L: + return VKEY_L; + case AKEYCODE_M: + return VKEY_M; + case AKEYCODE_N: + return VKEY_N; + case AKEYCODE_O: + return VKEY_O; + case AKEYCODE_P: + return VKEY_P; + case AKEYCODE_Q: + return VKEY_Q; + case AKEYCODE_R: + return VKEY_R; + case AKEYCODE_S: + return VKEY_S; + case AKEYCODE_T: + return VKEY_T; + case AKEYCODE_U: + return VKEY_U; + case AKEYCODE_V: + return VKEY_V; + case AKEYCODE_W: + return VKEY_W; + case AKEYCODE_X: + return VKEY_X; + case AKEYCODE_Y: + return VKEY_Y; + case AKEYCODE_Z: + return VKEY_Z; + case AKEYCODE_VOLUME_DOWN: + return VKEY_VOLUME_DOWN; + case AKEYCODE_VOLUME_UP: + return VKEY_VOLUME_UP; + case AKEYCODE_MEDIA_NEXT: + return VKEY_MEDIA_NEXT_TRACK; + case AKEYCODE_MEDIA_PREVIOUS: + return VKEY_MEDIA_PREV_TRACK; + case AKEYCODE_MEDIA_STOP: + return VKEY_MEDIA_STOP; + case AKEYCODE_MEDIA_PAUSE: + return VKEY_MEDIA_PLAY_PAUSE; + // Colon key. + case AKEYCODE_SEMICOLON: + return VKEY_OEM_1; + case AKEYCODE_COMMA: + return VKEY_OEM_COMMA; + case AKEYCODE_MINUS: + return VKEY_OEM_MINUS; + case AKEYCODE_EQUALS: + return VKEY_OEM_PLUS; + case AKEYCODE_PERIOD: + return VKEY_OEM_PERIOD; + case AKEYCODE_SLASH: + return VKEY_OEM_2; + case AKEYCODE_LEFT_BRACKET: + return VKEY_OEM_4; + case AKEYCODE_BACKSLASH: + return VKEY_OEM_5; + case AKEYCODE_RIGHT_BRACKET: + return VKEY_OEM_6; + case AKEYCODE_MUTE: + case AKEYCODE_VOLUME_MUTE: + return VKEY_VOLUME_MUTE; + case AKEYCODE_ESCAPE: + return VKEY_ESCAPE; + case AKEYCODE_MEDIA_PLAY: + case AKEYCODE_MEDIA_PLAY_PAUSE: + return VKEY_MEDIA_PLAY_PAUSE; + case AKEYCODE_CALL: + return VKEY_END; + case AKEYCODE_ALT_LEFT: + return VKEY_LMENU; + case AKEYCODE_ALT_RIGHT: + return VKEY_RMENU; + case AKEYCODE_GRAVE: + return VKEY_OEM_3; + case AKEYCODE_APOSTROPHE: + return VKEY_OEM_3; + case AKEYCODE_MEDIA_REWIND: + return VKEY_OEM_103; + case AKEYCODE_MEDIA_FAST_FORWARD: + return VKEY_OEM_104; + case AKEYCODE_PAGE_UP: + return VKEY_PRIOR; + case AKEYCODE_PAGE_DOWN: + return VKEY_NEXT; + case AKEYCODE_FORWARD_DEL: + return VKEY_DELETE; + case AKEYCODE_CTRL_LEFT: + return VKEY_LCONTROL; + case AKEYCODE_CTRL_RIGHT: + return VKEY_RCONTROL; + case AKEYCODE_CAPS_LOCK: + return VKEY_CAPITAL; + case AKEYCODE_SCROLL_LOCK: + return VKEY_SCROLL; + case AKEYCODE_META_LEFT: + return VKEY_LWIN; + case AKEYCODE_META_RIGHT: + return VKEY_RWIN; + case AKEYCODE_BREAK: + return VKEY_PAUSE; + case AKEYCODE_INSERT: + return VKEY_INSERT; + case AKEYCODE_F1: + return VKEY_F1; + case AKEYCODE_F2: + return VKEY_F2; + case AKEYCODE_F3: + return VKEY_F3; + case AKEYCODE_F4: + return VKEY_F4; + case AKEYCODE_F5: + return VKEY_F5; + case AKEYCODE_F6: + return VKEY_F6; + case AKEYCODE_F7: + return VKEY_F7; + case AKEYCODE_F8: + return VKEY_F8; + case AKEYCODE_F9: + return VKEY_F9; + case AKEYCODE_F10: + return VKEY_F10; + case AKEYCODE_F11: + return VKEY_F11; + case AKEYCODE_F12: + return VKEY_F12; + case AKEYCODE_NUM_LOCK: + return VKEY_NUMLOCK; + case AKEYCODE_NUMPAD_0: + return VKEY_NUMPAD0; + case AKEYCODE_NUMPAD_1: + return VKEY_NUMPAD1; + case AKEYCODE_NUMPAD_2: + return VKEY_NUMPAD2; + case AKEYCODE_NUMPAD_3: + return VKEY_NUMPAD3; + case AKEYCODE_NUMPAD_4: + return VKEY_NUMPAD4; + case AKEYCODE_NUMPAD_5: + return VKEY_NUMPAD5; + case AKEYCODE_NUMPAD_6: + return VKEY_NUMPAD6; + case AKEYCODE_NUMPAD_7: + return VKEY_NUMPAD7; + case AKEYCODE_NUMPAD_8: + return VKEY_NUMPAD8; + case AKEYCODE_NUMPAD_9: + return VKEY_NUMPAD9; + case AKEYCODE_NUMPAD_DIVIDE: + return VKEY_DIVIDE; + case AKEYCODE_NUMPAD_MULTIPLY: + return VKEY_MULTIPLY; + case AKEYCODE_NUMPAD_SUBTRACT: + return VKEY_SUBTRACT; + case AKEYCODE_NUMPAD_ADD: + return VKEY_ADD; + case AKEYCODE_NUMPAD_DOT: + return VKEY_DECIMAL; + case AKEYCODE_CHANNEL_UP: + return VKEY_PRIOR; + case AKEYCODE_CHANNEL_DOWN: + return VKEY_NEXT; + default: + return VKEY_UNKNOWN; + } +} + +} // namespace ui diff --git a/ui/events/keycodes/keyboard_code_conversion_android.h b/ui/events/keycodes/keyboard_code_conversion_android.h new file mode 100644 index 0000000..8be44c8 --- /dev/null +++ b/ui/events/keycodes/keyboard_code_conversion_android.h @@ -0,0 +1,17 @@ +// Copyright 2013 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef UI_EVENTS_KEYCODES_KEYBOARD_CODE_CONVERSION_ANDROID_H_ +#define UI_EVENTS_KEYCODES_KEYBOARD_CODE_CONVERSION_ANDROID_H_ + +#include "ui/base/ui_export.h" +#include "ui/events/keycodes/keyboard_codes_posix.h" + +namespace ui { + +UI_EXPORT KeyboardCode KeyboardCodeFromAndroidKeyCode(int keycode); + +} // namespace ui + +#endif // UI_EVENTS_KEYCODES_KEYBOARD_CODE_CONVERSION_ANDROID_H_ diff --git a/ui/events/keycodes/keyboard_code_conversion_gtk.cc b/ui/events/keycodes/keyboard_code_conversion_gtk.cc new file mode 100644 index 0000000..9a39653 --- /dev/null +++ b/ui/events/keycodes/keyboard_code_conversion_gtk.cc @@ -0,0 +1,85 @@ +// Copyright (c) 2011 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +/* + * Copyright (C) 2006, 2007 Apple Inc. All rights reserved. + * Copyright (C) 2006 Michael Emmel mike.emmel@gmail.com + * Copyright (C) 2007 Holger Hans Peter Freyther + * Copyright (C) 2008 Collabora, Ltd. All rights reserved. + * Copyright (C) 2008, 2009 Google Inc. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY + * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +// WindowsKeyCodeForGdkKeyCode is copied from platform/gtk/KeyEventGtk.cpp + +#include "ui/events/keycodes/keyboard_code_conversion_gtk.h" + +#include +#include +#include + +#include "base/basictypes.h" +#include "build/build_config.h" +#include "ui/events/keycodes/keyboard_code_conversion_x.h" +#include "ui/events/keycodes/keyboard_codes_posix.h" + +namespace ui { + +KeyboardCode WindowsKeyCodeForGdkKeyCode(int keycode) { + // Gdk key codes (e.g. GDK_BackSpace) and X keysyms (e.g. XK_BackSpace) share + // the same values. + return KeyboardCodeFromXKeysym(keycode); +} + +int GdkKeyCodeForWindowsKeyCode(KeyboardCode keycode, bool shift) { + // Gdk key codes and X keysyms share the same values. + return XKeysymForWindowsKeyCode(keycode, shift); +} + +// Just in case, test whether Gdk key codes match X ones. +COMPILE_ASSERT(GDK_KP_0 == XK_KP_0, keycode_check); +COMPILE_ASSERT(GDK_A == XK_A, keycode_check); +COMPILE_ASSERT(GDK_Escape == XK_Escape, keycode_check); +COMPILE_ASSERT(GDK_F1 == XK_F1, keycode_check); +COMPILE_ASSERT(GDK_Kanji == XK_Kanji, keycode_check); +COMPILE_ASSERT(GDK_Page_Up == XK_Page_Up, keycode_check); +COMPILE_ASSERT(GDK_Tab == XK_Tab, keycode_check); +COMPILE_ASSERT(GDK_a == XK_a, keycode_check); +COMPILE_ASSERT(GDK_space == XK_space, keycode_check); + +int GdkNativeKeyCodeForWindowsKeyCode(KeyboardCode keycode, bool shift) { + int keyval = GdkKeyCodeForWindowsKeyCode(keycode, shift); + GdkKeymapKey* keys; + gint n_keys; + + int native_keycode = 0; + if (keyval && gdk_keymap_get_entries_for_keyval(0, keyval, &keys, &n_keys)) { + native_keycode = keys[0].keycode; + g_free(keys); + } + + return native_keycode; +} + +} // namespace ui diff --git a/ui/events/keycodes/keyboard_code_conversion_gtk.h b/ui/events/keycodes/keyboard_code_conversion_gtk.h new file mode 100644 index 0000000..a01bff7 --- /dev/null +++ b/ui/events/keycodes/keyboard_code_conversion_gtk.h @@ -0,0 +1,57 @@ +// Copyright (c) 2011 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +/* + * Copyright (C) 2006, 2007 Apple Inc. All rights reserved. + * Copyright (C) 2006 Michael Emmel mike.emmel@gmail.com + * Copyright (C) 2007 Holger Hans Peter Freyther + * Copyright (C) 2008 Collabora, Ltd. All rights reserved. + * Copyright (C) 2008, 2009 Google Inc. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY + * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +// WindowsKeyCodeForGdkKeyCode is copied from platform/gtk/KeyEventGtk.cpp + +#ifndef UI_EVENTS_KEYCODES_KEYBOARD_CODE_CONVERSION_GTK_H_ +#define UI_EVENTS_KEYCODES_KEYBOARD_CODE_CONVERSION_GTK_H_ + +#include "ui/base/ui_export.h" +#include "ui/events/keycodes/keyboard_codes_posix.h" + +typedef struct _GdkEventKey GdkEventKey; + +namespace ui { + +UI_EXPORT KeyboardCode WindowsKeyCodeForGdkKeyCode(int keycode); + +UI_EXPORT int GdkKeyCodeForWindowsKeyCode(KeyboardCode keycode, bool shift); + +// For WebKit DRT testing: simulate the native keycode for the given +// input |keycode|. Return the native keycode. +UI_EXPORT int GdkNativeKeyCodeForWindowsKeyCode(KeyboardCode keycode, + bool shift); + +} // namespace ui + +#endif // UI_EVENTS_KEYCODES_KEYBOARD_CODE_CONVERSION_GTK_H_ diff --git a/ui/events/keycodes/keyboard_code_conversion_mac.h b/ui/events/keycodes/keyboard_code_conversion_mac.h new file mode 100644 index 0000000..92e6b13 --- /dev/null +++ b/ui/events/keycodes/keyboard_code_conversion_mac.h @@ -0,0 +1,41 @@ +// Copyright (c) 2011 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef UI_EVENTS_KEYCODES_KEYBOARD_CODE_CONVERSION_MAC_H_ +#define UI_EVENTS_KEYCODES_KEYBOARD_CODE_CONVERSION_MAC_H_ + +#import + +#include "base/basictypes.h" +#include "ui/base/ui_export.h" +#include "ui/events/keycodes/keyboard_codes_posix.h" + +namespace ui { + +// We use windows virtual keycodes throughout our keyboard event related code, +// including unit tests. But Mac uses a different set of virtual keycodes. +// This function converts a windows virtual keycode into Mac's virtual key code +// and corresponding unicode character. |flags| is the modifiers mask such +// as NSControlKeyMask, NSShiftKeyMask, etc. +// When success, the corresponding Mac's virtual key code will be returned. +// The corresponding unicode character will be stored in |character|, and the +// corresponding unicode character ignoring the modifiers will be stored in +// |characterIgnoringModifiers|. +// -1 will be returned if the keycode can't be converted. +// This function is mainly for simulating keyboard events in unit tests. +// See |KeyboardCodeFromNSEvent| for reverse conversion. +UI_EXPORT int MacKeyCodeForWindowsKeyCode(KeyboardCode keycode, + NSUInteger flags, + unichar* character, + unichar* characterIgnoringModifiers); + +// This implementation cribbed from: +// third_party/WebKit/Source/web/mac/WebInputEventFactory.mm +// Converts |event| into a |KeyboardCode|. The mapping is not direct as the Mac +// has a different notion of key codes. +UI_EXPORT KeyboardCode KeyboardCodeFromNSEvent(NSEvent* event); + +} // namespace ui + +#endif // UI_EVENTS_KEYCODES_KEYBOARD_CODE_CONVERSION_MAC_H_ diff --git a/ui/events/keycodes/keyboard_code_conversion_mac.mm b/ui/events/keycodes/keyboard_code_conversion_mac.mm new file mode 100644 index 0000000..ed50392 --- /dev/null +++ b/ui/events/keycodes/keyboard_code_conversion_mac.mm @@ -0,0 +1,558 @@ +// Copyright (c) 2012 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#import "ui/events/keycodes/keyboard_code_conversion_mac.h" + +#include + +#import + +#include "base/logging.h" + +namespace ui { + +namespace { + +// A struct to hold a Windows keycode to Mac virtual keycode mapping. +struct KeyCodeMap { + KeyboardCode keycode; + int macKeycode; + unichar characterIgnoringModifiers; +}; + +// Customized less operator for using std::lower_bound() on a KeyCodeMap array. +bool operator<(const KeyCodeMap& a, const KeyCodeMap& b) { + return a.keycode < b.keycode; +} + +// This array must keep sorted ascending according to the value of |keycode|, +// so that we can binary search it. +// TODO(suzhe): This map is not complete, missing entries have macKeycode == -1. +const KeyCodeMap kKeyCodesMap[] = { + { VKEY_BACK /* 0x08 */, kVK_Delete, kBackspaceCharCode }, + { VKEY_TAB /* 0x09 */, kVK_Tab, kTabCharCode }, + { VKEY_BACKTAB /* 0x0A */, 0x21E4, '\031' }, + { VKEY_CLEAR /* 0x0C */, kVK_ANSI_KeypadClear, kClearCharCode }, + { VKEY_RETURN /* 0x0D */, kVK_Return, kReturnCharCode }, + { VKEY_SHIFT /* 0x10 */, kVK_Shift, 0 }, + { VKEY_CONTROL /* 0x11 */, kVK_Control, 0 }, + { VKEY_MENU /* 0x12 */, kVK_Option, 0 }, + { VKEY_PAUSE /* 0x13 */, -1, NSPauseFunctionKey }, + { VKEY_CAPITAL /* 0x14 */, kVK_CapsLock, 0 }, + { VKEY_KANA /* 0x15 */, kVK_JIS_Kana, 0 }, + { VKEY_HANGUL /* 0x15 */, -1, 0 }, + { VKEY_JUNJA /* 0x17 */, -1, 0 }, + { VKEY_FINAL /* 0x18 */, -1, 0 }, + { VKEY_HANJA /* 0x19 */, -1, 0 }, + { VKEY_KANJI /* 0x19 */, -1, 0 }, + { VKEY_ESCAPE /* 0x1B */, kVK_Escape, kEscapeCharCode }, + { VKEY_CONVERT /* 0x1C */, -1, 0 }, + { VKEY_NONCONVERT /* 0x1D */, -1, 0 }, + { VKEY_ACCEPT /* 0x1E */, -1, 0 }, + { VKEY_MODECHANGE /* 0x1F */, -1, 0 }, + { VKEY_SPACE /* 0x20 */, kVK_Space, kSpaceCharCode }, + { VKEY_PRIOR /* 0x21 */, kVK_PageUp, NSPageUpFunctionKey }, + { VKEY_NEXT /* 0x22 */, kVK_PageDown, NSPageDownFunctionKey }, + { VKEY_END /* 0x23 */, kVK_End, NSEndFunctionKey }, + { VKEY_HOME /* 0x24 */, kVK_Home, NSHomeFunctionKey }, + { VKEY_LEFT /* 0x25 */, kVK_LeftArrow, NSLeftArrowFunctionKey }, + { VKEY_UP /* 0x26 */, kVK_UpArrow, NSUpArrowFunctionKey }, + { VKEY_RIGHT /* 0x27 */, kVK_RightArrow, NSRightArrowFunctionKey }, + { VKEY_DOWN /* 0x28 */, kVK_DownArrow, NSDownArrowFunctionKey }, + { VKEY_SELECT /* 0x29 */, -1, 0 }, + { VKEY_PRINT /* 0x2A */, -1, NSPrintFunctionKey }, + { VKEY_EXECUTE /* 0x2B */, -1, NSExecuteFunctionKey }, + { VKEY_SNAPSHOT /* 0x2C */, -1, NSPrintScreenFunctionKey }, + { VKEY_INSERT /* 0x2D */, -1, NSInsertFunctionKey }, + { VKEY_DELETE /* 0x2E */, kVK_ForwardDelete, kDeleteCharCode }, + { VKEY_HELP /* 0x2F */, kVK_Help, kHelpCharCode }, + { VKEY_0 /* 0x30 */, kVK_ANSI_0, '0' }, + { VKEY_1 /* 0x31 */, kVK_ANSI_1, '1' }, + { VKEY_2 /* 0x32 */, kVK_ANSI_2, '2' }, + { VKEY_3 /* 0x33 */, kVK_ANSI_3, '3' }, + { VKEY_4 /* 0x34 */, kVK_ANSI_4, '4' }, + { VKEY_5 /* 0x35 */, kVK_ANSI_5, '5' }, + { VKEY_6 /* 0x36 */, kVK_ANSI_6, '6' }, + { VKEY_7 /* 0x37 */, kVK_ANSI_7, '7' }, + { VKEY_8 /* 0x38 */, kVK_ANSI_8, '8' }, + { VKEY_9 /* 0x39 */, kVK_ANSI_9, '9' }, + { VKEY_A /* 0x41 */, kVK_ANSI_A, 'a' }, + { VKEY_B /* 0x42 */, kVK_ANSI_B, 'b' }, + { VKEY_C /* 0x43 */, kVK_ANSI_C, 'c' }, + { VKEY_D /* 0x44 */, kVK_ANSI_D, 'd' }, + { VKEY_E /* 0x45 */, kVK_ANSI_E, 'e' }, + { VKEY_F /* 0x46 */, kVK_ANSI_F, 'f' }, + { VKEY_G /* 0x47 */, kVK_ANSI_G, 'g' }, + { VKEY_H /* 0x48 */, kVK_ANSI_H, 'h' }, + { VKEY_I /* 0x49 */, kVK_ANSI_I, 'i' }, + { VKEY_J /* 0x4A */, kVK_ANSI_J, 'j' }, + { VKEY_K /* 0x4B */, kVK_ANSI_K, 'k' }, + { VKEY_L /* 0x4C */, kVK_ANSI_L, 'l' }, + { VKEY_M /* 0x4D */, kVK_ANSI_M, 'm' }, + { VKEY_N /* 0x4E */, kVK_ANSI_N, 'n' }, + { VKEY_O /* 0x4F */, kVK_ANSI_O, 'o' }, + { VKEY_P /* 0x50 */, kVK_ANSI_P, 'p' }, + { VKEY_Q /* 0x51 */, kVK_ANSI_Q, 'q' }, + { VKEY_R /* 0x52 */, kVK_ANSI_R, 'r' }, + { VKEY_S /* 0x53 */, kVK_ANSI_S, 's' }, + { VKEY_T /* 0x54 */, kVK_ANSI_T, 't' }, + { VKEY_U /* 0x55 */, kVK_ANSI_U, 'u' }, + { VKEY_V /* 0x56 */, kVK_ANSI_V, 'v' }, + { VKEY_W /* 0x57 */, kVK_ANSI_W, 'w' }, + { VKEY_X /* 0x58 */, kVK_ANSI_X, 'x' }, + { VKEY_Y /* 0x59 */, kVK_ANSI_Y, 'y' }, + { VKEY_Z /* 0x5A */, kVK_ANSI_Z, 'z' }, + { VKEY_LWIN /* 0x5B */, kVK_Command, 0 }, + { VKEY_RWIN /* 0x5C */, 0x36, 0 }, + { VKEY_APPS /* 0x5D */, 0x36, 0 }, + { VKEY_SLEEP /* 0x5F */, -1, 0 }, + { VKEY_NUMPAD0 /* 0x60 */, kVK_ANSI_Keypad0, '0' }, + { VKEY_NUMPAD1 /* 0x61 */, kVK_ANSI_Keypad1, '1' }, + { VKEY_NUMPAD2 /* 0x62 */, kVK_ANSI_Keypad2, '2' }, + { VKEY_NUMPAD3 /* 0x63 */, kVK_ANSI_Keypad3, '3' }, + { VKEY_NUMPAD4 /* 0x64 */, kVK_ANSI_Keypad4, '4' }, + { VKEY_NUMPAD5 /* 0x65 */, kVK_ANSI_Keypad5, '5' }, + { VKEY_NUMPAD6 /* 0x66 */, kVK_ANSI_Keypad6, '6' }, + { VKEY_NUMPAD7 /* 0x67 */, kVK_ANSI_Keypad7, '7' }, + { VKEY_NUMPAD8 /* 0x68 */, kVK_ANSI_Keypad8, '8' }, + { VKEY_NUMPAD9 /* 0x69 */, kVK_ANSI_Keypad9, '9' }, + { VKEY_MULTIPLY /* 0x6A */, kVK_ANSI_KeypadMultiply, '*' }, + { VKEY_ADD /* 0x6B */, kVK_ANSI_KeypadPlus, '+' }, + { VKEY_SEPARATOR /* 0x6C */, -1, 0 }, + { VKEY_SUBTRACT /* 0x6D */, kVK_ANSI_KeypadMinus, '-' }, + { VKEY_DECIMAL /* 0x6E */, kVK_ANSI_KeypadDecimal, '.' }, + { VKEY_DIVIDE /* 0x6F */, kVK_ANSI_KeypadDivide, '/' }, + { VKEY_F1 /* 0x70 */, kVK_F1, NSF1FunctionKey }, + { VKEY_F2 /* 0x71 */, kVK_F2, NSF2FunctionKey }, + { VKEY_F3 /* 0x72 */, kVK_F3, NSF3FunctionKey }, + { VKEY_F4 /* 0x73 */, kVK_F4, NSF4FunctionKey }, + { VKEY_F5 /* 0x74 */, kVK_F5, NSF5FunctionKey }, + { VKEY_F6 /* 0x75 */, kVK_F6, NSF6FunctionKey }, + { VKEY_F7 /* 0x76 */, kVK_F7, NSF7FunctionKey }, + { VKEY_F8 /* 0x77 */, kVK_F8, NSF8FunctionKey }, + { VKEY_F9 /* 0x78 */, kVK_F9, NSF9FunctionKey }, + { VKEY_F10 /* 0x79 */, kVK_F10, NSF10FunctionKey }, + { VKEY_F11 /* 0x7A */, kVK_F11, NSF11FunctionKey }, + { VKEY_F12 /* 0x7B */, kVK_F12, NSF12FunctionKey }, + { VKEY_F13 /* 0x7C */, kVK_F13, NSF13FunctionKey }, + { VKEY_F14 /* 0x7D */, kVK_F14, NSF14FunctionKey }, + { VKEY_F15 /* 0x7E */, kVK_F15, NSF15FunctionKey }, + { VKEY_F16 /* 0x7F */, kVK_F16, NSF16FunctionKey }, + { VKEY_F17 /* 0x80 */, kVK_F17, NSF17FunctionKey }, + { VKEY_F18 /* 0x81 */, kVK_F18, NSF18FunctionKey }, + { VKEY_F19 /* 0x82 */, kVK_F19, NSF19FunctionKey }, + { VKEY_F20 /* 0x83 */, kVK_F20, NSF20FunctionKey }, + { VKEY_F21 /* 0x84 */, -1, NSF21FunctionKey }, + { VKEY_F22 /* 0x85 */, -1, NSF22FunctionKey }, + { VKEY_F23 /* 0x86 */, -1, NSF23FunctionKey }, + { VKEY_F24 /* 0x87 */, -1, NSF24FunctionKey }, + { VKEY_NUMLOCK /* 0x90 */, -1, 0 }, + { VKEY_SCROLL /* 0x91 */, -1, NSScrollLockFunctionKey }, + { VKEY_LSHIFT /* 0xA0 */, kVK_Shift, 0 }, + { VKEY_RSHIFT /* 0xA1 */, kVK_Shift, 0 }, + { VKEY_LCONTROL /* 0xA2 */, kVK_Control, 0 }, + { VKEY_RCONTROL /* 0xA3 */, kVK_Control, 0 }, + { VKEY_LMENU /* 0xA4 */, -1, 0 }, + { VKEY_RMENU /* 0xA5 */, -1, 0 }, + { VKEY_BROWSER_BACK /* 0xA6 */, -1, 0 }, + { VKEY_BROWSER_FORWARD /* 0xA7 */, -1, 0 }, + { VKEY_BROWSER_REFRESH /* 0xA8 */, -1, 0 }, + { VKEY_BROWSER_STOP /* 0xA9 */, -1, 0 }, + { VKEY_BROWSER_SEARCH /* 0xAA */, -1, 0 }, + { VKEY_BROWSER_FAVORITES /* 0xAB */, -1, 0 }, + { VKEY_BROWSER_HOME /* 0xAC */, -1, 0 }, + { VKEY_VOLUME_MUTE /* 0xAD */, -1, 0 }, + { VKEY_VOLUME_DOWN /* 0xAE */, -1, 0 }, + { VKEY_VOLUME_UP /* 0xAF */, -1, 0 }, + { VKEY_MEDIA_NEXT_TRACK /* 0xB0 */, -1, 0 }, + { VKEY_MEDIA_PREV_TRACK /* 0xB1 */, -1, 0 }, + { VKEY_MEDIA_STOP /* 0xB2 */, -1, 0 }, + { VKEY_MEDIA_PLAY_PAUSE /* 0xB3 */, -1, 0 }, + { VKEY_MEDIA_LAUNCH_MAIL /* 0xB4 */, -1, 0 }, + { VKEY_MEDIA_LAUNCH_MEDIA_SELECT /* 0xB5 */, -1, 0 }, + { VKEY_MEDIA_LAUNCH_APP1 /* 0xB6 */, -1, 0 }, + { VKEY_MEDIA_LAUNCH_APP2 /* 0xB7 */, -1, 0 }, + { VKEY_OEM_1 /* 0xBA */, kVK_ANSI_Semicolon, ';' }, + { VKEY_OEM_PLUS /* 0xBB */, kVK_ANSI_Equal, '=' }, + { VKEY_OEM_COMMA /* 0xBC */, kVK_ANSI_Comma, ',' }, + { VKEY_OEM_MINUS /* 0xBD */, kVK_ANSI_Minus, '-' }, + { VKEY_OEM_PERIOD /* 0xBE */, kVK_ANSI_Period, '.' }, + { VKEY_OEM_2 /* 0xBF */, kVK_ANSI_Slash, '/' }, + { VKEY_OEM_3 /* 0xC0 */, kVK_ANSI_Grave, '`' }, + { VKEY_OEM_4 /* 0xDB */, kVK_ANSI_LeftBracket, '[' }, + { VKEY_OEM_5 /* 0xDC */, kVK_ANSI_Backslash, '\\' }, + { VKEY_OEM_6 /* 0xDD */, kVK_ANSI_RightBracket, ']' }, + { VKEY_OEM_7 /* 0xDE */, kVK_ANSI_Quote, '\'' }, + { VKEY_OEM_8 /* 0xDF */, -1, 0 }, + { VKEY_OEM_102 /* 0xE2 */, -1, 0 }, + { VKEY_PROCESSKEY /* 0xE5 */, -1, 0 }, + { VKEY_PACKET /* 0xE7 */, -1, 0 }, + { VKEY_ATTN /* 0xF6 */, -1, 0 }, + { VKEY_CRSEL /* 0xF7 */, -1, 0 }, + { VKEY_EXSEL /* 0xF8 */, -1, 0 }, + { VKEY_EREOF /* 0xF9 */, -1, 0 }, + { VKEY_PLAY /* 0xFA */, -1, 0 }, + { VKEY_ZOOM /* 0xFB */, -1, 0 }, + { VKEY_NONAME /* 0xFC */, -1, 0 }, + { VKEY_PA1 /* 0xFD */, -1, 0 }, + { VKEY_OEM_CLEAR /* 0xFE */, kVK_ANSI_KeypadClear, kClearCharCode } +}; + +// A convenient array for getting symbol characters on the number keys. +const char kShiftCharsForNumberKeys[] = ")!@#$%^&*("; + +// Translates from character code to keyboard code. +KeyboardCode KeyboardCodeFromCharCode(unichar charCode) { + switch (charCode) { + case 8: case 0x7F: return VKEY_BACK; + case 9: return VKEY_TAB; + case 0xD: case 3: return VKEY_RETURN; + case 0x1B: return VKEY_ESCAPE; + case ' ': return VKEY_SPACE; + case NSHomeFunctionKey: return VKEY_HOME; + case NSEndFunctionKey: return VKEY_END; + case NSPageUpFunctionKey: return VKEY_PRIOR; + case NSPageDownFunctionKey: return VKEY_NEXT; + case NSUpArrowFunctionKey: return VKEY_UP; + case NSDownArrowFunctionKey: return VKEY_DOWN; + case NSLeftArrowFunctionKey: return VKEY_LEFT; + case NSRightArrowFunctionKey: return VKEY_RIGHT; + case NSDeleteFunctionKey: return VKEY_DELETE; + + case '0': case ')': return VKEY_0; + case '1': case '!': return VKEY_1; + case '2': case '@': return VKEY_2; + case '3': case '#': return VKEY_3; + case '4': case '$': return VKEY_4; + case '5': case '%': return VKEY_5; + case '6': case '^': return VKEY_6; + case '7': case '&': return VKEY_7; + case '8': case '*': return VKEY_8; + case '9': case '(': return VKEY_9; + + case 'a': case 'A': return VKEY_A; + case 'b': case 'B': return VKEY_B; + case 'c': case 'C': return VKEY_C; + case 'd': case 'D': return VKEY_D; + case 'e': case 'E': return VKEY_E; + case 'f': case 'F': return VKEY_F; + case 'g': case 'G': return VKEY_G; + case 'h': case 'H': return VKEY_H; + case 'i': case 'I': return VKEY_I; + case 'j': case 'J': return VKEY_J; + case 'k': case 'K': return VKEY_K; + case 'l': case 'L': return VKEY_L; + case 'm': case 'M': return VKEY_M; + case 'n': case 'N': return VKEY_N; + case 'o': case 'O': return VKEY_O; + case 'p': case 'P': return VKEY_P; + case 'q': case 'Q': return VKEY_Q; + case 'r': case 'R': return VKEY_R; + case 's': case 'S': return VKEY_S; + case 't': case 'T': return VKEY_T; + case 'u': case 'U': return VKEY_U; + case 'v': case 'V': return VKEY_V; + case 'w': case 'W': return VKEY_W; + case 'x': case 'X': return VKEY_X; + case 'y': case 'Y': return VKEY_Y; + case 'z': case 'Z': return VKEY_Z; + + case NSPauseFunctionKey: return VKEY_PAUSE; + case NSSelectFunctionKey: return VKEY_SELECT; + case NSPrintFunctionKey: return VKEY_PRINT; + case NSExecuteFunctionKey: return VKEY_EXECUTE; + case NSPrintScreenFunctionKey: return VKEY_SNAPSHOT; + case NSInsertFunctionKey: return VKEY_INSERT; + case NSHelpFunctionKey: return VKEY_INSERT; + + case NSF1FunctionKey: return VKEY_F1; + case NSF2FunctionKey: return VKEY_F2; + case NSF3FunctionKey: return VKEY_F3; + case NSF4FunctionKey: return VKEY_F4; + case NSF5FunctionKey: return VKEY_F5; + case NSF6FunctionKey: return VKEY_F6; + case NSF7FunctionKey: return VKEY_F7; + case NSF8FunctionKey: return VKEY_F8; + case NSF9FunctionKey: return VKEY_F9; + case NSF10FunctionKey: return VKEY_F10; + case NSF11FunctionKey: return VKEY_F11; + case NSF12FunctionKey: return VKEY_F12; + case NSF13FunctionKey: return VKEY_F13; + case NSF14FunctionKey: return VKEY_F14; + case NSF15FunctionKey: return VKEY_F15; + case NSF16FunctionKey: return VKEY_F16; + case NSF17FunctionKey: return VKEY_F17; + case NSF18FunctionKey: return VKEY_F18; + case NSF19FunctionKey: return VKEY_F19; + case NSF20FunctionKey: return VKEY_F20; + + case NSF21FunctionKey: return VKEY_F21; + case NSF22FunctionKey: return VKEY_F22; + case NSF23FunctionKey: return VKEY_F23; + case NSF24FunctionKey: return VKEY_F24; + case NSScrollLockFunctionKey: return VKEY_SCROLL; + + // U.S. Specific mappings. Mileage may vary. + case ';': case ':': return VKEY_OEM_1; + case '=': case '+': return VKEY_OEM_PLUS; + case ',': case '<': return VKEY_OEM_COMMA; + case '-': case '_': return VKEY_OEM_MINUS; + case '.': case '>': return VKEY_OEM_PERIOD; + case '/': case '?': return VKEY_OEM_2; + case '`': case '~': return VKEY_OEM_3; + case '[': case '{': return VKEY_OEM_4; + case '\\': case '|': return VKEY_OEM_5; + case ']': case '}': return VKEY_OEM_6; + case '\'': case '"': return VKEY_OEM_7; + } + + return VKEY_UNKNOWN; +} + +KeyboardCode KeyboardCodeFromKeyCode(unsigned short keyCode) { + static const KeyboardCode kKeyboardCodes[] = { + /* 0 */ VKEY_A, + /* 1 */ VKEY_S, + /* 2 */ VKEY_D, + /* 3 */ VKEY_F, + /* 4 */ VKEY_H, + /* 5 */ VKEY_G, + /* 6 */ VKEY_Z, + /* 7 */ VKEY_X, + /* 8 */ VKEY_C, + /* 9 */ VKEY_V, + /* 0x0A */ VKEY_OEM_3, // Section key. + /* 0x0B */ VKEY_B, + /* 0x0C */ VKEY_Q, + /* 0x0D */ VKEY_W, + /* 0x0E */ VKEY_E, + /* 0x0F */ VKEY_R, + /* 0x10 */ VKEY_Y, + /* 0x11 */ VKEY_T, + /* 0x12 */ VKEY_1, + /* 0x13 */ VKEY_2, + /* 0x14 */ VKEY_3, + /* 0x15 */ VKEY_4, + /* 0x16 */ VKEY_6, + /* 0x17 */ VKEY_5, + /* 0x18 */ VKEY_OEM_PLUS, // =+ + /* 0x19 */ VKEY_9, + /* 0x1A */ VKEY_7, + /* 0x1B */ VKEY_OEM_MINUS, // -_ + /* 0x1C */ VKEY_8, + /* 0x1D */ VKEY_0, + /* 0x1E */ VKEY_OEM_6, // ]} + /* 0x1F */ VKEY_O, + /* 0x20 */ VKEY_U, + /* 0x21 */ VKEY_OEM_4, // {[ + /* 0x22 */ VKEY_I, + /* 0x23 */ VKEY_P, + /* 0x24 */ VKEY_RETURN, // Return + /* 0x25 */ VKEY_L, + /* 0x26 */ VKEY_J, + /* 0x27 */ VKEY_OEM_7, // '" + /* 0x28 */ VKEY_K, + /* 0x29 */ VKEY_OEM_1, // ;: + /* 0x2A */ VKEY_OEM_5, // \| + /* 0x2B */ VKEY_OEM_COMMA, // ,< + /* 0x2C */ VKEY_OEM_2, // /? + /* 0x2D */ VKEY_N, + /* 0x2E */ VKEY_M, + /* 0x2F */ VKEY_OEM_PERIOD, // .> + /* 0x30 */ VKEY_TAB, + /* 0x31 */ VKEY_SPACE, + /* 0x32 */ VKEY_OEM_3, // `~ + /* 0x33 */ VKEY_BACK, // Backspace + /* 0x34 */ VKEY_UNKNOWN, // n/a + /* 0x35 */ VKEY_ESCAPE, + /* 0x36 */ VKEY_APPS, // Right Command + /* 0x37 */ VKEY_LWIN, // Left Command + /* 0x38 */ VKEY_SHIFT, // Left Shift + /* 0x39 */ VKEY_CAPITAL, // Caps Lock + /* 0x3A */ VKEY_MENU, // Left Option + /* 0x3B */ VKEY_CONTROL, // Left Ctrl + /* 0x3C */ VKEY_SHIFT, // Right Shift + /* 0x3D */ VKEY_MENU, // Right Option + /* 0x3E */ VKEY_CONTROL, // Right Ctrl + /* 0x3F */ VKEY_UNKNOWN, // fn + /* 0x40 */ VKEY_F17, + /* 0x41 */ VKEY_DECIMAL, // Num Pad . + /* 0x42 */ VKEY_UNKNOWN, // n/a + /* 0x43 */ VKEY_MULTIPLY, // Num Pad * + /* 0x44 */ VKEY_UNKNOWN, // n/a + /* 0x45 */ VKEY_ADD, // Num Pad + + /* 0x46 */ VKEY_UNKNOWN, // n/a + /* 0x47 */ VKEY_CLEAR, // Num Pad Clear + /* 0x48 */ VKEY_VOLUME_UP, + /* 0x49 */ VKEY_VOLUME_DOWN, + /* 0x4A */ VKEY_VOLUME_MUTE, + /* 0x4B */ VKEY_DIVIDE, // Num Pad / + /* 0x4C */ VKEY_RETURN, // Num Pad Enter + /* 0x4D */ VKEY_UNKNOWN, // n/a + /* 0x4E */ VKEY_SUBTRACT, // Num Pad - + /* 0x4F */ VKEY_F18, + /* 0x50 */ VKEY_F19, + /* 0x51 */ VKEY_OEM_PLUS, // Num Pad =. + /* 0x52 */ VKEY_NUMPAD0, + /* 0x53 */ VKEY_NUMPAD1, + /* 0x54 */ VKEY_NUMPAD2, + /* 0x55 */ VKEY_NUMPAD3, + /* 0x56 */ VKEY_NUMPAD4, + /* 0x57 */ VKEY_NUMPAD5, + /* 0x58 */ VKEY_NUMPAD6, + /* 0x59 */ VKEY_NUMPAD7, + /* 0x5A */ VKEY_F20, + /* 0x5B */ VKEY_NUMPAD8, + /* 0x5C */ VKEY_NUMPAD9, + /* 0x5D */ VKEY_UNKNOWN, // Yen (JIS Keyboard Only) + /* 0x5E */ VKEY_UNKNOWN, // Underscore (JIS Keyboard Only) + /* 0x5F */ VKEY_UNKNOWN, // KeypadComma (JIS Keyboard Only) + /* 0x60 */ VKEY_F5, + /* 0x61 */ VKEY_F6, + /* 0x62 */ VKEY_F7, + /* 0x63 */ VKEY_F3, + /* 0x64 */ VKEY_F8, + /* 0x65 */ VKEY_F9, + /* 0x66 */ VKEY_UNKNOWN, // Eisu (JIS Keyboard Only) + /* 0x67 */ VKEY_F11, + /* 0x68 */ VKEY_UNKNOWN, // Kana (JIS Keyboard Only) + /* 0x69 */ VKEY_F13, + /* 0x6A */ VKEY_F16, + /* 0x6B */ VKEY_F14, + /* 0x6C */ VKEY_UNKNOWN, // n/a + /* 0x6D */ VKEY_F10, + /* 0x6E */ VKEY_UNKNOWN, // n/a (Windows95 key?) + /* 0x6F */ VKEY_F12, + /* 0x70 */ VKEY_UNKNOWN, // n/a + /* 0x71 */ VKEY_F15, + /* 0x72 */ VKEY_INSERT, // Help + /* 0x73 */ VKEY_HOME, // Home + /* 0x74 */ VKEY_PRIOR, // Page Up + /* 0x75 */ VKEY_DELETE, // Forward Delete + /* 0x76 */ VKEY_F4, + /* 0x77 */ VKEY_END, // End + /* 0x78 */ VKEY_F2, + /* 0x79 */ VKEY_NEXT, // Page Down + /* 0x7A */ VKEY_F1, + /* 0x7B */ VKEY_LEFT, // Left Arrow + /* 0x7C */ VKEY_RIGHT, // Right Arrow + /* 0x7D */ VKEY_DOWN, // Down Arrow + /* 0x7E */ VKEY_UP, // Up Arrow + /* 0x7F */ VKEY_UNKNOWN // n/a + }; + + if (keyCode >= 0x80) + return VKEY_UNKNOWN; + + return kKeyboardCodes[keyCode]; +} + +} // namespace + +int MacKeyCodeForWindowsKeyCode(KeyboardCode keycode, + NSUInteger flags, + unichar* character, + unichar* characterIgnoringModifiers) { + KeyCodeMap from; + from.keycode = keycode; + + const KeyCodeMap* ptr = std::lower_bound( + kKeyCodesMap, kKeyCodesMap + arraysize(kKeyCodesMap), from); + + if (ptr >= kKeyCodesMap + arraysize(kKeyCodesMap) || + ptr->keycode != keycode || ptr->macKeycode == -1) + return -1; + + int macKeycode = ptr->macKeycode; + if (characterIgnoringModifiers) + *characterIgnoringModifiers = ptr->characterIgnoringModifiers; + + if (!character) + return macKeycode; + + *character = ptr->characterIgnoringModifiers; + + // Fill in |character| according to flags. + if (flags & NSShiftKeyMask) { + if (keycode >= VKEY_0 && keycode <= VKEY_9) { + *character = kShiftCharsForNumberKeys[keycode - VKEY_0]; + } else if (keycode >= VKEY_A && keycode <= VKEY_Z) { + *character = 'A' + (keycode - VKEY_A); + } else { + switch (macKeycode) { + case kVK_ANSI_Grave: + *character = '~'; + break; + case kVK_ANSI_Minus: + *character = '_'; + break; + case kVK_ANSI_Equal: + *character = '+'; + break; + case kVK_ANSI_LeftBracket: + *character = '{'; + break; + case kVK_ANSI_RightBracket: + *character = '}'; + break; + case kVK_ANSI_Backslash: + *character = '|'; + break; + case kVK_ANSI_Semicolon: + *character = ':'; + break; + case kVK_ANSI_Quote: + *character = '\"'; + break; + case kVK_ANSI_Comma: + *character = '<'; + break; + case kVK_ANSI_Period: + *character = '>'; + break; + case kVK_ANSI_Slash: + *character = '?'; + break; + default: + break; + } + } + } + + // Control characters. + if (flags & NSControlKeyMask) { + if (keycode >= VKEY_A && keycode <= VKEY_Z) + *character = 1 + keycode - VKEY_A; + else if (macKeycode == kVK_ANSI_LeftBracket) + *character = 27; + else if (macKeycode == kVK_ANSI_Backslash) + *character = 28; + else if (macKeycode == kVK_ANSI_RightBracket) + *character = 29; + } + + // TODO(suzhe): Support characters for Option key bindings. + return macKeycode; +} + +KeyboardCode KeyboardCodeFromNSEvent(NSEvent* event) { + KeyboardCode code = VKEY_UNKNOWN; + + if ([event type] == NSKeyDown || [event type] == NSKeyUp) { + NSString* characters = [event characters]; + if ([characters length] > 0) + code = KeyboardCodeFromCharCode([characters characterAtIndex:0]); + if (code) + return code; + + characters = [event charactersIgnoringModifiers]; + if ([characters length] > 0) + code = KeyboardCodeFromCharCode([characters characterAtIndex:0]); + if (code) + return code; + } + return KeyboardCodeFromKeyCode([event keyCode]); +} + +} // namespace ui diff --git a/ui/events/keycodes/keyboard_code_conversion_win.cc b/ui/events/keycodes/keyboard_code_conversion_win.cc new file mode 100644 index 0000000..66eeaa7 --- /dev/null +++ b/ui/events/keycodes/keyboard_code_conversion_win.cc @@ -0,0 +1,17 @@ +// Copyright (c) 2011 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "ui/events/keycodes/keyboard_code_conversion_win.h" + +namespace ui { + +WORD WindowsKeyCodeForKeyboardCode(KeyboardCode keycode) { + return static_cast(keycode); +} + +KeyboardCode KeyboardCodeForWindowsKeyCode(WORD keycode) { + return static_cast(keycode); +} + +} // namespace ui diff --git a/ui/events/keycodes/keyboard_code_conversion_win.h b/ui/events/keycodes/keyboard_code_conversion_win.h new file mode 100644 index 0000000..9964138 --- /dev/null +++ b/ui/events/keycodes/keyboard_code_conversion_win.h @@ -0,0 +1,19 @@ +// Copyright (c) 2011 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef UI_EVENTS_KEYCODES_KEYBOARD_CODE_CONVERSION_WIN_H_ +#define UI_EVENTS_KEYCODES_KEYBOARD_CODE_CONVERSION_WIN_H_ + +#include "ui/base/ui_export.h" +#include "ui/events/keycodes/keyboard_codes.h" + +namespace ui { + +// Methods to convert ui::KeyboardCode/Windows virtual key type methods. +UI_EXPORT WORD WindowsKeyCodeForKeyboardCode(KeyboardCode keycode); +UI_EXPORT KeyboardCode KeyboardCodeForWindowsKeyCode(WORD keycode); + +} // namespace ui + +#endif // UI_EVENTS_KEYCODES_KEYBOARD_CODE_CONVERSION_WIN_H_ diff --git a/ui/events/keycodes/keyboard_code_conversion_x.cc b/ui/events/keycodes/keyboard_code_conversion_x.cc new file mode 100644 index 0000000..8b88e39 --- /dev/null +++ b/ui/events/keycodes/keyboard_code_conversion_x.cc @@ -0,0 +1,804 @@ +// Copyright (c) 2012 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "ui/events/keycodes/keyboard_code_conversion_x.h" + +#define XK_3270 // for XK_3270_BackTab +#include +#include +#include +#include + +#include "base/basictypes.h" +#include "base/logging.h" +#include "base/strings/stringprintf.h" +#include "base/strings/utf_string_conversions.h" + +namespace ui { + +// Get an ui::KeyboardCode from an X keyevent +KeyboardCode KeyboardCodeFromXKeyEvent(XEvent* xev) { + // XLookupKeysym does not take into consideration the state of the lock/shift + // etc. keys. So it is necessary to use XLookupString instead. + KeySym keysym; + XLookupString(&xev->xkey, NULL, 0, &keysym, NULL); + KeyboardCode keycode = KeyboardCodeFromXKeysym(keysym); + if (keycode == VKEY_UNKNOWN) { + keysym = DefaultXKeysymFromHardwareKeycode(xev->xkey.keycode); + keycode = KeyboardCodeFromXKeysym(keysym); + } + + return keycode; +} + +KeyboardCode KeyboardCodeFromXKeysym(unsigned int keysym) { + // TODO(sad): Have |keysym| go through the X map list? + + switch (keysym) { + case XK_BackSpace: + return VKEY_BACK; + case XK_Delete: + case XK_KP_Delete: + return VKEY_DELETE; + case XK_Tab: + case XK_KP_Tab: + case XK_ISO_Left_Tab: + case XK_3270_BackTab: + return VKEY_TAB; + case XK_Linefeed: + case XK_Return: + case XK_KP_Enter: + case XK_ISO_Enter: + return VKEY_RETURN; + case XK_Clear: + case XK_KP_Begin: // NumPad 5 without Num Lock, for crosbug.com/29169. + return VKEY_CLEAR; + case XK_KP_Space: + case XK_space: + return VKEY_SPACE; + case XK_Home: + case XK_KP_Home: + return VKEY_HOME; + case XK_End: + case XK_KP_End: + return VKEY_END; + case XK_Page_Up: + case XK_KP_Page_Up: // aka XK_KP_Prior + return VKEY_PRIOR; + case XK_Page_Down: + case XK_KP_Page_Down: // aka XK_KP_Next + return VKEY_NEXT; + case XK_Left: + case XK_KP_Left: + return VKEY_LEFT; + case XK_Right: + case XK_KP_Right: + return VKEY_RIGHT; + case XK_Down: + case XK_KP_Down: + return VKEY_DOWN; + case XK_Up: + case XK_KP_Up: + return VKEY_UP; + case XK_Escape: + return VKEY_ESCAPE; + case XK_Kana_Lock: + case XK_Kana_Shift: + return VKEY_KANA; + case XK_Hangul: + return VKEY_HANGUL; + case XK_Hangul_Hanja: + return VKEY_HANJA; + case XK_Kanji: + return VKEY_KANJI; + case XK_Henkan: + return VKEY_CONVERT; + case XK_Muhenkan: + return VKEY_NONCONVERT; + case XK_Zenkaku_Hankaku: + return VKEY_DBE_DBCSCHAR; + case XK_A: + case XK_a: + return VKEY_A; + case XK_B: + case XK_b: + return VKEY_B; + case XK_C: + case XK_c: + return VKEY_C; + case XK_D: + case XK_d: + return VKEY_D; + case XK_E: + case XK_e: + return VKEY_E; + case XK_F: + case XK_f: + return VKEY_F; + case XK_G: + case XK_g: + return VKEY_G; + case XK_H: + case XK_h: + return VKEY_H; + case XK_I: + case XK_i: + return VKEY_I; + case XK_J: + case XK_j: + return VKEY_J; + case XK_K: + case XK_k: + return VKEY_K; + case XK_L: + case XK_l: + return VKEY_L; + case XK_M: + case XK_m: + return VKEY_M; + case XK_N: + case XK_n: + return VKEY_N; + case XK_O: + case XK_o: + return VKEY_O; + case XK_P: + case XK_p: + return VKEY_P; + case XK_Q: + case XK_q: + return VKEY_Q; + case XK_R: + case XK_r: + return VKEY_R; + case XK_S: + case XK_s: + return VKEY_S; + case XK_T: + case XK_t: + return VKEY_T; + case XK_U: + case XK_u: + return VKEY_U; + case XK_V: + case XK_v: + return VKEY_V; + case XK_W: + case XK_w: + return VKEY_W; + case XK_X: + case XK_x: + return VKEY_X; + case XK_Y: + case XK_y: + return VKEY_Y; + case XK_Z: + case XK_z: + return VKEY_Z; + + case XK_0: + case XK_1: + case XK_2: + case XK_3: + case XK_4: + case XK_5: + case XK_6: + case XK_7: + case XK_8: + case XK_9: + return static_cast(VKEY_0 + (keysym - XK_0)); + + case XK_parenright: + return VKEY_0; + case XK_exclam: + return VKEY_1; + case XK_at: + return VKEY_2; + case XK_numbersign: + return VKEY_3; + case XK_dollar: + return VKEY_4; + case XK_percent: + return VKEY_5; + case XK_asciicircum: + return VKEY_6; + case XK_ampersand: + return VKEY_7; + case XK_asterisk: + return VKEY_8; + case XK_parenleft: + return VKEY_9; + + case XK_KP_0: + case XK_KP_1: + case XK_KP_2: + case XK_KP_3: + case XK_KP_4: + case XK_KP_5: + case XK_KP_6: + case XK_KP_7: + case XK_KP_8: + case XK_KP_9: + return static_cast(VKEY_NUMPAD0 + (keysym - XK_KP_0)); + + case XK_multiply: + case XK_KP_Multiply: + return VKEY_MULTIPLY; + case XK_KP_Add: + return VKEY_ADD; + case XK_KP_Separator: + return VKEY_SEPARATOR; + case XK_KP_Subtract: + return VKEY_SUBTRACT; + case XK_KP_Decimal: + return VKEY_DECIMAL; + case XK_KP_Divide: + return VKEY_DIVIDE; + case XK_KP_Equal: + case XK_equal: + case XK_plus: + return VKEY_OEM_PLUS; + case XK_comma: + case XK_less: + return VKEY_OEM_COMMA; + case XK_minus: + case XK_underscore: + return VKEY_OEM_MINUS; + case XK_greater: + case XK_period: + return VKEY_OEM_PERIOD; + case XK_colon: + case XK_semicolon: + return VKEY_OEM_1; + case XK_question: + case XK_slash: + return VKEY_OEM_2; + case XK_asciitilde: + case XK_quoteleft: + return VKEY_OEM_3; + case XK_bracketleft: + case XK_braceleft: + return VKEY_OEM_4; + case XK_backslash: + case XK_bar: + return VKEY_OEM_5; + case XK_bracketright: + case XK_braceright: + return VKEY_OEM_6; + case XK_quoteright: + case XK_quotedbl: + return VKEY_OEM_7; + case XK_ISO_Level5_Shift: + return VKEY_OEM_8; + case XK_Shift_L: + case XK_Shift_R: + return VKEY_SHIFT; + case XK_Control_L: + case XK_Control_R: + return VKEY_CONTROL; + case XK_Meta_L: + case XK_Meta_R: + case XK_Alt_L: + case XK_Alt_R: + return VKEY_MENU; + case XK_ISO_Level3_Shift: + return VKEY_ALTGR; + case XK_Pause: + return VKEY_PAUSE; + case XK_Caps_Lock: + return VKEY_CAPITAL; + case XK_Num_Lock: + return VKEY_NUMLOCK; + case XK_Scroll_Lock: + return VKEY_SCROLL; + case XK_Select: + return VKEY_SELECT; + case XK_Print: + return VKEY_PRINT; + case XK_Execute: + return VKEY_EXECUTE; + case XK_Insert: + case XK_KP_Insert: + return VKEY_INSERT; + case XK_Help: + return VKEY_HELP; + case XK_Super_L: + return VKEY_LWIN; + case XK_Super_R: + return VKEY_RWIN; + case XK_Menu: + return VKEY_APPS; + case XK_F1: + case XK_F2: + case XK_F3: + case XK_F4: + case XK_F5: + case XK_F6: + case XK_F7: + case XK_F8: + case XK_F9: + case XK_F10: + case XK_F11: + case XK_F12: + case XK_F13: + case XK_F14: + case XK_F15: + case XK_F16: + case XK_F17: + case XK_F18: + case XK_F19: + case XK_F20: + case XK_F21: + case XK_F22: + case XK_F23: + case XK_F24: + return static_cast(VKEY_F1 + (keysym - XK_F1)); + case XK_KP_F1: + case XK_KP_F2: + case XK_KP_F3: + case XK_KP_F4: + return static_cast(VKEY_F1 + (keysym - XK_KP_F1)); + + case XK_guillemotleft: + case XK_guillemotright: + case XK_degree: + // In the case of canadian multilingual keyboard layout, VKEY_OEM_102 is + // assigned to ugrave key. + case XK_ugrave: + case XK_Ugrave: + case XK_brokenbar: + return VKEY_OEM_102; // international backslash key in 102 keyboard. + + // When evdev is in use, /usr/share/X11/xkb/symbols/inet maps F13-18 keys + // to the special XF86XK symbols to support Microsoft Ergonomic keyboards: + // https://bugs.freedesktop.org/show_bug.cgi?id=5783 + // In Chrome, we map these X key symbols back to F13-18 since we don't have + // VKEYs for these XF86XK symbols. + case XF86XK_Tools: + return VKEY_F13; + case XF86XK_Launch5: + return VKEY_F14; + case XF86XK_Launch6: + return VKEY_F15; + case XF86XK_Launch7: + return VKEY_F16; + case XF86XK_Launch8: + return VKEY_F17; + case XF86XK_Launch9: + return VKEY_F18; + +#if defined(TOOLKIT_GTK) + case XF86XK_Refresh: + case XF86XK_History: + case XF86XK_OpenURL: + case XF86XK_AddFavorite: + case XF86XK_Go: + case XF86XK_ZoomIn: + case XF86XK_ZoomOut: + // ui::AcceleratorGtk tries to convert the XF86XK_ keysyms on Chrome + // startup. It's safe to return VKEY_UNKNOWN here since ui::AcceleratorGtk + // also checks a Gdk keysym. http://crbug.com/109843 + return VKEY_UNKNOWN; +#endif + + // For supporting multimedia buttons on a USB keyboard. + case XF86XK_Back: + return VKEY_BROWSER_BACK; + case XF86XK_Forward: + return VKEY_BROWSER_FORWARD; + case XF86XK_Reload: + return VKEY_BROWSER_REFRESH; + case XF86XK_Stop: + return VKEY_BROWSER_STOP; + case XF86XK_Search: + return VKEY_BROWSER_SEARCH; + case XF86XK_Favorites: + return VKEY_BROWSER_FAVORITES; + case XF86XK_HomePage: + return VKEY_BROWSER_HOME; + case XF86XK_AudioMute: + return VKEY_VOLUME_MUTE; + case XF86XK_AudioLowerVolume: + return VKEY_VOLUME_DOWN; + case XF86XK_AudioRaiseVolume: + return VKEY_VOLUME_UP; + case XF86XK_AudioNext: + return VKEY_MEDIA_NEXT_TRACK; + case XF86XK_AudioPrev: + return VKEY_MEDIA_PREV_TRACK; + case XF86XK_AudioStop: + return VKEY_MEDIA_STOP; + case XF86XK_AudioPlay: + return VKEY_MEDIA_PLAY_PAUSE; + case XF86XK_Mail: + return VKEY_MEDIA_LAUNCH_MAIL; + case XF86XK_LaunchA: // F3 on an Apple keyboard. + return VKEY_MEDIA_LAUNCH_APP1; + case XF86XK_LaunchB: // F4 on an Apple keyboard. + case XF86XK_Calculator: + return VKEY_MEDIA_LAUNCH_APP2; + case XF86XK_WLAN: + return VKEY_WLAN; + case XF86XK_PowerOff: + return VKEY_POWER; + case XF86XK_MonBrightnessDown: + return VKEY_BRIGHTNESS_DOWN; + case XF86XK_MonBrightnessUp: + return VKEY_BRIGHTNESS_UP; + case XF86XK_KbdBrightnessDown: + return VKEY_KBD_BRIGHTNESS_DOWN; + case XF86XK_KbdBrightnessUp: + return VKEY_KBD_BRIGHTNESS_UP; + + // TODO(sad): some keycodes are still missing. + } + DLOG(WARNING) << "Unknown keysym: " << base::StringPrintf("0x%x", keysym); + return VKEY_UNKNOWN; +} + +uint16 GetCharacterFromXEvent(XEvent* xev) { + char buf[6]; + int bytes_written = XLookupString(&xev->xkey, buf, 6, NULL, NULL); + DCHECK_LE(bytes_written, 6); + + string16 result; + return (bytes_written > 0 && UTF8ToUTF16(buf, bytes_written, &result) && + result.length() == 1) ? result[0] : 0; +} + +unsigned int DefaultXKeysymFromHardwareKeycode(unsigned int hardware_code) { + static const unsigned int kHardwareKeycodeMap[] = { + 0, // 0x00: + 0, // 0x01: + 0, // 0x02: + 0, // 0x03: + 0, // 0x04: + 0, // 0x05: + 0, // 0x06: + 0, // 0x07: + 0, // 0x08: + XK_Escape, // 0x09: XK_Escape + XK_1, // 0x0A: XK_1 + XK_2, // 0x0B: XK_2 + XK_3, // 0x0C: XK_3 + XK_4, // 0x0D: XK_4 + XK_5, // 0x0E: XK_5 + XK_6, // 0x0F: XK_6 + XK_7, // 0x10: XK_7 + XK_8, // 0x11: XK_8 + XK_9, // 0x12: XK_9 + XK_0, // 0x13: XK_0 + XK_minus, // 0x14: XK_minus + XK_equal, // 0x15: XK_equal + XK_BackSpace, // 0x16: XK_BackSpace + XK_Tab, // 0x17: XK_Tab + XK_q, // 0x18: XK_q + XK_w, // 0x19: XK_w + XK_e, // 0x1A: XK_e + XK_r, // 0x1B: XK_r + XK_t, // 0x1C: XK_t + XK_y, // 0x1D: XK_y + XK_u, // 0x1E: XK_u + XK_i, // 0x1F: XK_i + XK_o, // 0x20: XK_o + XK_p, // 0x21: XK_p + XK_bracketleft, // 0x22: XK_bracketleft + XK_bracketright, // 0x23: XK_bracketright + XK_Return, // 0x24: XK_Return + XK_Control_L, // 0x25: XK_Control_L + XK_a, // 0x26: XK_a + XK_s, // 0x27: XK_s + XK_d, // 0x28: XK_d + XK_f, // 0x29: XK_f + XK_g, // 0x2A: XK_g + XK_h, // 0x2B: XK_h + XK_j, // 0x2C: XK_j + XK_k, // 0x2D: XK_k + XK_l, // 0x2E: XK_l + XK_semicolon, // 0x2F: XK_semicolon + XK_apostrophe, // 0x30: XK_apostrophe + XK_grave, // 0x31: XK_grave + XK_Shift_L, // 0x32: XK_Shift_L + XK_backslash, // 0x33: XK_backslash + XK_z, // 0x34: XK_z + XK_x, // 0x35: XK_x + XK_c, // 0x36: XK_c + XK_v, // 0x37: XK_v + XK_b, // 0x38: XK_b + XK_n, // 0x39: XK_n + XK_m, // 0x3A: XK_m + XK_comma, // 0x3B: XK_comma + XK_period, // 0x3C: XK_period + XK_slash, // 0x3D: XK_slash + XK_Shift_R, // 0x3E: XK_Shift_R + 0, // 0x3F: XK_KP_Multiply + XK_Alt_L, // 0x40: XK_Alt_L + XK_space, // 0x41: XK_space + XK_Caps_Lock, // 0x42: XK_Caps_Lock + XK_F1, // 0x43: XK_F1 + XK_F2, // 0x44: XK_F2 + XK_F3, // 0x45: XK_F3 + XK_F4, // 0x46: XK_F4 + XK_F5, // 0x47: XK_F5 + XK_F6, // 0x48: XK_F6 + XK_F7, // 0x49: XK_F7 + XK_F8, // 0x4A: XK_F8 + XK_F9, // 0x4B: XK_F9 + XK_F10, // 0x4C: XK_F10 + XK_Num_Lock, // 0x4D: XK_Num_Lock + XK_Scroll_Lock, // 0x4E: XK_Scroll_Lock + }; + + return hardware_code < arraysize(kHardwareKeycodeMap) ? + kHardwareKeycodeMap[hardware_code] : 0; +} + +// TODO(jcampan): this method might be incomplete. +int XKeysymForWindowsKeyCode(KeyboardCode keycode, bool shift) { + switch (keycode) { + case VKEY_NUMPAD0: + return XK_KP_0; + case VKEY_NUMPAD1: + return XK_KP_1; + case VKEY_NUMPAD2: + return XK_KP_2; + case VKEY_NUMPAD3: + return XK_KP_3; + case VKEY_NUMPAD4: + return XK_KP_4; + case VKEY_NUMPAD5: + return XK_KP_5; + case VKEY_NUMPAD6: + return XK_KP_6; + case VKEY_NUMPAD7: + return XK_KP_7; + case VKEY_NUMPAD8: + return XK_KP_8; + case VKEY_NUMPAD9: + return XK_KP_9; + case VKEY_MULTIPLY: + return XK_KP_Multiply; + case VKEY_ADD: + return XK_KP_Add; + case VKEY_SUBTRACT: + return XK_KP_Subtract; + case VKEY_DECIMAL: + return XK_KP_Decimal; + case VKEY_DIVIDE: + return XK_KP_Divide; + + case VKEY_BACK: + return XK_BackSpace; + case VKEY_TAB: + return shift ? XK_ISO_Left_Tab : XK_Tab; + case VKEY_CLEAR: + return XK_Clear; + case VKEY_RETURN: + return XK_Return; + case VKEY_SHIFT: + return XK_Shift_L; + case VKEY_CONTROL: + return XK_Control_L; + case VKEY_MENU: + return XK_Alt_L; + case VKEY_APPS: + return XK_Menu; + case VKEY_ALTGR: + return XK_ISO_Level3_Shift; + + case VKEY_PAUSE: + return XK_Pause; + case VKEY_CAPITAL: + return XK_Caps_Lock; + case VKEY_KANA: + return XK_Kana_Lock; + case VKEY_HANJA: + return XK_Hangul_Hanja; + case VKEY_CONVERT: + return XK_Henkan; + case VKEY_NONCONVERT: + return XK_Muhenkan; + case VKEY_DBE_SBCSCHAR: + return XK_Zenkaku_Hankaku; + case VKEY_DBE_DBCSCHAR: + return XK_Zenkaku_Hankaku; + case VKEY_ESCAPE: + return XK_Escape; + case VKEY_SPACE: + return XK_space; + case VKEY_PRIOR: + return XK_Page_Up; + case VKEY_NEXT: + return XK_Page_Down; + case VKEY_END: + return XK_End; + case VKEY_HOME: + return XK_Home; + case VKEY_LEFT: + return XK_Left; + case VKEY_UP: + return XK_Up; + case VKEY_RIGHT: + return XK_Right; + case VKEY_DOWN: + return XK_Down; + case VKEY_SELECT: + return XK_Select; + case VKEY_PRINT: + return XK_Print; + case VKEY_EXECUTE: + return XK_Execute; + case VKEY_INSERT: + return XK_Insert; + case VKEY_DELETE: + return XK_Delete; + case VKEY_HELP: + return XK_Help; + case VKEY_0: + return shift ? XK_parenright : XK_0; + case VKEY_1: + return shift ? XK_exclam : XK_1; + case VKEY_2: + return shift ? XK_at : XK_2; + case VKEY_3: + return shift ? XK_numbersign : XK_3; + case VKEY_4: + return shift ? XK_dollar : XK_4; + case VKEY_5: + return shift ? XK_percent : XK_5; + case VKEY_6: + return shift ? XK_asciicircum : XK_6; + case VKEY_7: + return shift ? XK_ampersand : XK_7; + case VKEY_8: + return shift ? XK_asterisk : XK_8; + case VKEY_9: + return shift ? XK_parenleft : XK_9; + + case VKEY_A: + case VKEY_B: + case VKEY_C: + case VKEY_D: + case VKEY_E: + case VKEY_F: + case VKEY_G: + case VKEY_H: + case VKEY_I: + case VKEY_J: + case VKEY_K: + case VKEY_L: + case VKEY_M: + case VKEY_N: + case VKEY_O: + case VKEY_P: + case VKEY_Q: + case VKEY_R: + case VKEY_S: + case VKEY_T: + case VKEY_U: + case VKEY_V: + case VKEY_W: + case VKEY_X: + case VKEY_Y: + case VKEY_Z: + return (shift ? XK_A : XK_a) + (keycode - VKEY_A); + + case VKEY_LWIN: + return XK_Super_L; + case VKEY_RWIN: + return XK_Super_R; + + case VKEY_NUMLOCK: + return XK_Num_Lock; + + case VKEY_SCROLL: + return XK_Scroll_Lock; + + case VKEY_OEM_1: + return shift ? XK_colon : XK_semicolon; + case VKEY_OEM_PLUS: + return shift ? XK_plus : XK_equal; + case VKEY_OEM_COMMA: + return shift ? XK_less : XK_comma; + case VKEY_OEM_MINUS: + return shift ? XK_underscore : XK_minus; + case VKEY_OEM_PERIOD: + return shift ? XK_greater : XK_period; + case VKEY_OEM_2: + return shift ? XK_question : XK_slash; + case VKEY_OEM_3: + return shift ? XK_asciitilde : XK_quoteleft; + case VKEY_OEM_4: + return shift ? XK_braceleft : XK_bracketleft; + case VKEY_OEM_5: + return shift ? XK_bar : XK_backslash; + case VKEY_OEM_6: + return shift ? XK_braceright : XK_bracketright; + case VKEY_OEM_7: + return shift ? XK_quotedbl : XK_quoteright; + case VKEY_OEM_8: + return XK_ISO_Level5_Shift; + case VKEY_OEM_102: + return shift ? XK_guillemotleft : XK_guillemotright; + + case VKEY_F1: + case VKEY_F2: + case VKEY_F3: + case VKEY_F4: + case VKEY_F5: + case VKEY_F6: + case VKEY_F7: + case VKEY_F8: + case VKEY_F9: + case VKEY_F10: + case VKEY_F11: + case VKEY_F12: + case VKEY_F13: + case VKEY_F14: + case VKEY_F15: + case VKEY_F16: + case VKEY_F17: + case VKEY_F18: + case VKEY_F19: + case VKEY_F20: + case VKEY_F21: + case VKEY_F22: + case VKEY_F23: + case VKEY_F24: + return XK_F1 + (keycode - VKEY_F1); + + case VKEY_BROWSER_BACK: + return XF86XK_Back; + case VKEY_BROWSER_FORWARD: + return XF86XK_Forward; + case VKEY_BROWSER_REFRESH: + return XF86XK_Reload; + case VKEY_BROWSER_STOP: + return XF86XK_Stop; + case VKEY_BROWSER_SEARCH: + return XF86XK_Search; + case VKEY_BROWSER_FAVORITES: + return XF86XK_Favorites; + case VKEY_BROWSER_HOME: + return XF86XK_HomePage; + case VKEY_VOLUME_MUTE: + return XF86XK_AudioMute; + case VKEY_VOLUME_DOWN: + return XF86XK_AudioLowerVolume; + case VKEY_VOLUME_UP: + return XF86XK_AudioRaiseVolume; + case VKEY_MEDIA_NEXT_TRACK: + return XF86XK_AudioNext; + case VKEY_MEDIA_PREV_TRACK: + return XF86XK_AudioPrev; + case VKEY_MEDIA_STOP: + return XF86XK_AudioStop; + case VKEY_MEDIA_PLAY_PAUSE: + return XF86XK_AudioPlay; + case VKEY_MEDIA_LAUNCH_MAIL: + return XF86XK_Mail; + case VKEY_MEDIA_LAUNCH_APP1: + return XF86XK_LaunchA; + case VKEY_MEDIA_LAUNCH_APP2: + return XF86XK_LaunchB; + case VKEY_WLAN: + return XF86XK_WLAN; + case VKEY_POWER: + return XF86XK_PowerOff; + case VKEY_BRIGHTNESS_DOWN: + return XF86XK_MonBrightnessDown; + case VKEY_BRIGHTNESS_UP: + return XF86XK_MonBrightnessUp; + case VKEY_KBD_BRIGHTNESS_DOWN: + return XF86XK_KbdBrightnessDown; + case VKEY_KBD_BRIGHTNESS_UP: + return XF86XK_KbdBrightnessUp; + + default: + LOG(WARNING) << "Unknown keycode:" << keycode; + return 0; + } +} + +} // namespace ui diff --git a/ui/events/keycodes/keyboard_code_conversion_x.h b/ui/events/keycodes/keyboard_code_conversion_x.h new file mode 100644 index 0000000..8fd1e84 --- /dev/null +++ b/ui/events/keycodes/keyboard_code_conversion_x.h @@ -0,0 +1,31 @@ +// Copyright (c) 2011 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef UI_EVENTS_KEYCODES_KEYBOARD_CODE_CONVERSION_X_H_ +#define UI_EVENTS_KEYCODES_KEYBOARD_CODE_CONVERSION_X_H_ + +#include "base/basictypes.h" +#include "ui/base/ui_export.h" +#include "ui/events/keycodes/keyboard_codes_posix.h" + +typedef union _XEvent XEvent; + +namespace ui { + +UI_EXPORT KeyboardCode KeyboardCodeFromXKeyEvent(XEvent* xev); + +UI_EXPORT KeyboardCode KeyboardCodeFromXKeysym(unsigned int keysym); + +// Returns a character on a standard US PC keyboard from an XEvent. +UI_EXPORT uint16 GetCharacterFromXEvent(XEvent* xev); + +// Converts a KeyboardCode into an X KeySym. +UI_EXPORT int XKeysymForWindowsKeyCode(KeyboardCode keycode, bool shift); + +// Converts an X keycode into an X KeySym. +unsigned int DefaultXKeysymFromHardwareKeycode(unsigned int keycode); + +} // namespace ui + +#endif // UI_EVENTS_KEYCODES_KEYBOARD_CODE_CONVERSION_X_H_ diff --git a/ui/events/keycodes/keyboard_codes.h b/ui/events/keycodes/keyboard_codes.h new file mode 100644 index 0000000..00a7847 --- /dev/null +++ b/ui/events/keycodes/keyboard_codes.h @@ -0,0 +1,16 @@ +// Copyright (c) 2011 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef UI_EVENTS_KEYCODES_KEYBOARD_CODES_H_ +#define UI_EVENTS_KEYCODES_KEYBOARD_CODES_H_ + +#include "build/build_config.h" + +#if defined(OS_WIN) +#include "ui/events/keycodes/keyboard_codes_win.h" +#elif defined(OS_POSIX) +#include "ui/events/keycodes/keyboard_codes_posix.h" +#endif + +#endif // UI_EVENTS_KEYCODES_KEYBOARD_CODES_H_ diff --git a/ui/events/keycodes/keyboard_codes_posix.h b/ui/events/keycodes/keyboard_codes_posix.h new file mode 100644 index 0000000..1f7e06f --- /dev/null +++ b/ui/events/keycodes/keyboard_codes_posix.h @@ -0,0 +1,228 @@ +// Copyright (c) 2012 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +/* + * Copyright (C) 2006 Michael Emmel mike.emmel@gmail.com. All rights reserved. + * Copyright (C) 2008, 2009 Google Inc. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, LOSS OF USE, DATA, OR + * PROFITS, OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY + * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef UI_EVENTS_KEYCODES_KEYBOARD_CODES_POSIX_H_ +#define UI_EVENTS_KEYCODES_KEYBOARD_CODES_POSIX_H_ + +namespace ui { + +enum KeyboardCode { + VKEY_BACK = 0x08, + VKEY_TAB = 0x09, + VKEY_BACKTAB = 0x0A, + VKEY_CLEAR = 0x0C, + VKEY_RETURN = 0x0D, + VKEY_SHIFT = 0x10, + VKEY_CONTROL = 0x11, + VKEY_MENU = 0x12, + VKEY_PAUSE = 0x13, + VKEY_CAPITAL = 0x14, + VKEY_KANA = 0x15, + VKEY_HANGUL = 0x15, + VKEY_JUNJA = 0x17, + VKEY_FINAL = 0x18, + VKEY_HANJA = 0x19, + VKEY_KANJI = 0x19, + VKEY_ESCAPE = 0x1B, + VKEY_CONVERT = 0x1C, + VKEY_NONCONVERT = 0x1D, + VKEY_ACCEPT = 0x1E, + VKEY_MODECHANGE = 0x1F, + VKEY_SPACE = 0x20, + VKEY_PRIOR = 0x21, + VKEY_NEXT = 0x22, + VKEY_END = 0x23, + VKEY_HOME = 0x24, + VKEY_LEFT = 0x25, + VKEY_UP = 0x26, + VKEY_RIGHT = 0x27, + VKEY_DOWN = 0x28, + VKEY_SELECT = 0x29, + VKEY_PRINT = 0x2A, + VKEY_EXECUTE = 0x2B, + VKEY_SNAPSHOT = 0x2C, + VKEY_INSERT = 0x2D, + VKEY_DELETE = 0x2E, + VKEY_HELP = 0x2F, + VKEY_0 = 0x30, + VKEY_1 = 0x31, + VKEY_2 = 0x32, + VKEY_3 = 0x33, + VKEY_4 = 0x34, + VKEY_5 = 0x35, + VKEY_6 = 0x36, + VKEY_7 = 0x37, + VKEY_8 = 0x38, + VKEY_9 = 0x39, + VKEY_A = 0x41, + VKEY_B = 0x42, + VKEY_C = 0x43, + VKEY_D = 0x44, + VKEY_E = 0x45, + VKEY_F = 0x46, + VKEY_G = 0x47, + VKEY_H = 0x48, + VKEY_I = 0x49, + VKEY_J = 0x4A, + VKEY_K = 0x4B, + VKEY_L = 0x4C, + VKEY_M = 0x4D, + VKEY_N = 0x4E, + VKEY_O = 0x4F, + VKEY_P = 0x50, + VKEY_Q = 0x51, + VKEY_R = 0x52, + VKEY_S = 0x53, + VKEY_T = 0x54, + VKEY_U = 0x55, + VKEY_V = 0x56, + VKEY_W = 0x57, + VKEY_X = 0x58, + VKEY_Y = 0x59, + VKEY_Z = 0x5A, + VKEY_LWIN = 0x5B, + VKEY_COMMAND = VKEY_LWIN, // Provide the Mac name for convenience. + VKEY_RWIN = 0x5C, + VKEY_APPS = 0x5D, + VKEY_SLEEP = 0x5F, + VKEY_NUMPAD0 = 0x60, + VKEY_NUMPAD1 = 0x61, + VKEY_NUMPAD2 = 0x62, + VKEY_NUMPAD3 = 0x63, + VKEY_NUMPAD4 = 0x64, + VKEY_NUMPAD5 = 0x65, + VKEY_NUMPAD6 = 0x66, + VKEY_NUMPAD7 = 0x67, + VKEY_NUMPAD8 = 0x68, + VKEY_NUMPAD9 = 0x69, + VKEY_MULTIPLY = 0x6A, + VKEY_ADD = 0x6B, + VKEY_SEPARATOR = 0x6C, + VKEY_SUBTRACT = 0x6D, + VKEY_DECIMAL = 0x6E, + VKEY_DIVIDE = 0x6F, + VKEY_F1 = 0x70, + VKEY_F2 = 0x71, + VKEY_F3 = 0x72, + VKEY_F4 = 0x73, + VKEY_F5 = 0x74, + VKEY_F6 = 0x75, + VKEY_F7 = 0x76, + VKEY_F8 = 0x77, + VKEY_F9 = 0x78, + VKEY_F10 = 0x79, + VKEY_F11 = 0x7A, + VKEY_F12 = 0x7B, + VKEY_F13 = 0x7C, + VKEY_F14 = 0x7D, + VKEY_F15 = 0x7E, + VKEY_F16 = 0x7F, + VKEY_F17 = 0x80, + VKEY_F18 = 0x81, + VKEY_F19 = 0x82, + VKEY_F20 = 0x83, + VKEY_F21 = 0x84, + VKEY_F22 = 0x85, + VKEY_F23 = 0x86, + VKEY_F24 = 0x87, + VKEY_NUMLOCK = 0x90, + VKEY_SCROLL = 0x91, + VKEY_LSHIFT = 0xA0, + VKEY_RSHIFT = 0xA1, + VKEY_LCONTROL = 0xA2, + VKEY_RCONTROL = 0xA3, + VKEY_LMENU = 0xA4, + VKEY_RMENU = 0xA5, + VKEY_BROWSER_BACK = 0xA6, + VKEY_BROWSER_FORWARD = 0xA7, + VKEY_BROWSER_REFRESH = 0xA8, + VKEY_BROWSER_STOP = 0xA9, + VKEY_BROWSER_SEARCH = 0xAA, + VKEY_BROWSER_FAVORITES = 0xAB, + VKEY_BROWSER_HOME = 0xAC, + VKEY_VOLUME_MUTE = 0xAD, + VKEY_VOLUME_DOWN = 0xAE, + VKEY_VOLUME_UP = 0xAF, + VKEY_MEDIA_NEXT_TRACK = 0xB0, + VKEY_MEDIA_PREV_TRACK = 0xB1, + VKEY_MEDIA_STOP = 0xB2, + VKEY_MEDIA_PLAY_PAUSE = 0xB3, + VKEY_MEDIA_LAUNCH_MAIL = 0xB4, + VKEY_MEDIA_LAUNCH_MEDIA_SELECT = 0xB5, + VKEY_MEDIA_LAUNCH_APP1 = 0xB6, + VKEY_MEDIA_LAUNCH_APP2 = 0xB7, + VKEY_OEM_1 = 0xBA, + VKEY_OEM_PLUS = 0xBB, + VKEY_OEM_COMMA = 0xBC, + VKEY_OEM_MINUS = 0xBD, + VKEY_OEM_PERIOD = 0xBE, + VKEY_OEM_2 = 0xBF, + VKEY_OEM_3 = 0xC0, + VKEY_OEM_4 = 0xDB, + VKEY_OEM_5 = 0xDC, + VKEY_OEM_6 = 0xDD, + VKEY_OEM_7 = 0xDE, + VKEY_OEM_8 = 0xDF, + VKEY_OEM_102 = 0xE2, + VKEY_OEM_103 = 0xE3, // GTV KEYCODE_MEDIA_REWIND + VKEY_OEM_104 = 0xE4, // GTV KEYCODE_MEDIA_FAST_FORWARD + VKEY_PROCESSKEY = 0xE5, + VKEY_PACKET = 0xE7, + VKEY_DBE_SBCSCHAR = 0xF3, + VKEY_DBE_DBCSCHAR = 0xF4, + VKEY_ATTN = 0xF6, + VKEY_CRSEL = 0xF7, + VKEY_EXSEL = 0xF8, + VKEY_EREOF = 0xF9, + VKEY_PLAY = 0xFA, + VKEY_ZOOM = 0xFB, + VKEY_NONAME = 0xFC, + VKEY_PA1 = 0xFD, + VKEY_OEM_CLEAR = 0xFE, + VKEY_UNKNOWN = 0, + + // POSIX specific VKEYs. Note that as of Windows SDK 7.1, 0x97-9F, 0xD8-DA, + // and 0xE8 are unassigned. + VKEY_WLAN = 0x97, + VKEY_POWER = 0x98, + VKEY_BRIGHTNESS_DOWN = 0xD8, + VKEY_BRIGHTNESS_UP = 0xD9, + VKEY_KBD_BRIGHTNESS_DOWN = 0xDA, + VKEY_KBD_BRIGHTNESS_UP = 0xE8, + + // Windows does not have a specific key code for AltGr. We use the unused 0xE1 + // (VK_OEM_AX) code to represent AltGr, matching the behaviour of Firefox on + // Linux. + VKEY_ALTGR = 0xE1, +}; + +} // namespace ui + +#endif // UI_EVENTS_KEYCODES_KEYBOARD_CODES_POSIX_H_ diff --git a/ui/events/keycodes/keyboard_codes_win.h b/ui/events/keycodes/keyboard_codes_win.h new file mode 100644 index 0000000..396d38b --- /dev/null +++ b/ui/events/keycodes/keyboard_codes_win.h @@ -0,0 +1,192 @@ +// Copyright (c) 2012 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef UI_EVENTS_KEYCODES_KEYBOARD_CODES_WIN_H_ +#define UI_EVENTS_KEYCODES_KEYBOARD_CODES_WIN_H_ + +#include +#include + +namespace ui { + +enum KeyboardCode { + VKEY_BACK = VK_BACK, + VKEY_TAB = VK_TAB, + VKEY_CLEAR = VK_CLEAR, + VKEY_RETURN = VK_RETURN, + VKEY_SHIFT = VK_SHIFT, + VKEY_CONTROL = VK_CONTROL, + VKEY_MENU = VK_MENU, // a.k.a. ALT + VKEY_PAUSE = VK_PAUSE, + VKEY_CAPITAL = VK_CAPITAL, + VKEY_KANA = VK_KANA, + VKEY_HANGUL = VK_HANGUL, + VKEY_JUNJA = VK_JUNJA, + VKEY_FINAL = VK_FINAL, + VKEY_HANJA = VK_HANJA, + VKEY_KANJI = VK_KANJI, + VKEY_ESCAPE = VK_ESCAPE, + VKEY_CONVERT = VK_CONVERT, + VKEY_NONCONVERT = VK_NONCONVERT, + VKEY_ACCEPT = VK_ACCEPT, + VKEY_MODECHANGE = VK_MODECHANGE, + VKEY_SPACE = VK_SPACE, + VKEY_PRIOR = VK_PRIOR, + VKEY_NEXT = VK_NEXT, + VKEY_END = VK_END, + VKEY_HOME = VK_HOME, + VKEY_LEFT = VK_LEFT, + VKEY_UP = VK_UP, + VKEY_RIGHT = VK_RIGHT, + VKEY_DOWN = VK_DOWN, + VKEY_SELECT = VK_SELECT, + VKEY_PRINT = VK_PRINT, + VKEY_EXECUTE = VK_EXECUTE, + VKEY_SNAPSHOT = VK_SNAPSHOT, + VKEY_INSERT = VK_INSERT, + VKEY_DELETE = VK_DELETE, + VKEY_HELP = VK_HELP, + VKEY_0 = '0', + VKEY_1 = '1', + VKEY_2 = '2', + VKEY_3 = '3', + VKEY_4 = '4', + VKEY_5 = '5', + VKEY_6 = '6', + VKEY_7 = '7', + VKEY_8 = '8', + VKEY_9 = '9', + VKEY_A = 'A', + VKEY_B = 'B', + VKEY_C = 'C', + VKEY_D = 'D', + VKEY_E = 'E', + VKEY_F = 'F', + VKEY_G = 'G', + VKEY_H = 'H', + VKEY_I = 'I', + VKEY_J = 'J', + VKEY_K = 'K', + VKEY_L = 'L', + VKEY_M = 'M', + VKEY_N = 'N', + VKEY_O = 'O', + VKEY_P = 'P', + VKEY_Q = 'Q', + VKEY_R = 'R', + VKEY_S = 'S', + VKEY_T = 'T', + VKEY_U = 'U', + VKEY_V = 'V', + VKEY_W = 'W', + VKEY_X = 'X', + VKEY_Y = 'Y', + VKEY_Z = 'Z', + VKEY_LWIN = VK_LWIN, + VKEY_COMMAND = VKEY_LWIN, // Provide the Mac name for convenience. + VKEY_RWIN = VK_RWIN, + VKEY_APPS = VK_APPS, + VKEY_SLEEP = VK_SLEEP, + VKEY_NUMPAD0 = VK_NUMPAD0, + VKEY_NUMPAD1 = VK_NUMPAD1, + VKEY_NUMPAD2 = VK_NUMPAD2, + VKEY_NUMPAD3 = VK_NUMPAD3, + VKEY_NUMPAD4 = VK_NUMPAD4, + VKEY_NUMPAD5 = VK_NUMPAD5, + VKEY_NUMPAD6 = VK_NUMPAD6, + VKEY_NUMPAD7 = VK_NUMPAD7, + VKEY_NUMPAD8 = VK_NUMPAD8, + VKEY_NUMPAD9 = VK_NUMPAD9, + VKEY_MULTIPLY = VK_MULTIPLY, + VKEY_ADD = VK_ADD, + VKEY_SEPARATOR = VK_SEPARATOR, + VKEY_SUBTRACT = VK_SUBTRACT, + VKEY_DECIMAL = VK_DECIMAL, + VKEY_DIVIDE = VK_DIVIDE, + VKEY_F1 = VK_F1, + VKEY_F2 = VK_F2, + VKEY_F3 = VK_F3, + VKEY_F4 = VK_F4, + VKEY_F5 = VK_F5, + VKEY_F6 = VK_F6, + VKEY_F7 = VK_F7, + VKEY_F8 = VK_F8, + VKEY_F9 = VK_F9, + VKEY_F10 = VK_F10, + VKEY_F11 = VK_F11, + VKEY_F12 = VK_F12, + VKEY_F13 = VK_F13, + VKEY_F14 = VK_F14, + VKEY_F15 = VK_F15, + VKEY_F16 = VK_F16, + VKEY_F17 = VK_F17, + VKEY_F18 = VK_F18, + VKEY_F19 = VK_F19, + VKEY_F20 = VK_F20, + VKEY_F21 = VK_F21, + VKEY_F22 = VK_F22, + VKEY_F23 = VK_F23, + VKEY_F24 = VK_F24, + VKEY_NUMLOCK = VK_NUMLOCK, + VKEY_SCROLL = VK_SCROLL, + VKEY_LSHIFT = VK_LSHIFT, + VKEY_RSHIFT = VK_RSHIFT, + VKEY_LCONTROL = VK_LCONTROL, + VKEY_RCONTROL = VK_RCONTROL, + VKEY_LMENU = VK_LMENU, + VKEY_RMENU = VK_RMENU, + VKEY_BROWSER_BACK = VK_BROWSER_BACK, + VKEY_BROWSER_FORWARD = VK_BROWSER_FORWARD, + VKEY_BROWSER_REFRESH = VK_BROWSER_REFRESH, + VKEY_BROWSER_STOP = VK_BROWSER_STOP, + VKEY_BROWSER_SEARCH = VK_BROWSER_SEARCH, + VKEY_BROWSER_FAVORITES = VK_BROWSER_FAVORITES, + VKEY_BROWSER_HOME = VK_BROWSER_HOME, + VKEY_VOLUME_MUTE = VK_VOLUME_MUTE, + VKEY_VOLUME_DOWN = VK_VOLUME_DOWN, + VKEY_VOLUME_UP = VK_VOLUME_UP, + VKEY_MEDIA_NEXT_TRACK = VK_MEDIA_NEXT_TRACK, + VKEY_MEDIA_PREV_TRACK = VK_MEDIA_PREV_TRACK, + VKEY_MEDIA_STOP = VK_MEDIA_STOP, + VKEY_MEDIA_PLAY_PAUSE = VK_MEDIA_PLAY_PAUSE, + VKEY_MEDIA_LAUNCH_MAIL = 0xB4, + VKEY_MEDIA_LAUNCH_MEDIA_SELECT = 0xB5, + VKEY_MEDIA_LAUNCH_APP1 = 0xB6, + VKEY_MEDIA_LAUNCH_APP2 = 0xB7, + VKEY_OEM_1 = VK_OEM_1, + VKEY_OEM_PLUS = VK_OEM_PLUS, + VKEY_OEM_COMMA = VK_OEM_COMMA, + VKEY_OEM_MINUS = VK_OEM_MINUS, + VKEY_OEM_PERIOD = VK_OEM_PERIOD, + VKEY_OEM_2 = VK_OEM_2, + VKEY_OEM_3 = VK_OEM_3, + VKEY_OEM_4 = VK_OEM_4, + VKEY_OEM_5 = VK_OEM_5, + VKEY_OEM_6 = VK_OEM_6, + VKEY_OEM_7 = VK_OEM_7, + VKEY_OEM_8 = VK_OEM_8, + VKEY_OEM_102 = VK_OEM_102, + VKEY_PROCESSKEY = VK_PROCESSKEY, + VKEY_PACKET = VK_PACKET, + VKEY_DBE_SBCSCHAR = VK_DBE_SBCSCHAR, + VKEY_DBE_DBCSCHAR = VK_DBE_DBCSCHAR, + VKEY_ATTN = VK_ATTN, + VKEY_CRSEL = VK_CRSEL, + VKEY_EXSEL = VK_EXSEL, + VKEY_EREOF = VK_EREOF, + VKEY_PLAY = VK_PLAY, + VKEY_ZOOM = VK_ZOOM, + VKEY_NONAME = VK_NONAME, + VKEY_PA1 = VK_PA1, + VKEY_OEM_CLEAR = VK_OEM_CLEAR, + VKEY_UNKNOWN = 0, + + // Windows does not have a specific key code for AltGr. We use the unused + // VK_OEM_AX to represent AltGr, matching the behaviour of Firefox on Linux. + VKEY_ALTGR = VK_OEM_AX, +}; + +} // namespace ui + +#endif // UI_EVENTS_KEYCODES_KEYBOARD_CODES_WIN_H_ diff --git a/ui/message_center/views/notifier_settings_view.cc b/ui/message_center/views/notifier_settings_view.cc index d2b363a..42db90c 100644 --- a/ui/message_center/views/notifier_settings_view.cc +++ b/ui/message_center/views/notifier_settings_view.cc @@ -13,10 +13,10 @@ #include "grit/ui_strings.h" #include "skia/ext/image_operations.h" #include "third_party/skia/include/core/SkColor.h" -#include "ui/base/keycodes/keyboard_codes.h" #include "ui/base/l10n/l10n_util.h" #include "ui/base/models/simple_menu_model.h" #include "ui/base/resource/resource_bundle.h" +#include "ui/events/keycodes/keyboard_codes.h" #include "ui/gfx/canvas.h" #include "ui/gfx/image/image.h" #include "ui/gfx/size.h" diff --git a/ui/ui.gyp b/ui/ui.gyp index d8c5cc9..4dd25d4 100644 --- a/ui/ui.gyp +++ b/ui/ui.gyp @@ -216,19 +216,6 @@ 'base/gtk/scoped_region.cc', 'base/gtk/scoped_region.h', 'base/hit_test.h', - 'base/keycodes/keyboard_code_conversion.cc', - 'base/keycodes/keyboard_code_conversion.h', - 'base/keycodes/keyboard_code_conversion_android.cc', - 'base/keycodes/keyboard_code_conversion_android.h', - 'base/keycodes/keyboard_code_conversion_gtk.cc', - 'base/keycodes/keyboard_code_conversion_gtk.h', - 'base/keycodes/keyboard_code_conversion_mac.h', - 'base/keycodes/keyboard_code_conversion_mac.mm', - 'base/keycodes/keyboard_code_conversion_win.cc', - 'base/keycodes/keyboard_code_conversion_win.h', - 'base/keycodes/keyboard_code_conversion_x.cc', - 'base/keycodes/keyboard_code_conversion_x.h', - 'base/keycodes/keyboard_codes.h', 'base/keycodes/usb_keycode_map.h', 'base/latency_info.cc', 'base/latency_info.h', @@ -379,6 +366,19 @@ 'base/x/x11_util.cc', 'base/x/x11_util.h', 'base/x/x11_util_internal.h', + 'events/keycodes/keyboard_code_conversion.cc', + 'events/keycodes/keyboard_code_conversion.h', + 'events/keycodes/keyboard_code_conversion_android.cc', + 'events/keycodes/keyboard_code_conversion_android.h', + 'events/keycodes/keyboard_code_conversion_gtk.cc', + 'events/keycodes/keyboard_code_conversion_gtk.h', + 'events/keycodes/keyboard_code_conversion_mac.h', + 'events/keycodes/keyboard_code_conversion_mac.mm', + 'events/keycodes/keyboard_code_conversion_win.cc', + 'events/keycodes/keyboard_code_conversion_win.h', + 'events/keycodes/keyboard_code_conversion_x.cc', + 'events/keycodes/keyboard_code_conversion_x.h', + 'events/keycodes/keyboard_codes.h', 'gfx/android/device_display_info.cc', 'gfx/android/device_display_info.h', 'gfx/android/java_bitmap.cc', @@ -871,7 +871,7 @@ ], }, { # use_x11==0 'sources/': [ - ['exclude', 'base/keycodes/keyboard_code_conversion_x.*'], + ['exclude', 'events/keycodes/keyboard_code_conversion_x.*'], ['exclude', 'base/x/*'], ], }], @@ -903,7 +903,7 @@ 'base/dragdrop/drag_utils.cc', 'base/dragdrop/drag_utils.h', 'base/events/event_utils.cc', - 'base/keycodes/keyboard_code_conversion.cc', + 'events/keycodes/keyboard_code_conversion.cc', 'base/l10n/l10n_font_util.cc', 'base/models/button_menu_item_model.cc', 'base/models/dialog_model.cc', diff --git a/ui/views/color_chooser/color_chooser_view.cc b/ui/views/color_chooser/color_chooser_view.cc index 07a33a9..da8ae71 100644 --- a/ui/views/color_chooser/color_chooser_view.cc +++ b/ui/views/color_chooser/color_chooser_view.cc @@ -9,7 +9,7 @@ #include "base/strings/stringprintf.h" #include "base/strings/utf_string_conversions.h" #include "ui/base/events/event.h" -#include "ui/base/keycodes/keyboard_codes.h" +#include "ui/events/keycodes/keyboard_codes.h" #include "ui/gfx/canvas.h" #include "ui/views/background.h" #include "ui/views/border.h" diff --git a/ui/views/controls/button/custom_button.cc b/ui/views/controls/button/custom_button.cc index 17ea8df..4dd28da 100644 --- a/ui/views/controls/button/custom_button.cc +++ b/ui/views/controls/button/custom_button.cc @@ -6,7 +6,7 @@ #include "ui/base/accessibility/accessible_view_state.h" #include "ui/base/events/event.h" -#include "ui/base/keycodes/keyboard_codes.h" +#include "ui/events/keycodes/keyboard_codes.h" #include "ui/gfx/animation/throb_animation.h" #include "ui/gfx/screen.h" #include "ui/views/widget/widget.h" diff --git a/ui/views/controls/combobox/combobox.cc b/ui/views/controls/combobox/combobox.cc index 86aef66..cc1911d 100644 --- a/ui/views/controls/combobox/combobox.cc +++ b/ui/views/controls/combobox/combobox.cc @@ -9,9 +9,9 @@ #include "grit/ui_resources.h" #include "ui/base/accessibility/accessible_view_state.h" #include "ui/base/events/event.h" -#include "ui/base/keycodes/keyboard_codes.h" #include "ui/base/models/combobox_model.h" #include "ui/base/resource/resource_bundle.h" +#include "ui/events/keycodes/keyboard_codes.h" #include "ui/gfx/canvas.h" #include "ui/native_theme/native_theme.h" #include "ui/views/color_constants.h" diff --git a/ui/views/controls/combobox/combobox_unittest.cc b/ui/views/controls/combobox/combobox_unittest.cc index 80bac01..82b7b65 100644 --- a/ui/views/controls/combobox/combobox_unittest.cc +++ b/ui/views/controls/combobox/combobox_unittest.cc @@ -8,8 +8,8 @@ #include "base/strings/utf_string_conversions.h" #include "ui/base/events/event.h" -#include "ui/base/keycodes/keyboard_codes.h" #include "ui/base/models/combobox_model.h" +#include "ui/events/keycodes/keyboard_codes.h" #include "ui/views/ime/mock_input_method.h" #include "ui/views/test/views_test_base.h" #include "ui/views/widget/widget.h" diff --git a/ui/views/controls/link.cc b/ui/views/controls/link.cc index b82cd51..ff78d3b 100644 --- a/ui/views/controls/link.cc +++ b/ui/views/controls/link.cc @@ -10,7 +10,7 @@ #include "base/strings/utf_string_conversions.h" #include "ui/base/accessibility/accessible_view_state.h" #include "ui/base/events/event.h" -#include "ui/base/keycodes/keyboard_codes.h" +#include "ui/events/keycodes/keyboard_codes.h" #include "ui/gfx/color_utils.h" #include "ui/gfx/font.h" #include "ui/views/controls/link_listener.h" diff --git a/ui/views/controls/menu/menu_controller.cc b/ui/views/controls/menu/menu_controller.cc index f261973..ba53e21 100644 --- a/ui/views/controls/menu/menu_controller.cc +++ b/ui/views/controls/menu/menu_controller.cc @@ -17,8 +17,8 @@ #include "ui/base/dragdrop/os_exchange_data.h" #include "ui/base/events/event_constants.h" #include "ui/base/events/event_utils.h" -#include "ui/base/keycodes/keyboard_codes.h" #include "ui/base/l10n/l10n_util.h" +#include "ui/events/keycodes/keyboard_codes.h" #include "ui/gfx/canvas.h" #include "ui/gfx/native_widget_types.h" #include "ui/gfx/screen.h" diff --git a/ui/views/controls/menu/menu_win.cc b/ui/views/controls/menu/menu_win.cc index d75402b..ac08ec7 100644 --- a/ui/views/controls/menu/menu_win.cc +++ b/ui/views/controls/menu/menu_win.cc @@ -10,9 +10,9 @@ #include "base/stl_util.h" #include "base/strings/string_util.h" #include "ui/base/accelerators/accelerator.h" -#include "ui/base/keycodes/keyboard_codes.h" #include "ui/base/l10n/l10n_util.h" #include "ui/base/l10n/l10n_util_win.h" +#include "ui/events/keycodes/keyboard_codes.h" #include "ui/gfx/canvas.h" #include "ui/gfx/font.h" #include "ui/gfx/rect.h" diff --git a/ui/views/controls/menu/native_menu_win.cc b/ui/views/controls/menu/native_menu_win.cc index 10ff3a3..c48a98c 100644 --- a/ui/views/controls/menu/native_menu_win.cc +++ b/ui/views/controls/menu/native_menu_win.cc @@ -13,10 +13,10 @@ #include "base/strings/string_util.h" #include "base/win/wrapped_window_proc.h" #include "ui/base/accelerators/accelerator.h" -#include "ui/base/keycodes/keyboard_codes.h" #include "ui/base/l10n/l10n_util.h" #include "ui/base/l10n/l10n_util_win.h" #include "ui/base/models/menu_model.h" +#include "ui/events/keycodes/keyboard_codes.h" #include "ui/gfx/canvas.h" #include "ui/gfx/font.h" #include "ui/gfx/image/image.h" diff --git a/ui/views/controls/native_control.cc b/ui/views/controls/native_control.cc index e450463..3a1fe58 100644 --- a/ui/views/controls/native_control.cc +++ b/ui/views/controls/native_control.cc @@ -13,10 +13,10 @@ #include "base/logging.h" #include "base/memory/scoped_ptr.h" #include "ui/base/accessibility/accessibility_types.h" -#include "ui/base/keycodes/keyboard_code_conversion_win.h" -#include "ui/base/keycodes/keyboard_codes.h" #include "ui/base/l10n/l10n_util_win.h" #include "ui/base/view_prop.h" +#include "ui/events/keycodes/keyboard_code_conversion_win.h" +#include "ui/events/keycodes/keyboard_codes.h" #include "ui/gfx/win/hwnd_util.h" #include "ui/views/background.h" #include "ui/views/controls/native/native_view_host.h" diff --git a/ui/views/controls/native_control.h b/ui/views/controls/native_control.h index 2ec731e..80aa588 100644 --- a/ui/views/controls/native_control.h +++ b/ui/views/controls/native_control.h @@ -7,7 +7,7 @@ #include -#include "ui/base/keycodes/keyboard_codes.h" +#include "ui/events/keycodes/keyboard_codes.h" #include "ui/views/view.h" namespace views { diff --git a/ui/views/controls/scrollbar/base_scroll_bar.cc b/ui/views/controls/scrollbar/base_scroll_bar.cc index 38c0256..0d0acca 100644 --- a/ui/views/controls/scrollbar/base_scroll_bar.cc +++ b/ui/views/controls/scrollbar/base_scroll_bar.cc @@ -14,8 +14,8 @@ #include "build/build_config.h" #include "grit/ui_strings.h" #include "ui/base/events/event.h" -#include "ui/base/keycodes/keyboard_codes.h" #include "ui/base/l10n/l10n_util.h" +#include "ui/events/keycodes/keyboard_codes.h" #include "ui/gfx/canvas.h" #include "ui/views/controls/menu/menu_item_view.h" #include "ui/views/controls/menu/menu_runner.h" diff --git a/ui/views/controls/scrollbar/bitmap_scroll_bar.cc b/ui/views/controls/scrollbar/bitmap_scroll_bar.cc index 7ba82e4..2597cee 100644 --- a/ui/views/controls/scrollbar/bitmap_scroll_bar.cc +++ b/ui/views/controls/scrollbar/bitmap_scroll_bar.cc @@ -13,8 +13,8 @@ #include "base/strings/utf_string_conversions.h" #include "build/build_config.h" #include "grit/ui_strings.h" -#include "ui/base/keycodes/keyboard_codes.h" #include "ui/base/l10n/l10n_util.h" +#include "ui/events/keycodes/keyboard_codes.h" #include "ui/gfx/canvas.h" #include "ui/gfx/image/image_skia.h" #include "ui/views/controls/menu/menu.h" diff --git a/ui/views/controls/scrollbar/native_scroll_bar_views.cc b/ui/views/controls/scrollbar/native_scroll_bar_views.cc index aa812a8..6c3506f 100644 --- a/ui/views/controls/scrollbar/native_scroll_bar_views.cc +++ b/ui/views/controls/scrollbar/native_scroll_bar_views.cc @@ -5,7 +5,7 @@ #include "ui/views/controls/scrollbar/native_scroll_bar_views.h" #include "base/logging.h" -#include "ui/base/keycodes/keyboard_codes.h" +#include "ui/events/keycodes/keyboard_codes.h" #include "ui/gfx/canvas.h" #include "ui/gfx/path.h" #include "ui/views/controls/button/custom_button.h" diff --git a/ui/views/controls/tabbed_pane/tabbed_pane.cc b/ui/views/controls/tabbed_pane/tabbed_pane.cc index cb2b595..9cf8588 100644 --- a/ui/views/controls/tabbed_pane/tabbed_pane.cc +++ b/ui/views/controls/tabbed_pane/tabbed_pane.cc @@ -6,7 +6,7 @@ #include "base/logging.h" #include "ui/base/accessibility/accessible_view_state.h" -#include "ui/base/keycodes/keyboard_codes.h" +#include "ui/events/keycodes/keyboard_codes.h" #include "ui/gfx/canvas.h" #include "ui/gfx/font.h" #include "ui/views/controls/label.h" diff --git a/ui/views/controls/table/table_view_observer.h b/ui/views/controls/table/table_view_observer.h index bd2ff36..44400ee 100644 --- a/ui/views/controls/table/table_view_observer.h +++ b/ui/views/controls/table/table_view_observer.h @@ -5,7 +5,7 @@ #ifndef UI_VIEWS_CONTROLS_TABLE_TABLE_VIEW_OBSERVER_H_ #define UI_VIEWS_CONTROLS_TABLE_TABLE_VIEW_OBSERVER_H_ -#include "ui/base/keycodes/keyboard_codes.h" +#include "ui/events/keycodes/keyboard_codes.h" namespace views { diff --git a/ui/views/controls/textfield/native_textfield_views_unittest.cc b/ui/views/controls/textfield/native_textfield_views_unittest.cc index 9c2b6f2..adfaf8e 100644 --- a/ui/views/controls/textfield/native_textfield_views_unittest.cc +++ b/ui/views/controls/textfield/native_textfield_views_unittest.cc @@ -24,9 +24,9 @@ #include "ui/base/dragdrop/drag_drop_types.h" #include "ui/base/events/event.h" #include "ui/base/ime/text_input_client.h" -#include "ui/base/keycodes/keyboard_codes.h" #include "ui/base/l10n/l10n_util.h" #include "ui/base/ui_base_switches.h" +#include "ui/events/keycodes/keyboard_codes.h" #include "ui/gfx/render_text.h" #include "ui/views/controls/textfield/textfield.h" #include "ui/views/controls/textfield/textfield_controller.h" diff --git a/ui/views/controls/textfield/native_textfield_win.cc b/ui/views/controls/textfield/native_textfield_win.cc index 1268a69..ccdc312 100644 --- a/ui/views/controls/textfield/native_textfield_win.cc +++ b/ui/views/controls/textfield/native_textfield_win.cc @@ -19,10 +19,10 @@ #include "ui/base/clipboard/scoped_clipboard_writer.h" #include "ui/base/events/event.h" #include "ui/base/ime/win/tsf_bridge.h" -#include "ui/base/keycodes/keyboard_codes.h" #include "ui/base/l10n/l10n_util.h" #include "ui/base/l10n/l10n_util_win.h" #include "ui/base/win/mouse_wheel_util.h" +#include "ui/events/keycodes/keyboard_codes.h" #include "ui/gfx/range/range.h" #include "ui/gfx/win/hwnd_util.h" #include "ui/native_theme/native_theme_win.h" diff --git a/ui/views/controls/textfield/textfield.cc b/ui/views/controls/textfield/textfield.cc index 269bc0f..55352e1 100644 --- a/ui/views/controls/textfield/textfield.cc +++ b/ui/views/controls/textfield/textfield.cc @@ -12,9 +12,9 @@ #include "ui/base/accessibility/accessible_view_state.h" #include "ui/base/events/event.h" #include "ui/base/ime/text_input_type.h" -#include "ui/base/keycodes/keyboard_codes.h" #include "ui/base/resource/resource_bundle.h" #include "ui/base/ui_base_switches.h" +#include "ui/events/keycodes/keyboard_codes.h" #include "ui/gfx/insets.h" #include "ui/gfx/range/range.h" #include "ui/gfx/selection_model.h" diff --git a/ui/views/controls/textfield/textfield.h b/ui/views/controls/textfield/textfield.h index 7b5baf3..3f79635 100644 --- a/ui/views/controls/textfield/textfield.h +++ b/ui/views/controls/textfield/textfield.h @@ -15,7 +15,7 @@ #include "build/build_config.h" #include "third_party/skia/include/core/SkColor.h" #include "ui/base/ime/text_input_type.h" -#include "ui/base/keycodes/keyboard_codes.h" +#include "ui/events/keycodes/keyboard_codes.h" #include "ui/gfx/font_list.h" #include "ui/gfx/native_widget_types.h" #include "ui/gfx/text_constants.h" diff --git a/ui/views/controls/tree/tree_view.cc b/ui/views/controls/tree/tree_view.cc index 0157902..4727b24 100644 --- a/ui/views/controls/tree/tree_view.cc +++ b/ui/views/controls/tree/tree_view.cc @@ -11,8 +11,8 @@ #include "grit/ui_resources.h" #include "ui/base/accessibility/accessible_view_state.h" #include "ui/base/events/event.h" -#include "ui/base/keycodes/keyboard_codes.h" #include "ui/base/resource/resource_bundle.h" +#include "ui/events/keycodes/keyboard_codes.h" #include "ui/gfx/canvas.h" #include "ui/gfx/image/image.h" #include "ui/gfx/rect_conversions.h" diff --git a/ui/views/controls/tree/tree_view_controller.h b/ui/views/controls/tree/tree_view_controller.h index 38e7fcc..b1ebf2b 100644 --- a/ui/views/controls/tree/tree_view_controller.h +++ b/ui/views/controls/tree/tree_view_controller.h @@ -5,7 +5,7 @@ #ifndef UI_VIEWS_CONTROLS_TREE_TREE_VIEW_CONTROLLER_H_ #define UI_VIEWS_CONTROLS_TREE_TREE_VIEW_CONTROLLER_H_ -#include "ui/base/keycodes/keyboard_codes.h" +#include "ui/events/keycodes/keyboard_codes.h" #include "ui/views/views_export.h" namespace ui { diff --git a/ui/views/controls/webview/web_dialog_view.cc b/ui/views/controls/webview/web_dialog_view.cc index 1517379..6d72997 100644 --- a/ui/views/controls/webview/web_dialog_view.cc +++ b/ui/views/controls/webview/web_dialog_view.cc @@ -14,7 +14,7 @@ #include "content/public/browser/notification_types.h" #include "content/public/browser/render_view_host.h" #include "content/public/browser/web_contents.h" -#include "ui/base/keycodes/keyboard_codes.h" +#include "ui/events/keycodes/keyboard_codes.h" #include "ui/views/controls/webview/webview.h" #include "ui/views/layout/fill_layout.h" #include "ui/views/widget/root_view.h" diff --git a/ui/views/focus/accelerator_handler_win.cc b/ui/views/focus/accelerator_handler_win.cc index 7d11c97..5ce1aff 100644 --- a/ui/views/focus/accelerator_handler_win.cc +++ b/ui/views/focus/accelerator_handler_win.cc @@ -5,8 +5,8 @@ #include "ui/views/focus/accelerator_handler.h" #include "ui/base/events/event.h" -#include "ui/base/keycodes/keyboard_code_conversion_win.h" -#include "ui/base/keycodes/keyboard_codes.h" +#include "ui/events/keycodes/keyboard_code_conversion_win.h" +#include "ui/events/keycodes/keyboard_codes.h" #include "ui/views/focus/focus_manager.h" #include "ui/views/widget/widget.h" diff --git a/ui/views/focus/focus_manager.cc b/ui/views/focus/focus_manager.cc index 6e2a644..1c2adee 100644 --- a/ui/views/focus/focus_manager.cc +++ b/ui/views/focus/focus_manager.cc @@ -12,7 +12,7 @@ #include "build/build_config.h" #include "ui/base/accelerators/accelerator.h" #include "ui/base/events/event.h" -#include "ui/base/keycodes/keyboard_codes.h" +#include "ui/events/keycodes/keyboard_codes.h" #include "ui/views/focus/focus_manager_delegate.h" #include "ui/views/focus/focus_search.h" #include "ui/views/focus/view_storage.h" diff --git a/ui/views/focus/focus_manager_unittest.cc b/ui/views/focus/focus_manager_unittest.cc index 8541f85..a2c9d48 100644 --- a/ui/views/focus/focus_manager_unittest.cc +++ b/ui/views/focus/focus_manager_unittest.cc @@ -7,7 +7,7 @@ #include "base/strings/utf_string_conversions.h" #include "ui/base/accelerators/accelerator.h" -#include "ui/base/keycodes/keyboard_codes.h" +#include "ui/events/keycodes/keyboard_codes.h" #include "ui/views/accessible_pane_view.h" #include "ui/views/controls/button/label_button.h" #include "ui/views/controls/textfield/textfield.h" diff --git a/ui/views/ime/mock_input_method.cc b/ui/views/ime/mock_input_method.cc index e48af72..3bd7168 100644 --- a/ui/views/ime/mock_input_method.cc +++ b/ui/views/ime/mock_input_method.cc @@ -8,7 +8,7 @@ #include "base/logging.h" #include "ui/base/events/event.h" #include "ui/base/ime/text_input_client.h" -#include "ui/base/keycodes/keyboard_codes.h" +#include "ui/events/keycodes/keyboard_codes.h" #include "ui/views/widget/widget.h" namespace views { diff --git a/ui/views/view_unittest.cc b/ui/views/view_unittest.cc index 6cd2a00..16e5de6 100644 --- a/ui/views/view_unittest.cc +++ b/ui/views/view_unittest.cc @@ -13,11 +13,11 @@ #include "ui/base/accelerators/accelerator.h" #include "ui/base/clipboard/clipboard.h" #include "ui/base/events/event.h" -#include "ui/base/keycodes/keyboard_codes.h" #include "ui/base/l10n/l10n_util.h" #include "ui/compositor/compositor.h" #include "ui/compositor/layer.h" #include "ui/compositor/layer_animator.h" +#include "ui/events/keycodes/keyboard_codes.h" #include "ui/gfx/canvas.h" #include "ui/gfx/path.h" #include "ui/gfx/transform.h" diff --git a/ui/views/widget/native_widget_win.cc b/ui/views/widget/native_widget_win.cc index 4a3511d..fa7bd91 100644 --- a/ui/views/widget/native_widget_win.cc +++ b/ui/views/widget/native_widget_win.cc @@ -20,12 +20,12 @@ #include "ui/base/dragdrop/os_exchange_data_provider_win.h" #include "ui/base/events/event.h" #include "ui/base/ime/input_method_factory.h" -#include "ui/base/keycodes/keyboard_code_conversion_win.h" #include "ui/base/l10n/l10n_util_win.h" #include "ui/base/theme_provider.h" #include "ui/base/view_prop.h" #include "ui/base/win/mouse_wheel_util.h" #include "ui/base/win/shell.h" +#include "ui/events/keycodes/keyboard_code_conversion_win.h" #include "ui/gfx/canvas.h" #include "ui/gfx/canvas_skia_paint.h" #include "ui/gfx/path.h" diff --git a/ui/views/widget/root_view.cc b/ui/views/widget/root_view.cc index ac1cbf2..ed00473 100644 --- a/ui/views/widget/root_view.cc +++ b/ui/views/widget/root_view.cc @@ -11,8 +11,8 @@ #include "ui/base/accessibility/accessible_view_state.h" #include "ui/base/dragdrop/drag_drop_types.h" #include "ui/base/events/event.h" -#include "ui/base/keycodes/keyboard_codes.h" #include "ui/compositor/layer.h" +#include "ui/events/keycodes/keyboard_codes.h" #include "ui/gfx/canvas.h" #include "ui/views/focus/view_storage.h" #include "ui/views/layout/fill_layout.h" diff --git a/ui/views/win/hwnd_message_handler.cc b/ui/views/win/hwnd_message_handler.cc index dbf6018..11fc6d8 100644 --- a/ui/views/win/hwnd_message_handler.cc +++ b/ui/views/win/hwnd_message_handler.cc @@ -14,11 +14,11 @@ #include "ui/base/events/event.h" #include "ui/base/events/event_utils.h" #include "ui/base/gestures/gesture_sequence.h" -#include "ui/base/keycodes/keyboard_code_conversion_win.h" #include "ui/base/touch/touch_enabled.h" #include "ui/base/win/mouse_wheel_util.h" #include "ui/base/win/shell.h" #include "ui/base/win/touch_input.h" +#include "ui/events/keycodes/keyboard_code_conversion_win.h" #include "ui/gfx/canvas.h" #include "ui/gfx/canvas_skia_paint.h" #include "ui/gfx/icon_util.h" diff --git a/ui/views/window/dialog_client_view.cc b/ui/views/window/dialog_client_view.cc index a9b97dd..e03c8a141 100644 --- a/ui/views/window/dialog_client_view.cc +++ b/ui/views/window/dialog_client_view.cc @@ -6,7 +6,7 @@ #include -#include "ui/base/keycodes/keyboard_codes.h" +#include "ui/events/keycodes/keyboard_codes.h" #include "ui/views/controls/button/blue_button.h" #include "ui/views/controls/button/label_button.h" #include "ui/views/layout/layout_constants.h" -- cgit v1.1