Index: views/animation/bounds_animator.h |
diff --git a/views/animation/bounds_animator.h b/views/animation/bounds_animator.h |
deleted file mode 100644 |
index 16abc9b8d9d6d38ca63de02321583bc2d2f29e0b..0000000000000000000000000000000000000000 |
--- a/views/animation/bounds_animator.h |
+++ /dev/null |
@@ -1,187 +0,0 @@ |
-// Copyright (c) 2011 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-#ifndef VIEWS_ANIMATION_BOUNDS_ANIMATOR_H_ |
-#define VIEWS_ANIMATION_BOUNDS_ANIMATOR_H_ |
-#pragma once |
- |
-#include <map> |
- |
-#include "base/memory/ref_counted.h" |
-#include "ui/base/animation/animation_container_observer.h" |
-#include "ui/base/animation/animation_delegate.h" |
-#include "ui/gfx/rect.h" |
-#include "views/views_export.h" |
- |
-namespace ui { |
-class SlideAnimation; |
-} |
- |
-namespace views { |
- |
-class BoundsAnimator; |
-class View; |
- |
-class BoundsAnimatorObserver { |
- public: |
- // Invoked when all animations are complete. |
- virtual void OnBoundsAnimatorDone(BoundsAnimator* animator) = 0; |
-}; |
- |
-// Bounds animator is responsible for animating the bounds of a view from the |
-// the views current location and size to a target position and size. To use |
-// BoundsAnimator invoke AnimateViewTo for the set of views you want to |
-// animate. |
-// |
-// BoundsAnimator internally creates an animation for each view. If you need |
-// a specific animation invoke SetAnimationForView after invoking AnimateViewTo. |
-// You can attach an AnimationDelegate to the individual animation for a view |
-// by way of SetAnimationDelegate. Additionally you can attach an observer to |
-// the BoundsAnimator that is notified when all animations are complete. |
-class VIEWS_EXPORT BoundsAnimator : public ui::AnimationDelegate, |
- public ui::AnimationContainerObserver { |
- public: |
- // If |delete_when_done| is set to true in |SetAnimationDelegate| the |
- // |AnimationDelegate| must subclass this class. |
- class OwnedAnimationDelegate : public ui::AnimationDelegate { |
- public: |
- virtual ~OwnedAnimationDelegate() {} |
- }; |
- |
- explicit BoundsAnimator(View* view); |
- virtual ~BoundsAnimator(); |
- |
- // Starts animating |view| from its current bounds to |target|. If there is |
- // already an animation running for the view it's stopped and a new one |
- // started. If an AnimationDelegate has been set for |view| it is removed |
- // (after being notified that the animation was canceled). |
- void AnimateViewTo(View* view, const gfx::Rect& target); |
- |
- // Similar to |AnimateViewTo|, but does not reset the animation, only the |
- // target bounds. If |view| is not being animated this is the same as |
- // invoking |AnimateViewTo|. |
- void SetTargetBounds(View* view, const gfx::Rect& target); |
- |
- // Sets the animation for the specified view. BoundsAnimator takes ownership |
- // of the specified animation. |
- void SetAnimationForView(View* view, ui::SlideAnimation* animation); |
- |
- // Returns the animation for the specified view. BoundsAnimator owns the |
- // returned Animation. |
- const ui::SlideAnimation* GetAnimationForView(View* view); |
- |
- // Stops animating the specified view. |
- void StopAnimatingView(View* view); |
- |
- // Sets the delegate for the animation created for the specified view. If |
- // |delete_when_done| is true the |delegate| is deleted when done and |
- // |delegate| must subclass OwnedAnimationDelegate. |
- void SetAnimationDelegate(View* view, |
- ui::AnimationDelegate* delegate, |
- bool delete_when_done); |
- |
- // Returns true if BoundsAnimator is animating the bounds of |view|. |
- bool IsAnimating(View* view) const; |
- |
- // Returns true if BoundsAnimator is animating any view. |
- bool IsAnimating() const; |
- |
- // Cancels all animations, leaving the views at their current location and |
- // size. Any views marked for deletion are deleted. |
- void Cancel(); |
- |
- void set_observer(BoundsAnimatorObserver* observer) { |
- observer_ = observer; |
- } |
- |
- protected: |
- // Creates the animation to use for animating views. |
- virtual ui::SlideAnimation* CreateAnimation(); |
- |
- private: |
- // Tracks data about the view being animated. |
- struct Data { |
- Data() |
- : delete_delegate_when_done(false), |
- animation(NULL), |
- delegate(NULL) {} |
- |
- // If true the delegate is deleted when done. |
- bool delete_delegate_when_done; |
- |
- // The initial bounds. |
- gfx::Rect start_bounds; |
- |
- // Target bounds. |
- gfx::Rect target_bounds; |
- |
- // The animation. We own this. |
- ui::SlideAnimation* animation; |
- |
- // Additional delegate for the animation, may be null. |
- ui::AnimationDelegate* delegate; |
- }; |
- |
- // Used by AnimationEndedOrCanceled. |
- enum AnimationEndType { |
- ANIMATION_ENDED, |
- ANIMATION_CANCELED |
- }; |
- |
- typedef std::map<View*, Data> ViewToDataMap; |
- |
- typedef std::map<const ui::Animation*, View*> AnimationToViewMap; |
- |
- // Removes references to |view| and its animation. This does NOT delete the |
- // animation or delegate. |
- void RemoveFromMaps(View* view); |
- |
- // Does the necessary cleanup for |data|. If |send_cancel| is true and a |
- // delegate has been installed on |data| AnimationCanceled is invoked on it. |
- void CleanupData(bool send_cancel, Data* data, View* view); |
- |
- // Used when changing the animation for a view. This resets the maps for |
- // the animation used by view and returns the current animation. Ownership |
- // of the returned animation passes to the caller. |
- ui::Animation* ResetAnimationForView(View* view); |
- |
- // Invoked from AnimationEnded and AnimationCanceled. |
- void AnimationEndedOrCanceled(const ui::Animation* animation, |
- AnimationEndType type); |
- |
- // ui::AnimationDelegate overrides. |
- virtual void AnimationProgressed(const ui::Animation* animation); |
- virtual void AnimationEnded(const ui::Animation* animation); |
- virtual void AnimationCanceled(const ui::Animation* animation); |
- |
- // ui::AnimationContainerObserver overrides. |
- virtual void AnimationContainerProgressed(ui::AnimationContainer* container); |
- virtual void AnimationContainerEmpty(ui::AnimationContainer* container); |
- |
- // Parent of all views being animated. |
- View* parent_; |
- |
- BoundsAnimatorObserver* observer_; |
- |
- // All animations we create up with the same container. |
- scoped_refptr<ui::AnimationContainer> container_; |
- |
- // Maps from view being animated to info about the view. |
- ViewToDataMap data_; |
- |
- // Maps from animation to view. |
- AnimationToViewMap animation_to_view_; |
- |
- // As the animations we create update (AnimationProgressed is invoked) this |
- // is updated. When all the animations have completed for a given tick of |
- // the timer (AnimationContainerProgressed is invoked) the parent_ is asked |
- // to repaint these bounds. |
- gfx::Rect repaint_bounds_; |
- |
- DISALLOW_COPY_AND_ASSIGN(BoundsAnimator); |
-}; |
- |
-} // namespace views |
- |
-#endif // VIEWS_ANIMATION_BOUNDS_ANIMATOR_H_ |