#pragma once #include #include class LayoutDocument final : public LayoutBlock { public: explicit LayoutDocument(const Document&, NonnullRefPtr); virtual ~LayoutDocument() override; const Document& node() const { return static_cast(*LayoutNode::node()); } virtual const char* class_name() const override { return "LayoutDocument"; } virtual void layout() override; const LayoutRange& selection() const { return m_selection; } LayoutRange& selection() { return m_selection; } void did_set_viewport_rect(Badge, const Rect&); private: LayoutRange m_selection; };