OLD | NEW |
---|---|
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2013 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_tray.h" | 5 #include "ui/message_center/message_center_tray.h" |
6 | 6 |
7 #include "base/observer_list.h" | 7 #include "base/observer_list.h" |
8 #include "base/strings/utf_string_conversions.h" | 8 #include "base/strings/utf_string_conversions.h" |
9 #include "grit/ui_strings.h" | 9 #include "grit/ui_strings.h" |
10 #include "ui/base/l10n/l10n_util.h" | 10 #include "ui/base/l10n/l10n_util.h" |
(...skipping 13 matching lines...) Expand all Loading... | |
24 } | 24 } |
25 | 25 |
26 MessageCenterTray::~MessageCenterTray() { | 26 MessageCenterTray::~MessageCenterTray() { |
27 message_center_->RemoveObserver(this); | 27 message_center_->RemoveObserver(this); |
28 } | 28 } |
29 | 29 |
30 bool MessageCenterTray::ShowMessageCenterBubble() { | 30 bool MessageCenterTray::ShowMessageCenterBubble() { |
31 if (message_center_visible_) | 31 if (message_center_visible_) |
32 return true; | 32 return true; |
33 | 33 |
34 HidePopupBubble(); | 34 HidePopupBubbleInternal(); |
35 | 35 |
36 message_center_visible_ = delegate_->ShowMessageCenter(); | 36 message_center_visible_ = delegate_->ShowMessageCenter(); |
37 message_center_->SetMessageCenterVisible(message_center_visible_); | 37 message_center_->SetVisibility(message_center::VISIBILITY_MESSAGE_CENTER); |
38 NotifyMessageCenterTrayChanged(); | |
38 return message_center_visible_; | 39 return message_center_visible_; |
39 } | 40 } |
40 | 41 |
41 bool MessageCenterTray::HideMessageCenterBubble() { | 42 bool MessageCenterTray::HideMessageCenterBubble() { |
42 if (!message_center_visible_) | 43 if (!message_center_visible_) |
43 return false; | 44 return false; |
44 delegate_->HideMessageCenter(); | 45 delegate_->HideMessageCenter(); |
45 MarkMessageCenterHidden(); | 46 MarkMessageCenterHidden(); |
46 return true; | 47 return true; |
47 } | 48 } |
48 | 49 |
49 void MessageCenterTray::MarkMessageCenterHidden() { | 50 void MessageCenterTray::MarkMessageCenterHidden() { |
50 if (!message_center_visible_) | 51 if (!message_center_visible_) |
51 return; | 52 return; |
52 message_center_visible_ = false; | 53 message_center_visible_ = false; |
53 message_center_->SetMessageCenterVisible(false); | 54 |
54 // Some notifications (like system ones) should appear as popups again | 55 // Some notifications (like system ones) should appear as popups again |
55 // after the message center is closed. | 56 // after the message center is closed. |
56 if (message_center_->HasPopupNotifications()) | 57 if (message_center_->HasPopupNotifications()) { |
57 ShowPopupBubble(); | 58 ShowPopupBubble(); |
59 return; | |
60 } | |
61 | |
62 message_center_->SetVisibility(message_center::VISIBILITY_TRANSIENT); | |
63 | |
58 NotifyMessageCenterTrayChanged(); | 64 NotifyMessageCenterTrayChanged(); |
59 } | 65 } |
60 | 66 |
61 void MessageCenterTray::ToggleMessageCenterBubble() { | 67 void MessageCenterTray::ToggleMessageCenterBubble() { |
62 if (message_center_visible_) | 68 if (message_center_visible_) |
63 HideMessageCenterBubble(); | 69 HideMessageCenterBubble(); |
64 else | 70 else |
65 ShowMessageCenterBubble(); | 71 ShowMessageCenterBubble(); |
66 } | 72 } |
67 | 73 |
68 void MessageCenterTray::ShowPopupBubble() { | 74 void MessageCenterTray::ShowPopupBubble() { |
69 if (message_center_visible_) | 75 if (message_center_visible_) |
70 return; | 76 return; |
71 | 77 |
72 if (popups_visible_) { | 78 if (popups_visible_) { |
73 NotifyMessageCenterTrayChanged(); | 79 NotifyMessageCenterTrayChanged(); |
74 return; | 80 return; |
75 } | 81 } |
76 | 82 |
77 if (!message_center_->HasPopupNotifications()) | 83 if (!message_center_->HasPopupNotifications()) { |
78 return; | 84 return; |
85 } | |
Jun Mukai
2013/09/09 17:12:35
nit: no braces for single line.
dewittj
2013/09/10 21:23:24
Done.
| |
79 | 86 |
80 popups_visible_ = delegate_->ShowPopups(); | 87 popups_visible_ = delegate_->ShowPopups(); |
88 | |
81 NotifyMessageCenterTrayChanged(); | 89 NotifyMessageCenterTrayChanged(); |
82 } | 90 } |
83 | 91 |
84 bool MessageCenterTray::HidePopupBubble() { | 92 bool MessageCenterTray::HidePopupBubble() { |
85 if (!popups_visible_) | 93 if (!popups_visible_) |
86 return false; | 94 return false; |
87 | 95 HidePopupBubbleInternal(); |
88 delegate_->HidePopups(); | 96 message_center_->SetVisibility(message_center::VISIBILITY_TRANSIENT); |
Jun Mukai
2013/09/09 17:12:35
why need to specify TRANSIENT here?
dewittj
2013/09/10 21:23:24
Done.
| |
89 popups_visible_ = false; | |
90 NotifyMessageCenterTrayChanged(); | 97 NotifyMessageCenterTrayChanged(); |
91 | 98 |
92 return true; | 99 return true; |
93 } | 100 } |
94 | 101 |
102 void MessageCenterTray::HidePopupBubbleInternal() { | |
103 if (!popups_visible_) | |
104 return; | |
105 | |
106 delegate_->HidePopups(); | |
107 popups_visible_ = false; | |
108 } | |
109 | |
95 void MessageCenterTray::ShowNotifierSettingsBubble() { | 110 void MessageCenterTray::ShowNotifierSettingsBubble() { |
96 if (popups_visible_) | 111 if (popups_visible_) |
97 HidePopupBubble(); | 112 HidePopupBubbleInternal(); |
98 | 113 |
99 message_center_visible_ = delegate_->ShowNotifierSettings(); | 114 message_center_visible_ = delegate_->ShowNotifierSettings(); |
115 message_center_->SetVisibility(message_center::VISIBILITY_SETTINGS); | |
116 | |
117 NotifyMessageCenterTrayChanged(); | |
100 } | 118 } |
101 | 119 |
102 void MessageCenterTray::OnNotificationAdded( | 120 void MessageCenterTray::OnNotificationAdded( |
103 const std::string& notification_id) { | 121 const std::string& notification_id) { |
104 OnMessageCenterChanged(); | 122 OnMessageCenterChanged(); |
105 } | 123 } |
106 | 124 |
107 void MessageCenterTray::OnNotificationRemoved( | 125 void MessageCenterTray::OnNotificationRemoved( |
108 const std::string& notification_id, | 126 const std::string& notification_id, |
109 bool by_user) { | 127 bool by_user) { |
(...skipping 21 matching lines...) Expand all Loading... | |
131 void MessageCenterTray::OnNotificationDisplayed( | 149 void MessageCenterTray::OnNotificationDisplayed( |
132 const std::string& notification_id) { | 150 const std::string& notification_id) { |
133 NotifyMessageCenterTrayChanged(); | 151 NotifyMessageCenterTrayChanged(); |
134 } | 152 } |
135 | 153 |
136 void MessageCenterTray::OnQuietModeChanged(bool in_quiet_mode) { | 154 void MessageCenterTray::OnQuietModeChanged(bool in_quiet_mode) { |
137 NotifyMessageCenterTrayChanged(); | 155 NotifyMessageCenterTrayChanged(); |
138 } | 156 } |
139 | 157 |
140 void MessageCenterTray::OnMessageCenterChanged() { | 158 void MessageCenterTray::OnMessageCenterChanged() { |
141 if (message_center_visible_) { | 159 if (message_center_visible_ && message_center_->NotificationCount() == 0) |
142 if (message_center_->NotificationCount() == 0) | 160 HideMessageCenterBubble(); |
143 HideMessageCenterBubble(); | |
144 } | |
145 | 161 |
146 if (popups_visible_ && !message_center_->HasPopupNotifications()) | 162 if (popups_visible_ && !message_center_->HasPopupNotifications()) |
147 HidePopupBubble(); | 163 HidePopupBubbleInternal(); |
148 else if (message_center_->HasPopupNotifications()) | 164 else if (!popups_visible_ && message_center_->HasPopupNotifications()) |
149 ShowPopupBubble(); | 165 ShowPopupBubble(); |
150 | 166 |
151 NotifyMessageCenterTrayChanged(); | 167 NotifyMessageCenterTrayChanged(); |
152 } | 168 } |
153 | 169 |
154 void MessageCenterTray::NotifyMessageCenterTrayChanged() { | 170 void MessageCenterTray::NotifyMessageCenterTrayChanged() { |
155 delegate_->OnMessageCenterTrayChanged(); | 171 delegate_->OnMessageCenterTrayChanged(); |
156 } | 172 } |
157 | 173 |
158 } // namespace message_center | 174 } // namespace message_center |
OLD | NEW |