aboutsummaryrefslogtreecommitdiff
path: root/src/ThemeBuilder/components/conditions
diff options
context:
space:
mode:
Diffstat (limited to 'src/ThemeBuilder/components/conditions')
-rw-r--r--src/ThemeBuilder/components/conditions/CheckedConditionEditor.cpp9
-rw-r--r--src/ThemeBuilder/components/conditions/CheckedConditionEditor.h10
-rw-r--r--src/ThemeBuilder/components/conditions/ClickStateConditionEditor.cpp19
-rw-r--r--src/ThemeBuilder/components/conditions/ClickStateConditionEditor.h11
-rw-r--r--src/ThemeBuilder/components/conditions/CompoundConditionEditor.cpp35
-rw-r--r--src/ThemeBuilder/components/conditions/CompoundConditionEditor.h32
-rw-r--r--src/ThemeBuilder/components/conditions/ConditionEditor.cpp3
-rw-r--r--src/ThemeBuilder/components/conditions/ConditionEditor.h2
-rw-r--r--src/ThemeBuilder/components/conditions/FocusConditionEditor.cpp8
-rw-r--r--src/ThemeBuilder/components/conditions/FocusConditionEditor.h10
-rw-r--r--src/ThemeBuilder/components/conditions/NoConditionEditor.cpp2
-rw-r--r--src/ThemeBuilder/components/conditions/NoConditionEditor.h4
12 files changed, 62 insertions, 83 deletions
diff --git a/src/ThemeBuilder/components/conditions/CheckedConditionEditor.cpp b/src/ThemeBuilder/components/conditions/CheckedConditionEditor.cpp
index 57e72a0f..b45006db 100644
--- a/src/ThemeBuilder/components/conditions/CheckedConditionEditor.cpp
+++ b/src/ThemeBuilder/components/conditions/CheckedConditionEditor.cpp
@@ -1,12 +1,12 @@
#include "CheckedConditionEditor.h"
-#include "cru/base/ClonablePtr.h"
+#include "cru/base/ClonePtr.h"
#include "cru/ui/style/Condition.h"
namespace cru::theme_builder::components::conditions {
CheckedConditionEditor::CheckedConditionEditor() {
- SetLabel(u"Checked Condition");
+ SetLabel("Checked Condition");
- checked_check_box_.SetLabel(u"Checked");
+ checked_check_box_.SetLabel("Checked");
GetContainer()->AddChild(checked_check_box_.GetRootControl());
ConnectChangeEvent(checked_check_box_);
@@ -14,8 +14,7 @@ CheckedConditionEditor::CheckedConditionEditor() {
CheckedConditionEditor::~CheckedConditionEditor() {}
-ClonablePtr<ui::style::CheckedCondition> CheckedConditionEditor::GetValue()
- const {
+ClonePtr<ui::style::CheckedCondition> CheckedConditionEditor::GetValue() {
return ui::style::CheckedCondition::Create(checked_check_box_.GetValue());
}
diff --git a/src/ThemeBuilder/components/conditions/CheckedConditionEditor.h b/src/ThemeBuilder/components/conditions/CheckedConditionEditor.h
index b6e740f1..6fc6f97f 100644
--- a/src/ThemeBuilder/components/conditions/CheckedConditionEditor.h
+++ b/src/ThemeBuilder/components/conditions/CheckedConditionEditor.h
@@ -1,7 +1,7 @@
#pragma once
#include "../properties/CheckBoxPropertyEditor.h"
#include "ConditionEditor.h"
-#include "cru/base/ClonablePtr.h"
+#include "cru/base/ClonePtr.h"
#include "cru/ui/style/Condition.h"
namespace cru::theme_builder::components::conditions {
@@ -11,16 +11,14 @@ class CheckedConditionEditor : public ConditionEditor {
~CheckedConditionEditor() override;
public:
- ClonablePtr<ui::style::CheckedCondition> GetValue() const;
+ ClonePtr<ui::style::CheckedCondition> GetValue();
void SetValue(ui::style::CheckedCondition* value, bool trigger_change = true);
- void SetValue(const ClonablePtr<ui::style::CheckedCondition>& value,
+ void SetValue(const ClonePtr<ui::style::CheckedCondition>& value,
bool trigger_change = true) {
SetValue(value.get(), trigger_change);
}
- ClonablePtr<ui::style::Condition> GetCondition() override {
- return GetValue();
- }
+ ClonePtr<ui::style::Condition> GetCondition() override { return GetValue(); }
private:
properties::CheckBoxPropertyEditor checked_check_box_;
diff --git a/src/ThemeBuilder/components/conditions/ClickStateConditionEditor.cpp b/src/ThemeBuilder/components/conditions/ClickStateConditionEditor.cpp
index bf0b1d98..4862fd47 100644
--- a/src/ThemeBuilder/components/conditions/ClickStateConditionEditor.cpp
+++ b/src/ThemeBuilder/components/conditions/ClickStateConditionEditor.cpp
@@ -1,16 +1,16 @@
#include "ClickStateConditionEditor.h"
-#include "cru/base/ClonablePtr.h"
+#include "cru/base/ClonePtr.h"
#include "cru/ui/helper/ClickDetector.h"
#include "cru/ui/style/Condition.h"
namespace cru::theme_builder::components::conditions {
using ui::helper::ClickState;
namespace {
-const std::vector<String> kClickStates{
- u"None",
- u"Hover",
- u"Press",
- u"PressInactive",
+const std::vector<std::string> kClickStates{
+ "None",
+ "Hover",
+ "Press",
+ "PressInactive",
};
Index ConvertClickStateToIndex(ClickState click_state) {
@@ -43,10 +43,10 @@ ClickState ConvertIndexToClickState(Index index) {
} // namespace
ClickStateConditionEditor::ClickStateConditionEditor() {
- SetLabel(u"Click State Condition");
+ SetLabel("Click State Condition");
GetContainer()->AddChild(click_state_select_.GetRootControl());
- click_state_select_.SetLabel(u"Click State");
+ click_state_select_.SetLabel("Click State");
click_state_select_.SetItems(kClickStates);
click_state_select_.SetSelectedIndex(0, false);
@@ -55,8 +55,7 @@ ClickStateConditionEditor::ClickStateConditionEditor() {
ClickStateConditionEditor::~ClickStateConditionEditor() {}
-ClonablePtr<ui::style::ClickStateCondition>
-ClickStateConditionEditor::GetValue() const {
+ClonePtr<ui::style::ClickStateCondition> ClickStateConditionEditor::GetValue() {
return ui::style::ClickStateCondition::Create(
ConvertIndexToClickState(click_state_select_.GetSelectedIndex()));
}
diff --git a/src/ThemeBuilder/components/conditions/ClickStateConditionEditor.h b/src/ThemeBuilder/components/conditions/ClickStateConditionEditor.h
index 2ea4fcf4..6929732c 100644
--- a/src/ThemeBuilder/components/conditions/ClickStateConditionEditor.h
+++ b/src/ThemeBuilder/components/conditions/ClickStateConditionEditor.h
@@ -1,8 +1,7 @@
#pragma once
#include "../properties/SelectPropertyEditor.h"
#include "ConditionEditor.h"
-#include "cru/base/ClonablePtr.h"
-#include "cru/base/Event.h"
+#include "cru/base/ClonePtr.h"
#include "cru/ui/style/Condition.h"
namespace cru::theme_builder::components::conditions {
@@ -12,17 +11,15 @@ class ClickStateConditionEditor : public ConditionEditor {
~ClickStateConditionEditor();
public:
- ClonablePtr<ui::style::ClickStateCondition> GetValue() const;
+ ClonePtr<ui::style::ClickStateCondition> GetValue();
void SetValue(ui::style::ClickStateCondition* value,
bool trigger_change = true);
- void SetValue(const ClonablePtr<ui::style::ClickStateCondition>& value,
+ void SetValue(const ClonePtr<ui::style::ClickStateCondition>& value,
bool trigger_change = true) {
SetValue(value.get(), trigger_change);
}
- ClonablePtr<ui::style::Condition> GetCondition() override {
- return GetValue();
- }
+ ClonePtr<ui::style::Condition> GetCondition() override { return GetValue(); }
private:
properties::SelectPropertyEditor click_state_select_;
diff --git a/src/ThemeBuilder/components/conditions/CompoundConditionEditor.cpp b/src/ThemeBuilder/components/conditions/CompoundConditionEditor.cpp
index 8be3aa0f..d84f05e2 100644
--- a/src/ThemeBuilder/components/conditions/CompoundConditionEditor.cpp
+++ b/src/ThemeBuilder/components/conditions/CompoundConditionEditor.cpp
@@ -4,9 +4,10 @@
#include "ConditionEditor.h"
#include "FocusConditionEditor.h"
#include "NoConditionEditor.h"
-#include "cru/base/ClonablePtr.h"
+#include "cru/base/ClonePtr.h"
#include "cru/platform/Color.h"
#include "cru/ui/Base.h"
+#include "cru/platform/gui/DeleteLater.h"
#include "cru/ui/ThemeManager.h"
#include "cru/ui/controls/FlexLayout.h"
#include "cru/ui/style/Condition.h"
@@ -14,7 +15,7 @@
namespace cru::theme_builder::components::conditions {
CompoundConditionEditor::CompoundConditionEditor() {
- SetLabel(u"Compound Condition");
+ SetLabel("Compound Condition");
GetContainer()->AddChild(&children_container_);
children_container_.SetMargin({10, 0, 0, 0});
@@ -26,15 +27,15 @@ CompoundConditionEditor::CompoundConditionEditor() {
add_child_button_.GetButton()->GetStyleRuleSet()->SetParent(
ui::ThemeManager::GetInstance()->GetResourceStyleRuleSet(
- u"cru.theme_builder.icon-button.style"));
+ "cru.theme_builder.icon-button.style"));
add_child_button_.GetButton()->SetIconWithSvgPathDataStringResourceKey(
- u"icon.plus", {0, 0, 16, 16});
- add_child_button_.GetButton()->SetPreferredSize({24, 24});
+ "icon.plus", {0, 0, 16, 16});
+ add_child_button_.GetButton()->SetSuggestSize({24, 24});
add_child_button_.GetButton()->SetPadding(ui::Thickness(2));
add_child_button_.GetButton()->SetIconFillColor(ui::colors::green);
- add_child_button_.SetMenuItems({u"And Condition", u"Or Condition",
- u"Click State Condition", u"Focus Condition",
- u"Checked Condition", u"No Condition"});
+ add_child_button_.SetMenuItems({"And Condition", "Or Condition",
+ "Click State Condition", "Focus Condition",
+ "Checked Condition", "No Condition"});
add_child_button_.MenuItemSelectedEvent()->AddHandler([this](Index index) {
std::unique_ptr<ConditionEditor> editor;
switch (index) {
@@ -62,12 +63,13 @@ CompoundConditionEditor::CompoundConditionEditor() {
if (editor) {
ConnectChangeEvent(editor.get());
editor->RemoveEvent()->AddSpyOnlyHandler([this, c = editor.get()] {
- auto index = this->children_container_.IndexOf(c->GetRootControl());
+ auto index =
+ this->children_container_.IndexOfChild(c->GetRootControl());
this->children_.erase(this->children_.begin() + index);
this->children_container_.RemoveChildAt(index);
RaiseChangeEvent();
});
- children_.push_back(std::move(editor));
+ children_.push_back(platform::gui::ToDeleteLaterPtr(std::move(editor)));
children_container_.AddChild(children_.back()->GetRootControl());
RaiseChangeEvent();
}
@@ -76,9 +78,9 @@ CompoundConditionEditor::CompoundConditionEditor() {
CompoundConditionEditor::~CompoundConditionEditor() {}
-std::vector<ClonablePtr<ui::style::Condition>>
+std::vector<ClonePtr<ui::style::Condition>>
CompoundConditionEditor::GetChildren() {
- std::vector<ClonablePtr<ui::style::Condition>> children;
+ std::vector<ClonePtr<ui::style::Condition>> children;
for (auto& child : children_) {
children.push_back(child->GetCondition());
}
@@ -86,20 +88,19 @@ CompoundConditionEditor::GetChildren() {
}
void CompoundConditionEditor::SetChildren(
- std::vector<ClonablePtr<ui::style::Condition>> children,
- bool trigger_change) {
- children_container_.ClearChildren();
+ std::vector<ClonePtr<ui::style::Condition>> children, bool trigger_change) {
+ children_container_.RemoveAllChild();
children_.clear();
for (const auto& condition : children) {
auto editor = CreateConditionEditor(condition.get());
ConnectChangeEvent(editor.get());
editor->RemoveEvent()->AddSpyOnlyHandler([this, c = editor.get()] {
- auto index = this->children_container_.IndexOf(c->GetRootControl());
+ auto index = this->children_container_.IndexOfChild(c->GetRootControl());
this->children_.erase(this->children_.begin() + index);
this->children_container_.RemoveChildAt(index);
RaiseChangeEvent();
});
- children_.push_back(std::move(editor));
+ children_.push_back(platform::gui::ToDeleteLaterPtr(std::move(editor)));
children_container_.AddChild(children_.back()->GetRootControl());
}
if (trigger_change) {
diff --git a/src/ThemeBuilder/components/conditions/CompoundConditionEditor.h b/src/ThemeBuilder/components/conditions/CompoundConditionEditor.h
index 2948df36..6c1beeac 100644
--- a/src/ThemeBuilder/components/conditions/CompoundConditionEditor.h
+++ b/src/ThemeBuilder/components/conditions/CompoundConditionEditor.h
@@ -1,12 +1,8 @@
#pragma once
#include "ConditionEditor.h"
-#include "cru/base/ClonablePtr.h"
-#include "cru/base/Event.h"
-#include "cru/ui/components/Component.h"
+#include "cru/base/ClonePtr.h"
#include "cru/ui/components/PopupButton.h"
-#include "cru/ui/controls/Button.h"
#include "cru/ui/controls/FlexLayout.h"
-#include "cru/ui/controls/TextBlock.h"
#include "cru/ui/style/Condition.h"
namespace cru::theme_builder::components::conditions {
@@ -16,56 +12,48 @@ class CompoundConditionEditor : public ConditionEditor {
~CompoundConditionEditor();
protected:
- std::vector<ClonablePtr<ui::style::Condition>> GetChildren();
- void SetChildren(std::vector<ClonablePtr<ui::style::Condition>> children,
+ std::vector<ClonePtr<ui::style::Condition>> GetChildren();
+ void SetChildren(std::vector<ClonePtr<ui::style::Condition>> children,
bool trigger_change = true);
private:
ui::components::PopupMenuIconButton add_child_button_;
ui::controls::FlexLayout children_container_;
- std::vector<ui::DeleteLaterPtr<ConditionEditor>> children_;
+ std::vector<platform::gui::DeleteLaterPtr<ConditionEditor>> children_;
};
class AndConditionEditor : public CompoundConditionEditor {
public:
- AndConditionEditor() = default;
- ~AndConditionEditor() override = default;
-
- public:
- ClonablePtr<ui::style::AndCondition> GetValue() {
+ ClonePtr<ui::style::AndCondition> GetValue() {
return ui::style::AndCondition::Create(GetChildren());
}
void SetValue(ui::style::AndCondition* value, bool trigger_change = true) {
SetChildren(value->GetChildren(), trigger_change);
}
- void SetValue(const ClonablePtr<ui::style::AndCondition>& value,
+ void SetValue(const ClonePtr<ui::style::AndCondition>& value,
bool trigger_change = true) {
SetValue(value.get(), trigger_change);
}
- ClonablePtr<ui::style::Condition> GetCondition() override {
+ ClonePtr<ui::style::Condition> GetCondition() override {
return GetValue();
}
};
class OrConditionEditor : public CompoundConditionEditor {
public:
- OrConditionEditor() = default;
- ~OrConditionEditor() override = default;
-
- public:
- ClonablePtr<ui::style::OrCondition> GetValue() {
+ ClonePtr<ui::style::OrCondition> GetValue() {
return ui::style::OrCondition::Create(GetChildren());
}
void SetValue(ui::style::OrCondition* value, bool trigger_change = true) {
SetChildren(value->GetChildren(), trigger_change);
}
- void SetValue(const ClonablePtr<ui::style::OrCondition>& value,
+ void SetValue(const ClonePtr<ui::style::OrCondition>& value,
bool trigger_change = true) {
SetValue(value.get(), trigger_change);
}
- ClonablePtr<ui::style::Condition> GetCondition() override {
+ ClonePtr<ui::style::Condition> GetCondition() override {
return GetValue();
}
};
diff --git a/src/ThemeBuilder/components/conditions/ConditionEditor.cpp b/src/ThemeBuilder/components/conditions/ConditionEditor.cpp
index 421bb028..da0db194 100644
--- a/src/ThemeBuilder/components/conditions/ConditionEditor.cpp
+++ b/src/ThemeBuilder/components/conditions/ConditionEditor.cpp
@@ -5,7 +5,6 @@
#include "CompoundConditionEditor.h"
#include "FocusConditionEditor.h"
#include "NoConditionEditor.h"
-#include "cru/base/Exception.h"
#include "cru/ui/controls/FlexLayout.h"
namespace cru::theme_builder::components::conditions {
@@ -44,7 +43,7 @@ std::unique_ptr<ConditionEditor> CreateConditionEditor(
result->SetValue(checked_condition);
return result;
} else {
- throw Exception(u"Unknown condition type");
+ throw Exception("Unknown condition type");
}
}
} // namespace cru::theme_builder::components::conditions
diff --git a/src/ThemeBuilder/components/conditions/ConditionEditor.h b/src/ThemeBuilder/components/conditions/ConditionEditor.h
index f20132f6..ca632cc0 100644
--- a/src/ThemeBuilder/components/conditions/ConditionEditor.h
+++ b/src/ThemeBuilder/components/conditions/ConditionEditor.h
@@ -9,7 +9,7 @@ class ConditionEditor : public HeadBodyEditor {
~ConditionEditor() override;
public:
- virtual ClonablePtr<ui::style::Condition> GetCondition() = 0;
+ virtual ClonePtr<ui::style::Condition> GetCondition() = 0;
};
std::unique_ptr<ConditionEditor> CreateConditionEditor(
diff --git a/src/ThemeBuilder/components/conditions/FocusConditionEditor.cpp b/src/ThemeBuilder/components/conditions/FocusConditionEditor.cpp
index 78c99b5c..356f42ef 100644
--- a/src/ThemeBuilder/components/conditions/FocusConditionEditor.cpp
+++ b/src/ThemeBuilder/components/conditions/FocusConditionEditor.cpp
@@ -1,20 +1,20 @@
#include "FocusConditionEditor.h"
-#include "cru/base/ClonablePtr.h"
+#include "cru/base/ClonePtr.h"
#include "cru/ui/style/Condition.h"
namespace cru::theme_builder::components::conditions {
FocusConditionEditor::FocusConditionEditor() {
- SetLabel(u"Focus Condition");
+ SetLabel("Focus Condition");
GetContainer()->AddChild(focus_check_box_.GetRootControl());
- focus_check_box_.SetLabel(u"Focus");
+ focus_check_box_.SetLabel("Focus");
ConnectChangeEvent(focus_check_box_);
}
FocusConditionEditor::~FocusConditionEditor() {}
-ClonablePtr<ui::style::FocusCondition> FocusConditionEditor::GetValue() const {
+ClonePtr<ui::style::FocusCondition> FocusConditionEditor::GetValue() {
return ui::style::FocusCondition::Create(focus_check_box_.GetValue());
}
diff --git a/src/ThemeBuilder/components/conditions/FocusConditionEditor.h b/src/ThemeBuilder/components/conditions/FocusConditionEditor.h
index d5478653..1cfb883f 100644
--- a/src/ThemeBuilder/components/conditions/FocusConditionEditor.h
+++ b/src/ThemeBuilder/components/conditions/FocusConditionEditor.h
@@ -1,7 +1,7 @@
#pragma once
#include "../properties/CheckBoxPropertyEditor.h"
#include "ConditionEditor.h"
-#include "cru/base/ClonablePtr.h"
+#include "cru/base/ClonePtr.h"
#include "cru/ui/style/Condition.h"
namespace cru::theme_builder::components::conditions {
@@ -11,16 +11,14 @@ class FocusConditionEditor : public ConditionEditor {
~FocusConditionEditor() override;
public:
- ClonablePtr<ui::style::FocusCondition> GetValue() const;
+ ClonePtr<ui::style::FocusCondition> GetValue();
void SetValue(ui::style::FocusCondition* value, bool trigger_change = true);
- void SetValue(const ClonablePtr<ui::style::FocusCondition>& value,
+ void SetValue(const ClonePtr<ui::style::FocusCondition>& value,
bool trigger_change = true) {
SetValue(value.get(), trigger_change);
}
- ClonablePtr<ui::style::Condition> GetCondition() override {
- return GetValue();
- }
+ ClonePtr<ui::style::Condition> GetCondition() override { return GetValue(); }
private:
properties::CheckBoxPropertyEditor focus_check_box_;
diff --git a/src/ThemeBuilder/components/conditions/NoConditionEditor.cpp b/src/ThemeBuilder/components/conditions/NoConditionEditor.cpp
index a5087159..31b906de 100644
--- a/src/ThemeBuilder/components/conditions/NoConditionEditor.cpp
+++ b/src/ThemeBuilder/components/conditions/NoConditionEditor.cpp
@@ -1,7 +1,7 @@
#include "NoConditionEditor.h"
namespace cru::theme_builder::components::conditions {
-NoConditionEditor::NoConditionEditor() { SetLabel(u"No condition"); }
+NoConditionEditor::NoConditionEditor() { SetLabel("No condition"); }
NoConditionEditor::~NoConditionEditor() {}
} // namespace cru::theme_builder::components::conditions
diff --git a/src/ThemeBuilder/components/conditions/NoConditionEditor.h b/src/ThemeBuilder/components/conditions/NoConditionEditor.h
index b38806b5..1cb50947 100644
--- a/src/ThemeBuilder/components/conditions/NoConditionEditor.h
+++ b/src/ThemeBuilder/components/conditions/NoConditionEditor.h
@@ -1,6 +1,6 @@
#pragma once
#include "ConditionEditor.h"
-#include "cru/base/ClonablePtr.h"
+#include "cru/base/ClonePtr.h"
#include "cru/ui/style/Condition.h"
namespace cru::theme_builder::components::conditions {
@@ -10,7 +10,7 @@ class NoConditionEditor : public ConditionEditor {
~NoConditionEditor() override;
public:
- ClonablePtr<ui::style::Condition> GetCondition() override {
+ ClonePtr<ui::style::Condition> GetCondition() override {
return ui::style::NoCondition::Create();
}
};