Chromium Code Reviews| OLD | NEW |
|---|---|
| 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/system/tray/system_tray_bubble.h" | 5 #include "ash/system/tray/system_tray_bubble.h" |
| 6 | 6 |
| 7 #include <utility> | 7 #include <utility> |
| 8 #include <vector> | 8 #include <vector> |
| 9 | 9 |
| 10 #include "ash/session/session_controller.h" | 10 #include "ash/session/session_controller.h" |
| (...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 82 system_tray_bubble_->Close(); | 82 system_tray_bubble_->Close(); |
| 83 delete this; | 83 delete this; |
| 84 } | 84 } |
| 85 | 85 |
| 86 private: | 86 private: |
| 87 SystemTrayBubble* system_tray_bubble_ = nullptr; | 87 SystemTrayBubble* system_tray_bubble_ = nullptr; |
| 88 | 88 |
| 89 DISALLOW_COPY_AND_ASSIGN(CloseBubbleObserver); | 89 DISALLOW_COPY_AND_ASSIGN(CloseBubbleObserver); |
| 90 }; | 90 }; |
| 91 | 91 |
| 92 class SystemTrayBubbleView : public TrayBubbleView { | |
|
sammiequon
2017/06/30 17:46:02
I feel it makes more sense to move the bubble rela
xdai1
2017/06/30 17:51:01
I have the same feeling too. But I also understand
minch1
2017/06/30 19:08:04
Let's keep it as-is to let owner take a look. Than
| |
| 93 public: | |
| 94 SystemTrayBubbleView(TrayBubbleView::InitParams* init_params, | |
| 95 SystemTray* tray) | |
| 96 : TrayBubbleView(*init_params), tray_(tray) {} | |
| 97 | |
| 98 void OnGestureEvent(ui::GestureEvent* event) override { | |
|
sammiequon
2017/06/30 17:46:02
nit: // views::View:
minch1
2017/06/30 19:08:04
Done.
| |
| 99 if (tray_) { | |
| 100 tray_->set_target_view(this); | |
| 101 if (tray_->ProcessGestureEvent(*event)) | |
| 102 event->SetHandled(); | |
| 103 } else { | |
| 104 TrayBubbleView::OnGestureEvent(event); | |
| 105 } | |
| 106 } | |
| 107 | |
| 108 private: | |
| 109 SystemTray* tray_; | |
|
sammiequon
2017/06/30 17:46:02
nit: // Not owned.
minch1
2017/06/30 19:08:04
Done.
| |
| 110 | |
| 111 DISALLOW_COPY_AND_ASSIGN(SystemTrayBubbleView); | |
| 112 }; | |
| 113 | |
| 92 // SystemTrayBubble | 114 // SystemTrayBubble |
| 93 | 115 |
| 94 SystemTrayBubble::SystemTrayBubble( | 116 SystemTrayBubble::SystemTrayBubble( |
| 95 ash::SystemTray* tray, | 117 ash::SystemTray* tray, |
| 96 const std::vector<ash::SystemTrayItem*>& items, | 118 const std::vector<ash::SystemTrayItem*>& items, |
| 97 BubbleType bubble_type) | 119 BubbleType bubble_type) |
| 98 : tray_(tray), | 120 : tray_(tray), |
| 99 bubble_view_(nullptr), | 121 bubble_view_(nullptr), |
| 100 items_(items), | 122 items_(items), |
| 101 bubble_type_(bubble_type), | 123 bubble_type_(bubble_type), |
| (...skipping 134 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 236 tray_->GetBubbleWindowContainer()->AddChild(clipping_window_.get()); | 258 tray_->GetBubbleWindowContainer()->AddChild(clipping_window_.get()); |
| 237 clipping_window_->Show(); | 259 clipping_window_->Show(); |
| 238 } | 260 } |
| 239 clipping_window_->SetBounds(tray_->GetWorkAreaBoundsInScreen()); | 261 clipping_window_->SetBounds(tray_->GetWorkAreaBoundsInScreen()); |
| 240 init_params->parent_window = clipping_window_.get(); | 262 init_params->parent_window = clipping_window_.get(); |
| 241 } else { | 263 } else { |
| 242 init_params->parent_window = tray_->GetBubbleWindowContainer(); | 264 init_params->parent_window = tray_->GetBubbleWindowContainer(); |
| 243 } | 265 } |
| 244 | 266 |
| 245 init_params->anchor_view = anchor; | 267 init_params->anchor_view = anchor; |
| 246 bubble_view_ = new TrayBubbleView(*init_params); | 268 bubble_view_ = new SystemTrayBubbleView(init_params, tray_); |
| 247 UpdateBottomPadding(); | 269 UpdateBottomPadding(); |
| 248 bubble_view_->set_adjust_if_offscreen(false); | 270 bubble_view_->set_adjust_if_offscreen(false); |
| 249 CreateItemViews(login_status); | 271 CreateItemViews(login_status); |
| 250 | 272 |
| 251 if (bubble_view_->CanActivate()) { | 273 if (bubble_view_->CanActivate()) { |
| 252 bubble_view_->NotifyAccessibilityEvent(ui::AX_EVENT_ALERT, true); | 274 bubble_view_->NotifyAccessibilityEvent(ui::AX_EVENT_ALERT, true); |
| 253 } | 275 } |
| 254 } | 276 } |
| 255 | 277 |
| 256 void SystemTrayBubble::DestroyItemViews() { | 278 void SystemTrayBubble::DestroyItemViews() { |
| (...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 382 } | 404 } |
| 383 } | 405 } |
| 384 | 406 |
| 385 if (focus_view) { | 407 if (focus_view) { |
| 386 tray_->ActivateBubble(); | 408 tray_->ActivateBubble(); |
| 387 focus_view->RequestFocus(); | 409 focus_view->RequestFocus(); |
| 388 } | 410 } |
| 389 } | 411 } |
| 390 | 412 |
| 391 } // namespace ash | 413 } // namespace ash |
| OLD | NEW |