File: container.cpp

package info (click to toggle)
openmw 0.49.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 33,992 kB
  • sloc: cpp: 372,479; xml: 2,149; sh: 1,403; python: 797; makefile: 26
file content (53 lines) | stat: -rw-r--r-- 1,402 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
#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();
    }
}