OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 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/overview/window_selector_item.h" | 5 #include "ash/common/wm/overview/window_selector_item.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 #include <vector> | 8 #include <vector> |
9 | 9 |
10 #include "ash/common/material_design/material_design_controller.h" | 10 #include "ash/common/material_design/material_design_controller.h" |
(...skipping 15 matching lines...) Expand all Loading... |
26 #include "base/auto_reset.h" | 26 #include "base/auto_reset.h" |
27 #include "base/strings/string_util.h" | 27 #include "base/strings/string_util.h" |
28 #include "base/strings/utf_string_conversions.h" | 28 #include "base/strings/utf_string_conversions.h" |
29 #include "base/time/time.h" | 29 #include "base/time/time.h" |
30 #include "grit/ash_resources.h" | 30 #include "grit/ash_resources.h" |
31 #include "grit/ash_strings.h" | 31 #include "grit/ash_strings.h" |
32 #include "ui/base/l10n/l10n_util.h" | 32 #include "ui/base/l10n/l10n_util.h" |
33 #include "ui/base/resource/resource_bundle.h" | 33 #include "ui/base/resource/resource_bundle.h" |
34 #include "ui/compositor/layer_animation_sequence.h" | 34 #include "ui/compositor/layer_animation_sequence.h" |
35 #include "ui/compositor/scoped_animation_duration_scale_mode.h" | 35 #include "ui/compositor/scoped_animation_duration_scale_mode.h" |
| 36 #include "ui/gfx/animation/slide_animation.h" |
36 #include "ui/gfx/canvas.h" | 37 #include "ui/gfx/canvas.h" |
37 #include "ui/gfx/color_utils.h" | 38 #include "ui/gfx/color_utils.h" |
38 #include "ui/gfx/geometry/safe_integer_conversions.h" | 39 #include "ui/gfx/geometry/safe_integer_conversions.h" |
39 #include "ui/gfx/geometry/vector2d.h" | 40 #include "ui/gfx/geometry/vector2d.h" |
40 #include "ui/gfx/paint_vector_icon.h" | 41 #include "ui/gfx/paint_vector_icon.h" |
41 #include "ui/gfx/transform_util.h" | 42 #include "ui/gfx/transform_util.h" |
42 #include "ui/gfx/vector_icons_public.h" | 43 #include "ui/gfx/vector_icons_public.h" |
43 #include "ui/strings/grit/ui_strings.h" | 44 #include "ui/strings/grit/ui_strings.h" |
44 #include "ui/views/background.h" | 45 #include "ui/views/background.h" |
45 #include "ui/views/border.h" | 46 #include "ui/views/border.h" |
(...skipping 144 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
190 item_window_(item_window), | 191 item_window_(item_window), |
191 corner_radius_(corner_radius), | 192 corner_radius_(corner_radius), |
192 initial_color_(background), | 193 initial_color_(background), |
193 target_color_(background), | 194 target_color_(background), |
194 current_value_(0), | 195 current_value_(0), |
195 layer_(nullptr), | 196 layer_(nullptr), |
196 animation_(new gfx::SlideAnimation(this)) {} | 197 animation_(new gfx::SlideAnimation(this)) {} |
197 | 198 |
198 ~RoundedContainerView() override { StopObservingLayerAnimations(); } | 199 ~RoundedContainerView() override { StopObservingLayerAnimations(); } |
199 | 200 |
200 void OnItemRestored() { item_ = nullptr; } | 201 void OnItemRestored() { |
| 202 item_ = nullptr; |
| 203 item_window_ = nullptr; |
| 204 } |
201 | 205 |
202 // Starts observing layer animations so that actions can be taken when | 206 // Starts observing layer animations so that actions can be taken when |
203 // particular animations (opacity) complete. It should only be called once | 207 // particular animations (opacity) complete. It should only be called once |
204 // when the initial fade in animation is started. | 208 // when the initial fade in animation is started. |
205 void ObserveLayerAnimations(ui::Layer* layer) { | 209 void ObserveLayerAnimations(ui::Layer* layer) { |
206 DCHECK(!layer_); | 210 DCHECK(!layer_); |
207 layer_ = layer; | 211 layer_ = layer; |
208 layer_->GetAnimator()->AddObserver(this); | 212 layer_->GetAnimator()->AddObserver(this); |
209 } | 213 } |
210 | 214 |
211 // Stops observing layer animations | 215 // Stops observing layer animations |
212 void StopObservingLayerAnimations() { | 216 void StopObservingLayerAnimations() { |
213 if (!layer_) | 217 if (!layer_) |
214 return; | 218 return; |
215 layer_->GetAnimator()->RemoveObserver(this); | 219 layer_->GetAnimator()->RemoveObserver(this); |
216 layer_ = nullptr; | 220 layer_ = nullptr; |
217 } | 221 } |
218 | 222 |
| 223 // Used by tests to set animation state. |
| 224 gfx::SlideAnimation* animation() { return animation_.get(); } |
| 225 |
219 void set_color(SkColor target_color) { target_color_ = target_color; } | 226 void set_color(SkColor target_color) { target_color_ = target_color; } |
220 | 227 |
221 // Starts a color animation using |tween_type|. The animation will change the | 228 // Starts a color animation using |tween_type|. The animation will change the |
222 // color from |initial_color_| to |target_color_| over |duration| specified | 229 // color from |initial_color_| to |target_color_| over |duration| specified |
223 // in milliseconds. | 230 // in milliseconds. |
224 // This animation can start once the implicit layer fade-in opacity animation | 231 // This animation can start once the implicit layer fade-in opacity animation |
225 // is completed. It is used to transition color from the opaque original | 232 // is completed. It is used to transition color from the opaque original |
226 // window header color to |kLabelBackgroundColor| on entry into overview mode | 233 // window header color to |kLabelBackgroundColor| on entry into overview mode |
227 // and from |kLabelBackgroundColor| back to the original window header color | 234 // and from |kLabelBackgroundColor| back to the original window header color |
228 // on exit from the overview mode. | 235 // on exit from the overview mode. |
(...skipping 660 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
889 // overview mode is shut down. | 896 // overview mode is shut down. |
890 views::Widget* widget_ptr = widget.get(); | 897 views::Widget* widget_ptr = widget.get(); |
891 std::unique_ptr<CleanupAnimationObserver> observer( | 898 std::unique_ptr<CleanupAnimationObserver> observer( |
892 new CleanupAnimationObserver(std::move(widget))); | 899 new CleanupAnimationObserver(std::move(widget))); |
893 animation_settings->AddObserver(observer.get()); | 900 animation_settings->AddObserver(observer.get()); |
894 window_selector_->delegate()->AddDelayedAnimationObserver( | 901 window_selector_->delegate()->AddDelayedAnimationObserver( |
895 std::move(observer)); | 902 std::move(observer)); |
896 widget_ptr->SetOpacity(0.f); | 903 widget_ptr->SetOpacity(0.f); |
897 } | 904 } |
898 | 905 |
| 906 gfx::SlideAnimation* WindowSelectorItem::GetBackgroundViewAnimation() { |
| 907 return background_view_ ? background_view_->animation() : nullptr; |
| 908 } |
| 909 |
899 } // namespace ash | 910 } // namespace ash |
OLD | NEW |