Add Container widget type, use it to make Adapter code less hacky

This commit is contained in:
uramer 2022-01-29 23:40:31 +01:00
parent 086a7d9bc5
commit f07f05ddd3
9 changed files with 107 additions and 35 deletions

View file

@ -0,0 +1,35 @@
#include "container.hpp"
#include <algorithm>
namespace LuaUi
{
void LuaContainer::updateChildren()
{
WidgetExtension::updateChildren();
for (auto w : children())
{
w->onCoordChange([this](WidgetExtension* child, MyGUI::IntCoord coord)
{ updateSizeToFit(); });
}
updateSizeToFit();
}
MyGUI::IntSize LuaContainer::childScalingSize()
{
return MyGUI::IntSize();
}
void LuaContainer::updateSizeToFit()
{
MyGUI::IntSize size;
for (auto w : children())
{
MyGUI::IntCoord coord = w->widget()->getCoord();
size.width = std::max(size.width, coord.left + coord.width);
size.height = std::max(size.height, coord.top + coord.height);
}
setForcedSize(size);
updateCoord();
}
}