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

Side by Side Diff: ash/common/wm/dock/docked_window_layout_manager.cc

Issue 2679133003: [ash-md] Wired in the Shelf color to be derived from the Wallpaper. (Closed)
Patch Set: Addressed nits. Created 3 years, 10 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) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2013 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/wm/dock/docked_window_layout_manager.h" 5 #include "ash/common/wm/dock/docked_window_layout_manager.h"
6 6
7 #include "ash/animation/animation_change_type.h" 7 #include "ash/animation/animation_change_type.h"
8 #include "ash/common/shelf/shelf_background_animator.h" 8 #include "ash/common/shelf/shelf_background_animator.h"
9 #include "ash/common/shelf/shelf_background_animator_observer.h" 9 #include "ash/common/shelf/shelf_background_animator_observer.h"
10 #include "ash/common/shelf/shelf_constants.h" 10 #include "ash/common/shelf/shelf_constants.h"
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
49 const int kFadeDurationMs = 60; 49 const int kFadeDurationMs = 60;
50 const int kMinimizeDurationMs = 720; 50 const int kMinimizeDurationMs = 720;
51 51
52 class DockedBackgroundWidget : public views::Widget, 52 class DockedBackgroundWidget : public views::Widget,
53 public WmShelfObserver, 53 public WmShelfObserver,
54 public ShelfBackgroundAnimatorObserver { 54 public ShelfBackgroundAnimatorObserver {
55 public: 55 public:
56 explicit DockedBackgroundWidget(DockedWindowLayoutManager* manager) 56 explicit DockedBackgroundWidget(DockedWindowLayoutManager* manager)
57 : manager_(manager), 57 : manager_(manager),
58 alignment_(DOCKED_ALIGNMENT_NONE), 58 alignment_(DOCKED_ALIGNMENT_NONE),
59 background_animator_(SHELF_BACKGROUND_DEFAULT, nullptr), 59 background_animator_(SHELF_BACKGROUND_DEFAULT,
60 nullptr,
61 WmShell::Get()->wallpaper_controller()),
60 opaque_background_(ui::LAYER_SOLID_COLOR), 62 opaque_background_(ui::LAYER_SOLID_COLOR),
61 visible_background_type_(manager_->shelf()->GetBackgroundType()), 63 visible_background_type_(manager_->shelf()->GetBackgroundType()),
62 visible_background_change_type_(AnimationChangeType::IMMEDIATE) { 64 visible_background_change_type_(AnimationChangeType::IMMEDIATE) {
63 manager_->shelf()->AddObserver(this); 65 manager_->shelf()->AddObserver(this);
64 InitWidget(manager_->dock_container()); 66 InitWidget(manager_->dock_container());
65 67
66 background_animator_.AddObserver(this); 68 background_animator_.AddObserver(this);
67 } 69 }
68 70
69 ~DockedBackgroundWidget() override { 71 ~DockedBackgroundWidget() override {
70 background_animator_.RemoveObserver(this); 72 background_animator_.RemoveObserver(this);
71 manager_->shelf()->RemoveObserver(this); 73 manager_->shelf()->RemoveObserver(this);
72 } 74 }
73 75
74 // Sets widget bounds and sizes opaque background layer to fill the widget. 76 // Sets widget bounds and sizes opaque background layer to fill the widget.
75 void SetBackgroundBounds(const gfx::Rect& bounds, DockedAlignment alignment) { 77 void SetBackgroundBounds(const gfx::Rect& bounds, DockedAlignment alignment) {
76 SetBounds(bounds); 78 SetBounds(bounds);
77 opaque_background_.SetBounds(gfx::Rect(bounds.size())); 79 opaque_background_.SetBounds(gfx::Rect(bounds.size()));
78 alignment_ = alignment; 80 alignment_ = alignment;
79 } 81 }
80 82
81 private: 83 private:
82 // views::Widget: 84 // views::Widget:
83 void OnNativeWidgetVisibilityChanged(bool visible) override { 85 void OnNativeWidgetVisibilityChanged(bool visible) override {
84 views::Widget::OnNativeWidgetVisibilityChanged(visible); 86 views::Widget::OnNativeWidgetVisibilityChanged(visible);
85 UpdateBackground(); 87 UpdateBackground();
86 } 88 }
87 89
88 // ShelfBackgroundAnimatorObserver: 90 // ShelfBackgroundAnimatorObserver:
89 void UpdateShelfBackground(int alpha) override { 91 void UpdateShelfBackground(SkColor color) override {
90 const float kMaxAlpha = 255.0f; 92 opaque_background_.SetColor(color);
91 opaque_background_.SetOpacity(alpha / kMaxAlpha);
92 } 93 }
93 94
94 // WmShelfObserver: 95 // WmShelfObserver:
95 void OnBackgroundTypeChanged(ShelfBackgroundType background_type, 96 void OnBackgroundTypeChanged(ShelfBackgroundType background_type,
96 AnimationChangeType change_type) override { 97 AnimationChangeType change_type) override {
97 // Sets the background type. Starts an animation to transition to 98 // Sets the background type. Starts an animation to transition to
98 // |background_type| if the widget is visible. If the widget is not visible, 99 // |background_type| if the widget is visible. If the widget is not visible,
99 // the animation is postponed till the widget becomes visible. 100 // the animation is postponed till the widget becomes visible.
100 visible_background_type_ = background_type; 101 visible_background_type_ = background_type;
101 visible_background_change_type_ = change_type; 102 visible_background_change_type_ = change_type;
(...skipping 1225 matching lines...) Expand 10 before | Expand all | Expand 10 after
1327 const gfx::Rect& keyboard_bounds) { 1328 const gfx::Rect& keyboard_bounds) {
1328 // This bounds change will have caused a change to the Shelf which does not 1329 // This bounds change will have caused a change to the Shelf which does not
1329 // propagate automatically to this class, so manually recalculate bounds. 1330 // propagate automatically to this class, so manually recalculate bounds.
1330 Relayout(); 1331 Relayout();
1331 UpdateDockBounds(DockedWindowLayoutManagerObserver::KEYBOARD_BOUNDS_CHANGING); 1332 UpdateDockBounds(DockedWindowLayoutManagerObserver::KEYBOARD_BOUNDS_CHANGING);
1332 } 1333 }
1333 1334
1334 void DockedWindowLayoutManager::OnKeyboardClosed() {} 1335 void DockedWindowLayoutManager::OnKeyboardClosed() {}
1335 1336
1336 } // namespace ash 1337 } // namespace ash
OLDNEW
« no previous file with comments | « ash/common/wallpaper/wallpaper_controller_observer.h ('k') | chrome/app/generated_resources.grd » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698