From 673f1939beb1b477a23d9641a07a2e05fff903b4 Mon Sep 17 00:00:00 2001 From: crupest Date: Sat, 26 Feb 2022 20:12:54 +0800 Subject: ... --- src/ui/mapper/style/MarginStylerMapper.cpp | 24 ++++++++++++++++++++++++ src/ui/mapper/style/PaddingStylerMapper.cpp | 26 ++++++++++++++++++++++++++ 2 files changed, 50 insertions(+) create mode 100644 src/ui/mapper/style/MarginStylerMapper.cpp create mode 100644 src/ui/mapper/style/PaddingStylerMapper.cpp (limited to 'src/ui/mapper/style') 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 MarginStylerMapper::DoMapFromXml( + xml::XmlElementNode* node) { + Thickness thickness; + + auto thickness_mapper = MapperRegistry::GetInstance()->GetMapper(); + + 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 PaddingStylerMapper::DoMapFromXml( + xml::XmlElementNode* node) { + Thickness thickness; + + auto thickness_mapper = MapperRegistry::GetInstance()->GetMapper(); + + 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 -- cgit v1.2.3