Chromium Code Reviews| 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 |