aboutsummaryrefslogtreecommitdiff
path: root/include/cru/ui/mapper/BorderStyleMapper.h
diff options
context:
space:
mode:
authorYuqian Yang <crupest@crupest.life>2025-12-15 21:27:33 +0800
committerYuqian Yang <crupest@crupest.life>2025-12-15 21:27:33 +0800
commitc77072d586bf7aca58e6465ceab3d11a0be0021f (patch)
tree83605be90fd32104ef74bbd1d84d900aaf0271ce /include/cru/ui/mapper/BorderStyleMapper.h
parentbc3fa9650699046f3a87a620282ee43f26b2fa75 (diff)
downloadcru-c77072d586bf7aca58e6465ceab3d11a0be0021f.tar.gz
cru-c77072d586bf7aca58e6465ceab3d11a0be0021f.tar.bz2
cru-c77072d586bf7aca58e6465ceab3d11a0be0021f.zip
Clean up mapper codes.
Diffstat (limited to 'include/cru/ui/mapper/BorderStyleMapper.h')
-rw-r--r--include/cru/ui/mapper/BorderStyleMapper.h29
1 files changed, 17 insertions, 12 deletions
diff --git a/include/cru/ui/mapper/BorderStyleMapper.h b/include/cru/ui/mapper/BorderStyleMapper.h
index fd84b0b0..41bbeff5 100644
--- a/include/cru/ui/mapper/BorderStyleMapper.h
+++ b/include/cru/ui/mapper/BorderStyleMapper.h
@@ -1,20 +1,25 @@
#pragma once
+#include "../style/ApplyBorderStyleInfo.h"
#include "Mapper.h"
-#include "cru/ui/style/ApplyBorderStyleInfo.h"
-#include "cru/base/xml/XmlNode.h"
+
+#include <cru/base/xml/XmlNode.h>
namespace cru::ui::mapper {
+/**
+ * Example xml:
+ * ```xml
+ * <BorderStyle>
+ * <Thickness value="1" />
+ * <CornerRadius all="1" />
+ * <Brush><Color value=""/></Brush>
+ * <Brush name="foreground"><Color value="transparent"/></Brush>
+ * <Brush name="background"><Color value="#eeeeeeff"/></Brush>
+ * </BorderStyle>
+ * ```
+ */
class CRU_UI_API BorderStyleMapper
: public BasicMapper<ui::style::ApplyBorderStyleInfo> {
- public:
- CRU_DEFAULT_CONSTRUCTOR_DESTRUCTOR(BorderStyleMapper)
-
- public:
- bool SupportMapFromXml() override { return true; }
- bool XmlElementIsOfThisType(xml::XmlElementNode* node) override;
-
- protected:
- ui::style::ApplyBorderStyleInfo DoMapFromXml(
- xml::XmlElementNode* node) override;
+ CRU_UI_DECLARE_CAN_MAP_FROM_XML_ELEMENT_TAG(BorderStyle,
+ ui::style::ApplyBorderStyleInfo)
};
} // namespace cru::ui::mapper