mirror of https://github.com/OpenMW/openmw.git
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
54 lines
1.4 KiB
C++
54 lines
1.4 KiB
C++
#include "container.hpp"
|
|
|
|
#include <algorithm>
|
|
|
|
namespace LuaUi
|
|
{
|
|
void LuaContainer::updateChildren()
|
|
{
|
|
WidgetExtension::updateChildren();
|
|
updateSizeToFit();
|
|
}
|
|
|
|
MyGUI::IntSize LuaContainer::childScalingSize() const
|
|
{
|
|
return MyGUI::IntSize();
|
|
}
|
|
|
|
MyGUI::IntSize LuaContainer::templateScalingSize() const
|
|
{
|
|
return mInnerSize;
|
|
}
|
|
|
|
void LuaContainer::updateSizeToFit()
|
|
{
|
|
MyGUI::IntSize innerSize = MyGUI::IntSize();
|
|
for (const auto w : children())
|
|
{
|
|
MyGUI::IntCoord coord = w->calculateCoord();
|
|
innerSize.width = std::max(innerSize.width, coord.left + coord.width);
|
|
innerSize.height = std::max(innerSize.height, coord.top + coord.height);
|
|
}
|
|
MyGUI::IntSize outerSize = innerSize;
|
|
for (const auto w : templateChildren())
|
|
{
|
|
MyGUI::IntCoord coord = w->calculateCoord();
|
|
outerSize.width = std::max(outerSize.width, coord.left + coord.width);
|
|
outerSize.height = std::max(outerSize.height, coord.top + coord.height);
|
|
}
|
|
mInnerSize = innerSize;
|
|
mOuterSize = outerSize;
|
|
}
|
|
|
|
MyGUI::IntSize LuaContainer::calculateSize() const
|
|
{
|
|
return mOuterSize;
|
|
}
|
|
|
|
void LuaContainer::updateCoord()
|
|
{
|
|
updateSizeToFit();
|
|
WidgetExtension::updateCoord();
|
|
}
|
|
}
|