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

Side by Side Diff: ash/common/system/tray/system_tray_bubble.cc

Issue 2095193002: clang-format all of //ash (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 6 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
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 "ash/common/system/tray/system_tray_bubble.h" 5 #include "ash/common/system/tray/system_tray_bubble.h"
6 6
7 #include "ash/common/system/tray/system_tray_delegate.h" 7 #include "ash/common/system/tray/system_tray_delegate.h"
8 #include "ash/common/system/tray/system_tray_item.h" 8 #include "ash/common/system/tray/system_tray_item.h"
9 #include "ash/common/system/tray/tray_bubble_wrapper.h" 9 #include "ash/common/system/tray/tray_bubble_wrapper.h"
10 #include "ash/common/system/tray/tray_constants.h" 10 #include "ash/common/system/tray/tray_constants.h"
(...skipping 23 matching lines...) Expand all
34 const int kDetailedBubbleMaxHeight = kTrayPopupItemHeight * 5; 34 const int kDetailedBubbleMaxHeight = kTrayPopupItemHeight * 5;
35 35
36 // Duration of swipe animation used when transitioning from a default to 36 // Duration of swipe animation used when transitioning from a default to
37 // detailed view or vice versa. 37 // detailed view or vice versa.
38 const int kSwipeDelayMS = 150; 38 const int kSwipeDelayMS = 150;
39 39
40 // Implicit animation observer that deletes itself and the layer at the end of 40 // Implicit animation observer that deletes itself and the layer at the end of
41 // the animation. 41 // the animation.
42 class AnimationObserverDeleteLayer : public ui::ImplicitAnimationObserver { 42 class AnimationObserverDeleteLayer : public ui::ImplicitAnimationObserver {
43 public: 43 public:
44 explicit AnimationObserverDeleteLayer(ui::Layer* layer) 44 explicit AnimationObserverDeleteLayer(ui::Layer* layer) : layer_(layer) {}
45 : layer_(layer) {
46 }
47 45
48 ~AnimationObserverDeleteLayer() override {} 46 ~AnimationObserverDeleteLayer() override {}
49 47
50 void OnImplicitAnimationsCompleted() override { 48 void OnImplicitAnimationsCompleted() override {
51 base::ThreadTaskRunnerHandle::Get()->DeleteSoon(FROM_HERE, this); 49 base::ThreadTaskRunnerHandle::Get()->DeleteSoon(FROM_HERE, this);
52 } 50 }
53 51
54 private: 52 private:
55 std::unique_ptr<ui::Layer> layer_; 53 std::unique_ptr<ui::Layer> layer_;
56 54
57 DISALLOW_COPY_AND_ASSIGN(AnimationObserverDeleteLayer); 55 DISALLOW_COPY_AND_ASSIGN(AnimationObserverDeleteLayer);
58 }; 56 };
59 57
60 } // namespace 58 } // namespace
61 59
62 // SystemTrayBubble 60 // SystemTrayBubble
63 61
64 SystemTrayBubble::SystemTrayBubble( 62 SystemTrayBubble::SystemTrayBubble(
65 ash::SystemTray* tray, 63 ash::SystemTray* tray,
66 const std::vector<ash::SystemTrayItem*>& items, 64 const std::vector<ash::SystemTrayItem*>& items,
67 BubbleType bubble_type) 65 BubbleType bubble_type)
68 : tray_(tray), 66 : tray_(tray),
69 bubble_view_(NULL), 67 bubble_view_(NULL),
70 items_(items), 68 items_(items),
71 bubble_type_(bubble_type), 69 bubble_type_(bubble_type),
72 autoclose_delay_(0) { 70 autoclose_delay_(0) {}
73 }
74 71
75 SystemTrayBubble::~SystemTrayBubble() { 72 SystemTrayBubble::~SystemTrayBubble() {
76 DestroyItemViews(); 73 DestroyItemViews();
77 // Reset the host pointer in bubble_view_ in case its destruction is deferred. 74 // Reset the host pointer in bubble_view_ in case its destruction is deferred.
78 if (bubble_view_) 75 if (bubble_view_)
79 bubble_view_->reset_delegate(); 76 bubble_view_->reset_delegate();
80 } 77 }
81 78
82 void SystemTrayBubble::UpdateView( 79 void SystemTrayBubble::UpdateView(
83 const std::vector<ash::SystemTrayItem*>& items, 80 const std::vector<ash::SystemTrayItem*>& items,
(...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after
190 } else if (bubble_type_ == BUBBLE_TYPE_NOTIFICATION) { 187 } else if (bubble_type_ == BUBBLE_TYPE_NOTIFICATION) {
191 init_params->close_on_deactivate = false; 188 init_params->close_on_deactivate = false;
192 } 189 }
193 // The TrayBubbleView will use |anchor| and |tray_| to determine the parent 190 // The TrayBubbleView will use |anchor| and |tray_| to determine the parent
194 // container for the bubble. 191 // container for the bubble.
195 bubble_view_ = TrayBubbleView::Create(anchor, tray_, init_params); 192 bubble_view_ = TrayBubbleView::Create(anchor, tray_, init_params);
196 bubble_view_->set_adjust_if_offscreen(false); 193 bubble_view_->set_adjust_if_offscreen(false);
197 CreateItemViews(login_status); 194 CreateItemViews(login_status);
198 195
199 if (bubble_view_->CanActivate()) { 196 if (bubble_view_->CanActivate()) {
200 bubble_view_->NotifyAccessibilityEvent( 197 bubble_view_->NotifyAccessibilityEvent(ui::AX_EVENT_ALERT, true);
201 ui::AX_EVENT_ALERT, true);
202 } 198 }
203 } 199 }
204 200
205 void SystemTrayBubble::FocusDefaultIfNeeded() { 201 void SystemTrayBubble::FocusDefaultIfNeeded() {
206 views::FocusManager* manager = bubble_view_->GetFocusManager(); 202 views::FocusManager* manager = bubble_view_->GetFocusManager();
207 if (!manager || manager->GetFocusedView()) 203 if (!manager || manager->GetFocusedView())
208 return; 204 return;
209 205
210 views::View* view = manager->GetNextFocusableView(NULL, NULL, false, false); 206 views::View* view = manager->GetNextFocusableView(NULL, NULL, false, false);
211 if (view) 207 if (view)
212 view->RequestFocus(); 208 view->RequestFocus();
213 } 209 }
214 210
215 void SystemTrayBubble::DestroyItemViews() { 211 void SystemTrayBubble::DestroyItemViews() {
216 for (std::vector<ash::SystemTrayItem*>::iterator it = items_.begin(); 212 for (std::vector<ash::SystemTrayItem*>::iterator it = items_.begin();
217 it != items_.end(); 213 it != items_.end(); ++it) {
218 ++it) {
219 switch (bubble_type_) { 214 switch (bubble_type_) {
220 case BUBBLE_TYPE_DEFAULT: 215 case BUBBLE_TYPE_DEFAULT:
221 (*it)->DestroyDefaultView(); 216 (*it)->DestroyDefaultView();
222 break; 217 break;
223 case BUBBLE_TYPE_DETAILED: 218 case BUBBLE_TYPE_DETAILED:
224 (*it)->DestroyDetailedView(); 219 (*it)->DestroyDetailedView();
225 break; 220 break;
226 case BUBBLE_TYPE_NOTIFICATION: 221 case BUBBLE_TYPE_NOTIFICATION:
227 (*it)->DestroyNotificationView(); 222 (*it)->DestroyNotificationView();
228 break; 223 break;
229 } 224 }
230 } 225 }
231 } 226 }
232 227
233 void SystemTrayBubble::BubbleViewDestroyed() { 228 void SystemTrayBubble::BubbleViewDestroyed() {
234 bubble_view_ = NULL; 229 bubble_view_ = NULL;
235 } 230 }
236 231
237 void SystemTrayBubble::StartAutoCloseTimer(int seconds) { 232 void SystemTrayBubble::StartAutoCloseTimer(int seconds) {
238 autoclose_.Stop(); 233 autoclose_.Stop();
239 autoclose_delay_ = seconds; 234 autoclose_delay_ = seconds;
240 if (autoclose_delay_) { 235 if (autoclose_delay_) {
241 autoclose_.Start(FROM_HERE, 236 autoclose_.Start(FROM_HERE, base::TimeDelta::FromSeconds(autoclose_delay_),
242 base::TimeDelta::FromSeconds(autoclose_delay_),
243 this, &SystemTrayBubble::Close); 237 this, &SystemTrayBubble::Close);
244 } 238 }
245 } 239 }
246 240
247 void SystemTrayBubble::StopAutoCloseTimer() { 241 void SystemTrayBubble::StopAutoCloseTimer() {
248 autoclose_.Stop(); 242 autoclose_.Stop();
249 } 243 }
250 244
251 void SystemTrayBubble::RestartAutoCloseTimer() { 245 void SystemTrayBubble::RestartAutoCloseTimer() {
252 if (autoclose_delay_) 246 if (autoclose_delay_)
(...skipping 13 matching lines...) Expand all
266 else 260 else
267 bubble_widget->Hide(); 261 bubble_widget->Hide();
268 } 262 }
269 263
270 bool SystemTrayBubble::IsVisible() { 264 bool SystemTrayBubble::IsVisible() {
271 return bubble_view() && bubble_view()->GetWidget()->IsVisible(); 265 return bubble_view() && bubble_view()->GetWidget()->IsVisible();
272 } 266 }
273 267
274 bool SystemTrayBubble::ShouldShowShelf() const { 268 bool SystemTrayBubble::ShouldShowShelf() const {
275 for (std::vector<ash::SystemTrayItem*>::const_iterator it = items_.begin(); 269 for (std::vector<ash::SystemTrayItem*>::const_iterator it = items_.begin();
276 it != items_.end(); 270 it != items_.end(); ++it) {
277 ++it) {
278 if ((*it)->ShouldShowShelf()) 271 if ((*it)->ShouldShowShelf())
279 return true; 272 return true;
280 } 273 }
281 return false; 274 return false;
282 } 275 }
283 276
284 void SystemTrayBubble::CreateItemViews(LoginStatus login_status) { 277 void SystemTrayBubble::CreateItemViews(LoginStatus login_status) {
285 std::vector<views::View*> item_views; 278 std::vector<views::View*> item_views;
286 // If a system modal dialog is present, create the same tray as 279 // If a system modal dialog is present, create the same tray as
287 // in locked state. 280 // in locked state.
(...skipping 28 matching lines...) Expand all
316 // 2 items, which are the bottom header row and the one just above it. 309 // 2 items, which are the bottom header row and the one just above it.
317 bubble_view_->AddChildView(new TrayPopupItemContainer( 310 bubble_view_->AddChildView(new TrayPopupItemContainer(
318 item_views[i], is_default_bubble, 311 item_views[i], is_default_bubble,
319 is_default_bubble && (i < item_views.size() - 2))); 312 is_default_bubble && (i < item_views.size() - 2)));
320 } 313 }
321 if (focus_view) 314 if (focus_view)
322 focus_view->RequestFocus(); 315 focus_view->RequestFocus();
323 } 316 }
324 317
325 } // namespace ash 318 } // namespace ash
OLDNEW
« no previous file with comments | « ash/common/system/tray/special_popup_row.cc ('k') | ash/common/system/tray/system_tray_delegate.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698