class ScrollingTreeScrollingNode : public ScrollingTreeNode {
public:
- static PassOwnPtr<ScrollingTreeScrollingNode> create(ScrollingTree*);
+ static PassOwnPtr<ScrollingTreeScrollingNode> create(ScrollingTree*, ScrollingNodeID);
virtual ~ScrollingTreeScrollingNode();
- virtual void update(ScrollingStateNode*) OVERRIDE;
+ virtual void updateBeforeChildren(ScrollingStateNode*) OVERRIDE;
// FIXME: We should implement this when we support ScrollingTreeScrollingNodes as children.
- virtual void parentScrollPositionDidChange(const IntRect& /*viewportRect*/) OVERRIDE { }
+ virtual void parentScrollPositionDidChange(const IntRect& /*viewportRect*/, const FloatSize& /*cumulativeDelta*/) OVERRIDE { }
virtual void handleWheelEvent(const PlatformWheelEvent&) = 0;
virtual void setScrollPosition(const IntPoint&) = 0;
MainThreadScrollingReasons shouldUpdateScrollLayerPositionOnMainThread() const { return m_shouldUpdateScrollLayerPositionOnMainThread; }
protected:
- explicit ScrollingTreeScrollingNode(ScrollingTree*);
+ explicit ScrollingTreeScrollingNode(ScrollingTree*, ScrollingNodeID);
const IntRect& viewportRect() const { return m_viewportRect; }
- const IntSize& contentsSize() const { return m_contentsSize; }
+ const IntSize& totalContentsSize() const { return m_totalContentsSize; }
float frameScaleFactor() const { return m_frameScaleFactor; }
const IntPoint& scrollOrigin() const { return m_scrollOrigin; }
+ int headerHeight() const { return m_headerHeight; }
+ int footerHeight() const { return m_footerHeight; }
+
private:
IntRect m_viewportRect;
- IntSize m_contentsSize;
+ IntSize m_totalContentsSize;
IntPoint m_scrollOrigin;
float m_frameScaleFactor;
ScrollbarMode m_horizontalScrollbarMode;
ScrollbarMode m_verticalScrollbarMode;
+
+ int m_headerHeight;
+ int m_footerHeight;
};
} // namespace WebCore