diff options
author | crupest <crupest@outlook.com> | 2020-12-02 19:43:54 +0800 |
---|---|---|
committer | crupest <crupest@outlook.com> | 2020-12-02 19:43:54 +0800 |
commit | 43fe80db54135d36c8db6358dbca435af7e1d019 (patch) | |
tree | f7bd8799438417856fb7260ea4f9c10009f2d44a | |
parent | d7dca1be0dd0814e30fa63924a20af3d924e974c (diff) | |
download | cru-43fe80db54135d36c8db6358dbca435af7e1d019.tar.gz cru-43fe80db54135d36c8db6358dbca435af7e1d019.tar.bz2 cru-43fe80db54135d36c8db6358dbca435af7e1d019.zip |
...
-rw-r--r-- | include/cru/ui/style/Styler.hpp | 12 | ||||
-rw-r--r-- | src/ui/style/Styler.cpp | 15 |
2 files changed, 25 insertions, 2 deletions
diff --git a/include/cru/ui/style/Styler.hpp b/include/cru/ui/style/Styler.hpp index 0b48f1ce..89731033 100644 --- a/include/cru/ui/style/Styler.hpp +++ b/include/cru/ui/style/Styler.hpp @@ -1,13 +1,21 @@ #pragma once #include "../Base.hpp" +#include "ApplyBorderStyleInfo.hpp" #include "cru/common/Base.hpp" -#include <optional> - namespace cru::ui::style { class Styler : public Object { public: virtual void Apply(controls::Control* control) const; }; +class BorderStyler : public Styler { + public: + explicit BorderStyler(ApplyBorderStyleInfo style); + + void Apply(controls::Control* control) const override; + + private: + ApplyBorderStyleInfo style_; +}; } // namespace cru::ui::style diff --git a/src/ui/style/Styler.cpp b/src/ui/style/Styler.cpp index e69de29b..823ac718 100644 --- a/src/ui/style/Styler.cpp +++ b/src/ui/style/Styler.cpp @@ -0,0 +1,15 @@ +#include "cru/ui/style/Styler.hpp" +#include "cru/ui/controls/Control.hpp" +#include "cru/ui/controls/IBorderControl.hpp" +#include "cru/ui/style/ApplyBorderStyleInfo.hpp" + +namespace cru::ui::style { +BorderStyler::BorderStyler(ApplyBorderStyleInfo style) + : style_(std::move(style)) {} + +void BorderStyler::Apply(controls::Control *control) const { + if (auto border_control = dynamic_cast<controls::IBorderControl *>(control)) { + border_control->ApplyBorderStyle(style_); + } +} +} // namespace cru::ui::style |