summaryrefslogtreecommitdiffstats
path: root/Source/WebCore/platform/ScrollAnimator.h
diff options
context:
space:
mode:
Diffstat (limited to 'Source/WebCore/platform/ScrollAnimator.h')
-rw-r--r--Source/WebCore/platform/ScrollAnimator.h23
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