#include "ui/views/animation/bounds_animator.h"
#include <memory>
#include <utility>
#include "base/containers/contains.h"
#include "base/not_fatal_until.h"
#include "base/observer_list.h"
#include "ui/gfx/animation/animation_container.h"
#include "ui/gfx/animation/slide_animation.h"
#include "ui/gfx/animation/tween.h"
#include "ui/gfx/geometry/transform_util.h"
#include "ui/views/animation/bounds_animator_observer.h"
#include "ui/views/view.h"
#include "ui/views/widget/widget.h"
#if defined(_WINDOWS_)
#include "base/win/windows_h_disallowed.h"
#endif
namespace views {
BoundsAnimator::BoundsAnimator(View* parent, bool use_transforms)
: … { … }
BoundsAnimator::~BoundsAnimator() { … }
void BoundsAnimator::AnimateViewTo(
View* view,
const gfx::Rect& target,
std::unique_ptr<gfx::AnimationDelegate> delegate) { … }
void BoundsAnimator::SetTargetBounds(View* view, const gfx::Rect& target) { … }
gfx::Rect BoundsAnimator::GetTargetBounds(const View* view) const { … }
const gfx::SlideAnimation* BoundsAnimator::GetAnimationForView(View* view) { … }
void BoundsAnimator::SetAnimationDelegate(
View* view,
std::unique_ptr<AnimationDelegate> delegate) { … }
void BoundsAnimator::StopAnimatingView(View* view) { … }
bool BoundsAnimator::IsAnimating(View* view) const { … }
bool BoundsAnimator::IsAnimating() const { … }
void BoundsAnimator::Complete() { … }
void BoundsAnimator::Cancel() { … }
void BoundsAnimator::SetAnimationDuration(base::TimeDelta duration) { … }
void BoundsAnimator::AddObserver(BoundsAnimatorObserver* observer) { … }
void BoundsAnimator::RemoveObserver(BoundsAnimatorObserver* observer) { … }
std::unique_ptr<gfx::SlideAnimation> BoundsAnimator::CreateAnimation() { … }
BoundsAnimator::Data::Data() = default;
BoundsAnimator::Data::Data(Data&&) = default;
BoundsAnimator::Data& BoundsAnimator::Data::operator=(Data&&) = default;
BoundsAnimator::Data::~Data() = default;
BoundsAnimator::Data BoundsAnimator::RemoveFromMaps(View* view) { … }
void BoundsAnimator::CleanupData(bool send_cancel, Data* data) { … }
std::unique_ptr<gfx::Animation> BoundsAnimator::ResetAnimationForView(
View* view) { … }
void BoundsAnimator::AnimationEndedOrCanceled(const gfx::Animation* animation,
AnimationEndType type) { … }
void BoundsAnimator::AnimationProgressed(const gfx::Animation* animation) { … }
void BoundsAnimator::AnimationEnded(const gfx::Animation* animation) { … }
void BoundsAnimator::AnimationCanceled(const gfx::Animation* animation) { … }
void BoundsAnimator::AnimationContainerProgressed(
gfx::AnimationContainer* container) { … }
void BoundsAnimator::AnimationContainerEmpty(
gfx::AnimationContainer* container) { … }
void BoundsAnimator::OnChildViewRemoved(views::View* observed_view,
views::View* removed) { … }
base::TimeDelta BoundsAnimator::GetAnimationDurationForReporting() const { … }
}