#include #include GLayout::GLayout() { } GLayout::~GLayout() { } void GLayout::notify_adopted(Badge, GWidget& widget) { if (m_owner.ptr() == &widget) return; m_owner = widget.make_weak_ptr(); } void GLayout::notify_disowned(Badge, GWidget& widget) { ASSERT(m_owner.ptr() == &widget); m_owner.clear(); } void GLayout::add_layout(OwnPtr&& layout) { Entry entry; entry.layout = move(layout); m_entries.append(move(entry)); if (m_owner) m_owner->notify_layout_changed(Badge()); } void GLayout::add_widget(GWidget& widget) { Entry entry; entry.widget = widget.make_weak_ptr(); m_entries.append(move(entry)); if (m_owner) m_owner->notify_layout_changed(Badge()); } void GLayout::set_spacing(int spacing) { if (m_spacing == spacing) return; m_spacing = spacing; if (m_owner) m_owner->notify_layout_changed(Badge()); } void GLayout::set_margins(const GMargins& margins) { if (m_margins == margins) return; m_margins = margins; if (m_owner) m_owner->notify_layout_changed(Badge()); }