aboutsummaryrefslogtreecommitdiff
path: root/src/theme_builder
diff options
context:
space:
mode:
authorcrupest <crupest@outlook.com>2022-02-08 21:13:01 +0800
committercrupest <crupest@outlook.com>2022-02-08 21:13:01 +0800
commitfa1764d7cb77aa683c6049f915a46b981f9161f7 (patch)
treee5b54620d3b84f5391e995ab483647214152ca99 /src/theme_builder
parent74bb9cd27242b9320f99ff4d2b50c3051576cc14 (diff)
downloadcru-fa1764d7cb77aa683c6049f915a46b981f9161f7.tar.gz
cru-fa1764d7cb77aa683c6049f915a46b981f9161f7.tar.bz2
cru-fa1764d7cb77aa683c6049f915a46b981f9161f7.zip
...
Diffstat (limited to 'src/theme_builder')
-rw-r--r--src/theme_builder/CMakeLists.txt1
-rw-r--r--src/theme_builder/components/StyleRuleEditor.cpp17
-rw-r--r--src/theme_builder/components/StyleRuleEditor.h30
-rw-r--r--src/theme_builder/components/StyleRuleSetEditor.cpp10
-rw-r--r--src/theme_builder/components/StyleRuleSetEditor.h8
5 files changed, 66 insertions, 0 deletions
diff --git a/src/theme_builder/CMakeLists.txt b/src/theme_builder/CMakeLists.txt
index 0ec34e39..194e857b 100644
--- a/src/theme_builder/CMakeLists.txt
+++ b/src/theme_builder/CMakeLists.txt
@@ -1,6 +1,7 @@
add_executable(cru_theme_builder
main.cpp
components/MainWindow.cpp
+ components/StyleRuleEditor.cpp
components/StyleRuleSetEditor.cpp
)
diff --git a/src/theme_builder/components/StyleRuleEditor.cpp b/src/theme_builder/components/StyleRuleEditor.cpp
new file mode 100644
index 00000000..8b9df6db
--- /dev/null
+++ b/src/theme_builder/components/StyleRuleEditor.cpp
@@ -0,0 +1,17 @@
+#include "StyleRuleEditor.h"
+
+namespace cru::theme_builder {
+StyleRuleEditor::StyleRuleEditor() {
+ main_layout_ = ui::controls::FlexLayout::Create();
+}
+
+StyleRuleEditor::~StyleRuleEditor() {}
+
+void StyleRuleEditor::BindStyleRule(ui::style::StyleRule *rule) {
+ style_rule_ = rule;
+ UpdateView();
+}
+
+void StyleRuleEditor::UpdateView() {}
+
+} // namespace cru::theme_builder
diff --git a/src/theme_builder/components/StyleRuleEditor.h b/src/theme_builder/components/StyleRuleEditor.h
new file mode 100644
index 00000000..181ff0ef
--- /dev/null
+++ b/src/theme_builder/components/StyleRuleEditor.h
@@ -0,0 +1,30 @@
+#pragma once
+#include "cru/ui/components/Component.h"
+#include "cru/ui/controls/Control.h"
+#include "cru/ui/controls/FlexLayout.h"
+#include "cru/ui/style/StyleRule.h"
+
+namespace cru::theme_builder {
+class StyleRuleEditor : public ui::components::Component {
+ public:
+ StyleRuleEditor();
+
+ CRU_DELETE_COPY(StyleRuleEditor)
+ CRU_DELETE_MOVE(StyleRuleEditor)
+
+ ~StyleRuleEditor() override;
+
+ public:
+ ui::controls::Control* GetRootControl() override { return main_layout_; }
+
+ void BindStyleRule(ui::style::StyleRule* rule);
+
+ private:
+ void UpdateView();
+
+ private:
+ ui::controls::FlexLayout* main_layout_;
+
+ ui::style::StyleRule* style_rule_;
+};
+} // namespace cru::theme_builder
diff --git a/src/theme_builder/components/StyleRuleSetEditor.cpp b/src/theme_builder/components/StyleRuleSetEditor.cpp
index 933706a3..cfb2ad56 100644
--- a/src/theme_builder/components/StyleRuleSetEditor.cpp
+++ b/src/theme_builder/components/StyleRuleSetEditor.cpp
@@ -4,4 +4,14 @@ namespace cru::theme_builder {
StyleRuleSetEditor::StyleRuleSetEditor() {}
StyleRuleSetEditor::~StyleRuleSetEditor() {}
+
+void StyleRuleSetEditor::BindStyleRuleSet(
+ std::shared_ptr<ui::style::StyleRuleSet> rule_set) {
+ style_rule_set_ = std::move(rule_set);
+ UpdateView();
+}
+
+void StyleRuleSetEditor::UpdateView() {
+
+}
} // namespace cru::theme_builder
diff --git a/src/theme_builder/components/StyleRuleSetEditor.h b/src/theme_builder/components/StyleRuleSetEditor.h
index ecb3ee95..50f1c80d 100644
--- a/src/theme_builder/components/StyleRuleSetEditor.h
+++ b/src/theme_builder/components/StyleRuleSetEditor.h
@@ -2,6 +2,7 @@
#include "cru/ui/components/Component.h"
#include "cru/ui/controls/Control.h"
#include "cru/ui/controls/FlexLayout.h"
+#include "cru/ui/style/StyleRuleSet.h"
namespace cru::theme_builder {
class StyleRuleSetEditor : public ui::components::Component {
@@ -16,7 +17,14 @@ class StyleRuleSetEditor : public ui::components::Component {
public:
ui::controls::Control* GetRootControl() override { return main_layout_; }
+ void BindStyleRuleSet(std::shared_ptr<ui::style::StyleRuleSet> rule_set);
+
+ private:
+ void UpdateView();
+
private:
ui::controls::FlexLayout* main_layout_;
+
+ std::shared_ptr<ui::style::StyleRuleSet> style_rule_set_;
};
} // namespace cru::theme_builder