diff options
author | crupest <crupest@outlook.com> | 2022-01-27 21:37:38 +0800 |
---|---|---|
committer | crupest <crupest@outlook.com> | 2022-01-27 21:37:38 +0800 |
commit | 103bcb137273729a0f23ff3771e26150a64454ba (patch) | |
tree | 5d75e869cc4b1bf0f2afdfbc9ed5ff0f78e0d030 /src/ui/mapper/FontMapper.cpp | |
parent | 560c0ead613658a2b7444907c3d1d69e49be8c32 (diff) | |
download | cru-103bcb137273729a0f23ff3771e26150a64454ba.tar.gz cru-103bcb137273729a0f23ff3771e26150a64454ba.tar.bz2 cru-103bcb137273729a0f23ff3771e26150a64454ba.zip |
...
Diffstat (limited to 'src/ui/mapper/FontMapper.cpp')
-rw-r--r-- | src/ui/mapper/FontMapper.cpp | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/src/ui/mapper/FontMapper.cpp b/src/ui/mapper/FontMapper.cpp new file mode 100644 index 00000000..26a17c5f --- /dev/null +++ b/src/ui/mapper/FontMapper.cpp @@ -0,0 +1,20 @@ +#include "cru/ui/mapper/FontMapper.hpp" +#include "../Helper.hpp" +#include "cru/platform/graphics/Factory.hpp" + +namespace cru::ui::mapper { +bool FontMapper::XmlElementIsOfThisType(xml::XmlElementNode* node) { + return node->GetTag().CaseInsensitiveEqual(u"font"); +} + +std::shared_ptr<platform::graphics::IFont> FontMapper::DoMapFromXml( + xml::XmlElementNode* node) { + auto font_family_attr = node->GetOptionalAttribute(u"family"); + auto font_size_attr = node->GetOptionalAttribute(u"size"); + + auto font_family = font_family_attr.value_or(u""); + auto font_size = font_size_attr ? font_size_attr->ParseToFloat() : 24.0f; + + return GetGraphicsFactory()->CreateFont(font_family, font_size); +} +} // namespace cru::ui::mapper |