diff options
author | 杨宇千 <crupest@outlook.com> | 2018-11-19 23:56:00 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-11-19 23:56:00 +0800 |
commit | 30333294fcd5917a9f3572f0c4c6dfc2ec429a3c (patch) | |
tree | 7d5d91ba4a0d979ceefea05bbe99efc47a9bf6a3 /src/ui | |
parent | 3edc249f48b4d7e692c782c1ca4809e07fa0726f (diff) | |
parent | 5291b587708b7f1b9be9187aa4df99ea2cfe0538 (diff) | |
download | cru-30333294fcd5917a9f3572f0c4c6dfc2ec429a3c.tar.gz cru-30333294fcd5917a9f3572f0c4c6dfc2ec429a3c.tar.bz2 cru-30333294fcd5917a9f3572f0c4c6dfc2ec429a3c.zip |
Merge pull request #23 from crupest/20-framelayout
Add FrameLayout.
Diffstat (limited to 'src/ui')
-rw-r--r-- | src/ui/controls/frame_layout.cpp | 16 | ||||
-rw-r--r-- | src/ui/controls/frame_layout.hpp | 33 | ||||
-rw-r--r-- | src/ui/ui_base.hpp | 15 |
3 files changed, 64 insertions, 0 deletions
diff --git a/src/ui/controls/frame_layout.cpp b/src/ui/controls/frame_layout.cpp new file mode 100644 index 00000000..32d25edc --- /dev/null +++ b/src/ui/controls/frame_layout.cpp @@ -0,0 +1,16 @@ +#include "frame_layout.hpp" + +namespace cru::ui::controls +{ + FrameLayout::FrameLayout() : Control(true) + { + + } + + FrameLayout::~FrameLayout() = default; + + StringView FrameLayout::GetControlType() const + { + return control_type; + } +} diff --git a/src/ui/controls/frame_layout.hpp b/src/ui/controls/frame_layout.hpp new file mode 100644 index 00000000..ca022780 --- /dev/null +++ b/src/ui/controls/frame_layout.hpp @@ -0,0 +1,33 @@ +#pragma once + +#include <initializer_list> + +#include "ui/control.hpp" + +namespace cru::ui::controls +{ + class FrameLayout : public Control + { + public: + static constexpr auto control_type = L"FrameLayout"; + + static FrameLayout* Create(const std::initializer_list<Control*>& children = std::initializer_list<Control*>{}) + { + const auto layout = new FrameLayout(); + for (auto child : children) + layout->AddChild(child); + return layout; + } + + protected: + FrameLayout(); + public: + FrameLayout(const FrameLayout& other) = delete; + FrameLayout(FrameLayout&& other) = delete; + FrameLayout& operator=(const FrameLayout& other) = delete; + FrameLayout& operator=(FrameLayout&& other) = delete; + ~FrameLayout() override; + + StringView GetControlType() const override final; + }; +} diff --git a/src/ui/ui_base.hpp b/src/ui/ui_base.hpp index c20d44b6..d9c9d0b2 100644 --- a/src/ui/ui_base.hpp +++ b/src/ui/ui_base.hpp @@ -91,6 +91,21 @@ namespace cru::ui return top + bottom; } + void SetLeftRight(const float value) + { + left = right = value; + } + + void SetTopBottom(const float value) + { + top = bottom = value; + } + + void SetAll(const float value) + { + left = top = right = bottom = value; + } + float Validate() const { return left >= 0.0 && top >= 0.0 && right >= 0.0 && bottom >= 0.0; |