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

Side by Side Diff: ash/shelf/shelf_background_animator.cc

Issue 2053113002: Replaced BackgroundAnimator with ShelfBackgroundAnimator. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 6 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
(Empty)
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
3 // found in the LICENSE file.
4
5 #include "ash/shelf/shelf_background_animator.h"
6
7 #include "ash/common/shelf/shelf_constants.h"
8 #include "ash/shelf/shelf_background_animator_delegate.h"
9 #include "base/logging.h"
10
11 namespace ash {
12
13 ShelfBackgroundAnimator::ShelfBackgroundAnimator()
14 : target_background_type_(SHELF_BACKGROUND_DEFAULT),
15 previous_background_type_(SHELF_BACKGROUND_DEFAULT),
16 previous_shelf_alpha_(0),
17 previous_shelf_item_alpha_(255) {}
18
19 ShelfBackgroundAnimator::~ShelfBackgroundAnimator() {}
20
21 void ShelfBackgroundAnimator::AddShelfBackgroundDelegate(
22 ShelfBackgroundAnimatorDelegate* delegate) {
23 LOG(ERROR) << " *** " << __FUNCTION__ << "() line=" << __LINE__ << "";
24 shelf_background_delegates_.push_back(delegate);
25 }
26
27 void ShelfBackgroundAnimator::AddShelfItemBackgroundDelegate(
28 ShelfBackgroundAnimatorDelegate* delegate) {
29 LOG(ERROR) << " *** " << __FUNCTION__ << "() line=" << __LINE__ << "";
30 shelf_item_background_delegates_.push_back(delegate);
31 }
32
33 void ShelfBackgroundAnimator::PaintBackground(
34 ShelfBackgroundType background_type,
35 BackgroundAnimatorChangeType change_type) {
36 LOG(ERROR) << " *** " << __FUNCTION__ << "() line=" << __LINE__
37 << " background_type=" << background_type
38 << " change_type=" << change_type;
39 if (shelf_background_animator_ && shelf_item_background_animator_ &&
40 previous_background_type_ == background_type) {
41 LOG(ERROR) << " *** " << __FUNCTION__ << "() line=" << __LINE__ << "";
42 shelf_background_animator_->SetPaintsBackground(false, change_type);
43 shelf_item_background_animator_->SetPaintsBackground(false, change_type);
44
45 previous_background_type_ = target_background_type_;
46 target_background_type_ = background_type;
47
48 return;
49 }
50
51 CreateAnimators(background_type, change_type);
52 ConfigureAnimatorsDuration(background_type, change_type);
53
54 shelf_background_animator_->SetPaintsBackground(true, change_type);
55 shelf_item_background_animator_->SetPaintsBackground(true, change_type);
56
57 previous_background_type_ = target_background_type_;
58 target_background_type_ = background_type;
59 }
60
61 void ShelfBackgroundAnimator::OnBackgroundUpdated(
62 ShelfBackgroundType background_type,
63 BackgroundAnimatorChangeType change_type) {
64 LOG(ERROR) << " *** " << __FUNCTION__ << "() line=" << __LINE__
65 << " background_type=" << background_type
66 << " change_type=" << change_type;
67 PaintBackground(background_type, change_type);
68 }
69
70 void ShelfBackgroundAnimator::UpdateBackground(BackgroundAnimator* animator,
71 int alpha) {
72 LOG(ERROR) << " *** " << __FUNCTION__ << "() line=" << __LINE__
73 << " alpha=" << alpha;
74 if (animator == shelf_background_animator_.get()) {
75 UpdateDelegates(shelf_background_delegates_, alpha);
76 previous_shelf_alpha_ = alpha;
77 } else if (animator == shelf_item_background_animator_.get()) {
78 UpdateDelegates(shelf_item_background_delegates_, alpha);
79 previous_shelf_item_alpha_ = alpha;
80 } else {
81 NOTREACHED();
82 }
83 }
84
85 void ShelfBackgroundAnimator::BackgroundAnimationEnded(bool successfully) {
86 LOG(ERROR) << " *** " << __FUNCTION__ << "() line=" << __LINE__ << "";
87 shelf_background_animator_.reset();
88 shelf_item_background_animator_.reset();
89 }
90
91 void ShelfBackgroundAnimator::UpdateDelegates(DelegateList delegates,
92 int alpha) {
93 LOG(ERROR) << " *** " << __FUNCTION__ << "() line=" << __LINE__ << "";
94 for (auto delegate : delegates)
James Cook 2016/06/09 23:40:37 nit: don't use raw "auto" in ranged-for loops. Pre
bruthig 2016/06/14 16:40:44 Done.
95 delegate->UpdateBackgroundAlpha(alpha);
96 }
97
98 void ShelfBackgroundAnimator::CreateAnimators(
99 ShelfBackgroundType background_type,
100 BackgroundAnimatorChangeType change_type) {
101 LOG(ERROR) << " *** " << __FUNCTION__ << "() line=" << __LINE__ << "";
102 switch (background_type) {
103 case SHELF_BACKGROUND_DEFAULT:
104 shelf_background_animator_.reset(
105 new BackgroundAnimator(this, previous_shelf_alpha_, 0));
106 shelf_item_background_animator_.reset(
107 new BackgroundAnimator(this, previous_shelf_item_alpha_,
108 GetShelfConstant(SHELF_BACKGROUND_ALPHA)));
109 break;
110 case SHELF_BACKGROUND_OVERLAP:
111 shelf_background_animator_.reset(
112 new BackgroundAnimator(this, previous_shelf_alpha_,
113 GetShelfConstant(SHELF_BACKGROUND_ALPHA)));
114 shelf_item_background_animator_.reset(
115 new BackgroundAnimator(this, previous_shelf_item_alpha_, 0));
116 break;
117 case SHELF_BACKGROUND_MAXIMIZED:
118 shelf_background_animator_.reset(
119 new BackgroundAnimator(this, previous_shelf_alpha_, 255));
120 shelf_item_background_animator_.reset(
121 new BackgroundAnimator(this, previous_shelf_item_alpha_, 0));
122 break;
123 }
124 }
125
126 void ShelfBackgroundAnimator::ConfigureAnimatorsDuration(
127 ShelfBackgroundType background_type,
128 BackgroundAnimatorChangeType change_type) {
129 int duration_ms = 0;
130 if (change_type != BACKGROUND_CHANGE_IMMEDIATE) {
131 switch (background_type) {
132 case SHELF_BACKGROUND_DEFAULT:
133 duration_ms = 1000;
134 break;
135 case SHELF_BACKGROUND_OVERLAP:
136 duration_ms = 1000;
137 break;
138 case SHELF_BACKGROUND_MAXIMIZED:
139 duration_ms = 500;
140 break;
141 }
142 }
143 LOG(ERROR) << " *** " << __FUNCTION__ << "() line=" << __LINE__
144 << " duration=" << duration_ms;
145 shelf_background_animator_->SetDuration(duration_ms);
146 shelf_item_background_animator_->SetDuration(duration_ms);
147 }
148
149 } // namespace ash
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698