Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(329)

Unified Diff: ash/system/web_notification/web_notification_tray.h

Issue 10824153: Change Ash web notification behavior (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix unit tests Created 8 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: ash/system/web_notification/web_notification_tray.h
diff --git a/ash/system/web_notification/web_notification_tray.h b/ash/system/web_notification/web_notification_tray.h
index ae78d7a295dbaa7d05bb1739e965739cb3c73f91..8338a8b56db9013bbc9828b8b31f188528203d22 100644
--- a/ash/system/web_notification/web_notification_tray.h
+++ b/ash/system/web_notification/web_notification_tray.h
@@ -20,7 +20,7 @@ class ImageSkia;
}
namespace views {
-class ImageView;
+class Label;
}
namespace ash {
@@ -104,11 +104,17 @@ class ASH_EXPORT WebNotificationTray : public internal::TrayBackgroundView {
void DisableByExtension(const std::string& id);
void DisableByUrl(const std::string& id);
- // Show the notification bubble. Should only be called by StatusAreaWidget.
- void ShowBubble();
+ // Show the message center bubble. Should only be called by StatusAreaWidget.
+ void ShowMessageCenterBubble();
- // Hide the notification bubble. Should only be called by StatusAreaWidget.
- void HideBubble();
+ // Hide the message center bubble. Should only be called by StatusAreaWidget.
+ void HideMessageCenterBubble();
+
+ // Show a single notification bubble for the most recent notification.
+ void ShowNotificationBubble();
+
+ // Hide the single notification bubble if visible.
+ void HideNotificationBubble();
// Updates tray visibility login status of the system changes.
void UpdateAfterLoginStatusChange(user::LoginStatus login_status);
@@ -119,10 +125,6 @@ class ASH_EXPORT WebNotificationTray : public internal::TrayBackgroundView {
// Called when a notification is clicked on. Event is passed to the Delegate.
void OnClicked(const std::string& id);
- internal::StatusAreaWidget* status_area_widget() {
- return status_area_widget_;
- }
-
// Overridden from TrayBackgroundView.
virtual void SetShelfAlignment(ShelfAlignment alignment) OVERRIDE;
@@ -131,28 +133,26 @@ class ASH_EXPORT WebNotificationTray : public internal::TrayBackgroundView {
private:
class Bubble;
- class BubbleContentsView;
FRIEND_TEST_ALL_PREFIXES(WebNotificationTrayTest, WebNotifications);
- void SetBorder();
- void SetTrayContainerBorder();
int GetNotificationCount() const;
- void UpdateIcon();
- void UpdateBubbleAndIcon();
+ void UpdateTray();
+ void UpdateTrayAndBubble();
+ void HideBubble(Bubble* bubble);
const internal::WebNotificationList* notification_list() const {
return notification_list_.get();
}
- views::View* tray_container() const { return tray_container_; }
- Bubble* bubble() const { return bubble_.get(); }
+ Bubble* message_center_bubble() const { return message_center_bubble_.get(); }
+ Bubble* notification_bubble() const { return notification_bubble_.get(); }
- internal::StatusAreaWidget* status_area_widget_; // Unowned parent.
scoped_ptr<internal::WebNotificationList> notification_list_;
- scoped_ptr<Bubble> bubble_;
- views::View* tray_container_;
- views::ImageView* icon_;
+ scoped_ptr<Bubble> message_center_bubble_;
+ scoped_ptr<Bubble> notification_bubble_;
+ views::Label* count_label_;
Delegate* delegate_;
- bool show_bubble_on_unlock_;
+ bool show_message_center_on_unlock_;
+ int unread_count_;
DISALLOW_COPY_AND_ASSIGN(WebNotificationTray);
};

Powered by Google App Engine
This is Rietveld 408576698