| Index: ui/gfx/compositor/layer_animation_sequence.cc
|
| diff --git a/ui/gfx/compositor/layer_animation_sequence.cc b/ui/gfx/compositor/layer_animation_sequence.cc
|
| deleted file mode 100644
|
| index aff8e8c1ddeae068a77fab17b9c4d809973cfab8..0000000000000000000000000000000000000000
|
| --- a/ui/gfx/compositor/layer_animation_sequence.cc
|
| +++ /dev/null
|
| @@ -1,168 +0,0 @@
|
| -// Copyright (c) 2012 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_sequence.h"
|
| -
|
| -#include <algorithm>
|
| -#include <iterator>
|
| -
|
| -#include "base/debug/trace_event.h"
|
| -#include "ui/gfx/compositor/layer_animation_delegate.h"
|
| -#include "ui/gfx/compositor/layer_animation_element.h"
|
| -#include "ui/gfx/compositor/layer_animation_observer.h"
|
| -
|
| -namespace ui {
|
| -
|
| -LayerAnimationSequence::LayerAnimationSequence()
|
| - : is_cyclic_(false),
|
| - last_element_(0) {
|
| -}
|
| -
|
| -LayerAnimationSequence::LayerAnimationSequence(LayerAnimationElement* element)
|
| - : is_cyclic_(false),
|
| - last_element_(0) {
|
| - AddElement(element);
|
| -}
|
| -
|
| -LayerAnimationSequence::~LayerAnimationSequence() {
|
| - FOR_EACH_OBSERVER(LayerAnimationObserver,
|
| - observers_,
|
| - DetachedFromSequence(this, true));
|
| -}
|
| -
|
| -bool LayerAnimationSequence::Progress(base::TimeDelta elapsed,
|
| - LayerAnimationDelegate* delegate) {
|
| - bool redraw_required = false;
|
| -
|
| - if (elements_.empty())
|
| - return redraw_required;
|
| -
|
| - if (is_cyclic_ && duration_ > base::TimeDelta()) {
|
| - // If delta = elapsed - last_start_ is huge, we can skip ahead by complete
|
| - // loops to save time.
|
| - base::TimeDelta delta = elapsed - last_start_;
|
| - int64 k = delta.ToInternalValue() / duration_.ToInternalValue() - 1;
|
| -
|
| - last_start_ += base::TimeDelta::FromInternalValue(
|
| - k * duration_.ToInternalValue());
|
| - }
|
| -
|
| - size_t current_index = last_element_ % elements_.size();
|
| - while ((is_cyclic_ || last_element_ < elements_.size()) &&
|
| - (last_start_ + elements_[current_index]->duration() < elapsed)) {
|
| - // Let the element we're passing finish.
|
| - if (elements_[current_index]->Progress(1.0, delegate))
|
| - redraw_required = true;
|
| - last_start_ += elements_[current_index]->duration();
|
| - ++last_element_;
|
| - current_index = last_element_ % elements_.size();
|
| - }
|
| -
|
| - if (is_cyclic_ || last_element_ < elements_.size()) {
|
| - double t = 1.0;
|
| - if (elements_[current_index]->duration() > base::TimeDelta()) {
|
| - t = (elapsed - last_start_).InMillisecondsF() /
|
| - elements_[current_index]->duration().InMillisecondsF();
|
| - }
|
| - if (elements_[current_index]->Progress(t, delegate))
|
| - redraw_required = true;
|
| - }
|
| -
|
| - if (!is_cyclic_ && elapsed == duration_) {
|
| - last_element_ = 0;
|
| - last_start_ = base::TimeDelta::FromMilliseconds(0);
|
| - NotifyEnded();
|
| - }
|
| -
|
| - return redraw_required;
|
| -}
|
| -
|
| -void LayerAnimationSequence::GetTargetValue(
|
| - LayerAnimationElement::TargetValue* target) const {
|
| - if (is_cyclic_)
|
| - return;
|
| -
|
| - for (size_t i = last_element_; i < elements_.size(); ++i)
|
| - elements_[i]->GetTargetValue(target);
|
| -}
|
| -
|
| -void LayerAnimationSequence::Abort() {
|
| - size_t current_index = last_element_ % elements_.size();
|
| - while (current_index < elements_.size()) {
|
| - elements_[current_index]->Abort();
|
| - ++current_index;
|
| - }
|
| - last_element_ = 0;
|
| - last_start_ = base::TimeDelta::FromMilliseconds(0);
|
| - NotifyAborted();
|
| -}
|
| -
|
| -void LayerAnimationSequence::AddElement(LayerAnimationElement* element) {
|
| - // Update duration and properties.
|
| - duration_ += element->duration();
|
| - properties_.insert(element->properties().begin(),
|
| - element->properties().end());
|
| - elements_.push_back(make_linked_ptr(element));
|
| -}
|
| -
|
| -bool LayerAnimationSequence::HasCommonProperty(
|
| - const LayerAnimationElement::AnimatableProperties& other) const {
|
| - LayerAnimationElement::AnimatableProperties intersection;
|
| - std::insert_iterator<LayerAnimationElement::AnimatableProperties> ii(
|
| - intersection, intersection.begin());
|
| - std::set_intersection(properties_.begin(), properties_.end(),
|
| - other.begin(), other.end(),
|
| - ii);
|
| - return intersection.size() > 0;
|
| -}
|
| -
|
| -void LayerAnimationSequence::AddObserver(LayerAnimationObserver* observer) {
|
| - if (!observers_.HasObserver(observer)) {
|
| - observers_.AddObserver(observer);
|
| - observer->AttachedToSequence(this);
|
| - }
|
| -}
|
| -
|
| -void LayerAnimationSequence::RemoveObserver(LayerAnimationObserver* observer) {
|
| - observers_.RemoveObserver(observer);
|
| - observer->DetachedFromSequence(this, true);
|
| -}
|
| -
|
| -void LayerAnimationSequence::OnScheduled() {
|
| - NotifyScheduled();
|
| -}
|
| -
|
| -void LayerAnimationSequence::OnAnimatorDestroyed() {
|
| - if (observers_.might_have_observers()) {
|
| - ObserverListBase<LayerAnimationObserver>::Iterator it(observers_);
|
| - LayerAnimationObserver* obs;
|
| - while ((obs = it.GetNext()) != NULL) {
|
| - if (!obs->RequiresNotificationWhenAnimatorDestroyed()) {
|
| - // Remove the observer, but do not allow notifications to be sent.
|
| - observers_.RemoveObserver(obs);
|
| - obs->DetachedFromSequence(this, false);
|
| - }
|
| - }
|
| - }
|
| -}
|
| -
|
| -void LayerAnimationSequence::NotifyScheduled() {
|
| - FOR_EACH_OBSERVER(LayerAnimationObserver,
|
| - observers_,
|
| - OnLayerAnimationScheduled(this));
|
| -}
|
| -
|
| -void LayerAnimationSequence::NotifyEnded() {
|
| - FOR_EACH_OBSERVER(LayerAnimationObserver,
|
| - observers_,
|
| - OnLayerAnimationEnded(this));
|
| -}
|
| -
|
| -void LayerAnimationSequence::NotifyAborted() {
|
| - FOR_EACH_OBSERVER(LayerAnimationObserver,
|
| - observers_,
|
| - OnLayerAnimationAborted(this));
|
| -}
|
| -
|
| -} // namespace ui
|
|
|