diff options
author | tfarina@chromium.org <tfarina@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-04-02 22:40:06 +0000 |
---|---|---|
committer | tfarina@chromium.org <tfarina@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-04-02 22:40:06 +0000 |
commit | 9294cbb0e98567abb0a2fd6789845a6575951641 (patch) | |
tree | a68fc36e107c88cb7ee00478eb8c25abfa3d9411 | |
parent | 03d3ba01a3e7055c13c88d27ff03c9d8a79590c2 (diff) | |
download | chromium_src-9294cbb0e98567abb0a2fd6789845a6575951641.zip chromium_src-9294cbb0e98567abb0a2fd6789845a6575951641.tar.gz chromium_src-9294cbb0e98567abb0a2fd6789845a6575951641.tar.bz2 |
ui/base: Clean up our AcceleratorGtk class.
Currently this class is fully implemented in the header file, and this have annoyed me for a long time.
Most of our class implementations reside in source files, so this patch fix this now. And this also makes
it easier to read.
R=sky@chromium.org
Review URL: https://chromiumcodereview.appspot.com/9965049
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@130236 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r-- | chrome/browser/ui/gtk/browser_actions_toolbar_gtk.cc | 5 | ||||
-rw-r--r-- | chrome/browser/ui/gtk/extensions/extension_keybinding_registry_gtk.cc | 1 | ||||
-rw-r--r-- | chrome/browser/ui/gtk/global_menu_bar.cc | 12 | ||||
-rw-r--r-- | ui/base/accelerators/accelerator_gtk.cc | 46 | ||||
-rw-r--r-- | ui/base/accelerators/accelerator_gtk.h | 48 | ||||
-rw-r--r-- | ui/base/keycodes/keyboard_codes_posix.h | 4 | ||||
-rw-r--r-- | ui/base/keycodes/keyboard_codes_win.h | 4 | ||||
-rw-r--r-- | ui/ui.gyp | 1 |
8 files changed, 77 insertions, 44 deletions
diff --git a/chrome/browser/ui/gtk/browser_actions_toolbar_gtk.cc b/chrome/browser/ui/gtk/browser_actions_toolbar_gtk.cc index 2c3f8d8..588def4 100644 --- a/chrome/browser/ui/gtk/browser_actions_toolbar_gtk.cc +++ b/chrome/browser/ui/gtk/browser_actions_toolbar_gtk.cc @@ -4,8 +4,9 @@ #include "chrome/browser/ui/gtk/browser_actions_toolbar_gtk.h" -#include <algorithm> #include <gtk/gtk.h> + +#include <algorithm> #include <vector> #include "base/bind.h" @@ -31,8 +32,8 @@ #include "chrome/browser/ui/tab_contents/tab_contents_wrapper.h" #include "chrome/common/chrome_notification_types.h" #include "chrome/common/extensions/extension.h" -#include "chrome/common/extensions/extension_manifest_constants.h" #include "chrome/common/extensions/extension_action.h" +#include "chrome/common/extensions/extension_manifest_constants.h" #include "chrome/common/extensions/extension_resource.h" #include "content/public/browser/notification_details.h" #include "content/public/browser/notification_source.h" diff --git a/chrome/browser/ui/gtk/extensions/extension_keybinding_registry_gtk.cc b/chrome/browser/ui/gtk/extensions/extension_keybinding_registry_gtk.cc index 4ec31e7..dfa1c87 100644 --- a/chrome/browser/ui/gtk/extensions/extension_keybinding_registry_gtk.cc +++ b/chrome/browser/ui/gtk/extensions/extension_keybinding_registry_gtk.cc @@ -8,6 +8,7 @@ #include "chrome/browser/extensions/extension_service.h" #include "chrome/browser/profiles/profile.h" #include "chrome/common/extensions/extension.h" +#include "ui/base/keycodes/keyboard_code_conversion_gtk.h" ExtensionKeybindingRegistryGtk::ExtensionKeybindingRegistryGtk( Profile* profile, gfx::NativeWindow window) diff --git a/chrome/browser/ui/gtk/global_menu_bar.cc b/chrome/browser/ui/gtk/global_menu_bar.cc index 7916916..8eef865 100644 --- a/chrome/browser/ui/gtk/global_menu_bar.cc +++ b/chrome/browser/ui/gtk/global_menu_bar.cc @@ -174,15 +174,15 @@ GlobalMenuBar::GlobalMenuBar(Browser* browser) browser_->command_updater()->IsCommandEnabled(it->first)); // Set the accelerator for each menu item. - const ui::AcceleratorGtk* accelerator_gtk = - AcceleratorsGtk::GetInstance()->GetPrimaryAcceleratorForCommand( - it->first); - if (accelerator_gtk) { + AcceleratorsGtk* accelerators = AcceleratorsGtk::GetInstance(); + const ui::AcceleratorGtk* accelerator = + accelerators->GetPrimaryAcceleratorForCommand(it->first); + if (accelerator) { gtk_widget_add_accelerator(it->second, "activate", dummy_accel_group_, - accelerator_gtk->GetGdkKeyCode(), - accelerator_gtk->gdk_modifier_type(), + accelerator->GetGdkKeyCode(), + accelerator->gdk_modifier_type(), GTK_ACCEL_VISIBLE); } diff --git a/ui/base/accelerators/accelerator_gtk.cc b/ui/base/accelerators/accelerator_gtk.cc new file mode 100644 index 0000000..5bac48c --- /dev/null +++ b/ui/base/accelerators/accelerator_gtk.cc @@ -0,0 +1,46 @@ +// 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/accelerators/accelerator_gtk.h" + +#include "ui/base/keycodes/keyboard_code_conversion_gtk.h" +#include "ui/base/keycodes/keyboard_codes_posix.h" + +namespace ui { + +AcceleratorGtk::AcceleratorGtk() : gdk_key_code_(0) { +} + +AcceleratorGtk::AcceleratorGtk(guint key_code, GdkModifierType modifier_type) + : Accelerator(WindowsKeyCodeForGdkKeyCode(key_code), modifier_type), + gdk_key_code_(key_code) { +} + +AcceleratorGtk::AcceleratorGtk(KeyboardCode key_code, + bool shift_pressed, + bool ctrl_pressed, + bool alt_pressed) + : Accelerator(key_code, 0), + gdk_key_code_(0) { + if (shift_pressed) + modifiers_ |= GDK_SHIFT_MASK; + if (ctrl_pressed) + modifiers_ |= GDK_CONTROL_MASK; + if (alt_pressed) + modifiers_ |= GDK_MOD1_MASK; +} + +AcceleratorGtk::~AcceleratorGtk() { +} + +guint AcceleratorGtk::GetGdkKeyCode() const { + if (gdk_key_code_ > 0) + return gdk_key_code_; + + // The second parameter is false because accelerator keys are expressed in + // terms of the non-shift-modified key. + return GdkKeyCodeForWindowsKeyCode(key_code_, false); +} + +} // namespace ui diff --git a/ui/base/accelerators/accelerator_gtk.h b/ui/base/accelerators/accelerator_gtk.h index 4b4f1b3..8ec6fd6 100644 --- a/ui/base/accelerators/accelerator_gtk.h +++ b/ui/base/accelerators/accelerator_gtk.h @@ -1,4 +1,4 @@ -// Copyright (c) 2011 The Chromium Authors. All rights reserved. +// 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. @@ -9,49 +9,33 @@ #include <gdk/gdk.h> #include "ui/base/accelerators/accelerator.h" -#include "ui/base/keycodes/keyboard_code_conversion_gtk.h" -#include "ui/base/keycodes/keyboard_codes_posix.h" +#include "ui/base/ui_export.h" namespace ui { -class AcceleratorGtk : public Accelerator { +class UI_EXPORT AcceleratorGtk : public Accelerator { public: - AcceleratorGtk(ui::KeyboardCode key_code, - bool shift_pressed, bool ctrl_pressed, bool alt_pressed) - : gdk_keyval_(0) { - key_code_ = key_code; - modifiers_ = 0; - if (shift_pressed) - modifiers_ |= GDK_SHIFT_MASK; - if (ctrl_pressed) - modifiers_ |= GDK_CONTROL_MASK; - if (alt_pressed) - modifiers_ |= GDK_MOD1_MASK; - } + AcceleratorGtk(); - AcceleratorGtk(guint keyval, GdkModifierType modifier_type) { - key_code_ = ui::WindowsKeyCodeForGdkKeyCode(keyval); - gdk_keyval_ = keyval; - modifiers_ = modifier_type; - } + AcceleratorGtk(guint key_code, GdkModifierType modifier_type); - AcceleratorGtk() : gdk_keyval_(0) { } - virtual ~AcceleratorGtk() { } + AcceleratorGtk(KeyboardCode key_code, + bool shift_pressed, + bool ctrl_pressed, + bool alt_pressed); - guint GetGdkKeyCode() const { - return gdk_keyval_ > 0 ? - // The second parameter is false because accelerator keys are - // expressed in terms of the non-shift-modified key. - gdk_keyval_ : ui::GdkKeyCodeForWindowsKeyCode(key_code_, false); - } + virtual ~AcceleratorGtk(); + + guint GetGdkKeyCode() const; GdkModifierType gdk_modifier_type() const { - return static_cast<GdkModifierType>(modifiers()); + return static_cast<GdkModifierType>(modifiers_); } private: - // The GDK keycode. - guint gdk_keyval_; + guint gdk_key_code_; + + // Copy and assign is allowed. }; } // namespace ui diff --git a/ui/base/keycodes/keyboard_codes_posix.h b/ui/base/keycodes/keyboard_codes_posix.h index 4d10edf..e7f679d 100644 --- a/ui/base/keycodes/keyboard_codes_posix.h +++ b/ui/base/keycodes/keyboard_codes_posix.h @@ -34,7 +34,7 @@ namespace ui { -typedef enum { +enum KeyboardCode { VKEY_BACK = 0x08, VKEY_TAB = 0x09, VKEY_BACKTAB = 0x0A, @@ -211,7 +211,7 @@ typedef enum { // unassigned. VKEY_BRIGHTNESS_DOWN = 0xD8, VKEY_BRIGHTNESS_UP = 0xD9 -} KeyboardCode; +}; } // namespace ui diff --git a/ui/base/keycodes/keyboard_codes_win.h b/ui/base/keycodes/keyboard_codes_win.h index 060c9c7..c13a942 100644 --- a/ui/base/keycodes/keyboard_codes_win.h +++ b/ui/base/keycodes/keyboard_codes_win.h @@ -11,7 +11,7 @@ namespace ui { -typedef enum { +enum KeyboardCode { VKEY_BACK = VK_BACK, VKEY_TAB = VK_TAB, VKEY_CLEAR = VK_CLEAR, @@ -182,7 +182,7 @@ typedef enum { VKEY_PA1 = VK_PA1, VKEY_OEM_CLEAR = VK_OEM_CLEAR, VKEY_UNKNOWN = 0 -} KeyboardCode; +}; } // namespace ui @@ -47,6 +47,7 @@ 'base/accelerators/accelerator.h', 'base/accelerators/accelerator_cocoa.h', 'base/accelerators/accelerator_cocoa.mm', + 'base/accelerators/accelerator_gtk.cc', 'base/accelerators/accelerator_gtk.h', 'base/accelerators/accelerator_manager.cc', 'base/accelerators/accelerator_manager.h', |