From 24e1dc8723aea1e46a3aa15794747f3fa52f8eca Mon Sep 17 00:00:00 2001 From: crupest Date: Mon, 24 Jan 2022 22:14:37 +0800 Subject: ... --- include/cru/ui/UiManager.hpp | 7 +++--- .../ui/mapper/style/ClickStateConditionMapper.hpp | 2 +- .../cru/ui/mapper/style/HoverConditionMapper.hpp | 26 ++++++++++++++++++++++ 3 files changed, 31 insertions(+), 4 deletions(-) create mode 100644 include/cru/ui/mapper/style/HoverConditionMapper.hpp (limited to 'include/cru/ui') diff --git a/include/cru/ui/UiManager.hpp b/include/cru/ui/UiManager.hpp index 4a2a7a77..d16adc4f 100644 --- a/include/cru/ui/UiManager.hpp +++ b/include/cru/ui/UiManager.hpp @@ -19,9 +19,8 @@ struct ThemeResources { std::shared_ptr text_selection_brush; std::shared_ptr caret_brush; - style::StyleRuleSet button_style; - - style::StyleRuleSet text_box_style; + std::shared_ptr button_style; + std::shared_ptr text_box_style; style::StyleRuleSet menu_item_style; }; @@ -42,6 +41,8 @@ class CRU_UI_API UiManager : public Object { ThemeResources* GetThemeResources() { return &theme_resource_; } + void ReadResourcesFile(const String& file_path); + private: ThemeResources theme_resource_; }; diff --git a/include/cru/ui/mapper/style/ClickStateConditionMapper.hpp b/include/cru/ui/mapper/style/ClickStateConditionMapper.hpp index 2fea5353..63577641 100644 --- a/include/cru/ui/mapper/style/ClickStateConditionMapper.hpp +++ b/include/cru/ui/mapper/style/ClickStateConditionMapper.hpp @@ -6,7 +6,7 @@ namespace cru::ui::mapper::style { class CRU_UI_API ClickStateConditionMapper : public BasicPtrMapper, - public IConditionMapper { + public virtual IConditionMapper { public: CRU_DEFAULT_CONSTRUCTOR_DESTRUCTOR(ClickStateConditionMapper) diff --git a/include/cru/ui/mapper/style/HoverConditionMapper.hpp b/include/cru/ui/mapper/style/HoverConditionMapper.hpp new file mode 100644 index 00000000..bbd840f0 --- /dev/null +++ b/include/cru/ui/mapper/style/HoverConditionMapper.hpp @@ -0,0 +1,26 @@ +#pragma once +#include "../Mapper.hpp" +#include "IConditionMapper.hpp" +#include "cru/ui/style/Condition.hpp" + +namespace cru::ui::mapper::style { +class CRU_UI_API HoverConditionMapper + : public BasicPtrMapper, + public virtual IConditionMapper { + public: + CRU_DEFAULT_CONSTRUCTOR_DESTRUCTOR(HoverConditionMapper) + + public: + bool SupportMapFromXml() override { return true; } + bool XmlElementIsOfThisType(xml::XmlElementNode* node) override; + + ClonablePtr MapConditionFromXml( + xml::XmlElementNode* node) override { + return MapFromXml(node); + } + + protected: + ClonablePtr DoMapFromXml( + xml::XmlElementNode* node) override; +}; +} // namespace cru::ui::mapper::style -- cgit v1.2.3