aboutsummaryrefslogtreecommitdiff
path: root/src/ui/mapper
diff options
context:
space:
mode:
Diffstat (limited to 'src/ui/mapper')
-rw-r--r--src/ui/mapper/ColorMapper.cpp13
-rw-r--r--src/ui/mapper/MapperRegistry.cpp2
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());