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.
67 lines
1.6 KiB
C++
67 lines
1.6 KiB
C++
#ifndef OPENMW_LUAUI_FLEX
|
|
#define OPENMW_LUAUI_FLEX
|
|
|
|
#include "alignment.hpp"
|
|
#include "widget.hpp"
|
|
|
|
namespace LuaUi
|
|
{
|
|
class LuaFlex : public MyGUI::Widget, public WidgetExtension
|
|
{
|
|
MYGUI_RTTI_DERIVED(LuaFlex)
|
|
|
|
protected:
|
|
MyGUI::IntSize calculateSize() const override;
|
|
void updateProperties() override;
|
|
void updateChildren() override;
|
|
MyGUI::IntSize childScalingSize() const override;
|
|
|
|
void updateCoord() override;
|
|
|
|
private:
|
|
bool mHorizontal;
|
|
bool mAutoSized;
|
|
MyGUI::IntSize mChildrenSize;
|
|
Alignment mAlign;
|
|
Alignment mArrange;
|
|
|
|
template <typename T>
|
|
T& primary(MyGUI::types::TPoint<T>& point) const
|
|
{
|
|
return mHorizontal ? point.left : point.top;
|
|
}
|
|
|
|
template <typename T>
|
|
T& secondary(MyGUI::types::TPoint<T>& point) const
|
|
{
|
|
return mHorizontal ? point.top : point.left;
|
|
}
|
|
|
|
template <typename T>
|
|
T& primary(MyGUI::types::TSize<T>& size) const
|
|
{
|
|
return mHorizontal ? size.width : size.height;
|
|
}
|
|
|
|
template <typename T>
|
|
T& secondary(MyGUI::types::TSize<T>& size) const
|
|
{
|
|
return mHorizontal ? size.height : size.width;
|
|
}
|
|
|
|
template <typename T>
|
|
T primary(const MyGUI::types::TSize<T>& size) const
|
|
{
|
|
return mHorizontal ? size.width : size.height;
|
|
}
|
|
|
|
template <typename T>
|
|
T secondary(const MyGUI::types::TSize<T>& size) const
|
|
{
|
|
return mHorizontal ? size.height : size.width;
|
|
}
|
|
};
|
|
}
|
|
|
|
#endif // OPENMW_LUAUI_FLEX
|