diff options
author | jamesr@chromium.org <jamesr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-08-25 00:09:14 +0000 |
---|---|---|
committer | jamesr@chromium.org <jamesr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-08-25 00:09:14 +0000 |
commit | 94f206c1c75eb8cc4df2225a1c5c9c7b6fc96679 (patch) | |
tree | 530f51d5c75459999e4adf2a6895884ce1c15ce0 /cc/CCScrollbarAnimationController.h | |
parent | 56235947f2b023fc63cfad692c56df4e92199848 (diff) | |
download | chromium_src-94f206c1c75eb8cc4df2225a1c5c9c7b6fc96679.zip chromium_src-94f206c1c75eb8cc4df2225a1c5c9c7b6fc96679.tar.gz chromium_src-94f206c1c75eb8cc4df2225a1c5c9c7b6fc96679.tar.bz2 |
Here are gyp targets and stubs for compiling libcc and the webkit_compositor bindings in chromium. Everything is guarded behind the off-by-default use_libcc_for_compositor gyp variable. I haven't included the actual code here, but there are scripts to sync. I plan to land + manually sync the code into place until we're ready to flip the gyp switch.
Snapshot from r126652
BUG=
Review URL: https://chromiumcodereview.appspot.com/10828381
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@153354 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'cc/CCScrollbarAnimationController.h')
-rw-r--r-- | cc/CCScrollbarAnimationController.h | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/cc/CCScrollbarAnimationController.h b/cc/CCScrollbarAnimationController.h new file mode 100644 index 0000000..256b463 --- /dev/null +++ b/cc/CCScrollbarAnimationController.h @@ -0,0 +1,64 @@ +// 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. + +#ifndef CCScrollbarAnimationController_h +#define CCScrollbarAnimationController_h + +#include "FloatPoint.h" +#include "IntSize.h" +#include <wtf/PassOwnPtr.h> + +namespace WebCore { + +class CCLayerImpl; +class CCScrollbarLayerImpl; + +// This abstract class represents the compositor-side analogy of ScrollbarAnimator. +// Individual platforms should subclass it to provide specialized implementation. +class CCScrollbarAnimationController { +public: + // Implemented by subclass. + static PassOwnPtr<CCScrollbarAnimationController> create(CCLayerImpl* scrollLayer); + + virtual ~CCScrollbarAnimationController(); + + virtual bool animate(double monotonicTime) { return false; } + void didPinchGestureBegin(); + void didPinchGestureUpdate(); + void didPinchGestureEnd(); + void updateScrollOffset(CCLayerImpl* scrollLayer); + + void setHorizontalScrollbarLayer(CCScrollbarLayerImpl* layer) { m_horizontalScrollbarLayer = layer; } + CCScrollbarLayerImpl* horizontalScrollbarLayer() const { return m_horizontalScrollbarLayer; } + + void setVerticalScrollbarLayer(CCScrollbarLayerImpl* layer) { m_verticalScrollbarLayer = layer; } + CCScrollbarLayerImpl* verticalScrollbarLayer() const { return m_verticalScrollbarLayer; } + + FloatPoint currentPos() const { return m_currentPos; } + IntSize totalSize() const { return m_totalSize; } + IntSize maximum() const { return m_maximum; } + + virtual void didPinchGestureBeginAtTime(double monotonicTime) { } + virtual void didPinchGestureUpdateAtTime(double monotonicTime) { } + virtual void didPinchGestureEndAtTime(double monotonicTime) { } + virtual void updateScrollOffsetAtTime(CCLayerImpl* scrollLayer, double monotonicTime); + +protected: + explicit CCScrollbarAnimationController(CCLayerImpl* scrollLayer); + +private: + static IntSize getScrollLayerBounds(const CCLayerImpl*); + + // Beware of dangling pointer. Always update these during tree synchronization. + CCScrollbarLayerImpl* m_horizontalScrollbarLayer; + CCScrollbarLayerImpl* m_verticalScrollbarLayer; + + FloatPoint m_currentPos; + IntSize m_totalSize; + IntSize m_maximum; +}; + +} // namespace WebCore + +#endif // CCScrollbarAnimationController_h |