Index: ash/sticky_keys/sticky_keys_controller.h |
diff --git a/ash/sticky_keys/sticky_keys_controller.h b/ash/sticky_keys/sticky_keys_controller.h |
index c31eebd70a8e1ca428a959d885305fb9cc4329e0..30b0d3d1b1f2120cbeea0ed68d76e630faae2d09 100644 |
--- a/ash/sticky_keys/sticky_keys_controller.h |
+++ b/ash/sticky_keys/sticky_keys_controller.h |
@@ -6,6 +6,7 @@ |
#define ASH_STICKY_KEYS_STICKY_KEYS_CONTROLLER_H_ |
#include "ash/ash_export.h" |
+#include "ash/sticky_keys/sticky_keys_constants.h" |
#include "base/memory/scoped_ptr.h" |
#include "ui/events/event_constants.h" |
#include "ui/events/event_handler.h" |
@@ -22,6 +23,7 @@ class Window; |
namespace ash { |
+class StickyKeysOverlay; |
class StickyKeysHandler; |
// StickyKeysController is an accessibility feature for users to be able to |
@@ -80,6 +82,9 @@ class ASH_EXPORT StickyKeysController : public ui::EventHandler { |
virtual void OnMouseEvent(ui::MouseEvent* event) OVERRIDE; |
virtual void OnScrollEvent(ui::ScrollEvent* event) OVERRIDE; |
+ // Updates the overlay UI with the current state of the sticky keys. |
+ void UpdateOverlay(); |
+ |
// Whether sticky keys is activated and modifying events. |
bool enabled_; |
@@ -88,6 +93,8 @@ class ASH_EXPORT StickyKeysController : public ui::EventHandler { |
scoped_ptr<StickyKeysHandler> alt_sticky_key_; |
scoped_ptr<StickyKeysHandler> ctrl_sticky_key_; |
+ scoped_ptr<StickyKeysOverlay> overlay_; |
+ |
DISALLOW_COPY_AND_ASSIGN(StickyKeysController); |
}; |
@@ -139,22 +146,9 @@ class ASH_EXPORT StickyKeysHandler { |
virtual void DispatchScrollEvent(ui::ScrollEvent* event, |
aura::Window* target) = 0; |
}; |
- // Represents Sticky Key state. |
- enum StickyKeyState { |
- // The sticky key is disabled. Incomming non modifier key events are not |
- // affected. |
- DISABLED, |
- // The sticky key is enabled. Incomming non modifier key down events are |
- // modified with |modifier_flag_|. After that, sticky key state become |
- // DISABLED. |
- ENABLED, |
- // The sticky key is locked. Incomming non modifier key down events are |
- // modified with |modifier_flag_|. |
- LOCKED, |
- }; |
// This class takes an ownership of |delegate|. |
- StickyKeysHandler(ui::EventFlags modifier_flag, |
+ StickyKeysHandler(StickyKeyModifier modifier, |
StickyKeysHandlerDelegate* delegate); |
~StickyKeysHandler(); |
@@ -207,7 +201,10 @@ class ASH_EXPORT StickyKeysHandler { |
void AppendModifier(ui::MouseEvent* event); |
void AppendModifier(ui::ScrollEvent* event); |
- // The modifier flag to be monitored and appended. |
+ // The modifier key this handler is responsible for. |
+ StickyKeyModifier modifier_; |
+ |
+ // The modifier flag to be monitored and appended to events. |
const ui::EventFlags modifier_flag_; |
// The current sticky key status. |