aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorcrupest <crupest@outlook.com>2022-02-26 19:46:37 +0800
committercrupest <crupest@outlook.com>2022-02-26 19:46:37 +0800
commit65e288c40a593965b41378755f7111c56e123295 (patch)
tree3c329d8453f3514a374e5a0c47edcffe9231173b /include
parente80f44385dee8636b747848ecb6193c41a99d89c (diff)
downloadcru-65e288c40a593965b41378755f7111c56e123295.tar.gz
cru-65e288c40a593965b41378755f7111c56e123295.tar.bz2
cru-65e288c40a593965b41378755f7111c56e123295.zip
...
Diffstat (limited to 'include')
-rw-r--r--include/cru/ui/ThemeResourceDictionary.h11
-rw-r--r--include/cru/ui/controls/Container.h15
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(); }
};