From 06d1d0442276a05b6caad6e3468f4afb1e8ee5df Mon Sep 17 00:00:00 2001 From: crupest Date: Sun, 28 Jun 2020 00:03:11 +0800 Subject: ... --- include/cru/ui/controls/Base.hpp | 24 ++++++++++++++++++++ include/cru/ui/controls/Button.hpp | 42 +++++++++++++++++++++++++++++++++++ include/cru/ui/controls/Container.hpp | 28 +++++++++++++++++++++++ include/cru/ui/controls/base.hpp | 24 -------------------- include/cru/ui/controls/button.hpp | 42 ----------------------------------- include/cru/ui/controls/container.hpp | 28 ----------------------- 6 files changed, 94 insertions(+), 94 deletions(-) create mode 100644 include/cru/ui/controls/Base.hpp create mode 100644 include/cru/ui/controls/Button.hpp create mode 100644 include/cru/ui/controls/Container.hpp delete mode 100644 include/cru/ui/controls/base.hpp delete mode 100644 include/cru/ui/controls/button.hpp delete mode 100644 include/cru/ui/controls/container.hpp (limited to 'include/cru/ui/controls') diff --git a/include/cru/ui/controls/Base.hpp b/include/cru/ui/controls/Base.hpp new file mode 100644 index 00000000..b550601b --- /dev/null +++ b/include/cru/ui/controls/Base.hpp @@ -0,0 +1,24 @@ +#pragma once +#include "../Base.hpp" + +namespace cru::ui::controls { +using ButtonStateStyle = BorderStyle; + +struct ButtonStyle { + // corresponds to ClickState::None + ButtonStateStyle normal; + // corresponds to ClickState::Hover + ButtonStateStyle hover; + // corresponds to ClickState::Press + ButtonStateStyle press; + // corresponds to ClickState::PressInactive + ButtonStateStyle press_cancel; +}; + +struct TextBoxBorderStyle { + BorderStyle normal; + BorderStyle hover; + BorderStyle focus; + BorderStyle focus_hover; +}; +} // namespace cru::ui::controls diff --git a/include/cru/ui/controls/Button.hpp b/include/cru/ui/controls/Button.hpp new file mode 100644 index 00000000..8a11409c --- /dev/null +++ b/include/cru/ui/controls/Button.hpp @@ -0,0 +1,42 @@ +#pragma once +#include "../ContentControl.hpp" +#include "Base.hpp" + +#include "../ClickDetector.hpp" + +namespace cru::ui::controls { +class Button : public ContentControl { + public: + static constexpr std::string_view control_type = "Button"; + + static Button* Create() { return new Button(); } + + protected: + Button(); + + public: + Button(const Button& other) = delete; + Button(Button&& other) = delete; + Button& operator=(const Button& other) = delete; + Button& operator=(Button&& other) = delete; + ~Button() override; + + std::string_view GetControlType() const final { return control_type; } + + render::RenderObject* GetRenderObject() const override; + + public: + const ButtonStyle& GetStyle() const { return style_; } + void SetStyle(ButtonStyle style); + + protected: + void OnChildChanged(Control* old_child, Control* new_child) override; + + private: + std::unique_ptr render_object_{}; + + ButtonStyle style_; + + ClickDetector click_detector_; +}; +} // namespace cru::ui::controls diff --git a/include/cru/ui/controls/Container.hpp b/include/cru/ui/controls/Container.hpp new file mode 100644 index 00000000..e3d78365 --- /dev/null +++ b/include/cru/ui/controls/Container.hpp @@ -0,0 +1,28 @@ +#pragma once +#include "../ContentControl.hpp" + +namespace cru::ui::controls { +class Container : public ContentControl { + static constexpr std::string_view control_type = "Container"; + + protected: + Container(); + + public: + CRU_DELETE_COPY(Container) + CRU_DELETE_MOVE(Container) + + ~Container() override; + + public: + std::string_view GetControlType() const final { return control_type; } + + render::RenderObject* GetRenderObject() const override; + + protected: + void OnChildChanged(Control* old_child, Control* new_child) override; + + private: + std::unique_ptr render_object_; +}; +} // namespace cru::ui::controls diff --git a/include/cru/ui/controls/base.hpp b/include/cru/ui/controls/base.hpp deleted file mode 100644 index b550601b..00000000 --- a/include/cru/ui/controls/base.hpp +++ /dev/null @@ -1,24 +0,0 @@ -#pragma once -#include "../Base.hpp" - -namespace cru::ui::controls { -using ButtonStateStyle = BorderStyle; - -struct ButtonStyle { - // corresponds to ClickState::None - ButtonStateStyle normal; - // corresponds to ClickState::Hover - ButtonStateStyle hover; - // corresponds to ClickState::Press - ButtonStateStyle press; - // corresponds to ClickState::PressInactive - ButtonStateStyle press_cancel; -}; - -struct TextBoxBorderStyle { - BorderStyle normal; - BorderStyle hover; - BorderStyle focus; - BorderStyle focus_hover; -}; -} // namespace cru::ui::controls diff --git a/include/cru/ui/controls/button.hpp b/include/cru/ui/controls/button.hpp deleted file mode 100644 index 8a11409c..00000000 --- a/include/cru/ui/controls/button.hpp +++ /dev/null @@ -1,42 +0,0 @@ -#pragma once -#include "../ContentControl.hpp" -#include "Base.hpp" - -#include "../ClickDetector.hpp" - -namespace cru::ui::controls { -class Button : public ContentControl { - public: - static constexpr std::string_view control_type = "Button"; - - static Button* Create() { return new Button(); } - - protected: - Button(); - - public: - Button(const Button& other) = delete; - Button(Button&& other) = delete; - Button& operator=(const Button& other) = delete; - Button& operator=(Button&& other) = delete; - ~Button() override; - - std::string_view GetControlType() const final { return control_type; } - - render::RenderObject* GetRenderObject() const override; - - public: - const ButtonStyle& GetStyle() const { return style_; } - void SetStyle(ButtonStyle style); - - protected: - void OnChildChanged(Control* old_child, Control* new_child) override; - - private: - std::unique_ptr render_object_{}; - - ButtonStyle style_; - - ClickDetector click_detector_; -}; -} // namespace cru::ui::controls diff --git a/include/cru/ui/controls/container.hpp b/include/cru/ui/controls/container.hpp deleted file mode 100644 index e3d78365..00000000 --- a/include/cru/ui/controls/container.hpp +++ /dev/null @@ -1,28 +0,0 @@ -#pragma once -#include "../ContentControl.hpp" - -namespace cru::ui::controls { -class Container : public ContentControl { - static constexpr std::string_view control_type = "Container"; - - protected: - Container(); - - public: - CRU_DELETE_COPY(Container) - CRU_DELETE_MOVE(Container) - - ~Container() override; - - public: - std::string_view GetControlType() const final { return control_type; } - - render::RenderObject* GetRenderObject() const override; - - protected: - void OnChildChanged(Control* old_child, Control* new_child) override; - - private: - std::unique_ptr render_object_; -}; -} // namespace cru::ui::controls -- cgit v1.2.3