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_; |