Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1770)

Unified Diff: views/animation/bounds_animator.h

Issue 8572016: views: Move more two directories into ui/views/. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 9 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « ui/views/aura_desktop/aura_desktop_main.cc ('k') | views/animation/bounds_animator.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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_
« no previous file with comments | « ui/views/aura_desktop/aura_desktop_main.cc ('k') | views/animation/bounds_animator.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698