GLayout.cpp 820 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. #include <LibGUI/GLayout.h>
  2. #include <LibGUI/GWidget.h>
  3. GLayout::GLayout()
  4. {
  5. }
  6. GLayout::~GLayout()
  7. {
  8. }
  9. void GLayout::notify_adopted(Badge<GWidget>, GWidget& widget)
  10. {
  11. if (m_owner.ptr() == &widget)
  12. return;
  13. m_owner = widget.make_weak_ptr();
  14. }
  15. void GLayout::notify_disowned(Badge<GWidget>, GWidget& widget)
  16. {
  17. ASSERT(m_owner.ptr() == &widget);
  18. m_owner.clear();
  19. }
  20. void GLayout::add_layout(OwnPtr<GLayout>&& layout)
  21. {
  22. Entry entry;
  23. entry.layout = move(layout);
  24. m_entries.append(move(entry));
  25. if (m_owner)
  26. m_owner->notify_layout_changed(Badge<GLayout>());
  27. }
  28. void GLayout::add_widget(GWidget& widget)
  29. {
  30. Entry entry;
  31. entry.widget = widget.make_weak_ptr();
  32. m_entries.append(move(entry));
  33. if (m_owner)
  34. m_owner->notify_layout_changed(Badge<GLayout>());
  35. }