void Layout::remove(Sizable& sizable) { if(dynamic_cast<Widget*>(&sizable)) { Widget& widget = (Widget&)sizable; if(sizable.window()) sizable.window()->remove(widget); } sizable.state.parent = nullptr; sizable.state.window = nullptr; }
void Layout::append(Sizable& sizable) { sizable.state.parent = this; sizable.state.window = Sizable::state.window; if(dynamic_cast<Layout*>(&sizable)) { Layout& layout = (Layout&)sizable; layout.synchronizeLayout(); } if(dynamic_cast<Widget*>(&sizable)) { Widget& widget = (Widget&)sizable; if(sizable.window()) sizable.window()->append(widget); } }