diff options
| author | enne@chromium.org <enne@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-10-12 22:43:41 +0000 |
|---|---|---|
| committer | enne@chromium.org <enne@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-10-12 22:43:41 +0000 |
| commit | cd57cc5a246367c2558fefa04ae9eca8f4d545d2 (patch) | |
| tree | a2235045e9c5e4ff028d641b76f5d01aa5461b26 /cc/scrollbar_animation_controller_linear_fade.cc | |
| parent | 3fe7ba055be580443445895c0ee01ada3b628487 (diff) | |
| download | chromium_src-cd57cc5a246367c2558fefa04ae9eca8f4d545d2.zip chromium_src-cd57cc5a246367c2558fefa04ae9eca8f4d545d2.tar.gz chromium_src-cd57cc5a246367c2558fefa04ae9eca8f4d545d2.tar.bz2 | |
[cc] Rename all cc/ filenames to Chromium style
BUG=155413
Review URL: https://codereview.chromium.org/11122003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@161671 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'cc/scrollbar_animation_controller_linear_fade.cc')
| -rw-r--r-- | cc/scrollbar_animation_controller_linear_fade.cc | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/cc/scrollbar_animation_controller_linear_fade.cc b/cc/scrollbar_animation_controller_linear_fade.cc new file mode 100644 index 0000000..95ad198 --- /dev/null +++ b/cc/scrollbar_animation_controller_linear_fade.cc @@ -0,0 +1,77 @@ +// Copyright 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 "config.h" + +#include "CCScrollbarAnimationControllerLinearFade.h" + +#include "CCScrollbarLayerImpl.h" + +namespace cc { + +PassOwnPtr<CCScrollbarAnimationControllerLinearFade> CCScrollbarAnimationControllerLinearFade::create(CCLayerImpl* scrollLayer, double fadeoutDelay, double fadeoutLength) +{ + return adoptPtr(new CCScrollbarAnimationControllerLinearFade(scrollLayer, fadeoutDelay, fadeoutLength)); +} + +CCScrollbarAnimationControllerLinearFade::CCScrollbarAnimationControllerLinearFade(CCLayerImpl* scrollLayer, double fadeoutDelay, double fadeoutLength) + : CCScrollbarAnimationController(scrollLayer) + , m_lastAwakenTime(-100000000) // arbitrary invalid timestamp + , m_pinchGestureInEffect(false) + , m_fadeoutDelay(fadeoutDelay) + , m_fadeoutLength(fadeoutLength) +{ +} + +CCScrollbarAnimationControllerLinearFade::~CCScrollbarAnimationControllerLinearFade() +{ +} + +bool CCScrollbarAnimationControllerLinearFade::animate(double monotonicTime) +{ + float opacity = opacityAtTime(monotonicTime); + if (horizontalScrollbarLayer()) + horizontalScrollbarLayer()->setOpacity(opacity); + if (verticalScrollbarLayer()) + verticalScrollbarLayer()->setOpacity(opacity); + return opacity; +} + +void CCScrollbarAnimationControllerLinearFade::didPinchGestureUpdateAtTime(double) +{ + m_pinchGestureInEffect = true; +} + +void CCScrollbarAnimationControllerLinearFade::didPinchGestureEndAtTime(double monotonicTime) +{ + m_pinchGestureInEffect = false; + m_lastAwakenTime = monotonicTime; +} + +void CCScrollbarAnimationControllerLinearFade::updateScrollOffsetAtTime(CCLayerImpl* scrollLayer, double monotonicTime) +{ + FloatPoint previousPos = currentPos(); + CCScrollbarAnimationController::updateScrollOffsetAtTime(scrollLayer, monotonicTime); + + if (previousPos == currentPos()) + return; + + m_lastAwakenTime = monotonicTime; +} + +float CCScrollbarAnimationControllerLinearFade::opacityAtTime(double monotonicTime) +{ + if (m_pinchGestureInEffect) + return 1; + + double delta = monotonicTime - m_lastAwakenTime; + + if (delta <= m_fadeoutDelay) + return 1; + if (delta < m_fadeoutDelay + m_fadeoutLength) + return (m_fadeoutDelay + m_fadeoutLength - delta) / m_fadeoutLength; + return 0; +} + +} // namespace cc |
