Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(127)

Unified Diff: ui/base/models/accelerator.h

Issue 8508055: Move views::Accelerator to ui in order to use it from aura code. (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Created 9 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: ui/base/models/accelerator.h
diff --git a/ui/base/models/accelerator.h b/ui/base/models/accelerator.h
index 83170b79a48bf286f51bb872a8d3c2c68ae478c8..c73b5c2dcf2ec76d24d585be53f35d808364e8cf 100644
--- a/ui/base/models/accelerator.h
+++ b/ui/base/models/accelerator.h
@@ -6,6 +6,7 @@
#define UI_BASE_MODELS_ACCELERATOR_H_
#pragma once
+#include "ui/base/events.h"
#include "ui/base/keycodes/keyboard_codes.h"
#include "ui/base/ui_export.h"
@@ -26,6 +27,18 @@ class UI_EXPORT Accelerator {
modifiers_ = accelerator.modifiers_;
}
+ Accelerator(ui::KeyboardCode keycode,
+ bool shift_pressed, bool ctrl_pressed, bool alt_pressed) {
+ key_code_ = keycode;
+ modifiers_ = 0;
+ if (shift_pressed)
+ modifiers_ |= ui::EF_SHIFT_DOWN;
+ if (ctrl_pressed)
+ modifiers_ |= ui::EF_CONTROL_DOWN;
+ if (alt_pressed)
+ modifiers_ |= ui::EF_ALT_DOWN;
+ }
+
virtual ~Accelerator() {}
Accelerator& operator=(const Accelerator& accelerator) {
@@ -56,6 +69,18 @@ class UI_EXPORT Accelerator {
int modifiers() const { return modifiers_; }
+ bool IsShiftDown() const {
+ return (modifiers_ & ui::EF_SHIFT_DOWN) == ui::EF_SHIFT_DOWN;
+ }
+
+ bool IsCtrlDown() const {
+ return (modifiers_ & ui::EF_CONTROL_DOWN) == ui::EF_CONTROL_DOWN;
+ }
+
+ bool IsAltDown() const {
+ return (modifiers_ & ui::EF_ALT_DOWN) == ui::EF_ALT_DOWN;
+ }
+
protected:
// The keycode (VK_...).
ui::KeyboardCode key_code_;
@@ -64,6 +89,17 @@ class UI_EXPORT Accelerator {
int modifiers_;
};
+// An interface that classes that want to register for keyboard accelerators
+// should implement.
+class UI_EXPORT AcceleratorTarget {
+ public:
+ // This method should return true if the accelerator was processed.
+ virtual bool AcceleratorPressed(const Accelerator& accelerator) = 0;
+
+ protected:
+ virtual ~AcceleratorTarget() {}
+};
+
// Since acclerator code is one of the few things that can't be cross platform
// in the chrome UI, separate out just the GetAcceleratorForCommandId() from
// the menu delegates.

Powered by Google App Engine
This is Rietveld 408576698