Chromium Code Reviews| Index: chrome/browser/chromeos/accessibility/accessibility_manager.h |
| diff --git a/chrome/browser/chromeos/accessibility/accessibility_manager.h b/chrome/browser/chromeos/accessibility/accessibility_manager.h |
| index e6dadbecb9304f49d24480a77538db100d66bea6..f976f9a8745dbb3bd572e7a11c0afcd7bce78ec6 100644 |
| --- a/chrome/browser/chromeos/accessibility/accessibility_manager.h |
| +++ b/chrome/browser/chromeos/accessibility/accessibility_manager.h |
| @@ -6,6 +6,7 @@ |
| #define CHROME_BROWSER_CHROMEOS_ACCESSIBILITY_ACCESSIBILITY_MANAGER_H_ |
| #include "ash/accessibility_delegate.h" |
| +#include "ash/session_state_observer.h" |
| #include "base/memory/weak_ptr.h" |
| #include "base/prefs/pref_change_registrar.h" |
| #include "base/time/time.h" |
| @@ -35,12 +36,26 @@ struct AccessibilityStatusEventDetails { |
| ash::AccessibilityNotificationVisibility notify; |
| }; |
| +// A class to attach / detach an object as a session state observer with a |
| +// scoped pointer. |
| +class ScopedSessionStateObserver { |
|
dmazzoni
2013/12/13 17:30:07
Could you move this to session_state_observer.h?
Mr4D (OOO till 08-26)
2013/12/13 17:58:33
Done.
|
| + public: |
| + explicit ScopedSessionStateObserver(ash::SessionStateObserver* observer); |
| + virtual ~ScopedSessionStateObserver(); |
| + |
| + private: |
| + ash::SessionStateObserver* observer_; |
| + |
| + DISALLOW_COPY_AND_ASSIGN(ScopedSessionStateObserver); |
| +}; |
| + |
| // AccessibilityManager changes the statuses of accessibility features |
| // watching profile notifications and pref-changes. |
| // TODO(yoshiki): merge MagnificationManager with AccessibilityManager. |
| class AccessibilityManager : public content::NotificationObserver, |
| public extensions::EventRouter::Observer, |
| - extensions::api::braille_display_private::BrailleObserver { |
| + extensions::api::braille_display_private::BrailleObserver, |
| + public ash::SessionStateObserver { |
| public: |
| // Creates an instance of AccessibilityManager, this should be called once, |
| // because only one instance should exist at the same time. |
| @@ -67,6 +82,9 @@ class AccessibilityManager : public content::NotificationObserver, |
| const char* pref_path_; |
| }; |
| + // Returns true when the accessibility menu should be shown. |
| + bool ShouldShowAccessibilityMenu(); |
| + |
| // Enables or disables the large cursor. |
| void EnableLargeCursor(bool enabled); |
| // Returns true if the large cursor is enabled, or false if not. |
| @@ -110,6 +128,9 @@ class AccessibilityManager : public content::NotificationObserver, |
| // Returns the autoclick delay in milliseconds. |
| int GetAutoclickDelay() const; |
| + // SessionStateObserver overrides: |
| + virtual void ActiveUserChanged(const std::string& user_id) OVERRIDE; |
| + |
| void SetProfileForTest(Profile* profile); |
| static void SetBrailleControllerForTest( |
| @@ -185,6 +206,7 @@ class AccessibilityManager : public content::NotificationObserver, |
| content::NotificationRegistrar notification_registrar_; |
| scoped_ptr<PrefChangeRegistrar> pref_change_registrar_; |
| scoped_ptr<PrefChangeRegistrar> local_state_pref_change_registrar_; |
| + scoped_ptr<ScopedSessionStateObserver> session_state_observer_; |
| PrefHandler large_cursor_pref_handler_; |
| PrefHandler spoken_feedback_pref_handler_; |