Realign all parent boxes when autosizedwidgets change size

This commit is contained in:
MiroslavR 2014-09-01 03:38:05 +02:00
parent ccca6db865
commit 41c6045986

View file

@ -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 ();
else
{ {
if (mExpandDirection == MyGUI::Align::Left) int hdiff = getRequestedSize ().width - w->getSize().width;
{ w->setPosition(w->getPosition() - MyGUI::IntPoint(hdiff, 0));
int hdiff = getRequestedSize ().width - w->getSize().width; }
w->setPosition(w->getPosition() - MyGUI::IntPoint(hdiff, 0)); w->setSize(getRequestedSize ());
}
w->setSize(getRequestedSize ()); while (parent != 0)
{
Box * b = dynamic_cast<Box*>(parent);
if (b)
b->notifyChildrenSizeChanged();
parent = parent->getParent();
} }
} }
} }