| 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/common/system/toast/toast_overlay.h" | 5 #include "ash/common/system/toast/toast_overlay.h" |
| 6 | 6 |
| 7 #include "ash/common/shelf/wm_shelf.h" | 7 #include "ash/common/shelf/wm_shelf.h" |
| 8 #include "ash/common/wm_shell.h" | |
| 9 #include "ash/common/wm_window.h" | 8 #include "ash/common/wm_window.h" |
| 10 #include "ash/public/cpp/shell_window_ids.h" | 9 #include "ash/public/cpp/shell_window_ids.h" |
| 11 #include "ash/root_window_controller.h" | 10 #include "ash/root_window_controller.h" |
| 11 #include "ash/shell.h" |
| 12 #include "ash/strings/grit/ash_strings.h" | 12 #include "ash/strings/grit/ash_strings.h" |
| 13 #include "base/strings/string_util.h" | 13 #include "base/strings/string_util.h" |
| 14 #include "base/strings/utf_string_conversions.h" | 14 #include "base/strings/utf_string_conversions.h" |
| 15 #include "base/threading/thread_task_runner_handle.h" | 15 #include "base/threading/thread_task_runner_handle.h" |
| 16 #include "third_party/skia/include/core/SkColor.h" | 16 #include "third_party/skia/include/core/SkColor.h" |
| 17 #include "ui/base/l10n/l10n_util.h" | 17 #include "ui/base/l10n/l10n_util.h" |
| 18 #include "ui/base/resource/resource_bundle.h" | 18 #include "ui/base/resource/resource_bundle.h" |
| 19 #include "ui/gfx/canvas.h" | 19 #include "ui/gfx/canvas.h" |
| 20 #include "ui/gfx/font_list.h" | 20 #include "ui/gfx/font_list.h" |
| 21 #include "ui/views/border.h" | 21 #include "ui/views/border.h" |
| (...skipping 25 matching lines...) Expand all Loading... |
| 47 | 47 |
| 48 // These values are in DIP. | 48 // These values are in DIP. |
| 49 const int kToastHorizontalSpacing = 16; | 49 const int kToastHorizontalSpacing = 16; |
| 50 const int kToastVerticalSpacing = 16; | 50 const int kToastVerticalSpacing = 16; |
| 51 const int kToastMaximumWidth = 568; | 51 const int kToastMaximumWidth = 568; |
| 52 const int kToastMinimumWidth = 288; | 52 const int kToastMinimumWidth = 288; |
| 53 | 53 |
| 54 // Returns the work area bounds for the root window where new windows are added | 54 // Returns the work area bounds for the root window where new windows are added |
| 55 // (including new toasts). | 55 // (including new toasts). |
| 56 gfx::Rect GetUserWorkAreaBounds() { | 56 gfx::Rect GetUserWorkAreaBounds() { |
| 57 return WmShelf::ForWindow(WmShell::Get()->GetRootWindowForNewWindows()) | 57 return WmShelf::ForWindow(Shell::GetWmRootWindowForNewWindows()) |
| 58 ->GetUserWorkAreaBounds(); | 58 ->GetUserWorkAreaBounds(); |
| 59 } | 59 } |
| 60 | 60 |
| 61 } // anonymous namespace | 61 } // anonymous namespace |
| 62 | 62 |
| 63 /////////////////////////////////////////////////////////////////////////////// | 63 /////////////////////////////////////////////////////////////////////////////// |
| 64 // ToastOverlayLabel | 64 // ToastOverlayLabel |
| 65 class ToastOverlayLabel : public views::Label { | 65 class ToastOverlayLabel : public views::Label { |
| 66 public: | 66 public: |
| 67 explicit ToastOverlayLabel(const base::string16& label); | 67 explicit ToastOverlayLabel(const base::string16& label); |
| (...skipping 151 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 219 views::Widget::InitParams params; | 219 views::Widget::InitParams params; |
| 220 params.type = views::Widget::InitParams::TYPE_POPUP; | 220 params.type = views::Widget::InitParams::TYPE_POPUP; |
| 221 params.name = "ToastOverlay"; | 221 params.name = "ToastOverlay"; |
| 222 params.opacity = views::Widget::InitParams::TRANSLUCENT_WINDOW; | 222 params.opacity = views::Widget::InitParams::TRANSLUCENT_WINDOW; |
| 223 params.ownership = views::Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET; | 223 params.ownership = views::Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET; |
| 224 params.accept_events = true; | 224 params.accept_events = true; |
| 225 params.keep_on_top = true; | 225 params.keep_on_top = true; |
| 226 params.remove_standard_frame = true; | 226 params.remove_standard_frame = true; |
| 227 params.bounds = CalculateOverlayBounds(); | 227 params.bounds = CalculateOverlayBounds(); |
| 228 // Show toasts above the app list and below the lock screen. | 228 // Show toasts above the app list and below the lock screen. |
| 229 WmShell::Get() | 229 Shell::GetWmRootWindowForNewWindows() |
| 230 ->GetRootWindowForNewWindows() | |
| 231 ->GetRootWindowController() | 230 ->GetRootWindowController() |
| 232 ->ConfigureWidgetInitParamsForContainer( | 231 ->ConfigureWidgetInitParamsForContainer( |
| 233 overlay_widget_.get(), kShellWindowId_SystemModalContainer, ¶ms); | 232 overlay_widget_.get(), kShellWindowId_SystemModalContainer, ¶ms); |
| 234 overlay_widget_->Init(params); | 233 overlay_widget_->Init(params); |
| 235 overlay_widget_->SetVisibilityChangedAnimationsEnabled(true); | 234 overlay_widget_->SetVisibilityChangedAnimationsEnabled(true); |
| 236 overlay_widget_->SetContentsView(overlay_view_.get()); | 235 overlay_widget_->SetContentsView(overlay_view_.get()); |
| 237 overlay_widget_->SetBounds(CalculateOverlayBounds()); | 236 overlay_widget_->SetBounds(CalculateOverlayBounds()); |
| 238 | 237 |
| 239 WmWindow* overlay_window = WmWindow::Get(overlay_widget_->GetNativeWindow()); | 238 WmWindow* overlay_window = WmWindow::Get(overlay_widget_->GetNativeWindow()); |
| 240 overlay_window->SetVisibilityAnimationType( | 239 overlay_window->SetVisibilityAnimationType( |
| (...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 301 ToastOverlayButton* ToastOverlay::dismiss_button_for_testing() { | 300 ToastOverlayButton* ToastOverlay::dismiss_button_for_testing() { |
| 302 return overlay_view_->button(); | 301 return overlay_view_->button(); |
| 303 } | 302 } |
| 304 | 303 |
| 305 void ToastOverlay::ClickDismissButtonForTesting(const ui::Event& event) { | 304 void ToastOverlay::ClickDismissButtonForTesting(const ui::Event& event) { |
| 306 DCHECK(overlay_view_->button()); | 305 DCHECK(overlay_view_->button()); |
| 307 overlay_view_->button()->NotifyClick(event); | 306 overlay_view_->button()->NotifyClick(event); |
| 308 } | 307 } |
| 309 | 308 |
| 310 } // namespace ash | 309 } // namespace ash |
| OLD | NEW |