ScrollingStateScrollingNode.cpp [plain text]
#include "config.h"
#include "ScrollingStateScrollingNode.h"
#if ENABLE(ASYNC_SCROLLING) || USE(COORDINATED_GRAPHICS)
#include "ScrollingStateTree.h"
#include "TextStream.h"
namespace WebCore {
ScrollingStateScrollingNode::ScrollingStateScrollingNode(ScrollingStateTree& stateTree, ScrollingNodeType nodeType, ScrollingNodeID nodeID)
: ScrollingStateNode(nodeType, stateTree, nodeID)
{
}
ScrollingStateScrollingNode::ScrollingStateScrollingNode(const ScrollingStateScrollingNode& stateNode, ScrollingStateTree& adoptiveTree)
: ScrollingStateNode(stateNode, adoptiveTree)
, m_scrollableAreaSize(stateNode.scrollableAreaSize())
, m_totalContentsSize(stateNode.totalContentsSize())
, m_reachableContentsSize(stateNode.reachableContentsSize())
, m_scrollPosition(stateNode.scrollPosition())
, m_requestedScrollPosition(stateNode.requestedScrollPosition())
, m_scrollOrigin(stateNode.scrollOrigin())
#if ENABLE(CSS_SCROLL_SNAP)
, m_horizontalSnapOffsets(stateNode.horizontalSnapOffsets())
, m_verticalSnapOffsets(stateNode.verticalSnapOffsets())
#endif
, m_scrollableAreaParameters(stateNode.scrollableAreaParameters())
, m_requestedScrollPositionRepresentsProgrammaticScroll(stateNode.requestedScrollPositionRepresentsProgrammaticScroll())
, m_expectsWheelEventTestTrigger(stateNode.expectsWheelEventTestTrigger())
{
}
ScrollingStateScrollingNode::~ScrollingStateScrollingNode()
{
}
void ScrollingStateScrollingNode::setScrollableAreaSize(const FloatSize& size)
{
if (m_scrollableAreaSize == size)
return;
m_scrollableAreaSize = size;
setPropertyChanged(ScrollableAreaSize);
}
void ScrollingStateScrollingNode::setTotalContentsSize(const FloatSize& totalContentsSize)
{
if (m_totalContentsSize == totalContentsSize)
return;
m_totalContentsSize = totalContentsSize;
setPropertyChanged(TotalContentsSize);
}
void ScrollingStateScrollingNode::setReachableContentsSize(const FloatSize& reachableContentsSize)
{
if (m_reachableContentsSize == reachableContentsSize)
return;
m_reachableContentsSize = reachableContentsSize;
setPropertyChanged(ReachableContentsSize);
}
void ScrollingStateScrollingNode::setScrollPosition(const FloatPoint& scrollPosition)
{
if (m_scrollPosition == scrollPosition)
return;
m_scrollPosition = scrollPosition;
setPropertyChanged(ScrollPosition);
}
void ScrollingStateScrollingNode::setScrollOrigin(const IntPoint& scrollOrigin)
{
if (m_scrollOrigin == scrollOrigin)
return;
m_scrollOrigin = scrollOrigin;
setPropertyChanged(ScrollOrigin);
}
#if ENABLE(CSS_SCROLL_SNAP)
void ScrollingStateScrollingNode::setHorizontalSnapOffsets(const Vector<float>& snapOffsets)
{
if (m_horizontalSnapOffsets == snapOffsets)
return;
m_horizontalSnapOffsets = snapOffsets;
setPropertyChanged(HorizontalSnapOffsets);
}
void ScrollingStateScrollingNode::setVerticalSnapOffsets(const Vector<float>& snapOffsets)
{
if (m_verticalSnapOffsets == snapOffsets)
return;
m_verticalSnapOffsets = snapOffsets;
setPropertyChanged(VerticalSnapOffsets);
}
void ScrollingStateScrollingNode::setCurrentHorizontalSnapPointIndex(unsigned index)
{
if (m_currentHorizontalSnapPointIndex == index)
return;
m_currentHorizontalSnapPointIndex = index;
setPropertyChanged(CurrentHorizontalSnapOffsetIndex);
}
void ScrollingStateScrollingNode::setCurrentVerticalSnapPointIndex(unsigned index)
{
if (m_currentVerticalSnapPointIndex == index)
return;
m_currentVerticalSnapPointIndex = index;
setPropertyChanged(CurrentVerticalSnapOffsetIndex);
}
#endif
void ScrollingStateScrollingNode::setScrollableAreaParameters(const ScrollableAreaParameters& parameters)
{
if (m_scrollableAreaParameters == parameters)
return;
m_scrollableAreaParameters = parameters;
setPropertyChanged(ScrollableAreaParams);
}
void ScrollingStateScrollingNode::setRequestedScrollPosition(const FloatPoint& requestedScrollPosition, bool representsProgrammaticScroll)
{
m_requestedScrollPosition = requestedScrollPosition;
m_requestedScrollPositionRepresentsProgrammaticScroll = representsProgrammaticScroll;
setPropertyChanged(RequestedScrollPosition);
}
void ScrollingStateScrollingNode::setExpectsWheelEventTestTrigger(bool expectsTestTrigger)
{
if (expectsTestTrigger == m_expectsWheelEventTestTrigger)
return;
m_expectsWheelEventTestTrigger = expectsTestTrigger;
setPropertyChanged(ExpectsWheelEventTestTrigger);
}
void ScrollingStateScrollingNode::dumpProperties(TextStream& ts, int indent) const
{
if (m_scrollPosition != FloatPoint()) {
writeIndent(ts, indent + 1);
ts << "(scroll position "
<< TextStream::FormatNumberRespectingIntegers(m_scrollPosition.x()) << " "
<< TextStream::FormatNumberRespectingIntegers(m_scrollPosition.y()) << ")\n";
}
if (!m_scrollableAreaSize.isEmpty()) {
writeIndent(ts, indent + 1);
ts << "(scrollable area size "
<< TextStream::FormatNumberRespectingIntegers(m_scrollableAreaSize.width()) << " "
<< TextStream::FormatNumberRespectingIntegers(m_scrollableAreaSize.height()) << ")\n";
}
if (!m_totalContentsSize.isEmpty()) {
writeIndent(ts, indent + 1);
ts << "(contents size "
<< TextStream::FormatNumberRespectingIntegers(m_totalContentsSize.width()) << " "
<< TextStream::FormatNumberRespectingIntegers(m_totalContentsSize.height()) << ")\n";
}
if (m_requestedScrollPosition != IntPoint()) {
writeIndent(ts, indent + 1);
ts << "(requested scroll position "
<< TextStream::FormatNumberRespectingIntegers(m_requestedScrollPosition.x()) << " "
<< TextStream::FormatNumberRespectingIntegers(m_requestedScrollPosition.y()) << ")\n";
}
if (m_scrollOrigin != IntPoint()) {
writeIndent(ts, indent + 1);
ts << "(scroll origin " << m_scrollOrigin.x() << " " << m_scrollOrigin.y() << ")\n";
}
}
}
#endif // ENABLE(ASYNC_SCROLLING) || USE(COORDINATED_GRAPHICS)