ScrollLatchingState.h [plain text]
#pragma once
#include <wtf/WeakPtr.h>
namespace WTF {
class TextStream;
}
namespace WebCore {
class ContainerNode;
class Element;
class Frame;
class ScrollLatchingState final {
public:
ScrollLatchingState();
~ScrollLatchingState();
void clear();
Element* wheelEventElement() const { return m_wheelEventElement.get(); }
void setWheelEventElement(Element*);
Frame* frame() const { return m_frame; }
void setFrame(Frame* frame) { m_frame = frame; }
bool widgetIsLatched() const { return m_widgetIsLatched; }
void setWidgetIsLatched(bool isOverWidget);
Element* previousWheelScrolledElement() const { return m_previousWheelScrolledElement.get(); }
void setPreviousWheelScrolledElement(Element*);
ContainerNode* scrollableContainer() const { return m_scrollableContainer.get(); }
void setScrollableContainer(ContainerNode*);
bool startedGestureAtScrollLimit() const { return m_startedGestureAtScrollLimit; }
void setStartedGestureAtScrollLimit(bool startedAtLimit) { m_startedGestureAtScrollLimit = startedAtLimit; }
private:
WeakPtr<Element> m_wheelEventElement;
WeakPtr<Element> m_previousWheelScrolledElement;
WeakPtr<ContainerNode> m_scrollableContainer;
Frame* m_frame { nullptr };
bool m_widgetIsLatched { false };
bool m_startedGestureAtScrollLimit { false };
};
WTF::TextStream& operator<<(WTF::TextStream&, const ScrollLatchingState&);
}