diff options
Diffstat (limited to 'Source/WebCore/platform/ScrollAnimator.h')
-rw-r--r-- | Source/WebCore/platform/ScrollAnimator.h | 23 |
1 files changed, 14 insertions, 9 deletions
diff --git a/Source/WebCore/platform/ScrollAnimator.h b/Source/WebCore/platform/ScrollAnimator.h index e674339..155c6e5 100644 --- a/Source/WebCore/platform/ScrollAnimator.h +++ b/Source/WebCore/platform/ScrollAnimator.h @@ -32,16 +32,17 @@ #define ScrollAnimator_h #include "ScrollTypes.h" +#include <wtf/Forward.h> namespace WebCore { -class ScrollbarClient; +class FloatPoint; +class ScrollableArea; class ScrollAnimator { public: - static ScrollAnimator* create(ScrollbarClient*); + static PassOwnPtr<ScrollAnimator> create(ScrollableArea*); - ScrollAnimator(ScrollbarClient* client); virtual ~ScrollAnimator(); // Computes a scroll destination for the given parameters. Returns false if @@ -50,16 +51,20 @@ public: // The base class implementation always scrolls immediately, never animates. virtual bool scroll(ScrollbarOrientation, ScrollGranularity, float step, float multiplier); - // Stops any animation in the given direction and updates the ScrollAnimator - // with the current scroll position. This does not cause a callback to the - // ScrollbarClient. - virtual void setScrollPositionAndStopAnimation(ScrollbarOrientation, float); + virtual void scrollToOffsetWithoutAnimation(const FloatPoint&); + + FloatPoint currentPosition() const; protected: - ScrollbarClient* m_client; + ScrollAnimator(ScrollableArea*); + + void notityPositionChanged(); + + ScrollableArea* m_scrollableArea; float m_currentPosX; // We avoid using a FloatPoint in order to reduce float m_currentPosY; // subclass code complexity. }; } // namespace WebCore -#endif + +#endif // ScrollAnimator_h |