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

Side by Side Diff: ui/message_center/message_center.cc

Issue 12326091: Made notification center notifications collapsed and expandable. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase, rebase, and rebase again! Created 7 years, 9 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « ui/message_center/message_center.h ('k') | ui/message_center/message_center.gyp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 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 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "ui/message_center/message_center.h" 5 #include "ui/message_center/message_center.h"
6 6
7 #include "base/logging.h" 7 #include "base/logging.h"
8 #include "base/memory/singleton.h" 8 #include "base/memory/singleton.h"
9 #include "base/observer_list.h" 9 #include "base/observer_list.h"
10 #include "ui/message_center/notification.h" 10 #include "ui/message_center/notification.h"
(...skipping 18 matching lines...) Expand all
29 } 29 }
30 30
31 // static 31 // static
32 void MessageCenter::Shutdown() { 32 void MessageCenter::Shutdown() {
33 DCHECK(g_message_center); 33 DCHECK(g_message_center);
34 delete g_message_center; 34 delete g_message_center;
35 g_message_center = NULL; 35 g_message_center = NULL;
36 } 36 }
37 37
38 //------------------------------------------------------------------------------ 38 //------------------------------------------------------------------------------
39
40 MessageCenter::Delegate::~Delegate() {
41 }
42
43 //------------------------------------------------------------------------------
44
39 MessageCenter::MessageCenter() 45 MessageCenter::MessageCenter()
40 : delegate_(NULL) { 46 : delegate_(NULL) {
41 notification_list_.reset(new NotificationList(this)); 47 notification_list_.reset(new NotificationList(this));
42 } 48 }
43 49
44 MessageCenter::~MessageCenter() { 50 MessageCenter::~MessageCenter() {
45 notification_list_.reset(); 51 notification_list_.reset();
46 } 52 }
47 53
48 void MessageCenter::AddObserver(Observer* observer) { 54 void MessageCenter::AddObserver(Observer* observer) {
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
119 125
120 void MessageCenter::SetNotificationButtonIcon( 126 void MessageCenter::SetNotificationButtonIcon(
121 const std::string& notification_id, int button_index, 127 const std::string& notification_id, int button_index,
122 const gfx::Image& image) { 128 const gfx::Image& image) {
123 if (notification_list_->SetNotificationButtonIcon(notification_id, 129 if (notification_list_->SetNotificationButtonIcon(notification_id,
124 button_index, image)) 130 button_index, image))
125 NotifyMessageCenterChanged(true); 131 NotifyMessageCenterChanged(true);
126 } 132 }
127 133
128 //------------------------------------------------------------------------------ 134 //------------------------------------------------------------------------------
129 // Overridden from NotificationList::Delegate. 135 // Overridden from NotificationChangeObserver:
130 136
131 void MessageCenter::SendRemoveNotification(const std::string& id, 137 void MessageCenter::OnRemoveNotification(const std::string& id, bool by_user) {
132 bool by_user) {
133 if (delegate_) 138 if (delegate_)
134 delegate_->NotificationRemoved(id, by_user); 139 delegate_->NotificationRemoved(id, by_user);
135 } 140 }
136 141
137 void MessageCenter::SendRemoveAllNotifications(bool by_user) { 142 void MessageCenter::OnRemoveAllNotifications(bool by_user) {
138 if (delegate_) { 143 if (delegate_) {
139 const NotificationList::Notifications& notifications = 144 const NotificationList::Notifications& notifications =
140 notification_list_->GetNotifications(); 145 notification_list_->GetNotifications();
141 for (NotificationList::Notifications::const_iterator loopiter = 146 for (NotificationList::Notifications::const_iterator loopiter =
142 notifications.begin(); 147 notifications.begin();
143 loopiter != notifications.end(); ) { 148 loopiter != notifications.end(); ) {
144 NotificationList::Notifications::const_iterator curiter = loopiter++; 149 NotificationList::Notifications::const_iterator curiter = loopiter++;
145 std::string notification_id = (*curiter)->id(); 150 std::string notification_id = (*curiter)->id();
146 // May call RemoveNotification and erase curiter. 151 // May call RemoveNotification and erase curiter.
147 delegate_->NotificationRemoved(notification_id, by_user); 152 delegate_->NotificationRemoved(notification_id, by_user);
148 } 153 }
149 } 154 }
150 } 155 }
151 156
152 void MessageCenter::DisableNotificationByExtension( 157 void MessageCenter::OnDisableNotificationsByExtension(
153 const std::string& id) { 158 const std::string& id) {
154 if (delegate_) 159 if (delegate_)
155 delegate_->DisableExtension(id); 160 delegate_->DisableExtension(id);
156 // When we disable notifications, we remove any existing matching 161 // When we disable notifications, we remove any existing matching
157 // notifications to avoid adding complicated UI to re-enable the source. 162 // notifications to avoid adding complicated UI to re-enable the source.
158 notification_list_->SendRemoveNotificationsByExtension(id); 163 notification_list_->SendRemoveNotificationsByExtension(id);
159 } 164 }
160 165
161 void MessageCenter::DisableNotificationByUrl(const std::string& id) { 166 void MessageCenter::OnDisableNotificationsByUrl(const std::string& id) {
162 if (delegate_) 167 if (delegate_)
163 delegate_->DisableNotificationsFromSource(id); 168 delegate_->DisableNotificationsFromSource(id);
164 notification_list_->SendRemoveNotificationsBySource(id); 169 notification_list_->SendRemoveNotificationsBySource(id);
165 } 170 }
166 171
167 void MessageCenter::ShowNotificationSettings(const std::string& id) { 172 void MessageCenter::OnShowNotificationSettings(const std::string& id) {
168 if (delegate_) 173 if (delegate_)
169 delegate_->ShowSettings(id); 174 delegate_->ShowSettings(id);
170 } 175 }
171 176
172 void MessageCenter::ShowNotificationSettingsDialog(gfx::NativeView context) { 177 void MessageCenter::OnShowNotificationSettingsDialog(gfx::NativeView context) {
173 if (delegate_) 178 if (delegate_)
174 delegate_->ShowSettingsDialog(context); 179 delegate_->ShowSettingsDialog(context);
175 } 180 }
176 181
177 void MessageCenter::OnNotificationClicked(const std::string& id) { 182 void MessageCenter::OnExpanded(const std::string& id) {
183 notification_list_->MarkNotificationAsExpanded(id);
184 }
185
186 void MessageCenter::OnClicked(const std::string& id) {
178 if (delegate_) 187 if (delegate_)
179 delegate_->OnClicked(id); 188 delegate_->OnClicked(id);
180 if (HasPopupNotifications()) { 189 if (HasPopupNotifications()) {
181 notification_list_->MarkSinglePopupAsShown(id, true); 190 notification_list_->MarkSinglePopupAsShown(id, true);
182 NotifyMessageCenterChanged(false); 191 NotifyMessageCenterChanged(false);
183 } 192 }
184 } 193 }
185 194
186 void MessageCenter::OnQuietModeChanged(bool quiet_mode) {
187 NotifyMessageCenterChanged(true);
188 }
189
190 void MessageCenter::OnButtonClicked(const std::string& id, int button_index) { 195 void MessageCenter::OnButtonClicked(const std::string& id, int button_index) {
191 if (delegate_) 196 if (delegate_)
192 delegate_->OnButtonClicked(id, button_index); 197 delegate_->OnButtonClicked(id, button_index);
193 if (HasPopupNotifications()) { 198 if (HasPopupNotifications()) {
194 notification_list_->MarkSinglePopupAsShown(id, true); 199 notification_list_->MarkSinglePopupAsShown(id, true);
195 NotifyMessageCenterChanged(false); 200 NotifyMessageCenterChanged(false);
196 } 201 }
197 } 202 }
198 203
199 NotificationList* MessageCenter::GetNotificationList() { 204 //------------------------------------------------------------------------------
200 return notification_list_.get(); 205 // Overridden from NotificationList::Delegate:
206
207 void MessageCenter::SendRemoveNotification(const std::string& id,
208 bool by_user) {
209 if (delegate_)
210 delegate_->NotificationRemoved(id, by_user);
201 } 211 }
202 212
203 void MessageCenter::Delegate::OnButtonClicked(const std::string& id, 213 void MessageCenter::OnQuietModeChanged(bool quiet_mode) {
204 int button_index) { 214 NotifyMessageCenterChanged(true);
205 } 215 }
206 216
207 //------------------------------------------------------------------------------ 217 //------------------------------------------------------------------------------
208 // Private. 218 // Private.
209 219
210 void MessageCenter::NotifyMessageCenterChanged(bool new_notification) { 220 void MessageCenter::NotifyMessageCenterChanged(bool new_notification) {
211 FOR_EACH_OBSERVER(Observer, 221 FOR_EACH_OBSERVER(Observer,
212 observer_list_, 222 observer_list_,
213 OnMessageCenterChanged(new_notification)); 223 OnMessageCenterChanged(new_notification));
214 } 224 }
215 225
216 226
217 } // namespace message_center 227 } // namespace message_center
OLDNEW
« no previous file with comments | « ui/message_center/message_center.h ('k') | ui/message_center/message_center.gyp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698