ScrollingStateScrollingNode.h [plain text]
#ifndef ScrollingStateScrollingNode_h
#define ScrollingStateScrollingNode_h
#if ENABLE(ASYNC_SCROLLING) || USE(COORDINATED_GRAPHICS)
#include "ScrollTypes.h"
#include "ScrollingCoordinator.h"
#include "ScrollingStateNode.h"
#include <wtf/PassOwnPtr.h>
namespace WebCore {
class ScrollingStateScrollingNode : public ScrollingStateNode {
public:
virtual ~ScrollingStateScrollingNode();
enum ChangedProperty {
ScrollableAreaSize = NumStateNodeBits,
TotalContentsSize,
ReachableContentsSize,
ScrollPosition,
ScrollOrigin,
ScrollableAreaParams,
RequestedScrollPosition,
NumScrollingStateNodeBits,
};
const FloatSize& scrollableAreaSize() const { return m_scrollableAreaSize; }
void setScrollableAreaSize(const FloatSize&);
const FloatSize& totalContentsSize() const { return m_totalContentsSize; }
void setTotalContentsSize(const FloatSize&);
const FloatSize& reachableContentsSize() const { return m_reachableContentsSize; }
void setReachableContentsSize(const FloatSize&);
const FloatPoint& scrollPosition() const { return m_scrollPosition; }
void setScrollPosition(const FloatPoint&);
const IntPoint& scrollOrigin() const { return m_scrollOrigin; }
void setScrollOrigin(const IntPoint&);
const ScrollableAreaParameters& scrollableAreaParameters() const { return m_scrollableAreaParameters; }
void setScrollableAreaParameters(const ScrollableAreaParameters& params);
const FloatPoint& requestedScrollPosition() const { return m_requestedScrollPosition; }
bool requestedScrollPositionRepresentsProgrammaticScroll() const { return m_requestedScrollPositionRepresentsProgrammaticScroll; }
void setRequestedScrollPosition(const FloatPoint&, bool representsProgrammaticScroll);
virtual void dumpProperties(TextStream&, int indent) const override;
protected:
ScrollingStateScrollingNode(ScrollingStateTree&, ScrollingNodeType, ScrollingNodeID);
ScrollingStateScrollingNode(const ScrollingStateScrollingNode&, ScrollingStateTree&);
private:
FloatSize m_scrollableAreaSize;
FloatSize m_totalContentsSize;
FloatSize m_reachableContentsSize;
FloatPoint m_scrollPosition;
FloatPoint m_requestedScrollPosition;
IntPoint m_scrollOrigin;
ScrollableAreaParameters m_scrollableAreaParameters;
bool m_requestedScrollPositionRepresentsProgrammaticScroll;
};
SCROLLING_STATE_NODE_TYPE_CASTS(ScrollingStateScrollingNode, isScrollingNode());
}
#endif // ENABLE(ASYNC_SCROLLING) || USE(COORDINATED_GRAPHICS)
#endif // ScrollingStateScrollingNode_h