| Index: cc/scrollbar_animation_controller.h
|
| diff --git a/cc/scrollbar_animation_controller.h b/cc/scrollbar_animation_controller.h
|
| index 638cbb270ce9b24689d5095baf174ade4f4d1a13..bb387d7bf1c76758c26af34aa7c5f06a59aa2cc8 100644
|
| --- a/cc/scrollbar_animation_controller.h
|
| +++ b/cc/scrollbar_animation_controller.h
|
| @@ -1,3 +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 cc {
|
| +
|
| +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);
|
| + 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 cc
|
| +
|
| +#endif // CCScrollbarAnimationController_h
|
|
|