diff options
author | crupest <crupest@outlook.com> | 2022-02-26 19:46:37 +0800 |
---|---|---|
committer | crupest <crupest@outlook.com> | 2022-02-26 19:46:37 +0800 |
commit | 65e288c40a593965b41378755f7111c56e123295 (patch) | |
tree | 3c329d8453f3514a374e5a0c47edcffe9231173b /include/cru | |
parent | e80f44385dee8636b747848ecb6193c41a99d89c (diff) | |
download | cru-65e288c40a593965b41378755f7111c56e123295.tar.gz cru-65e288c40a593965b41378755f7111c56e123295.tar.bz2 cru-65e288c40a593965b41378755f7111c56e123295.zip |
...
Diffstat (limited to 'include/cru')
-rw-r--r-- | include/cru/ui/ThemeResourceDictionary.h | 11 | ||||
-rw-r--r-- | include/cru/ui/controls/Container.h | 15 |
2 files changed, 23 insertions, 3 deletions
diff --git a/include/cru/ui/ThemeResourceDictionary.h b/include/cru/ui/ThemeResourceDictionary.h index 26f7ec8d..a303b466 100644 --- a/include/cru/ui/ThemeResourceDictionary.h +++ b/include/cru/ui/ThemeResourceDictionary.h @@ -7,6 +7,7 @@ #include "style/StyleRuleSet.h" #include <any> +#include <filesystem> #include <typeindex> #include <typeinfo> @@ -25,9 +26,15 @@ class CRU_UI_API ThemeResourceDictionary : public Object { CRU_DEFINE_CLASS_LOG_TAG(u"ThemeResources"); public: - static std::unique_ptr<ThemeResourceDictionary> FromFile(const String& file_path); + static std::unique_ptr<ThemeResourceDictionary> FromFile( + const String& file_path); + static std::unique_ptr<ThemeResourceDictionary> FromFile( + std::filesystem::path file_path) { + return FromFile(String::FromStdPath(file_path)); + } - explicit ThemeResourceDictionary(xml::XmlElementNode* xml_root, bool clone = true); + explicit ThemeResourceDictionary(xml::XmlElementNode* xml_root, + bool clone = true); CRU_DELETE_COPY(ThemeResourceDictionary) CRU_DELETE_MOVE(ThemeResourceDictionary) diff --git a/include/cru/ui/controls/Container.h b/include/cru/ui/controls/Container.h index 98958b3b..c8bf3f32 100644 --- a/include/cru/ui/controls/Container.h +++ b/include/cru/ui/controls/Container.h @@ -2,10 +2,12 @@ #include "SingleChildControl.h" #include "../render/BorderRenderObject.h" +#include "IBorderControl.h" namespace cru::ui::controls { class CRU_UI_API Container - : public SingleChildControl<render::BorderRenderObject> { + : public SingleChildControl<render::BorderRenderObject>, + public virtual IBorderControl { static constexpr StringView kControlType = u"Container"; public: @@ -16,6 +18,13 @@ class CRU_UI_API Container ~Container() override; public: + bool IsBorderEnabled() const { + return GetContainerRenderObject()->IsBorderEnabled(); + } + void SetBorderEnabled(bool enabled) { + GetContainerRenderObject()->SetBorderEnabled(enabled); + } + std::shared_ptr<platform::graphics::IBrush> GetForegroundBrush() const { return GetContainerRenderObject()->GetForegroundBrush(); } @@ -32,6 +41,10 @@ class CRU_UI_API Container GetContainerRenderObject()->SetBackgroundBrush(brush); } + void ApplyBorderStyle(const style::ApplyBorderStyleInfo& style) override { + GetContainerRenderObject()->ApplyBorderStyle(style); + } + public: String GetControlType() const final { return kControlType.ToString(); } }; |