diff options
author | crupest <crupest@outlook.com> | 2018-09-19 23:43:26 +0800 |
---|---|---|
committer | crupest <crupest@outlook.com> | 2018-09-19 23:43:26 +0800 |
commit | dea11f34bfab5bfd5f66dec9f2fa0239abf44d89 (patch) | |
tree | 89ba9f88b86c22b25506e43277c3a2fc51a9c2c9 /CruUI/ui/layout_base.h | |
parent | 9caec47adf266946fdce290aaf5ec0c865197650 (diff) | |
download | cru-dea11f34bfab5bfd5f66dec9f2fa0239abf44d89.tar.gz cru-dea11f34bfab5bfd5f66dec9f2fa0239abf44d89.tar.bz2 cru-dea11f34bfab5bfd5f66dec9f2fa0239abf44d89.zip |
Improve linear layout. Add debug border visualization.
Diffstat (limited to 'CruUI/ui/layout_base.h')
-rw-r--r-- | CruUI/ui/layout_base.h | 25 |
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 |