From 673f1939beb1b477a23d9641a07a2e05fff903b4 Mon Sep 17 00:00:00 2001 From: crupest Date: Sat, 26 Feb 2022 20:12:54 +0800 Subject: ... --- include/cru/ui/style/Styler.h | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) (limited to 'include/cru/ui/style') diff --git a/include/cru/ui/style/Styler.h b/include/cru/ui/style/Styler.h index 4759c2ea..e2e05c5b 100644 --- a/include/cru/ui/style/Styler.h +++ b/include/cru/ui/style/Styler.h @@ -112,4 +112,41 @@ class CRU_UI_API PreferredSizeStyler : public Styler { private: render::MeasureSize size_; }; + +class CRU_UI_API MarginStyler : public Styler { + public: + static ClonablePtr Create(const Thickness& margin) { + return ClonablePtr(new MarginStyler(margin)); + } + + explicit MarginStyler(const Thickness& margin) : margin_(margin) {} + + void Apply(controls::Control* control) const override; + + MarginStyler* Clone() const override { return new MarginStyler(margin_); } + + Thickness GetMargin() const { return margin_; } + + private: + Thickness margin_; +}; + +class CRU_UI_API PaddingStyler : public Styler { + public: + static ClonablePtr Create(const Thickness& padding) { + return ClonablePtr(new PaddingStyler(padding)); + } + + explicit PaddingStyler(const Thickness& padding) : padding_(padding) {} + + void Apply(controls::Control* control) const override; + + PaddingStyler* Clone() const override { return new PaddingStyler(padding_); } + + Thickness GetPadding() const { return padding_; } + + private: + Thickness padding_; +}; + } // namespace cru::ui::style -- cgit v1.2.3