OLD | NEW |
1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 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/toast/toast_overlay.h" | 5 #include "ash/system/toast/toast_overlay.h" |
6 | 6 |
7 #include "ash/public/cpp/ash_typography.h" | 7 #include "ash/public/cpp/ash_typography.h" |
8 #include "ash/public/cpp/shell_window_ids.h" | 8 #include "ash/public/cpp/shell_window_ids.h" |
9 #include "ash/root_window_controller.h" | 9 #include "ash/root_window_controller.h" |
10 #include "ash/shelf/wm_shelf.h" | 10 #include "ash/shelf/wm_shelf.h" |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
43 | 43 |
44 // These values are in DIP. | 44 // These values are in DIP. |
45 const int kToastHorizontalSpacing = 16; | 45 const int kToastHorizontalSpacing = 16; |
46 const int kToastVerticalSpacing = 16; | 46 const int kToastVerticalSpacing = 16; |
47 const int kToastMaximumWidth = 568; | 47 const int kToastMaximumWidth = 568; |
48 const int kToastMinimumWidth = 288; | 48 const int kToastMinimumWidth = 288; |
49 | 49 |
50 // Returns the work area bounds for the root window where new windows are added | 50 // Returns the work area bounds for the root window where new windows are added |
51 // (including new toasts). | 51 // (including new toasts). |
52 gfx::Rect GetUserWorkAreaBounds() { | 52 gfx::Rect GetUserWorkAreaBounds() { |
53 return WmShelf::ForWindow(Shell::GetWmRootWindowForNewWindows()) | 53 return WmShelf::ForWindow(Shell::GetRootWindowForNewWindows()) |
54 ->GetUserWorkAreaBounds(); | 54 ->GetUserWorkAreaBounds(); |
55 } | 55 } |
56 | 56 |
57 } // anonymous namespace | 57 } // anonymous namespace |
58 | 58 |
59 /////////////////////////////////////////////////////////////////////////////// | 59 /////////////////////////////////////////////////////////////////////////////// |
60 // ToastOverlayLabel | 60 // ToastOverlayLabel |
61 class ToastOverlayLabel : public views::Label { | 61 class ToastOverlayLabel : public views::Label { |
62 public: | 62 public: |
63 explicit ToastOverlayLabel(const base::string16& label); | 63 explicit ToastOverlayLabel(const base::string16& label); |
(...skipping 145 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
209 views::Widget::InitParams params; | 209 views::Widget::InitParams params; |
210 params.type = views::Widget::InitParams::TYPE_POPUP; | 210 params.type = views::Widget::InitParams::TYPE_POPUP; |
211 params.name = "ToastOverlay"; | 211 params.name = "ToastOverlay"; |
212 params.opacity = views::Widget::InitParams::TRANSLUCENT_WINDOW; | 212 params.opacity = views::Widget::InitParams::TRANSLUCENT_WINDOW; |
213 params.ownership = views::Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET; | 213 params.ownership = views::Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET; |
214 params.accept_events = true; | 214 params.accept_events = true; |
215 params.keep_on_top = true; | 215 params.keep_on_top = true; |
216 params.remove_standard_frame = true; | 216 params.remove_standard_frame = true; |
217 params.bounds = CalculateOverlayBounds(); | 217 params.bounds = CalculateOverlayBounds(); |
218 // Show toasts above the app list and below the lock screen. | 218 // Show toasts above the app list and below the lock screen. |
219 Shell::GetWmRootWindowForNewWindows() | 219 GetRootWindowController(Shell::GetRootWindowForNewWindows()) |
220 ->GetRootWindowController() | |
221 ->ConfigureWidgetInitParamsForContainer( | 220 ->ConfigureWidgetInitParamsForContainer( |
222 overlay_widget_.get(), kShellWindowId_SystemModalContainer, ¶ms); | 221 overlay_widget_.get(), kShellWindowId_SystemModalContainer, ¶ms); |
223 overlay_widget_->Init(params); | 222 overlay_widget_->Init(params); |
224 overlay_widget_->SetVisibilityChangedAnimationsEnabled(true); | 223 overlay_widget_->SetVisibilityChangedAnimationsEnabled(true); |
225 overlay_widget_->SetContentsView(overlay_view_.get()); | 224 overlay_widget_->SetContentsView(overlay_view_.get()); |
226 overlay_widget_->SetBounds(CalculateOverlayBounds()); | 225 overlay_widget_->SetBounds(CalculateOverlayBounds()); |
227 | 226 |
228 WmWindow* overlay_window = WmWindow::Get(overlay_widget_->GetNativeWindow()); | 227 WmWindow* overlay_window = WmWindow::Get(overlay_widget_->GetNativeWindow()); |
229 overlay_window->SetVisibilityAnimationType( | 228 overlay_window->SetVisibilityAnimationType( |
230 ::wm::WINDOW_VISIBILITY_ANIMATION_TYPE_VERTICAL); | 229 ::wm::WINDOW_VISIBILITY_ANIMATION_TYPE_VERTICAL); |
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
290 ToastOverlayButton* ToastOverlay::dismiss_button_for_testing() { | 289 ToastOverlayButton* ToastOverlay::dismiss_button_for_testing() { |
291 return overlay_view_->button(); | 290 return overlay_view_->button(); |
292 } | 291 } |
293 | 292 |
294 void ToastOverlay::ClickDismissButtonForTesting(const ui::Event& event) { | 293 void ToastOverlay::ClickDismissButtonForTesting(const ui::Event& event) { |
295 DCHECK(overlay_view_->button()); | 294 DCHECK(overlay_view_->button()); |
296 overlay_view_->button()->NotifyClick(event); | 295 overlay_view_->button()->NotifyClick(event); |
297 } | 296 } |
298 | 297 |
299 } // namespace ash | 298 } // namespace ash |
OLD | NEW |