diff options
Diffstat (limited to 'src/ThemeBuilder/components/conditions')
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(); } }; |
