| Index: ash/wm/dock/docked_window_layout_manager.cc
|
| diff --git a/ash/wm/dock/docked_window_layout_manager.cc b/ash/wm/dock/docked_window_layout_manager.cc
|
| index 39eb1008fed3ed2ee1f1d6991b3fe01d1fbf6f85..714de13f74bfc257b836552cedc123e5a593cc80 100644
|
| --- a/ash/wm/dock/docked_window_layout_manager.cc
|
| +++ b/ash/wm/dock/docked_window_layout_manager.cc
|
| @@ -4,19 +4,15 @@
|
|
|
| #include "ash/wm/dock/docked_window_layout_manager.h"
|
|
|
| -#include "ash/shelf/shelf.h"
|
| -#include "ash/shelf/shelf_constants.h"
|
| -#include "ash/shelf/shelf_layout_manager.h"
|
| -#include "ash/shelf/shelf_layout_manager_observer.h"
|
| -#include "ash/shelf/shelf_types.h"
|
| -#include "ash/shelf/shelf_widget.h"
|
| #include "ash/shell_window_ids.h"
|
| +#include "ash/wm/common/shelf/wm_shelf.h"
|
| +#include "ash/wm/common/shelf/wm_shelf_constants.h"
|
| +#include "ash/wm/common/shelf/wm_shelf_observer.h"
|
| #include "ash/wm/common/window_animation_types.h"
|
| #include "ash/wm/common/window_parenting_utils.h"
|
| #include "ash/wm/common/wm_globals.h"
|
| #include "ash/wm/common/wm_root_window_controller.h"
|
| #include "ash/wm/common/wm_window.h"
|
| -#include "ash/wm/window_animations.h"
|
| #include "ash/wm/window_resizer.h"
|
| #include "ash/wm/window_state.h"
|
| #include "base/auto_reset.h"
|
| @@ -50,23 +46,22 @@ const int kMinimizeDurationMs = 720;
|
|
|
| class DockedBackgroundWidget : public views::Widget,
|
| public BackgroundAnimatorDelegate,
|
| - public ShelfLayoutManagerObserver {
|
| + public wm::WmShelfObserver {
|
| public:
|
| explicit DockedBackgroundWidget(DockedWindowLayoutManager* manager)
|
| : manager_(manager),
|
| alignment_(DOCKED_ALIGNMENT_NONE),
|
| - background_animator_(this, 0, kShelfBackgroundAlpha),
|
| + background_animator_(this, 0, wm::kShelfBackgroundAlpha),
|
| alpha_(0),
|
| opaque_background_(ui::LAYER_SOLID_COLOR),
|
| - visible_background_type_(
|
| - manager_->shelf()->shelf_widget()->GetBackgroundType()),
|
| + visible_background_type_(manager_->shelf()->GetBackgroundType()),
|
| visible_background_change_type_(BACKGROUND_CHANGE_IMMEDIATE) {
|
| - manager_->shelf()->shelf_layout_manager()->AddObserver(this);
|
| + manager_->shelf()->AddObserver(this);
|
| InitWidget(manager_->dock_container());
|
| }
|
|
|
| ~DockedBackgroundWidget() override {
|
| - manager_->shelf()->shelf_layout_manager()->RemoveObserver(this);
|
| + manager_->shelf()->RemoveObserver(this);
|
| }
|
|
|
| // Sets widget bounds and sizes opaque background layer to fill the widget.
|
| @@ -115,7 +110,7 @@ class DockedBackgroundWidget : public views::Widget,
|
| }
|
|
|
| // ShelfLayoutManagerObserver:
|
| - void OnBackgroundUpdated(ShelfBackgroundType background_type,
|
| + void OnBackgroundUpdated(wm::ShelfBackgroundType background_type,
|
| BackgroundAnimatorChangeType change_type) override {
|
| // Sets the background type. Starts an animation to transition to
|
| // |background_type| if the widget is visible. If the widget is not visible,
|
| @@ -163,20 +158,20 @@ class DockedBackgroundWidget : public views::Widget,
|
| // Transitions to |visible_background_type_| if the widget is visible and to
|
| // SHELF_BACKGROUND_DEFAULT if it is not.
|
| void UpdateBackground() {
|
| - ShelfBackgroundType background_type = IsVisible() ?
|
| - visible_background_type_ : SHELF_BACKGROUND_DEFAULT;
|
| + wm::ShelfBackgroundType background_type =
|
| + IsVisible() ? visible_background_type_ : wm::SHELF_BACKGROUND_DEFAULT;
|
| BackgroundAnimatorChangeType change_type = IsVisible() ?
|
| visible_background_change_type_ : BACKGROUND_CHANGE_IMMEDIATE;
|
|
|
| float target_opacity =
|
| - (background_type == SHELF_BACKGROUND_MAXIMIZED) ? 1.0f : 0.0f;
|
| + (background_type == wm::SHELF_BACKGROUND_MAXIMIZED) ? 1.0f : 0.0f;
|
| std::unique_ptr<ui::ScopedLayerAnimationSettings>
|
| opaque_background_animation;
|
| if (change_type != BACKGROUND_CHANGE_IMMEDIATE) {
|
| opaque_background_animation.reset(new ui::ScopedLayerAnimationSettings(
|
| opaque_background_.GetAnimator()));
|
| opaque_background_animation->SetTransitionDuration(
|
| - base::TimeDelta::FromMilliseconds(kTimeToSwitchBackgroundMs));
|
| + base::TimeDelta::FromMilliseconds(wm::kTimeToSwitchBackgroundMs));
|
| }
|
| opaque_background_.SetOpacity(target_opacity);
|
|
|
| @@ -184,8 +179,7 @@ class DockedBackgroundWidget : public views::Widget,
|
| // background retire background_animator_ at all. It would be simpler.
|
| // See also ShelfWidget::SetPaintsBackground.
|
| background_animator_.SetPaintsBackground(
|
| - background_type != SHELF_BACKGROUND_DEFAULT,
|
| - change_type);
|
| + background_type != wm::SHELF_BACKGROUND_DEFAULT, change_type);
|
| SchedulePaintInRect(gfx::Rect(GetWindowBoundsInScreen().size()));
|
| }
|
|
|
| @@ -208,7 +202,7 @@ class DockedBackgroundWidget : public views::Widget,
|
|
|
| // The background type to use when the widget is visible. When not visible,
|
| // the widget uses SHELF_BACKGROUND_DEFAULT.
|
| - ShelfBackgroundType visible_background_type_;
|
| + wm::ShelfBackgroundType visible_background_type_;
|
|
|
| // Whether the widget should animate to |visible_background_type_|.
|
| BackgroundAnimatorChangeType visible_background_change_type_;
|
| @@ -369,16 +363,14 @@ class DockedWindowLayoutManager::ShelfWindowObserver
|
| explicit ShelfWindowObserver(
|
| DockedWindowLayoutManager* docked_layout_manager)
|
| : docked_layout_manager_(docked_layout_manager) {
|
| - DCHECK(docked_layout_manager_->shelf()->shelf_widget());
|
| - wm::WmWindow::Get(docked_layout_manager_->shelf()->shelf_widget())
|
| - ->AddObserver(this);
|
| + DCHECK(docked_layout_manager_->shelf()->GetWindow());
|
| + docked_layout_manager_->shelf()->GetWindow()->AddObserver(this);
|
| }
|
|
|
| ~ShelfWindowObserver() override {
|
| if (docked_layout_manager_->shelf() &&
|
| - docked_layout_manager_->shelf()->shelf_widget()) {
|
| - wm::WmWindow::Get(docked_layout_manager_->shelf()->shelf_widget())
|
| - ->RemoveObserver(this);
|
| + docked_layout_manager_->shelf()->GetWindow()) {
|
| + docked_layout_manager_->shelf()->GetWindow()->RemoveObserver(this);
|
| }
|
| }
|
|
|
| @@ -548,7 +540,7 @@ void DockedWindowLayoutManager::FinishDragging(DockedAction action,
|
| RecordUmaAction(action, source);
|
| }
|
|
|
| -void DockedWindowLayoutManager::SetShelf(Shelf* shelf) {
|
| +void DockedWindowLayoutManager::SetShelf(wm::WmShelf* shelf) {
|
| DCHECK(!shelf_);
|
| shelf_ = shelf;
|
| shelf_observer_.reset(new ShelfWindowObserver(this));
|
| @@ -636,12 +628,12 @@ bool DockedWindowLayoutManager::CanDockWindow(
|
|
|
| bool DockedWindowLayoutManager::IsDockedAlignmentValid(
|
| DockedAlignment alignment) const {
|
| - ShelfAlignment shelf_alignment = shelf_ ? shelf_->alignment() :
|
| - SHELF_ALIGNMENT_BOTTOM;
|
| + wm::ShelfAlignment shelf_alignment =
|
| + shelf_ ? shelf_->GetAlignment() : wm::SHELF_ALIGNMENT_BOTTOM;
|
| if ((alignment == DOCKED_ALIGNMENT_LEFT &&
|
| - shelf_alignment == SHELF_ALIGNMENT_LEFT) ||
|
| + shelf_alignment == wm::SHELF_ALIGNMENT_LEFT) ||
|
| (alignment == DOCKED_ALIGNMENT_RIGHT &&
|
| - shelf_alignment == SHELF_ALIGNMENT_RIGHT)) {
|
| + shelf_alignment == wm::SHELF_ALIGNMENT_RIGHT)) {
|
| return false;
|
| }
|
| return true;
|
| @@ -759,9 +751,8 @@ void DockedWindowLayoutManager::SetChildBounds(
|
| if (IsPopupOrTransient(child))
|
| return;
|
| // Whenever one of our windows is moved or resized enforce layout.
|
| - ShelfLayoutManager* shelf_layout = shelf_->shelf_layout_manager();
|
| - if (shelf_layout)
|
| - shelf_layout->UpdateVisibilityState();
|
| + if (shelf_)
|
| + shelf_->UpdateVisibilityState();
|
| }
|
|
|
| ////////////////////////////////////////////////////////////////////////////////
|
| @@ -805,12 +796,12 @@ void DockedWindowLayoutManager::OnShelfAlignmentChanged() {
|
|
|
| // Do not allow shelf and dock on the same side. Switch side that
|
| // the dock is attached to and move all dock windows to that new side.
|
| - ShelfAlignment shelf_alignment = shelf_->alignment();
|
| + wm::ShelfAlignment shelf_alignment = shelf_->GetAlignment();
|
| if (alignment_ == DOCKED_ALIGNMENT_LEFT &&
|
| - shelf_alignment == SHELF_ALIGNMENT_LEFT) {
|
| + shelf_alignment == wm::SHELF_ALIGNMENT_LEFT) {
|
| alignment_ = DOCKED_ALIGNMENT_RIGHT;
|
| } else if (alignment_ == DOCKED_ALIGNMENT_RIGHT &&
|
| - shelf_alignment == SHELF_ALIGNMENT_RIGHT) {
|
| + shelf_alignment == wm::SHELF_ALIGNMENT_RIGHT) {
|
| alignment_ = DOCKED_ALIGNMENT_LEFT;
|
| }
|
| Relayout();
|
|
|