diff options
author | crupest <crupest@outlook.com> | 2022-01-24 20:26:58 +0800 |
---|---|---|
committer | crupest <crupest@outlook.com> | 2022-01-24 20:26:58 +0800 |
commit | 72402c09d45b696cd58a65b4a141a804e1cd9371 (patch) | |
tree | 4a8793a588370c071d576f144994495886d8e909 /include/cru/ui/mapper/style | |
parent | 549b072d241a8d2d1ca187bba8c1cb5190dd737e (diff) | |
download | cru-72402c09d45b696cd58a65b4a141a804e1cd9371.tar.gz cru-72402c09d45b696cd58a65b4a141a804e1cd9371.tar.bz2 cru-72402c09d45b696cd58a65b4a141a804e1cd9371.zip |
...
Diffstat (limited to 'include/cru/ui/mapper/style')
7 files changed, 50 insertions, 7 deletions
diff --git a/include/cru/ui/mapper/style/ClickStateConditionMapper.hpp b/include/cru/ui/mapper/style/ClickStateConditionMapper.hpp index f60a27a1..2fea5353 100644 --- a/include/cru/ui/mapper/style/ClickStateConditionMapper.hpp +++ b/include/cru/ui/mapper/style/ClickStateConditionMapper.hpp @@ -4,7 +4,7 @@ #include "cru/ui/style/Condition.hpp" namespace cru::ui::mapper::style { -class ClickStateConditionMapper +class CRU_UI_API ClickStateConditionMapper : public BasicPtrMapper<ui::style::ClickStateCondition>, public IConditionMapper { public: diff --git a/include/cru/ui/mapper/style/FocusConditionMapper.hpp b/include/cru/ui/mapper/style/FocusConditionMapper.hpp index 974a6739..00809850 100644 --- a/include/cru/ui/mapper/style/FocusConditionMapper.hpp +++ b/include/cru/ui/mapper/style/FocusConditionMapper.hpp @@ -4,8 +4,9 @@ #include "cru/ui/style/Condition.hpp" namespace cru::ui::mapper::style { -class FocusConditionMapper : public BasicPtrMapper<ui::style::FocusCondition>, - public virtual IConditionMapper { +class CRU_UI_API FocusConditionMapper + : public BasicPtrMapper<ui::style::FocusCondition>, + public virtual IConditionMapper { public: CRU_DEFAULT_CONSTRUCTOR_DESTRUCTOR(FocusConditionMapper) diff --git a/include/cru/ui/mapper/style/IConditionMapper.hpp b/include/cru/ui/mapper/style/IConditionMapper.hpp index f5d7ad1e..3fa7d10a 100644 --- a/include/cru/ui/mapper/style/IConditionMapper.hpp +++ b/include/cru/ui/mapper/style/IConditionMapper.hpp @@ -6,7 +6,7 @@ #include "cru/xml/XmlNode.hpp" namespace cru::ui::mapper::style { -struct IConditionMapper : virtual Interface { +struct CRU_UI_API IConditionMapper : virtual Interface { bool XmlElementIsOfThisType(xml::XmlElementNode* node) { return dynamic_cast<MapperBase*>(this)->XmlElementIsOfThisType(node); } diff --git a/include/cru/ui/mapper/style/IStylerMapper.hpp b/include/cru/ui/mapper/style/IStylerMapper.hpp index 03ee4289..d00f39be 100644 --- a/include/cru/ui/mapper/style/IStylerMapper.hpp +++ b/include/cru/ui/mapper/style/IStylerMapper.hpp @@ -6,7 +6,7 @@ #include "cru/xml/XmlNode.hpp" namespace cru::ui::mapper::style { -struct IStylerMapper : virtual Interface { +struct CRU_UI_API IStylerMapper : virtual Interface { bool XmlElementIsOfThisType(xml::XmlElementNode* node) { return dynamic_cast<MapperBase*>(this)->XmlElementIsOfThisType(node); } diff --git a/include/cru/ui/mapper/style/NoConditionMapper.hpp b/include/cru/ui/mapper/style/NoConditionMapper.hpp index 79985e89..ed3a9699 100644 --- a/include/cru/ui/mapper/style/NoConditionMapper.hpp +++ b/include/cru/ui/mapper/style/NoConditionMapper.hpp @@ -7,8 +7,9 @@ #include "cru/xml/XmlNode.hpp" namespace cru::ui::mapper::style { -class NoConditionMapper : public BasicPtrMapper<ui::style::NoCondition>, - public virtual IConditionMapper { +class CRU_UI_API NoConditionMapper + : public BasicPtrMapper<ui::style::NoCondition>, + public virtual IConditionMapper { public: CRU_DEFAULT_CONSTRUCTOR_DESTRUCTOR(NoConditionMapper) diff --git a/include/cru/ui/mapper/style/StyleRuleMapper.hpp b/include/cru/ui/mapper/style/StyleRuleMapper.hpp new file mode 100644 index 00000000..ce5ccf00 --- /dev/null +++ b/include/cru/ui/mapper/style/StyleRuleMapper.hpp @@ -0,0 +1,20 @@ +#pragma once +#include "../Mapper.hpp" +#include "cru/common/ClonablePtr.hpp" +#include "cru/ui/style/StyleRule.hpp" +#include "cru/xml/XmlNode.hpp" + +namespace cru::ui::mapper::style { +class CRU_UI_API StyleRuleMapper : public BasicPtrMapper<ui::style::StyleRule> { + public: + CRU_DEFAULT_CONSTRUCTOR_DESTRUCTOR(StyleRuleMapper) + + public: + bool SupportMapFromXml() override { return true; } + bool XmlElementIsOfThisType(xml::XmlElementNode* node) override; + + protected: + ClonablePtr<ui::style::StyleRule> DoMapFromXml( + xml::XmlElementNode* node) override; +}; +} // namespace cru::ui::mapper::style diff --git a/include/cru/ui/mapper/style/StyleRuleSetMapper.hpp b/include/cru/ui/mapper/style/StyleRuleSetMapper.hpp new file mode 100644 index 00000000..66b95f4a --- /dev/null +++ b/include/cru/ui/mapper/style/StyleRuleSetMapper.hpp @@ -0,0 +1,21 @@ +#pragma once +#include <memory> +#include "../../style/StyleRuleSet.hpp" +#include "../Mapper.hpp" + +namespace cru::ui::mapper::style { +class CRU_UI_API StyleRuleSetMapper + : public BasicRefMapper<ui::style::StyleRuleSet> { + public: + CRU_DEFAULT_CONSTRUCTOR_DESTRUCTOR(StyleRuleSetMapper) + + public: + bool SupportMapFromXml() override { return true; } + bool XmlElementIsOfThisType(xml::XmlElementNode* node) override; + + protected: + std::shared_ptr<ui::style::StyleRuleSet> DoMapFromXml( + xml::XmlElementNode* node) override; +}; +; +} // namespace cru::ui::mapper::style |