Index: ash/system/status_area_widget.h |
diff --git a/ash/system/status_area_widget.h b/ash/system/status_area_widget.h |
index 1a99a0f328978735734a87139bf65aa4d3a7e776..ad72db657cd26342808f2181ce2adcfc394be252 100644 |
--- a/ash/system/status_area_widget.h |
+++ b/ash/system/status_area_widget.h |
@@ -11,20 +11,56 @@ |
#include "ui/views/widget/widget.h" |
namespace ash { |
+ |
+class ShellDelegate; |
+class SystemTray; |
+class SystemTrayDelegate; |
+class WebNotificationTray; |
+ |
namespace internal { |
class StatusAreaWidgetDelegate; |
class ASH_EXPORT StatusAreaWidget : public views::Widget { |
- public: |
+public: |
+ enum UserAction { |
+ NON_USER_ACTION, |
+ USER_ACTION |
+ }; |
+ |
StatusAreaWidget(); |
virtual ~StatusAreaWidget(); |
- void AddTray(views::View* tray); |
+ // Creates a SystemTray and a WebNotificationTray. |
+ void CreateTrayViews(ShellDelegate* shell_delegate); |
+ |
+ // Destroys the system tray and web notification tray. Called before |
+ // tearing down the windows to avoid shutdown problems. |
+ void Shutdown(); |
+ |
+ void AddSystemTray(SystemTray* system_tray, ShellDelegate* shell_delegate); |
+ void AddWebNotificationTray(WebNotificationTray* web_notification_tray); |
void SetShelfAlignment(ShelfAlignment alignment); |
+ // Always used to show/hide the web notification tray. These handle any logic |
+ // with hiding/supressing notifications from the system tray. |
+ void ShowWebNotificationBubble(UserAction user_action); |
+ void HideWebNotificationBubble(); |
+ |
+ SystemTray* system_tray() { return system_tray_; } |
+ SystemTrayDelegate* system_tray_delegate() { |
+ return system_tray_delegate_.get(); |
+ } |
+ WebNotificationTray* web_notification_tray() { |
+ return web_notification_tray_; |
+ } |
+ |
private: |
internal::StatusAreaWidgetDelegate* widget_delegate_; |
+ scoped_ptr<SystemTrayDelegate> system_tray_delegate_; |
+ // Child views owned by the view hierarchy: |
+ SystemTray* system_tray_; |
+ WebNotificationTray* web_notification_tray_; |
DISALLOW_COPY_AND_ASSIGN(StatusAreaWidget); |
}; |