Method
GObjectObjectbind_property
since: 2.26
Declaration [src]
GBinding*
g_object_bind_property (
GObject* source,
const gchar* source_property,
GObject* target,
const gchar* target_property,
GBindingFlags flags
)
Description [src]
Creates a binding between source_property
on source
and target_property
on target
.
Whenever the source_property
is changed the target_property
is
updated using the same value. For instance:
g_object_bind_property (action, "active", widget, "sensitive", 0);
Will result in the “sensitive” property of the widget GObject
instance to be
updated with the same value of the “active” property of the action GObject
instance.
If flags
contains G_BINDING_BIDIRECTIONAL
then the binding will be mutual:
if target_property
on target
changes then the source_property
on source
will be updated as well.
The binding will automatically be removed when either the source
or the
target
instances are finalized. To remove the binding without affecting the
source
and the target
you can just call g_object_unref()
on the returned
GBinding
instance.
Removing the binding by calling g_object_unref()
on it must only be done if
the binding, source
and target
are only used from a single thread and it
is clear that both source
and target
outlive the binding. Especially it
is not safe to rely on this if the binding, source
or target
can be
finalized from different threads. Keep another reference to the binding and
use g_binding_unbind()
instead to be on the safe side.
A GObject
can have multiple bindings.
Available since: 2.26
Parameters
source_property
-
Type:
const gchar*
The property on
source
to bind.The data is owned by the caller of the method. The value is a NUL terminated UTF-8 string. target
-
Type:
GObject
The target
GObject
.The data is owned by the caller of the method. target_property
-
Type:
const gchar*
The property on
target
to bind.The data is owned by the caller of the method. The value is a NUL terminated UTF-8 string. flags
-
Type:
GBindingFlags
Flags to pass to
GBinding
.
Return value
Type: GBinding
The GBinding
instance representing the
binding between the two GObject
instances. The binding is released
whenever the GBinding
reference count reaches zero.
The returned data is owned by the instance. |