diff options
Diffstat (limited to 'ash/system/status_area_widget.h')
-rw-r--r-- | ash/system/status_area_widget.h | 29 |
1 files changed, 26 insertions, 3 deletions
diff --git a/ash/system/status_area_widget.h b/ash/system/status_area_widget.h index 8e56688..5b66862 100644 --- a/ash/system/status_area_widget.h +++ b/ash/system/status_area_widget.h @@ -7,6 +7,7 @@ #pragma once #include "ash/ash_export.h" +#include "ash/launcher/background_animator.h" #include "ash/wm/shelf_auto_hide_behavior.h" #include "ui/views/widget/widget.h" @@ -15,6 +16,7 @@ namespace ash { class ShellDelegate; class SystemTray; class SystemTrayDelegate; +class WebNotificationTray; namespace internal { @@ -22,30 +24,51 @@ class StatusAreaWidgetDelegate; class ASH_EXPORT StatusAreaWidget : public views::Widget { public: + enum UserAction { + NON_USER_ACTION, + USER_ACTION + }; + StatusAreaWidget(); virtual ~StatusAreaWidget(); - // Creates the SystemTray. + // Creates the SystemTray and the WebNotificationTray. void CreateTrayViews(ShellDelegate* shell_delegate); - // Destroys the system tray. Called before tearing down the windows to avoid - // shutdown ordering issues. + // Destroys the system tray and web notification tray. Called before + // tearing down the windows to avoid shutdown ordering issues. void Shutdown(); + // Update the alignment of the widget and tray views. void SetShelfAlignment(ShelfAlignment alignment); + // Update whether to paint a background for each tray view. + void SetPaintsBackground( + bool value, + internal::BackgroundAnimator::ChangeType change_type); + + // 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: void AddSystemTray(SystemTray* system_tray, ShellDelegate* shell_delegate); + void AddWebNotificationTray(WebNotificationTray* web_notification_tray); scoped_ptr<SystemTrayDelegate> system_tray_delegate_; // Weak pointers to View classes that are parented to StatusAreaWidget: internal::StatusAreaWidgetDelegate* widget_delegate_; SystemTray* system_tray_; + WebNotificationTray* web_notification_tray_; DISALLOW_COPY_AND_ASSIGN(StatusAreaWidget); }; |