aboutsummaryrefslogtreecommitdiff
path: root/src/ThemeBuilder/components/Editor.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/ThemeBuilder/components/Editor.cpp')
-rw-r--r--src/ThemeBuilder/components/Editor.cpp23
1 files changed, 23 insertions, 0 deletions
diff --git a/src/ThemeBuilder/components/Editor.cpp b/src/ThemeBuilder/components/Editor.cpp
new file mode 100644
index 00000000..89e27e83
--- /dev/null
+++ b/src/ThemeBuilder/components/Editor.cpp
@@ -0,0 +1,23 @@
+#include "Editor.h"
+
+namespace cru::theme_builder::components {
+
+void Editor::RaiseChangeEvent() {
+ if (suppress_next_change_event_) {
+ suppress_next_change_event_ = false;
+ } else {
+ change_event_.Raise(nullptr);
+ }
+}
+
+void Editor::SuppressNextChangeEvent() { suppress_next_change_event_ = true; }
+
+void Editor::ConnectChangeEvent(IEvent<std::nullptr_t>* event) {
+ event->AddHandler([this](std::nullptr_t) { RaiseChangeEvent(); });
+}
+
+void Editor::ConnectChangeEvent(Editor* editor) {
+ ConnectChangeEvent(editor->ChangeEvent());
+}
+
+} // namespace cru::theme_builder::components