diff options
Diffstat (limited to 'include/cru/ui/style/Styler.hpp')
-rw-r--r-- | include/cru/ui/style/Styler.hpp | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/include/cru/ui/style/Styler.hpp b/include/cru/ui/style/Styler.hpp index 89731033..4f4b18ba 100644 --- a/include/cru/ui/style/Styler.hpp +++ b/include/cru/ui/style/Styler.hpp @@ -3,10 +3,14 @@ #include "ApplyBorderStyleInfo.hpp" #include "cru/common/Base.hpp" +#include <memory> + namespace cru::ui::style { class Styler : public Object { public: virtual void Apply(controls::Control* control) const; + + virtual std::unique_ptr<Styler> Clone() const = 0; }; class BorderStyler : public Styler { @@ -15,6 +19,10 @@ class BorderStyler : public Styler { void Apply(controls::Control* control) const override; + std::unique_ptr<Styler> Clone() const override { + return std::make_unique<BorderStyler>(style_); + } + private: ApplyBorderStyleInfo style_; }; |