diff options
Diffstat (limited to 'src/theme_builder/components/properties/CheckBoxPropertyEditor.cpp')
-rw-r--r-- | src/theme_builder/components/properties/CheckBoxPropertyEditor.cpp | 26 |
1 files changed, 26 insertions, 0 deletions
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 |