| Index: ui/gfx/compositor/layer_animation_manager.cc
|
| diff --git a/ui/gfx/compositor/layer_animation_manager.cc b/ui/gfx/compositor/layer_animation_manager.cc
|
| deleted file mode 100644
|
| index b900cd037a439aef3a1528fc22238a6c62cb8350..0000000000000000000000000000000000000000
|
| --- a/ui/gfx/compositor/layer_animation_manager.cc
|
| +++ /dev/null
|
| @@ -1,189 +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.
|
| -
|
| -#include "ui/gfx/compositor/layer_animation_manager.h"
|
| -
|
| -#include "base/logging.h"
|
| -#include "base/stl_util.h"
|
| -#include "ui/base/animation/animation_container.h"
|
| -#include "ui/base/animation/animation.h"
|
| -#include "ui/base/animation/tween.h"
|
| -#include "ui/gfx/compositor/compositor.h"
|
| -#include "ui/gfx/compositor/layer.h"
|
| -#include "ui/gfx/compositor/layer_animator_delegate.h"
|
| -#include "ui/gfx/transform.h"
|
| -#include "ui/gfx/rect.h"
|
| -
|
| -namespace {
|
| -
|
| -void SetMatrixElement(SkMatrix44& matrix, int index, SkMScalar value) {
|
| - int row = index / 4;
|
| - int col = index % 4;
|
| - matrix.set(row, col, value);
|
| -}
|
| -
|
| -SkMScalar GetMatrixElement(const SkMatrix44& matrix, int index) {
|
| - int row = index / 4;
|
| - int col = index % 4;
|
| - return matrix.get(row, col);
|
| -}
|
| -
|
| -} // anonymous namespace
|
| -
|
| -namespace ui {
|
| -
|
| -LayerAnimationManager::LayerAnimationManager(Layer* layer)
|
| - : layer_(layer),
|
| - got_initial_tick_(false) {
|
| -}
|
| -
|
| -LayerAnimationManager::~LayerAnimationManager() {
|
| -}
|
| -
|
| -void LayerAnimationManager::SetAnimation(Animation* animation) {
|
| - animation_.reset(animation);
|
| - if (animation_.get()) {
|
| - static ui::AnimationContainer* container = NULL;
|
| - if (!container) {
|
| - container = new AnimationContainer;
|
| - container->AddRef();
|
| - }
|
| - animation_->set_delegate(this);
|
| - animation_->SetContainer(container);
|
| - got_initial_tick_ = false;
|
| - }
|
| -}
|
| -
|
| -void LayerAnimationManager::AnimateToPoint(const gfx::Point& target) {
|
| - StopAnimating(LOCATION);
|
| - const gfx::Rect& layer_bounds = layer_->bounds();
|
| - if (target == layer_bounds.origin())
|
| - return; // Already there.
|
| -
|
| - Params& element = elements_[LOCATION];
|
| - element.location.target_x = target.x();
|
| - element.location.target_y = target.y();
|
| - element.location.start_x = layer_bounds.origin().x();
|
| - element.location.start_y = layer_bounds.origin().y();
|
| -}
|
| -
|
| -void LayerAnimationManager::AnimateTransform(const Transform& transform) {
|
| - StopAnimating(TRANSFORM);
|
| - const Transform& layer_transform = layer_->transform();
|
| - if (transform == layer_transform)
|
| - return; // Already there.
|
| -
|
| - Params& element = elements_[TRANSFORM];
|
| - for (int i = 0; i < 16; ++i) {
|
| - element.transform.start[i] =
|
| - GetMatrixElement(layer_transform.matrix(), i);
|
| - element.transform.target[i] =
|
| - GetMatrixElement(transform.matrix(), i);
|
| - }
|
| -}
|
| -
|
| -void LayerAnimationManager::AnimateOpacity(float target_opacity) {
|
| - StopAnimating(OPACITY);
|
| - if (layer_->opacity() == target_opacity)
|
| - return;
|
| -
|
| - Params& element = elements_[OPACITY];
|
| - element.opacity.start = layer_->opacity();
|
| - element.opacity.target = target_opacity;
|
| -}
|
| -
|
| -gfx::Point LayerAnimationManager::GetTargetPoint() {
|
| - return IsAnimating(LOCATION) ?
|
| - gfx::Point(elements_[LOCATION].location.target_x,
|
| - elements_[LOCATION].location.target_y) :
|
| - layer_->bounds().origin();
|
| -}
|
| -
|
| -float LayerAnimationManager::GetTargetOpacity() {
|
| - return IsAnimating(OPACITY) ?
|
| - elements_[OPACITY].opacity.target : layer_->opacity();
|
| -}
|
| -
|
| -ui::Transform LayerAnimationManager::GetTargetTransform() {
|
| - if (IsAnimating(TRANSFORM)) {
|
| - Transform transform;
|
| - for (int i = 0; i < 16; ++i) {
|
| - SetMatrixElement(transform.matrix(), i,
|
| - elements_[TRANSFORM].transform.target[i]);
|
| - }
|
| - return transform;
|
| - }
|
| - return layer_->transform();
|
| -}
|
| -
|
| -bool LayerAnimationManager::IsAnimating(AnimationProperty property) const {
|
| - return elements_.count(property) > 0;
|
| -}
|
| -
|
| -bool LayerAnimationManager::IsRunning() const {
|
| - return animation_.get() && animation_->is_animating();
|
| -}
|
| -
|
| -void LayerAnimationManager::AnimationProgressed(
|
| - const ui::Animation* animation) {
|
| - got_initial_tick_ = true;
|
| - for (Elements::const_iterator i = elements_.begin(); i != elements_.end();
|
| - ++i) {
|
| - switch (i->first) {
|
| - case LOCATION: {
|
| - const gfx::Rect& current_bounds(layer_->bounds());
|
| - gfx::Rect new_bounds = animation_->CurrentValueBetween(
|
| - gfx::Rect(gfx::Point(i->second.location.start_x,
|
| - i->second.location.start_y),
|
| - current_bounds.size()),
|
| - gfx::Rect(gfx::Point(i->second.location.target_x,
|
| - i->second.location.target_y),
|
| - current_bounds.size()));
|
| - delegate()->SetBoundsFromAnimator(new_bounds);
|
| - break;
|
| - }
|
| -
|
| - case TRANSFORM: {
|
| - Transform transform;
|
| - for (int j = 0; j < 16; ++j) {
|
| - SkMScalar value = animation_->CurrentValueBetween(
|
| - i->second.transform.start[j],
|
| - i->second.transform.target[j]);
|
| - SetMatrixElement(transform.matrix(), j, value);
|
| - }
|
| - delegate()->SetTransformFromAnimator(transform);
|
| - break;
|
| - }
|
| -
|
| - case OPACITY: {
|
| - delegate()->SetOpacityFromAnimator(animation_->CurrentValueBetween(
|
| - i->second.opacity.start, i->second.opacity.target));
|
| - break;
|
| - }
|
| -
|
| - default:
|
| - NOTREACHED();
|
| - }
|
| - }
|
| - layer_->ScheduleDraw();
|
| -}
|
| -
|
| -void LayerAnimationManager::AnimationEnded(const ui::Animation* animation) {
|
| - AnimationProgressed(animation);
|
| - if (layer_->delegate())
|
| - layer_->delegate()->OnLayerAnimationEnded(animation);
|
| -}
|
| -
|
| -void LayerAnimationManager::StopAnimating(AnimationProperty property) {
|
| - if (!IsAnimating(property))
|
| - return;
|
| -
|
| - elements_.erase(property);
|
| -}
|
| -
|
| -LayerAnimatorDelegate* LayerAnimationManager::delegate() {
|
| - return static_cast<LayerAnimatorDelegate*>(layer_);
|
| -}
|
| -
|
| -} // namespace ui
|
|
|