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

Side by Side Diff: ash/system/web_notification/message_center.cc

Issue 11229022: Move ash/system/web_notification message_center to ui/ (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase again. Created 8 years, 1 month 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
(Empty)
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "ash/system/web_notification/message_center.h"
6 #include "base/logging.h"
7
8 namespace message_center {
9
10 //------------------------------------------------------------------------------
11
12 MessageCenter::MessageCenter(Host* host)
13 : host_(host),
14 delegate_(NULL) {
15 notification_list_.reset(new WebNotificationList(this));
16 }
17
18 MessageCenter::~MessageCenter() {
19 notification_list_.reset();
20 }
21
22 void MessageCenter::SetDelegate(Delegate* delegate) {
23 DCHECK(!delegate_);
24 delegate_ = delegate;
25 }
26
27 void MessageCenter::SetMessageCenterVisible(bool visible) {
28 notification_list_->SetMessageCenterVisible(visible);
29 }
30
31 size_t MessageCenter::NotificationCount() const {
32 return notification_list_->notifications().size();
33 }
34
35 size_t MessageCenter::UnreadNotificationCount() const {
36 return notification_list_->unread_count();
37 }
38
39 bool MessageCenter::HasPopupNotifications() const {
40 return notification_list_->HasPopupNotifications();
41 }
42
43 //------------------------------------------------------------------------------
44 // Client code interface.
45
46 void MessageCenter::AddNotification(const std::string& id,
47 const string16& title,
48 const string16& message,
49 const string16& display_source,
50 const std::string& extension_id) {
51 notification_list_->AddNotification(
52 id, title, message, display_source, extension_id);
53 if (host_)
54 host_->MessageCenterChanged(true);
55 }
56
57 void MessageCenter::UpdateNotification(const std::string& old_id,
58 const std::string& new_id,
59 const string16& title,
60 const string16& message) {
61 notification_list_->UpdateNotificationMessage(
62 old_id, new_id, title, message);
63 if (host_)
64 host_->MessageCenterChanged(true);
65 }
66
67 void MessageCenter::RemoveNotification(const std::string& id) {
68 if (!notification_list_->RemoveNotification(id))
69 return;
70 if (host_)
71 host_->MessageCenterChanged(false);
72 }
73
74 void MessageCenter::SetNotificationImage(const std::string& id,
75 const gfx::ImageSkia& image) {
76 if (!notification_list_->SetNotificationImage(id, image))
77 return;
78 if (host_)
79 host_->MessageCenterChanged(true);
80 }
81
82 //------------------------------------------------------------------------------
83 // Overridden from WebNotificationList::Delegate.
84
85 void MessageCenter::SendRemoveNotification(const std::string& id) {
86 if (delegate_)
87 delegate_->NotificationRemoved(id);
88 }
89
90 void MessageCenter::SendRemoveAllNotifications() {
91 if (delegate_) {
92 const WebNotificationList::Notifications& notifications =
93 notification_list_->notifications();
94 for (WebNotificationList::Notifications::const_iterator loopiter =
95 notifications.begin();
96 loopiter != notifications.end(); ) {
97 WebNotificationList::Notifications::const_iterator curiter = loopiter++;
98 std::string notification_id = curiter->id;
99 // May call RemoveNotification and erase curiter.
100 delegate_->NotificationRemoved(notification_id);
101 }
102 }
103 }
104
105 void MessageCenter::DisableNotificationByExtension(
106 const std::string& id) {
107 if (delegate_)
108 delegate_->DisableExtension(id);
109 // When we disable notifications, we remove any existing matching
110 // notifications to avoid adding complicated UI to re-enable the source.
111 notification_list_->SendRemoveNotificationsByExtension(id);
112 }
113
114 void MessageCenter::DisableNotificationByUrl(const std::string& id) {
115 if (delegate_)
116 delegate_->DisableNotificationsFromSource(id);
117 notification_list_->SendRemoveNotificationsBySource(id);
118 }
119
120 void MessageCenter::ShowNotificationSettings(const std::string& id) {
121 if (delegate_)
122 delegate_->ShowSettings(id);
123 }
124
125 void MessageCenter::OnNotificationClicked(const std::string& id) {
126 if (delegate_)
127 delegate_->OnClicked(id);
128 }
129
130 WebNotificationList* MessageCenter::GetNotificationList() {
131 return notification_list_.get();
132 }
133
134 } // namespace message_center
OLDNEW
« no previous file with comments | « ash/system/web_notification/message_center.h ('k') | ash/system/web_notification/message_center_bubble.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698