Realign all parent boxes when autosizedwidgets change size

deque
MiroslavR 10 years ago
parent ccca6db865
commit 41c6045986

@ -544,19 +544,22 @@ namespace MWGui
void AutoSizedWidget::notifySizeChange (MyGUI::Widget* w) void AutoSizedWidget::notifySizeChange (MyGUI::Widget* w)
{ {
if (w->getParent () != 0) MyGUI::Widget * parent = w->getParent();
if (parent != 0)
{ {
Box* b = dynamic_cast<Box*>(w->getParent()); if (mExpandDirection == MyGUI::Align::Left)
if (b) {
b->notifyChildrenSizeChanged (); int hdiff = getRequestedSize ().width - w->getSize().width;
else w->setPosition(w->getPosition() - MyGUI::IntPoint(hdiff, 0));
}
w->setSize(getRequestedSize ());
while (parent != 0)
{ {
if (mExpandDirection == MyGUI::Align::Left) Box * b = dynamic_cast<Box*>(parent);
{ if (b)
int hdiff = getRequestedSize ().width - w->getSize().width; b->notifyChildrenSizeChanged();
w->setPosition(w->getPosition() - MyGUI::IntPoint(hdiff, 0)); parent = parent->getParent();
}
w->setSize(getRequestedSize ());
} }
} }
} }

Loading…
Cancel
Save