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/CursorStylerMapper.cpp2
-rw-r--r--src/ui/mapper/style/HoverConditionMapper.cpp23
2 files changed, 24 insertions, 1 deletions
diff --git a/src/ui/mapper/style/CursorStylerMapper.cpp b/src/ui/mapper/style/CursorStylerMapper.cpp
index 0b29c938..c63d451c 100644
--- a/src/ui/mapper/style/CursorStylerMapper.cpp
+++ b/src/ui/mapper/style/CursorStylerMapper.cpp
@@ -6,7 +6,7 @@
namespace cru::ui::mapper::style {
bool CursorStylerMapper::XmlElementIsOfThisType(xml::XmlElementNode* node) {
- return node->GetTag().CaseInsensitiveEqual(u"cursor");
+ return node->GetTag().CaseInsensitiveEqual(u"CursorStyler");
}
ClonablePtr<ui::style::CursorStyler> CursorStylerMapper::DoMapFromXml(
diff --git a/src/ui/mapper/style/HoverConditionMapper.cpp b/src/ui/mapper/style/HoverConditionMapper.cpp
new file mode 100644
index 00000000..b78c12e9
--- /dev/null
+++ b/src/ui/mapper/style/HoverConditionMapper.cpp
@@ -0,0 +1,23 @@
+#include "cru/ui/mapper/style/HoverConditionMapper.hpp"
+#include "cru/common/ClonablePtr.hpp"
+#include "cru/ui/style/Condition.hpp"
+
+namespace cru::ui::mapper::style {
+using namespace cru::ui::style;
+
+bool HoverConditionMapper::XmlElementIsOfThisType(xml::XmlElementNode* node) {
+ return node->GetTag().CaseInsensitiveEqual(u"HoverCondition");
+}
+
+ClonablePtr<HoverCondition> HoverConditionMapper::DoMapFromXml(
+ xml::XmlElementNode* node) {
+ auto value = node->GetAttributeCaseInsensitive(u"value");
+ if (value.CaseInsensitiveEqual(u"true")) {
+ return ui::style::HoverCondition::Create(true);
+ } else if (value.CaseInsensitiveEqual(u"false")) {
+ return ui::style::HoverCondition::Create(false);
+ } else {
+ throw Exception(u"Invalid value for HoverCondition: " + value);
+ }
+}
+} // namespace cru::ui::mapper::style