diff options
Diffstat (limited to 'include/cru')
-rw-r--r-- | include/cru/ui/mapper/BorderStyleMapper.hpp | 2 | ||||
-rw-r--r-- | include/cru/ui/mapper/ColorMapper.hpp | 2 | ||||
-rw-r--r-- | include/cru/ui/mapper/style/ClickStateConditionMapper.hpp | 2 | ||||
-rw-r--r-- | include/cru/ui/mapper/style/FocusConditionMapper.hpp | 5 | ||||
-rw-r--r-- | include/cru/ui/mapper/style/IConditionMapper.hpp | 2 | ||||
-rw-r--r-- | include/cru/ui/mapper/style/IStylerMapper.hpp | 2 | ||||
-rw-r--r-- | include/cru/ui/mapper/style/NoConditionMapper.hpp | 5 | ||||
-rw-r--r-- | include/cru/ui/mapper/style/StyleRuleMapper.hpp | 20 | ||||
-rw-r--r-- | include/cru/ui/mapper/style/StyleRuleSetMapper.hpp | 21 | ||||
-rw-r--r-- | include/cru/ui/style/StyleRule.hpp | 7 | ||||
-rw-r--r-- | include/cru/ui/style/Styler.hpp | 5 |
11 files changed, 64 insertions, 9 deletions
diff --git a/include/cru/ui/mapper/BorderStyleMapper.hpp b/include/cru/ui/mapper/BorderStyleMapper.hpp index 4d9ae774..7a574f38 100644 --- a/include/cru/ui/mapper/BorderStyleMapper.hpp +++ b/include/cru/ui/mapper/BorderStyleMapper.hpp @@ -5,7 +5,7 @@ namespace cru::ui::mapper { class CRU_UI_API BorderStyleMapper - : BasicMapper<ui::style::ApplyBorderStyleInfo> { + : public BasicMapper<ui::style::ApplyBorderStyleInfo> { public: CRU_DEFAULT_CONSTRUCTOR_DESTRUCTOR(BorderStyleMapper) diff --git a/include/cru/ui/mapper/ColorMapper.hpp b/include/cru/ui/mapper/ColorMapper.hpp index 668a4fc2..d96ca74b 100644 --- a/include/cru/ui/mapper/ColorMapper.hpp +++ b/include/cru/ui/mapper/ColorMapper.hpp @@ -3,7 +3,7 @@ #include "cru/xml/XmlNode.hpp" namespace cru::ui::mapper { -class ColorMapper : public BasicMapper<Color> { +class CRU_UI_API ColorMapper : public BasicMapper<Color> { public: CRU_DEFAULT_CONSTRUCTOR_DESTRUCTOR(ColorMapper) 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 diff --git a/include/cru/ui/style/StyleRule.hpp b/include/cru/ui/style/StyleRule.hpp index e6035784..743aa759 100644 --- a/include/cru/ui/style/StyleRule.hpp +++ b/include/cru/ui/style/StyleRule.hpp @@ -10,6 +10,13 @@ namespace cru::ui::style { class StyleRule : public Object { public: + static ClonablePtr<StyleRule> Create(ClonablePtr<Condition> condition, + ClonablePtr<Styler> styler, + String name = {}) { + return ClonablePtr<StyleRule>(new StyleRule( + std::move(condition), std::move(styler), std::move(name))); + } + StyleRule(ClonablePtr<Condition> condition, ClonablePtr<Styler> styler, String name = {}); diff --git a/include/cru/ui/style/Styler.hpp b/include/cru/ui/style/Styler.hpp index 721a3bfd..3bf0b027 100644 --- a/include/cru/ui/style/Styler.hpp +++ b/include/cru/ui/style/Styler.hpp @@ -25,6 +25,11 @@ class CompoundStyler : public Styler { new CompoundStyler(std::vector<ClonablePtr<Styler>>{std::move(s)...})); } + static ClonablePtr<CompoundStyler> Create( + std::vector<ClonablePtr<Styler>> stylers) { + return ClonablePtr<CompoundStyler>(new CompoundStyler(std::move(stylers))); + } + explicit CompoundStyler(std::vector<ClonablePtr<Styler>> stylers) : stylers_(std::move(stylers)) {} |