OLD | NEW |
| (Empty) |
1 // Copyright (c) 2012 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 "ui/gfx/compositor/scoped_layer_animation_settings.h" | |
6 | |
7 #include "ui/gfx/compositor/layer_animation_observer.h" | |
8 #include "ui/gfx/compositor/layer_animator.h" | |
9 | |
10 namespace { | |
11 | |
12 static const base::TimeDelta kDefaultTransitionDuration = | |
13 base::TimeDelta::FromMilliseconds(200); | |
14 | |
15 } // namespace; | |
16 | |
17 namespace ui { | |
18 | |
19 ScopedLayerAnimationSettings::ScopedLayerAnimationSettings( | |
20 LayerAnimator* animator) | |
21 : animator_(animator), | |
22 old_transition_duration_(animator->transition_duration_), | |
23 old_tween_type_(animator->tween_type()), | |
24 old_preemption_strategy_(animator->preemption_strategy()) { | |
25 SetTransitionDuration(kDefaultTransitionDuration); | |
26 } | |
27 | |
28 ScopedLayerAnimationSettings::~ScopedLayerAnimationSettings() { | |
29 animator_->transition_duration_ = old_transition_duration_; | |
30 animator_->set_tween_type(old_tween_type_); | |
31 animator_->set_preemption_strategy(old_preemption_strategy_); | |
32 | |
33 for (std::set<ImplicitAnimationObserver*>::const_iterator i = | |
34 observers_.begin(); i != observers_.end(); ++i) { | |
35 animator_->observers_.RemoveObserver(*i); | |
36 (*i)->SetActive(true); | |
37 } | |
38 } | |
39 | |
40 void ScopedLayerAnimationSettings::AddObserver( | |
41 ImplicitAnimationObserver* observer) { | |
42 observers_.insert(observer); | |
43 animator_->AddObserver(observer); | |
44 } | |
45 | |
46 void ScopedLayerAnimationSettings::SetTransitionDuration( | |
47 base::TimeDelta duration) { | |
48 animator_->transition_duration_ = duration; | |
49 } | |
50 | |
51 base::TimeDelta ScopedLayerAnimationSettings::GetTransitionDuration() const { | |
52 return animator_->transition_duration_; | |
53 } | |
54 | |
55 void ScopedLayerAnimationSettings::SetTweenType(Tween::Type tween_type) { | |
56 animator_->set_tween_type(tween_type); | |
57 } | |
58 | |
59 Tween::Type ScopedLayerAnimationSettings::GetTweenType() const { | |
60 return animator_->tween_type(); | |
61 } | |
62 | |
63 void ScopedLayerAnimationSettings::SetPreemptionStrategy( | |
64 LayerAnimator::PreemptionStrategy strategy) { | |
65 animator_->set_preemption_strategy(strategy); | |
66 } | |
67 | |
68 LayerAnimator::PreemptionStrategy | |
69 ScopedLayerAnimationSettings::GetPreemptionStrategy() const { | |
70 return animator_->preemption_strategy(); | |
71 } | |
72 | |
73 } // namespace ui | |
74 | |
OLD | NEW |