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

Unified Diff: content/browser/web_contents/aura/overscroll_window_animation.cc

Issue 1076743003: Revert of Refactor GestureNavigation to eliminate code redundancy (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 8 months 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
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

Powered by Google App Engine
This is Rietveld 408576698