Index: ash/system/tray_accessibility.h |
diff --git a/ash/system/tray_accessibility.h b/ash/system/tray_accessibility.h |
index 1000b65e65841d09ef03547abd951e6dea2451aa..273a670853842c354878e50c2da9966cd3d967f5 100644 |
--- a/ash/system/tray_accessibility.h |
+++ b/ash/system/tray_accessibility.h |
@@ -7,15 +7,25 @@ |
#include "ash/shell_delegate.h" |
#include "ash/shell_observer.h" |
+#include "ash/system/tray/tray_details_view.h" |
#include "ash/system/tray/tray_image_item.h" |
+#include "ash/system/tray/tray_views.h" |
+#include "base/gtest_prod_util.h" |
+ |
+namespace chromeos { |
+class TrayAccessibilityTest; |
+} |
namespace views { |
+class Button; |
class ImageView; |
class View; |
} |
namespace ash { |
+class SystemTrayItem; |
+ |
class ASH_EXPORT AccessibilityObserver { |
public: |
virtual ~AccessibilityObserver() {} |
@@ -26,6 +36,50 @@ class ASH_EXPORT AccessibilityObserver { |
}; |
namespace internal { |
+namespace tray { |
+ |
+class AccessibilityPopupView; |
+ |
+class AccessibilityDetailedView : public TrayDetailsView, |
+ public ViewClickListener, |
+ public views::ButtonListener, |
+ public ShellObserver { |
+ public: |
+ explicit AccessibilityDetailedView(SystemTrayItem* owner, |
+ user::LoginStatus login); |
+ virtual ~AccessibilityDetailedView() {} |
+ |
+ private: |
+ // Add the accessibility feature list. |
+ void AppendAccessibilityList(); |
+ |
+ // Add help entries. |
+ void AppendHelpEntries(); |
+ |
+ HoverHighlightView* AddScrollListItem(const string16& text, |
+ gfx::Font::FontStyle style, |
+ bool checked); |
+ // Overridden from ViewClickListener. |
+ virtual void ClickedOn(views::View* sender) OVERRIDE; |
+ // Overridden from ButtonListener. |
+ virtual void ButtonPressed(views::Button* sender, |
+ const ui::Event& event) OVERRIDE; |
+ |
+ views::View* spoken_feedback_view_; |
+ views::View* high_contrast_view_; |
+ views::View* screen_magnifier_view_;; |
+ views::View* help_view_; |
+ |
+ bool spoken_feedback_enabled_; |
+ bool high_contrast_enabled_; |
+ bool screen_magnifier_enabled_; |
+ user::LoginStatus login_; |
+ |
+ friend class chromeos::TrayAccessibilityTest; |
+ DISALLOW_COPY_AND_ASSIGN(AccessibilityDetailedView); |
+}; |
+ |
+} // namespace tray |
class TrayAccessibility : public TrayImageItem, |
public AccessibilityObserver { |
@@ -34,6 +88,9 @@ class TrayAccessibility : public TrayImageItem, |
virtual ~TrayAccessibility(); |
private: |
+ void SetTrayIconVisible(bool visible); |
+ tray::AccessibilityDetailedView* CreateDetailedMenu(); |
+ |
// Overridden from TrayImageItem. |
virtual bool GetInitialVisibility() OVERRIDE; |
virtual views::View* CreateDefaultView(user::LoginStatus status) OVERRIDE; |
@@ -47,14 +104,17 @@ class TrayAccessibility : public TrayImageItem, |
AccessibilityNotificationVisibility notify) OVERRIDE; |
views::View* default_; |
- views::View* detailed_; |
+ tray::AccessibilityPopupView* detailed_popup_; |
+ tray::AccessibilityDetailedView* detailed_menu_; |
bool request_popup_view_; |
+ bool tray_icon_visible_; |
user::LoginStatus login_; |
// Bitmap of values from AccessibilityState enum. |
uint32 previous_accessibility_state_; |
+ friend class chromeos::TrayAccessibilityTest; |
DISALLOW_COPY_AND_ASSIGN(TrayAccessibility); |
}; |