ScrollingStateScrollingNode.cpp [plain text]
#include "config.h"
#include "ScrollingStateScrollingNode.h"
#if ENABLE(ASYNC_SCROLLING) || USE(COORDINATED_GRAPHICS)
#include "ScrollingStateTree.h"
#include "TextStream.h"
#include <wtf/OwnPtr.h>
namespace WebCore {
ScrollingStateScrollingNode::ScrollingStateScrollingNode(ScrollingStateTree& stateTree, ScrollingNodeType nodeType, ScrollingNodeID nodeID)
: ScrollingStateNode(nodeType, stateTree, nodeID)
, m_requestedScrollPositionRepresentsProgrammaticScroll(false)
{
}
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())
, m_scrollableAreaParameters(stateNode.scrollableAreaParameters())
, m_requestedScrollPositionRepresentsProgrammaticScroll(stateNode.requestedScrollPositionRepresentsProgrammaticScroll())
{
}
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);
}
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::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)