aboutsummaryrefslogtreecommitdiff
path: root/src/ui/mapper/style
diff options
context:
space:
mode:
Diffstat (limited to 'src/ui/mapper/style')
-rw-r--r--src/ui/mapper/style/MarginStylerMapper.cpp24
-rw-r--r--src/ui/mapper/style/PaddingStylerMapper.cpp26
2 files changed, 50 insertions, 0 deletions
diff --git a/src/ui/mapper/style/MarginStylerMapper.cpp b/src/ui/mapper/style/MarginStylerMapper.cpp
new file mode 100644
index 00000000..cb2fd7ee
--- /dev/null
+++ b/src/ui/mapper/style/MarginStylerMapper.cpp
@@ -0,0 +1,24 @@
+#include "cru/ui/mapper/style/MarginStylerMapper.h"
+#include "cru/ui/mapper/MapperRegistry.h"
+#include "cru/ui/render/MeasureRequirement.h"
+#include "cru/ui/style/Styler.h"
+
+namespace cru::ui::mapper::style {
+MarginStylerMapper::MarginStylerMapper() { SetAllowedTags({u"MarginStyler"}); }
+
+MarginStylerMapper::~MarginStylerMapper() {}
+
+ClonablePtr<ui::style::MarginStyler> MarginStylerMapper::DoMapFromXml(
+ xml::XmlElementNode* node) {
+ Thickness thickness;
+
+ auto thickness_mapper = MapperRegistry::GetInstance()->GetMapper<Thickness>();
+
+ auto value_attribute = node->GetOptionalAttributeCaseInsensitive(u"value");
+ if (value_attribute) {
+ thickness = thickness_mapper->MapFromString(*value_attribute);
+ }
+
+ return ui::style::MarginStyler::Create(thickness);
+}
+} // namespace cru::ui::mapper::style
diff --git a/src/ui/mapper/style/PaddingStylerMapper.cpp b/src/ui/mapper/style/PaddingStylerMapper.cpp
new file mode 100644
index 00000000..cd316cd2
--- /dev/null
+++ b/src/ui/mapper/style/PaddingStylerMapper.cpp
@@ -0,0 +1,26 @@
+#include "cru/ui/mapper/style/PaddingStylerMapper.h"
+#include "cru/ui/mapper/MapperRegistry.h"
+#include "cru/ui/render/MeasureRequirement.h"
+#include "cru/ui/style/Styler.h"
+
+namespace cru::ui::mapper::style {
+PaddingStylerMapper::PaddingStylerMapper() {
+ SetAllowedTags({u"PaddingStyler"});
+}
+
+PaddingStylerMapper::~PaddingStylerMapper() {}
+
+ClonablePtr<ui::style::PaddingStyler> PaddingStylerMapper::DoMapFromXml(
+ xml::XmlElementNode* node) {
+ Thickness thickness;
+
+ auto thickness_mapper = MapperRegistry::GetInstance()->GetMapper<Thickness>();
+
+ auto value_attribute = node->GetOptionalAttributeCaseInsensitive(u"value");
+ if (value_attribute) {
+ thickness = thickness_mapper->MapFromString(*value_attribute);
+ }
+
+ return ui::style::PaddingStyler::Create(thickness);
+}
+} // namespace cru::ui::mapper::style