| Index: ui/gfx/compositor/layer.h
|
| diff --git a/ui/gfx/compositor/layer.h b/ui/gfx/compositor/layer.h
|
| index 792c194abb233cc11c7231a92f8e88682341460e..1bb51e9710c7f7abe11e98823cb8ee3d5ef35ae9 100644
|
| --- a/ui/gfx/compositor/layer.h
|
| +++ b/ui/gfx/compositor/layer.h
|
| @@ -18,7 +18,6 @@
|
| #include "ui/gfx/rect.h"
|
| #include "ui/gfx/transform.h"
|
| #include "ui/gfx/compositor/compositor.h"
|
| -#include "ui/gfx/compositor/layer_animation_manager.h"
|
| #include "ui/gfx/compositor/layer_animator_delegate.h"
|
| #include "ui/gfx/compositor/layer_delegate.h"
|
|
|
| @@ -26,8 +25,9 @@ class SkCanvas;
|
|
|
| namespace ui {
|
|
|
| -class Animation;
|
| class Compositor;
|
| +class LayerAnimator;
|
| +class LayerAnimationSequence;
|
| class Texture;
|
|
|
| // Layer manages a texture, transform and a set of child Layers. Any View that
|
| @@ -84,21 +84,22 @@ class COMPOSITOR_EXPORT Layer :
|
| // Returns true if this Layer contains |other| somewhere in its children.
|
| bool Contains(const Layer* other) const;
|
|
|
| - // Sets the animation to use for changes to opacity, position or transform.
|
| - // That is, if you invoke this with non-NULL |animation| is started and any
|
| - // changes to opacity, position or transform are animated between the current
|
| - // value and target value. If the current animation is NULL or completed,
|
| - // changes are immediate. If the opacity, transform or bounds are changed
|
| - // and the animation is part way through, the animation is canceled and
|
| - // the bounds, opacity and transfrom and set to the target value.
|
| - // Layer takes ownership of |animation| and installs it's own delegate on the
|
| - // animation.
|
| - void SetAnimation(Animation* animation);
|
| - bool has_animation() const { return animator_.get() != NULL; }
|
| + // The layer's animator is responsible for causing automatic animations when
|
| + // properties are set. It also manages a queue of pending animations and
|
| + // handles blending of animations. The layer takes ownership of the animator.
|
| + void SetAnimator(LayerAnimator* animator);
|
| +
|
| + // Returns the layer's animator. Creates a default animator of one has not
|
| + // been set. Will not return NULL.
|
| + LayerAnimator* GetAnimator();
|
|
|
| // The transform, relative to the parent.
|
| - void SetTransform(const ui::Transform& transform);
|
| - const ui::Transform& transform() const { return transform_; }
|
| + void SetTransform(const Transform& transform);
|
| + const Transform& transform() const { return transform_; }
|
| +
|
| + // Return the target transform if animator is running, or the current
|
| + // transform otherwise.
|
| + Transform GetTargetTransform() const;
|
|
|
| // The bounds, relative to the parent.
|
| void SetBounds(const gfx::Rect& bounds);
|
| @@ -113,6 +114,10 @@ class COMPOSITOR_EXPORT Layer :
|
| float opacity() const { return opacity_; }
|
| void SetOpacity(float opacity);
|
|
|
| + // Return the target opacity if animator is running, or the current bounds
|
| + // otherwise.
|
| + float GetTargetOpacity() const;
|
| +
|
| // Sets the visibility of the Layer. A Layer may be visible but not
|
| // drawn. This happens if any ancestor of a Layer is not visible.
|
| void SetVisible(bool visible);
|
| @@ -262,22 +267,21 @@ class COMPOSITOR_EXPORT Layer :
|
| // should have valid alpha.
|
| bool has_valid_alpha_channel() const { return !layer_updated_externally_; }
|
|
|
| - // If the animation is running and has progressed, it is stopped and all
|
| - // properties that are animated (except |property|) are immediately set to
|
| - // their target value.
|
| - void StopAnimatingIfNecessary(
|
| - LayerAnimationManager::AnimationProperty property);
|
| -
|
| // Following are invoked from the animation or if no animation exists to
|
| // update the values immediately.
|
| void SetBoundsImmediately(const gfx::Rect& bounds);
|
| void SetTransformImmediately(const ui::Transform& transform);
|
| void SetOpacityImmediately(float opacity);
|
|
|
| - // LayerAnimatorDelegate overrides:
|
| - virtual void SetBoundsFromAnimator(const gfx::Rect& bounds) OVERRIDE;
|
| - virtual void SetTransformFromAnimator(const Transform& transform) OVERRIDE;
|
| - virtual void SetOpacityFromAnimator(float opacity) OVERRIDE;
|
| + // Implementation of LayerAnimatorDelegate
|
| + virtual void SetBoundsFromAnimation(const gfx::Rect& bounds) OVERRIDE;
|
| + virtual void SetTransformFromAnimation(const Transform& transform) OVERRIDE;
|
| + virtual void SetOpacityFromAnimation(float opacity) OVERRIDE;
|
| + virtual void ScheduleDrawForAnimation() OVERRIDE;
|
| + virtual const gfx::Rect& GetBoundsForAnimation() const OVERRIDE;
|
| + virtual const Transform& GetTransformForAnimation() const OVERRIDE;
|
| + virtual float GetOpacityForAnimation() const OVERRIDE;
|
| + virtual void OnLayerAnimationEnded(LayerAnimationSequence* sequence) OVERRIDE;
|
|
|
| #if defined(USE_WEBKIT_COMPOSITOR)
|
| void CreateWebLayer();
|
| @@ -317,7 +321,7 @@ class COMPOSITOR_EXPORT Layer :
|
|
|
| LayerDelegate* delegate_;
|
|
|
| - scoped_ptr<LayerAnimationManager> animator_;
|
| + scoped_ptr<LayerAnimator> animator_;
|
|
|
| #if defined(USE_WEBKIT_COMPOSITOR)
|
| WebKit::WebLayer web_layer_;
|
|
|