1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-28 09:35:09 +00:00
serenity/Applications/VisualBuilder/VBProperty.cpp
Andreas Kling 3a33b8ea08 VisualBuilder: Hook up everything needed for widget property editing.
It's now possible to edit widget properties inline in the properties window.
We're currently relying on the basic GVariant conversion functions to do
all the "parsing" but that's not gonna be good enough.
2019-04-19 01:05:59 +02:00

33 lines
754 B
C++

#include "VBProperty.h"
#include "VBWidget.h"
VBProperty::VBProperty(VBWidget& widget, const String& name, const GVariant& value)
: m_widget(widget)
, m_name(name)
, m_value(value)
{
}
VBProperty::VBProperty(VBWidget& widget, const String& name, Function<GVariant(const GWidget&)>&& getter, Function<void(GWidget&, const GVariant&)>&& setter)
: m_widget(widget)
, m_name(name)
, m_getter(move(getter))
, m_setter(move(setter))
{
ASSERT(m_getter);
ASSERT(m_setter);
}
VBProperty::~VBProperty()
{
}
void VBProperty::set_value(const GVariant& value)
{
if (m_value == value)
return;
m_value = value;
if (m_setter)
m_setter(*m_widget.gwidget(), value);
m_widget.property_did_change();
}