diff options
Diffstat (limited to 'include/cru/ui/style/Styler.h')
-rw-r--r-- | include/cru/ui/style/Styler.h | 37 |
1 files changed, 37 insertions, 0 deletions
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<MarginStyler> Create(const Thickness& margin) { + return ClonablePtr<MarginStyler>(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<PaddingStyler> Create(const Thickness& padding) { + return ClonablePtr<PaddingStyler>(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 |