mirror of
https://github.com/RGBCube/serenity
synced 2025-05-28 09:35:09 +00:00

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.
33 lines
754 B
C++
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();
|
|
}
|