VBProperty.cpp 754 B

123456789101112131415161718192021222324252627282930313233
  1. #include "VBProperty.h"
  2. #include "VBWidget.h"
  3. VBProperty::VBProperty(VBWidget& widget, const String& name, const GVariant& value)
  4. : m_widget(widget)
  5. , m_name(name)
  6. , m_value(value)
  7. {
  8. }
  9. VBProperty::VBProperty(VBWidget& widget, const String& name, Function<GVariant(const GWidget&)>&& getter, Function<void(GWidget&, const GVariant&)>&& setter)
  10. : m_widget(widget)
  11. , m_name(name)
  12. , m_getter(move(getter))
  13. , m_setter(move(setter))
  14. {
  15. ASSERT(m_getter);
  16. ASSERT(m_setter);
  17. }
  18. VBProperty::~VBProperty()
  19. {
  20. }
  21. void VBProperty::set_value(const GVariant& value)
  22. {
  23. if (m_value == value)
  24. return;
  25. m_value = value;
  26. if (m_setter)
  27. m_setter(*m_widget.gwidget(), value);
  28. m_widget.property_did_change();
  29. }