aboutsummaryrefslogtreecommitdiff
path: root/include/cru/ui/style/Styler.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'include/cru/ui/style/Styler.hpp')
-rw-r--r--include/cru/ui/style/Styler.hpp8
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_;
};