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. |