aboutsummaryrefslogtreecommitdiff
path: root/CruUI/ui/layout_base.h
diff options
context:
space:
mode:
Diffstat (limited to 'CruUI/ui/layout_base.h')
-rw-r--r--CruUI/ui/layout_base.h25
1 files changed, 21 insertions, 4 deletions
diff --git a/CruUI/ui/layout_base.h b/CruUI/ui/layout_base.h
index 08f36769..25a6774c 100644
--- a/CruUI/ui/layout_base.h
+++ b/CruUI/ui/layout_base.h
@@ -22,13 +22,30 @@ namespace cru
struct MeasureLength final
{
- explicit MeasureLength(const float length = 0.0, const MeasureMode mode = MeasureMode::Content)
+ constexpr static MeasureLength Exactly(const float length)
+ {
+ return MeasureLength(MeasureMode::Exactly, length);
+ }
+
+ constexpr static MeasureLength Content()
+ {
+ return MeasureLength(MeasureMode::Content, 0);
+ }
+
+ constexpr static MeasureLength Stretch()
+ {
+ return MeasureLength(MeasureMode::Stretch, 0);
+ }
+
+ constexpr MeasureLength() = default;
+
+ constexpr explicit MeasureLength(const MeasureMode mode, const float length)
: length(length), mode(mode)
{
}
- bool Validate() const
+ constexpr bool Validate() const
{
if (mode == MeasureMode::Exactly && length < 0.0)
{
@@ -40,8 +57,8 @@ namespace cru
return true;
}
- float length;
- MeasureMode mode;
+ float length = 0.0;
+ MeasureMode mode = MeasureMode::Content;
};
struct BasicLayoutParams