GLayout.cpp 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  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. }
  36. void GLayout::set_spacing(int spacing)
  37. {
  38. if (m_spacing == spacing)
  39. return;
  40. m_spacing = spacing;
  41. if (m_owner)
  42. m_owner->notify_layout_changed(Badge<GLayout>());
  43. }
  44. void GLayout::set_margins(const GMargins& margins)
  45. {
  46. if (m_margins == margins)
  47. return;
  48. m_margins = margins;
  49. if (m_owner)
  50. m_owner->notify_layout_changed(Badge<GLayout>());
  51. }