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

Side by Side Diff: ash/common/shelf/shelf_background_animator.h

Issue 2680113002: [ash-md] Remove non-md code from the Shelf background animations. (Closed)
Patch Set: Merge branch 'master' into colorize_shelf_1_remove_non_md_code 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
« no previous file with comments | « ash/common/shelf/overflow_bubble_view.cc ('k') | ash/common/shelf/shelf_background_animator.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 #ifndef ASH_COMMON_SHELF_SHELF_BACKGROUND_ANIMATOR_H_ 5 #ifndef ASH_COMMON_SHELF_SHELF_BACKGROUND_ANIMATOR_H_
6 #define ASH_COMMON_SHELF_SHELF_BACKGROUND_ANIMATOR_H_ 6 #define ASH_COMMON_SHELF_SHELF_BACKGROUND_ANIMATOR_H_
7 7
8 #include <memory>
8 #include <vector> 9 #include <vector>
9 10
10 #include "ash/ash_export.h" 11 #include "ash/ash_export.h"
11 #include "ash/common/shelf/wm_shelf_observer.h" 12 #include "ash/common/shelf/wm_shelf_observer.h"
12 #include "ash/common/wm/background_animator.h" 13 #include "ash/common/wm/background_animator.h"
13 #include "ash/public/cpp/shelf_types.h" 14 #include "ash/public/cpp/shelf_types.h"
14 #include "base/macros.h" 15 #include "base/macros.h"
15 #include "base/observer_list.h" 16 #include "base/observer_list.h"
16 17
17 namespace ash { 18 namespace ash {
18 19
19 class ShelfBackgroundAnimatorObserver; 20 class ShelfBackgroundAnimatorObserver;
20 class ShelfBackgroundAnimatorTestApi; 21 class ShelfBackgroundAnimatorTestApi;
21 class WmShelf; 22 class WmShelf;
22 23
23 // Central controller for the Shelf and Dock opacity animations. 24 // Central controller for the Shelf and Dock opacity animations.
24 // 25 //
25 // The ShelfBackgroundAnimator is capable of observing a WmShelf instance for 26 // The ShelfBackgroundAnimator is capable of observing a WmShelf instance for
26 // background type changes or clients can call PaintBackground() directly. 27 // background type changes or clients can call PaintBackground() directly.
27 // 28 //
28 // The Shelf uses 3 surfaces for the animations: 29 // The Shelf uses 2 surfaces for the animations:
29 // 30 //
30 // Non-Material Design:
31 // 1. Shelf button backgrounds
32 // 2. Opaque overlay for the SHELF_BACKGROUND_MAXIMIZED state.
33 // 3. Shelf and Dock assets for the SHELF_BACKGROUND_OVERLAP state.
34 // Material Design: 31 // Material Design:
35 // 1. Shelf button backgrounds 32 // 1. Shelf button backgrounds
36 // 2. Opaque overlay for the SHELF_BACKGROUND_OVERLAP and 33 // 2. Opaque overlay for the SHELF_BACKGROUND_OVERLAP and
37 // SHELF_BACKGROUND_MAXIMIZED states. 34 // SHELF_BACKGROUND_MAXIMIZED states.
38 class ASH_EXPORT ShelfBackgroundAnimator : public WmShelfObserver, 35 class ASH_EXPORT ShelfBackgroundAnimator : public WmShelfObserver,
39 public BackgroundAnimatorDelegate { 36 public BackgroundAnimatorDelegate {
40 public: 37 public:
41 // Initializes this with the given |background_type|. This will observe the 38 // Initializes this with the given |background_type|. This will observe the
42 // |wm_shelf| for background type changes if |wm_shelf| is not null. 39 // |wm_shelf| for background type changes if |wm_shelf| is not null.
43 ShelfBackgroundAnimator(ShelfBackgroundType background_type, 40 ShelfBackgroundAnimator(ShelfBackgroundType background_type,
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
101 ShelfBackgroundType target_background_type_ = SHELF_BACKGROUND_DEFAULT; 98 ShelfBackgroundType target_background_type_ = SHELF_BACKGROUND_DEFAULT;
102 99
103 // The last background type this is animating away from. 100 // The last background type this is animating away from.
104 ShelfBackgroundType previous_background_type_ = SHELF_BACKGROUND_MAXIMIZED; 101 ShelfBackgroundType previous_background_type_ = SHELF_BACKGROUND_MAXIMIZED;
105 102
106 // Animates the solid color background of the Shelf. 103 // Animates the solid color background of the Shelf.
107 // TODO(bruthig): Replace all BackgroundAnimators with a single 104 // TODO(bruthig): Replace all BackgroundAnimators with a single
108 // gfx::SlideAnimation. 105 // gfx::SlideAnimation.
109 std::unique_ptr<BackgroundAnimator> opaque_background_animator_; 106 std::unique_ptr<BackgroundAnimator> opaque_background_animator_;
110 107
111 // Animates the asset/image based background of the Shelf.
112 // TODO(bruthig): Remove when non-md is no longer needed (crbug.com/614453).
113 std::unique_ptr<BackgroundAnimator> asset_background_animator_;
114
115 // Animates the backgrounds of Shelf child Views. 108 // Animates the backgrounds of Shelf child Views.
116 std::unique_ptr<BackgroundAnimator> item_background_animator_; 109 std::unique_ptr<BackgroundAnimator> item_background_animator_;
117 110
118 base::ObserverList<ShelfBackgroundAnimatorObserver> observers_; 111 base::ObserverList<ShelfBackgroundAnimatorObserver> observers_;
119 112
120 // True if the existing BackgroundAnimators can be re-used to animate to the 113 // True if the existing BackgroundAnimators can be re-used to animate to the
121 // |previous_background_type_|. This allows for pre-empted animations to take 114 // |previous_background_type_|. This allows for pre-empted animations to take
122 // the same amount of time to reverse to the |previous_background_type_|. 115 // the same amount of time to reverse to the |previous_background_type_|.
123 bool can_reuse_animators_ = false; 116 bool can_reuse_animators_ = false;
124 117
125 // Tracks how many animators completed successfully since the last 118 // Tracks how many animators completed successfully since the last
126 // CreateAnimators() call. Used to properly set |can_reuse_animators_|. 119 // CreateAnimators() call. Used to properly set |can_reuse_animators_|.
127 int successful_animator_count_ = 0; 120 int successful_animator_count_ = 0;
128 121
129 // The shelf to observe for changes to the shelf background type, can be null. 122 // The shelf to observe for changes to the shelf background type, can be null.
130 WmShelf* wm_shelf_; 123 WmShelf* wm_shelf_;
131 124
132 DISALLOW_COPY_AND_ASSIGN(ShelfBackgroundAnimator); 125 DISALLOW_COPY_AND_ASSIGN(ShelfBackgroundAnimator);
133 }; 126 };
134 127
135 } // namespace ash 128 } // namespace ash
136 129
137 #endif // ASH_COMMON_SHELF_SHELF_BACKGROUND_ANIMATOR_H_ 130 #endif // ASH_COMMON_SHELF_SHELF_BACKGROUND_ANIMATOR_H_
OLDNEW
« no previous file with comments | « ash/common/shelf/overflow_bubble_view.cc ('k') | ash/common/shelf/shelf_background_animator.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698