From 43fe80db54135d36c8db6358dbca435af7e1d019 Mon Sep 17 00:00:00 2001 From: crupest Date: Wed, 2 Dec 2020 19:43:54 +0800 Subject: ... --- include/cru/ui/style/Styler.hpp | 12 ++++++++++-- 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 - 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(control)) { + border_control->ApplyBorderStyle(style_); + } +} +} // namespace cru::ui::style -- cgit v1.2.3