aboutsummaryrefslogtreecommitdiff
path: root/src/theme_builder/components/conditions
diff options
context:
space:
mode:
Diffstat (limited to 'src/theme_builder/components/conditions')
-rw-r--r--src/theme_builder/components/conditions/CheckedConditionEditor.cpp3
-rw-r--r--src/theme_builder/components/conditions/CheckedConditionEditor.h4
-rw-r--r--src/theme_builder/components/conditions/ClickStateConditionEditor.cpp3
-rw-r--r--src/theme_builder/components/conditions/ClickStateConditionEditor.h4
-rw-r--r--src/theme_builder/components/conditions/CompoundConditionEditor.cpp10
-rw-r--r--src/theme_builder/components/conditions/CompoundConditionEditor.h4
-rw-r--r--src/theme_builder/components/conditions/ConditionEditor.h5
-rw-r--r--src/theme_builder/components/conditions/FocusConditionEditor.cpp4
-rw-r--r--src/theme_builder/components/conditions/FocusConditionEditor.h4
-rw-r--r--src/theme_builder/components/conditions/NoConditionEditor.h5
10 files changed, 12 insertions, 34 deletions
diff --git a/src/theme_builder/components/conditions/CheckedConditionEditor.cpp b/src/theme_builder/components/conditions/CheckedConditionEditor.cpp
index bd2dbe0c..64370981 100644
--- a/src/theme_builder/components/conditions/CheckedConditionEditor.cpp
+++ b/src/theme_builder/components/conditions/CheckedConditionEditor.cpp
@@ -9,8 +9,7 @@ CheckedConditionEditor::CheckedConditionEditor() {
checked_check_box_.SetLabel(u"Checked");
GetContainer()->AddChild(checked_check_box_.GetRootControl());
- checked_check_box_.ChangeEvent()->AddSpyOnlyHandler(
- [this] { change_event_.Raise(nullptr); });
+ ConnectChangeEvent(checked_check_box_);
}
CheckedConditionEditor::~CheckedConditionEditor() {}
diff --git a/src/theme_builder/components/conditions/CheckedConditionEditor.h b/src/theme_builder/components/conditions/CheckedConditionEditor.h
index 9e2ebddc..7cf14912 100644
--- a/src/theme_builder/components/conditions/CheckedConditionEditor.h
+++ b/src/theme_builder/components/conditions/CheckedConditionEditor.h
@@ -22,11 +22,7 @@ class CheckedConditionEditor : public ConditionEditor {
return GetValue();
}
- IEvent<std::nullptr_t>* ChangeEvent() override { return &change_event_; }
-
private:
properties::CheckBoxPropertyEditor checked_check_box_;
-
- Event<std::nullptr_t> change_event_;
};
} // namespace cru::theme_builder::components::conditions
diff --git a/src/theme_builder/components/conditions/ClickStateConditionEditor.cpp b/src/theme_builder/components/conditions/ClickStateConditionEditor.cpp
index 3929c29c..a8d5cc87 100644
--- a/src/theme_builder/components/conditions/ClickStateConditionEditor.cpp
+++ b/src/theme_builder/components/conditions/ClickStateConditionEditor.cpp
@@ -50,8 +50,7 @@ ClickStateConditionEditor::ClickStateConditionEditor() {
click_state_select_.SetItems(kClickStates);
click_state_select_.SetSelectedIndex(0, false);
- click_state_select_.ChangeEvent()->AddSpyOnlyHandler(
- [this] { change_event_.Raise(nullptr); });
+ ConnectChangeEvent(click_state_select_);
}
ClickStateConditionEditor::~ClickStateConditionEditor() {}
diff --git a/src/theme_builder/components/conditions/ClickStateConditionEditor.h b/src/theme_builder/components/conditions/ClickStateConditionEditor.h
index fa4b0c52..454a1346 100644
--- a/src/theme_builder/components/conditions/ClickStateConditionEditor.h
+++ b/src/theme_builder/components/conditions/ClickStateConditionEditor.h
@@ -24,11 +24,7 @@ class ClickStateConditionEditor : public ConditionEditor {
return GetValue();
}
- IEvent<std::nullptr_t>* ChangeEvent() override { return &change_event_; }
-
private:
properties::SelectPropertyEditor click_state_select_;
-
- Event<std::nullptr_t> change_event_;
};
} // namespace cru::theme_builder::components::conditions
diff --git a/src/theme_builder/components/conditions/CompoundConditionEditor.cpp b/src/theme_builder/components/conditions/CompoundConditionEditor.cpp
index ae72b51f..b7f54f77 100644
--- a/src/theme_builder/components/conditions/CompoundConditionEditor.cpp
+++ b/src/theme_builder/components/conditions/CompoundConditionEditor.cpp
@@ -59,17 +59,18 @@ CompoundConditionEditor::CompoundConditionEditor() {
break;
}
if (editor) {
+ ConnectChangeEvent(editor.get());
auto child =
std::make_unique<CompoundConditionEditorChild>(std::move(editor));
child->RemoveEvent()->AddSpyOnlyHandler([this, c = child.get()] {
auto index = this->children_container_.IndexOf(c->GetRootControl());
this->children_.erase(this->children_.begin() + index);
this->children_container_.RemoveChildAt(index);
- change_event_.Raise(nullptr);
+ RaiseChangeEvent();
});
children_.push_back(std::move(child));
children_container_.AddChild(children_.back()->GetRootControl());
- change_event_.Raise(nullptr);
+ RaiseChangeEvent();
}
});
}
@@ -92,19 +93,20 @@ void CompoundConditionEditor::SetChildren(
children_.clear();
for (const auto& condition : children) {
auto condition_editor = CreateConditionEditor(condition.get());
+ ConnectChangeEvent(condition_editor.get());
auto child = std::make_unique<CompoundConditionEditorChild>(
std::move(condition_editor));
child->RemoveEvent()->AddSpyOnlyHandler([this, c = child.get()] {
auto index = this->children_container_.IndexOf(c->GetRootControl());
this->children_.erase(this->children_.begin() + index);
this->children_container_.RemoveChildAt(index);
- change_event_.Raise(nullptr);
+ RaiseChangeEvent();
});
children_.push_back(std::move(child));
children_container_.AddChild(children_.back()->GetRootControl());
}
if (trigger_change) {
- change_event_.Raise(nullptr);
+ RaiseChangeEvent();
}
}
} // namespace cru::theme_builder::components::conditions
diff --git a/src/theme_builder/components/conditions/CompoundConditionEditor.h b/src/theme_builder/components/conditions/CompoundConditionEditor.h
index 50f745c3..771d694f 100644
--- a/src/theme_builder/components/conditions/CompoundConditionEditor.h
+++ b/src/theme_builder/components/conditions/CompoundConditionEditor.h
@@ -42,14 +42,10 @@ class CompoundConditionEditor : public ConditionEditor {
void SetChildren(std::vector<ClonablePtr<ui::style::Condition>> children,
bool trigger_change = true);
- IEvent<std::nullptr_t>* ChangeEvent() override { return &change_event_; }
-
private:
ui::controls::FlexLayout children_container_;
ui::components::PopupMenuTextButton add_child_button_;
std::vector<std::unique_ptr<CompoundConditionEditorChild>> children_;
-
- Event<std::nullptr_t> change_event_;
};
class AndConditionEditor : public CompoundConditionEditor {
diff --git a/src/theme_builder/components/conditions/ConditionEditor.h b/src/theme_builder/components/conditions/ConditionEditor.h
index 08128ed1..426e6ba8 100644
--- a/src/theme_builder/components/conditions/ConditionEditor.h
+++ b/src/theme_builder/components/conditions/ConditionEditor.h
@@ -1,12 +1,12 @@
#pragma once
+#include "../Editor.h"
#include "cru/common/ClonablePtr.h"
-#include "cru/ui/components/Component.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 {
-class ConditionEditor : public ui::components::Component {
+class ConditionEditor : public Editor {
public:
ConditionEditor();
~ConditionEditor() override;
@@ -20,7 +20,6 @@ class ConditionEditor : public ui::components::Component {
void SetLabel(String label) { label_.SetText(std::move(label)); }
virtual ClonablePtr<ui::style::Condition> GetCondition() = 0;
- virtual IEvent<std::nullptr_t>* ChangeEvent() = 0;
private:
ui::controls::FlexLayout container_;
diff --git a/src/theme_builder/components/conditions/FocusConditionEditor.cpp b/src/theme_builder/components/conditions/FocusConditionEditor.cpp
index 7e650071..1fb99d64 100644
--- a/src/theme_builder/components/conditions/FocusConditionEditor.cpp
+++ b/src/theme_builder/components/conditions/FocusConditionEditor.cpp
@@ -8,8 +8,8 @@ FocusConditionEditor::FocusConditionEditor() {
GetContainer()->AddChild(focus_check_box_.GetRootControl());
focus_check_box_.SetLabel(u"Focus");
- focus_check_box_.ChangeEvent()->AddSpyOnlyHandler(
- [this] { change_event_.Raise(nullptr); });
+
+ ConnectChangeEvent(focus_check_box_);
}
FocusConditionEditor::~FocusConditionEditor() {}
diff --git a/src/theme_builder/components/conditions/FocusConditionEditor.h b/src/theme_builder/components/conditions/FocusConditionEditor.h
index 06cdcf69..1faf4d7d 100644
--- a/src/theme_builder/components/conditions/FocusConditionEditor.h
+++ b/src/theme_builder/components/conditions/FocusConditionEditor.h
@@ -22,11 +22,7 @@ class FocusConditionEditor : public ConditionEditor {
return GetValue();
}
- IEvent<std::nullptr_t>* ChangeEvent() override { return &change_event_; }
-
private:
properties::CheckBoxPropertyEditor focus_check_box_;
-
- Event<std::nullptr_t> change_event_;
};
} // namespace cru::theme_builder::components::conditions
diff --git a/src/theme_builder/components/conditions/NoConditionEditor.h b/src/theme_builder/components/conditions/NoConditionEditor.h
index da5f99b0..19616319 100644
--- a/src/theme_builder/components/conditions/NoConditionEditor.h
+++ b/src/theme_builder/components/conditions/NoConditionEditor.h
@@ -13,10 +13,5 @@ class NoConditionEditor : public ConditionEditor {
ClonablePtr<ui::style::Condition> GetCondition() override {
return ui::style::NoCondition::Create();
}
-
- IEvent<std::nullptr_t>* ChangeEvent() override { return &change_event_; }
-
- private:
- Event<std::nullptr_t> change_event_;
};
} // namespace cru::theme_builder::components::conditions