summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authortfarina@chromium.org <tfarina@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-04-02 22:40:06 +0000
committertfarina@chromium.org <tfarina@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-04-02 22:40:06 +0000
commit9294cbb0e98567abb0a2fd6789845a6575951641 (patch)
treea68fc36e107c88cb7ee00478eb8c25abfa3d9411
parent03d3ba01a3e7055c13c88d27ff03c9d8a79590c2 (diff)
downloadchromium_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.cc5
-rw-r--r--chrome/browser/ui/gtk/extensions/extension_keybinding_registry_gtk.cc1
-rw-r--r--chrome/browser/ui/gtk/global_menu_bar.cc12
-rw-r--r--ui/base/accelerators/accelerator_gtk.cc46
-rw-r--r--ui/base/accelerators/accelerator_gtk.h48
-rw-r--r--ui/base/keycodes/keyboard_codes_posix.h4
-rw-r--r--ui/base/keycodes/keyboard_codes_win.h4
-rw-r--r--ui/ui.gyp1
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
diff --git a/ui/ui.gyp b/ui/ui.gyp
index 8bc9f88..22adc59 100644
--- a/ui/ui.gyp
+++ b/ui/ui.gyp
@@ -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',