| Index: content/browser/web_contents/aura/overscroll_window_animation.cc
|
| diff --git a/content/browser/web_contents/aura/overscroll_window_animation.cc b/content/browser/web_contents/aura/overscroll_window_animation.cc
|
| deleted file mode 100644
|
| index 18bfc9c71d99f3f4833d4fb950c09b63d82494fb..0000000000000000000000000000000000000000
|
| --- a/content/browser/web_contents/aura/overscroll_window_animation.cc
|
| +++ /dev/null
|
| @@ -1,151 +0,0 @@
|
| -// Copyright 2015 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 "content/browser/web_contents/aura/overscroll_window_animation.h"
|
| -
|
| -#include <algorithm>
|
| -
|
| -#include "base/i18n/rtl.h"
|
| -#include "content/browser/web_contents/aura/shadow_layer_delegate.h"
|
| -#include "content/browser/web_contents/web_contents_impl.h"
|
| -#include "ui/aura/window.h"
|
| -#include "ui/compositor/layer_animation_observer.h"
|
| -#include "ui/compositor/scoped_layer_animation_settings.h"
|
| -
|
| -namespace content {
|
| -
|
| -namespace {
|
| -
|
| -OverscrollWindowAnimation::Direction GetDirectionForMode(OverscrollMode mode) {
|
| - if (mode == (base::i18n::IsRTL() ? OVERSCROLL_EAST : OVERSCROLL_WEST))
|
| - return OverscrollWindowAnimation::SLIDE_FRONT;
|
| - if (mode == (base::i18n::IsRTL() ? OVERSCROLL_WEST : OVERSCROLL_EAST))
|
| - return OverscrollWindowAnimation::SLIDE_BACK;
|
| - return OverscrollWindowAnimation::SLIDE_NONE;
|
| -}
|
| -
|
| -} // namespace
|
| -
|
| -OverscrollWindowAnimation::OverscrollWindowAnimation(Delegate* delegate)
|
| - : delegate_(delegate),
|
| - direction_(SLIDE_NONE),
|
| - overscroll_cancelled_(false) {
|
| - DCHECK(delegate_);
|
| -}
|
| -
|
| -OverscrollWindowAnimation::~OverscrollWindowAnimation() {
|
| -}
|
| -
|
| -void OverscrollWindowAnimation::CancelSlide() {
|
| - ui::Layer* layer = GetFrontLayer();
|
| - ui::ScopedLayerAnimationSettings settings(layer->GetAnimator());
|
| - settings.SetPreemptionStrategy(
|
| - ui::LayerAnimator::IMMEDIATELY_ANIMATE_TO_NEW_TARGET);
|
| - settings.SetTweenType(gfx::Tween::EASE_OUT);
|
| - settings.AddObserver(this);
|
| - layer->SetTransform(gfx::Transform());
|
| - overscroll_cancelled_ = true;
|
| -}
|
| -
|
| -float OverscrollWindowAnimation::GetTranslationForOverscroll(float delta_x) {
|
| - DCHECK(direction_ != SLIDE_NONE);
|
| - const float bounds_width = GetVisibleBounds().width();
|
| - if (direction_ == SLIDE_FRONT)
|
| - return std::max(-bounds_width, delta_x);
|
| - else
|
| - return std::min(bounds_width, delta_x);
|
| -}
|
| -
|
| -gfx::Rect OverscrollWindowAnimation::GetVisibleBounds() const {
|
| - return delegate_->GetMainWindow()->bounds();
|
| -}
|
| -
|
| -bool OverscrollWindowAnimation::OnOverscrollUpdate(float delta_x,
|
| - float delta_y) {
|
| - if (direction_ == SLIDE_NONE)
|
| - return false;
|
| - gfx::Transform transform;
|
| - transform.Translate(GetTranslationForOverscroll(delta_x), 0);
|
| - GetFrontLayer()->SetTransform(transform);
|
| - return true;
|
| -}
|
| -
|
| -void OverscrollWindowAnimation::OnImplicitAnimationsCompleted() {
|
| - if (overscroll_cancelled_) {
|
| - slide_window_.reset();
|
| - delegate_->OnOverscrollCancelled();
|
| - overscroll_cancelled_ = false;
|
| - } else {
|
| - delegate_->OnOverscrollCompleted(slide_window_.Pass());
|
| - }
|
| - direction_ = SLIDE_NONE;
|
| -}
|
| -
|
| -void OverscrollWindowAnimation::OnOverscrollModeChange(
|
| - OverscrollMode old_mode,
|
| - OverscrollMode new_mode) {
|
| - Direction new_direction = GetDirectionForMode(new_mode);
|
| - if (new_direction == SLIDE_NONE) {
|
| - // The user cancelled the in progress animation.
|
| - if (is_active())
|
| - CancelSlide();
|
| - return;
|
| - }
|
| - if (is_active())
|
| - GetFrontLayer()->GetAnimator()->StopAnimating();
|
| -
|
| - gfx::Rect slide_window_bounds = gfx::Rect(GetVisibleBounds().size());
|
| - if (new_direction == SLIDE_FRONT) {
|
| - slide_window_bounds.Offset(base::i18n::IsRTL()
|
| - ? -slide_window_bounds.width()
|
| - : slide_window_bounds.width(),
|
| - 0);
|
| - }
|
| - slide_window_ = new_direction == SLIDE_FRONT
|
| - ? delegate_->CreateFrontWindow(slide_window_bounds)
|
| - : delegate_->CreateBackWindow(slide_window_bounds);
|
| - if (!slide_window_) {
|
| - // Cannot navigate, do not start an overscroll gesture.
|
| - direction_ = SLIDE_NONE;
|
| - return;
|
| - }
|
| - overscroll_cancelled_ = false;
|
| - direction_ = new_direction;
|
| - shadow_.reset(new ShadowLayerDelegate(GetFrontLayer()));
|
| -}
|
| -
|
| -void OverscrollWindowAnimation::OnOverscrollComplete(
|
| - OverscrollMode overscroll_mode) {
|
| - if (!is_active())
|
| - return;
|
| - delegate_->OnOverscrollCompleting();
|
| - int content_width = GetVisibleBounds().width();
|
| - float translate_x;
|
| - if ((base::i18n::IsRTL() && direction_ == SLIDE_FRONT) ||
|
| - (!base::i18n::IsRTL() && direction_ == SLIDE_BACK)) {
|
| - translate_x = content_width;
|
| - } else {
|
| - translate_x = -content_width;
|
| - }
|
| - ui::Layer* layer = GetFrontLayer();
|
| - gfx::Transform transform;
|
| - transform.Translate(translate_x, 0);
|
| - ui::ScopedLayerAnimationSettings settings(layer->GetAnimator());
|
| - settings.SetPreemptionStrategy(
|
| - ui::LayerAnimator::IMMEDIATELY_ANIMATE_TO_NEW_TARGET);
|
| - settings.SetTweenType(gfx::Tween::EASE_OUT);
|
| - settings.AddObserver(this);
|
| - layer->SetTransform(transform);
|
| -}
|
| -
|
| -ui::Layer* OverscrollWindowAnimation::GetFrontLayer() const {
|
| - DCHECK(direction_ != SLIDE_NONE);
|
| - if (direction_ == SLIDE_FRONT) {
|
| - DCHECK(slide_window_);
|
| - return slide_window_->layer();
|
| - }
|
| - return delegate_->GetMainWindow()->layer();
|
| -}
|
| -
|
| -} // namespace content
|
|
|