From da6f0bcfc6ec786cf14f67f100b4c50cf2325db4 Mon Sep 17 00:00:00 2001 From: crupest Date: Wed, 16 Feb 2022 17:30:49 +0800 Subject: ... --- .../properties/CheckBoxPropertyEditor.cpp | 26 ++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 src/theme_builder/components/properties/CheckBoxPropertyEditor.cpp (limited to 'src/theme_builder/components/properties/CheckBoxPropertyEditor.cpp') diff --git a/src/theme_builder/components/properties/CheckBoxPropertyEditor.cpp b/src/theme_builder/components/properties/CheckBoxPropertyEditor.cpp new file mode 100644 index 00000000..2e921f96 --- /dev/null +++ b/src/theme_builder/components/properties/CheckBoxPropertyEditor.cpp @@ -0,0 +1,26 @@ +#include "CheckBoxPropertyEditor.h" + +namespace cru::theme_builder::components::properties { +CheckBoxPropertyEditor::CheckBoxPropertyEditor() { + container_.SetFlexDirection(ui::controls::FlexDirection::Horizontal); + container_.AddChild(&label_); + container_.AddChild(&check_box_); + + check_box_.CheckedChangeEvent()->AddSpyOnlyHandler([this] { + if (!suppress_next_change_event_) { + change_event_.Raise(nullptr); + } else { + suppress_next_change_event_ = false; + } + }); +} + +CheckBoxPropertyEditor::~CheckBoxPropertyEditor() { + container_.RemoveFromParent(); +} + +void CheckBoxPropertyEditor::SetValue(bool value, bool trigger_change) { + if (!trigger_change) suppress_next_change_event_ = true; + check_box_.SetChecked(value); +} +} // namespace cru::theme_builder::components::properties -- cgit v1.2.3