diff options
Diffstat (limited to 'src/ui/mapper')
-rw-r--r-- | src/ui/mapper/ColorMapper.cpp | 13 | ||||
-rw-r--r-- | src/ui/mapper/MapperRegistry.cpp | 2 |
2 files changed, 12 insertions, 3 deletions
diff --git a/src/ui/mapper/ColorMapper.cpp b/src/ui/mapper/ColorMapper.cpp index ddfa6b9b..063b2359 100644 --- a/src/ui/mapper/ColorMapper.cpp +++ b/src/ui/mapper/ColorMapper.cpp @@ -15,9 +15,16 @@ Color ColorMapper::DoMapFromString(String str) { Color ColorMapper::DoMapFromXml(xml::XmlElementNode* node) { auto value_attr = node->GetOptionalAttributeCaseInsensitive(u"value"); - if (!value_attr) { - return colors::transparent; + Color result = colors::transparent; + if (value_attr) { + result = DoMapFromString(*value_attr); } - return DoMapFromString(*value_attr); + + auto alpha_value_attr = node->GetOptionalAttributeCaseInsensitive(u"alpha"); + if (alpha_value_attr) { + result.alpha = alpha_value_attr->ParseToDouble() * 255; + } + + return result; } } // namespace cru::ui::mapper diff --git a/src/ui/mapper/MapperRegistry.cpp b/src/ui/mapper/MapperRegistry.cpp index a9c53129..97c5cf21 100644 --- a/src/ui/mapper/MapperRegistry.cpp +++ b/src/ui/mapper/MapperRegistry.cpp @@ -1,5 +1,6 @@ #include "cru/ui/mapper/MapperRegistry.hpp" #include "cru/ui/mapper/BorderStyleMapper.hpp" +#include "cru/ui/mapper/BrushMapper.hpp" #include "cru/ui/mapper/ColorMapper.hpp" #include "cru/ui/mapper/CornerRadiusMapper.hpp" #include "cru/ui/mapper/CursorMapper.hpp" @@ -26,6 +27,7 @@ MapperRegistry *MapperRegistry::GetInstance() { MapperRegistry::MapperRegistry() { using namespace style; + RegisterMapper(new BrushMapper()); RegisterMapper(new CornerRadiusMapper()); RegisterMapper(new PointMapper()); RegisterMapper(new SizeMapper()); |