ScrollingStateOverflowScrollProxyNode.cpp [plain text]
#include "config.h"
#include "ScrollingStateOverflowScrollProxyNode.h"
#if ENABLE(ASYNC_SCROLLING)
#include "ScrollingStateOverflowScrollingNode.h"
#include "ScrollingStateTree.h"
#include <wtf/text/TextStream.h>
namespace WebCore {
Ref<ScrollingStateOverflowScrollProxyNode> ScrollingStateOverflowScrollProxyNode::create(ScrollingStateTree& stateTree, ScrollingNodeID nodeID)
{
return adoptRef(*new ScrollingStateOverflowScrollProxyNode(stateTree, nodeID));
}
ScrollingStateOverflowScrollProxyNode::ScrollingStateOverflowScrollProxyNode(ScrollingStateTree& stateTree, ScrollingNodeID nodeID)
: ScrollingStateNode(ScrollingNodeType::OverflowProxy, stateTree, nodeID)
{
}
ScrollingStateOverflowScrollProxyNode::ScrollingStateOverflowScrollProxyNode(const ScrollingStateOverflowScrollProxyNode& stateNode, ScrollingStateTree& adoptiveTree)
: ScrollingStateNode(stateNode, adoptiveTree)
, m_overflowScrollingNodeID(stateNode.overflowScrollingNode())
{
}
ScrollingStateOverflowScrollProxyNode::~ScrollingStateOverflowScrollProxyNode() = default;
Ref<ScrollingStateNode> ScrollingStateOverflowScrollProxyNode::clone(ScrollingStateTree& adoptiveTree)
{
return adoptRef(*new ScrollingStateOverflowScrollProxyNode(*this, adoptiveTree));
}
void ScrollingStateOverflowScrollProxyNode::setOverflowScrollingNode(ScrollingNodeID nodeID)
{
if (nodeID == m_overflowScrollingNodeID)
return;
m_overflowScrollingNodeID = nodeID;
setPropertyChanged(OverflowScrollingNode);
}
void ScrollingStateOverflowScrollProxyNode::dumpProperties(TextStream& ts, ScrollingStateTreeAsTextBehavior behavior) const
{
ts << "Overflow scroll proxy node";
ScrollingStateNode::dumpProperties(ts, behavior);
if (auto* relatedOverflowNode = scrollingStateTree().stateNodeForID(m_overflowScrollingNodeID)) {
auto scrollPosition = downcast<ScrollingStateOverflowScrollingNode>(*relatedOverflowNode).scrollPosition();
ts.dumpProperty("related overflow scrolling node scroll position", scrollPosition);
}
if (behavior & ScrollingStateTreeAsTextBehaviorIncludeNodeIDs)
ts.dumpProperty("overflow scrolling node", overflowScrollingNode());
}
}
#endif // ENABLE(ASYNC_SCROLLING)