aboutsummaryrefslogtreecommitdiff
path: root/include/cru/ui/style
diff options
context:
space:
mode:
authorcrupest <crupest@outlook.com>2022-02-26 20:12:54 +0800
committercrupest <crupest@outlook.com>2022-02-26 20:12:54 +0800
commit673f1939beb1b477a23d9641a07a2e05fff903b4 (patch)
tree048ba6b4eab749266d8e2ec05df182bedcf3499f /include/cru/ui/style
parent65e288c40a593965b41378755f7111c56e123295 (diff)
downloadcru-673f1939beb1b477a23d9641a07a2e05fff903b4.tar.gz
cru-673f1939beb1b477a23d9641a07a2e05fff903b4.tar.bz2
cru-673f1939beb1b477a23d9641a07a2e05fff903b4.zip
...
Diffstat (limited to 'include/cru/ui/style')
-rw-r--r--include/cru/ui/style/Styler.h37
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