Chromium Code Reviews| Index: ui/gfx/compositor/layer_animator.h |
| diff --git a/ui/gfx/compositor/layer_animator.h b/ui/gfx/compositor/layer_animator.h |
| index a51079c46a8e205e73c5fa94eea84aa01c2fced0..6853f7c2f9f82efd8c3ec27795ee6fbb44fb68f6 100644 |
| --- a/ui/gfx/compositor/layer_animator.h |
| +++ b/ui/gfx/compositor/layer_animator.h |
| @@ -24,11 +24,11 @@ namespace ui { |
| class Animation; |
| class Layer; |
| class LayerAnimationSequence; |
| +class LayerAnimatorDelegate; |
| class Transform; |
| // When a property of layer needs to be changed it is set by way of |
| -// LayerAnimator. This enables LayerAnimator to animate property |
| -// changes. |
| +// LayerAnimator. This enables LayerAnimator to animate property changes. |
| class COMPOSITOR_EXPORT LayerAnimator : public AnimationContainerElement { |
| public: |
| enum PreemptionStrategy { |
| @@ -50,16 +50,19 @@ class COMPOSITOR_EXPORT LayerAnimator : public AnimationContainerElement { |
| // Sets the transform on the delegate. May cause an implicit animation. |
| virtual void SetTransform(const Transform& transform); |
| + Transform GetTargetTransform() const; |
| // Sets the bounds on the delegate. May cause an implicit animation. |
| virtual void SetBounds(const gfx::Rect& bounds); |
| + gfx::Rect GetTargetBounds() const; |
| // Sets the opacity on the delegate. May cause an implicit animation. |
| virtual void SetOpacity(float opacity); |
| + float GetTargetOpacity() const; |
| // Sets the layer animation delegate the animator is associated with. The |
| // animator does not own the delegate. |
| - void SetDelegate(LayerAnimationDelegate* delegate); |
| + void SetDelegate(LayerAnimatorDelegate* delegate); |
| // Sets the animation preemption strategy. This determines the behaviour if |
| // a property is set during an animation. The default is |
| @@ -72,15 +75,18 @@ class COMPOSITOR_EXPORT LayerAnimator : public AnimationContainerElement { |
| // progress, it needs to be interrupted with the new animation. The animator |
| // takes ownership of this animation sequence. |
| void StartAnimation(LayerAnimationSequence* animation); |
| + void StartAnimation(LayerAnimationElement* animation); |
|
sky
2011/10/25 04:00:55
Style guide doesn't like methods with the same nam
|
| // Schedule an animation to be run when possible. The animator takes ownership |
| // of this animation sequence. |
| void ScheduleAnimation(LayerAnimationSequence* animation); |
| + void ScheduleAnimation(LayerAnimationElement* animation); |
| // Schedules the animations to be run together. Obviously will no work if |
| // they animate any common properties. The animator takes ownership of the |
| // animation sequences. |
| void ScheduleTogether(const std::vector<LayerAnimationSequence*>& animations); |
| + void ScheduleTogether(const std::vector<LayerAnimationElement*>& animations); |
| // Returns true if there is an animation in the queue (animations remain in |
| // the queue until they complete). |
| @@ -101,10 +107,24 @@ class COMPOSITOR_EXPORT LayerAnimator : public AnimationContainerElement { |
| } |
| base::TimeTicks get_last_step_time_for_test() { return last_step_time_; } |
| + class TransientSettings { |
|
sky
2011/10/25 00:26:59
This name is confusing. Maybe ScopedSettings or so
|
| + public: |
| + TransientSettings(LayerAnimator* animator); |
|
sky
2011/10/25 00:26:59
explicit
|
| + ~TransientSettings(); |
| + |
| + void SetTransitionDuration(base::TimeDelta duration); |
| + |
| + private: |
| + LayerAnimator* animator_; |
| + base::TimeDelta old_transition_duration_; |
| + }; |
|
sky
2011/10/25 00:26:59
DISALLOW_COPY_AND_ASSIGN
|
| + |
| protected: |
| - LayerAnimationDelegate* delegate() { return delegate_; } |
| + LayerAnimatorDelegate* delegate() { return delegate_; } |
| private: |
| + friend class TransientSettings; |
| + |
| // We need to keep track of the start time of every running animation. |
| struct RunningAnimation { |
| RunningAnimation(LayerAnimationSequence* sequence, |
| @@ -176,11 +196,15 @@ class COMPOSITOR_EXPORT LayerAnimator : public AnimationContainerElement { |
| // properties affected by |sequence|. |
| bool StartSequenceImmediately(LayerAnimationSequence* sequence); |
| + // Sets the value of target as if all the running and queued animations were |
| + // allowed to finish. |
| + void GetTargetValue(LayerAnimationElement::TargetValue* target) const; |
| + |
| // This is the queue of animations to run. |
| AnimationQueue animation_queue_; |
| // The target of all layer animations. |
| - LayerAnimationDelegate* delegate_; |
| + LayerAnimatorDelegate* delegate_; |
| // The currently running animations. |
| RunningAnimations running_animations_; |