#pragma once #include class GWidget; class LayoutWidget : public LayoutReplaced { public: LayoutWidget(const Element&, GWidget&); virtual ~LayoutWidget() override; virtual void layout() override; virtual void render(RenderingContext&) override; GWidget& widget() { return m_widget; } const GWidget& widget() const { return m_widget; } virtual bool is_widget() const final { return true; } private: virtual const char* class_name() const override { return "LayoutWidget"; } NonnullRefPtr m_widget; }; template<> inline bool is(const LayoutNode& node) { return node.is_widget(); }