aboutsummaryrefslogtreecommitdiff
path: root/src/theme_builder/components/properties/CheckBoxPropertyEditor.cpp
blob: 2e921f9600bb442ecdd1cc80fb8bb41f588ca4cc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
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