#pragma once #include #include #include #include class GWidget; class GLayout { public: GLayout(); virtual ~GLayout(); void add_widget(GWidget&); void add_layout(OwnPtr&&); virtual void run(GWidget&) = 0; void notify_adopted(Badge, GWidget&); void notify_disowned(Badge, GWidget&); protected: struct Entry { WeakPtr widget; OwnPtr layout; }; WeakPtr m_owner; Vector m_entries; };