frame.cpp 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. #if defined(Hiro_Frame)
  2. auto mFrame::allocate() -> pObject* {
  3. return new pFrame(*this);
  4. }
  5. auto mFrame::destruct() -> void {
  6. if(auto& sizable = state.sizable) sizable->destruct();
  7. mWidget::destruct();
  8. }
  9. //
  10. auto mFrame::append(sSizable sizable) -> type& {
  11. if(auto& sizable = state.sizable) remove(sizable);
  12. state.sizable = sizable;
  13. sizable->setParent(this, 0);
  14. signal(append, sizable);
  15. return *this;
  16. }
  17. auto mFrame::remove(sSizable sizable) -> type& {
  18. signal(remove, sizable);
  19. sizable->setParent();
  20. state.sizable.reset();
  21. return *this;
  22. }
  23. auto mFrame::reset() -> type& {
  24. if(auto& sizable = state.sizable) remove(sizable);
  25. return *this;
  26. }
  27. auto mFrame::setParent(mObject* object, int offset) -> type& {
  28. if(auto& sizable = state.sizable) sizable->destruct();
  29. mObject::setParent(object, offset);
  30. if(auto& sizable = state.sizable) sizable->setParent(this, 0);
  31. return *this;
  32. }
  33. auto mFrame::setText(const string& text) -> type& {
  34. state.text = text;
  35. signal(setText, text);
  36. return *this;
  37. }
  38. auto mFrame::sizable() const -> Sizable {
  39. return state.sizable;
  40. }
  41. auto mFrame::text() const -> string {
  42. return state.text;
  43. }
  44. #endif