glibmm 2.66.5
Public Types | Public Member Functions | Static Public Member Functions | Related Functions | List of all members
Glib::Binding Class Reference

Bind two object properties. More...

#include <glibmm/binding.h>

Inheritance diagram for Glib::Binding:
Inheritance graph
[legend]

Public Types

using SlotTransform = sigc::slot< bool, const GValue *, GValue * >
 A slot to be called to transform values in a binding created by bind_property_value(). More...
 
template<typename T_from , typename T_to >
using SlotTypedTransform = sigc::slot< bool, const T_from &, T_to & >
 A slot to be called to transform values in a binding created by bind_property(). More...
 
- Public Types inherited from Glib::Object
using DestroyNotify = void(*)(gpointer data)
 

Public Member Functions

 Binding (Binding && src) noexcept
 
Bindingoperator= (Binding && src) noexcept
 
 ~Binding () noexcept override
 
GBinding * gobj ()
 Provides access to the underlying C GObject. More...
 
const GBinding * gobj () const
 Provides access to the underlying C GObject. More...
 
GBinding * gobj_copy ()
 Provides access to the underlying C instance. The caller is responsible for unrefing it. Use when directly setting fields in structs. More...
 
Glib::RefPtr< Glib::ObjectBaseget_source ()
 Retrieves the Glib::ObjectBase instance used as the source of the binding. More...
 
Glib::RefPtr< const Glib::ObjectBaseget_source () const
 Retrieves the Glib::ObjectBase instance used as the source of the binding. More...
 
Glib::ustring get_source_property () const
 Retrieves the name of the property of Binding::property_source() used as the source of the binding. More...
 
Glib::RefPtr< Glib::ObjectBaseget_target ()
 Retrieves the Glib::ObjectBase instance used as the target of the binding. More...
 
Glib::RefPtr< const Glib::ObjectBaseget_target () const
 Retrieves the Glib::ObjectBase instance used as the target of the binding. More...
 
Glib::ustring get_target_property () const
 Retrieves the name of the property of Binding::property_target() used as the target of the binding. More...
 
BindingFlags get_flags () const
 Retrieves the flags passed when constructing the Binding. More...
 
void unbind ()
 Explicitly releases the binding between the source and the target property expressed by this Binding instance. More...
 
Glib::PropertyProxy_ReadOnly< Glib::BindingFlagsproperty_flags () const
 Flags to be used to control the Binding. More...
 
Glib::PropertyProxy_ReadOnly< Glib::RefPtr< Glib::ObjectBase > > property_source () const
 The Object that should be used as the source of the binding. More...
 
Glib::PropertyProxy_ReadOnly< Glib::ustringproperty_source_property () const
 The name of the property of Binding::property_source() that should be used as the source of the binding. More...
 
Glib::PropertyProxy_ReadOnly< Glib::RefPtr< Glib::ObjectBase > > property_target () const
 The Object that should be used as the target of the binding. More...
 
Glib::PropertyProxy_ReadOnly< Glib::ustringproperty_target_property () const
 The name of the property of Binding::property_target() that should be used as the target of the binding. More...
 
- Public Member Functions inherited from Glib::Object
 Object (const Object &)=delete
 
Objectoperator= (const Object &)=delete
 
 Object (Object && src) noexcept
 
Objectoperator= (Object && src) noexcept
 
void * get_data (const QueryQuark & key)
 
void set_data (const Quark & key, void *data)
 
void set_data (const Quark & key, void *data, DestroyNotify notify)
 
void remove_data (const QueryQuark & quark)
 
void * steal_data (const QueryQuark & quark)
 
- Public Member Functions inherited from Glib::ObjectBase
 ObjectBase (const ObjectBase &)=delete
 
ObjectBaseoperator= (const ObjectBase &)=delete
 
void set_property_value (const Glib::ustring & property_name, const Glib::ValueBase & value)
 You probably want to use a specific property_*() accessor method instead. More...
 
void get_property_value (const Glib::ustring & property_name, Glib::ValueBase & value) const
 You probably want to use a specific property_*() accessor method instead. More...
 
template<class PropertyType >
void set_property (const Glib::ustring & property_name, const PropertyType & value)
 You probably want to use a specific property_*() accessor method instead. More...
 
template<class PropertyType >
void get_property (const Glib::ustring & property_name, PropertyType & value) const
 You probably want to use a specific property_*() accessor method instead. More...
 
void connect_property_changed (const Glib::ustring & property_name, const sigc::slot< void > & slot)
 You can use the signal_changed() signal of the property proxy instead. More...
 
void connect_property_changed (const Glib::ustring & property_name, sigc::slot< void > && slot)
 You can use the signal_changed() signal of the property proxy instead. More...
 
sigc::connection connect_property_changed_with_return (const Glib::ustring & property_name, const sigc::slot< void > & slot)
 You can use the signal_changed() signal of the property proxy instead. More...
 
sigc::connection connect_property_changed_with_return (const Glib::ustring & property_name, sigc::slot< void > && slot)
 You can use the signal_changed() signal of the property proxy instead. More...
 
void freeze_notify ()
 Increases the freeze count on object. More...
 
void thaw_notify ()
 Reverts the effect of a previous call to freeze_notify(). More...
 
virtual void reference () const
 Increment the reference count for this object. More...
 
virtual void unreference () const
 Decrement the reference count for this object. More...
 
GObject * gobj ()
 Provides access to the underlying C GObject. More...
 
const GObject * gobj () const
 Provides access to the underlying C GObject. More...
 
GObject * gobj_copy () const
 Give a ref-ed copy to someone. Use for direct struct access. More...
 

Static Public Member Functions

static GType get_type ()
 Get the GType for this class, for use with the underlying GObject type system. More...
 
static Glib::RefPtr< Bindingbind_property_value (const PropertyProxy_Base & source_property, const PropertyProxy_Base & target_property, BindingFlags flags=BINDING_DEFAULT, const SlotTransform & transform_to=SlotTransform(), const SlotTransform & transform_from=SlotTransform())
 Creates a binding between source_property and target_property, allowing you to set the transformation functions to be used by the binding. More...
 
static Glib::RefPtr< Bindingbind_property (const PropertyProxy_Base & source_property, const PropertyProxy_Base & target_property, BindingFlags flags=BINDING_DEFAULT)
 Creates a binding between source_property and target_property. More...
 
template<typename T_source , typename T_target , typename T_functor_to >
static Glib::RefPtr< Bindingbind_property (const PropertyProxy< T_source > & source_property, const PropertyProxy< T_target > & target_property, BindingFlags flags, const T_functor_to & transform_to)
 Creates a binding between source_property and target_property, allowing you to set a transformation function to be used by the binding. More...
 
template<typename T_source , typename T_target , typename T_functor_to >
static Glib::RefPtr< Bindingbind_property (const PropertyProxy< T_source > & source_property, const PropertyProxy_WriteOnly< T_target > & target_property, BindingFlags flags, const T_functor_to & transform_to)
 Creates a binding between source_property and target_property, allowing you to set a transformation function to be used by the binding. More...
 
template<typename T_source , typename T_target , typename T_functor_to >
static Glib::RefPtr< Bindingbind_property (const PropertyProxy_ReadOnly< T_source > & source_property, const PropertyProxy< T_target > & target_property, BindingFlags flags, const T_functor_to & transform_to)
 Creates a binding between source_property and target_property, allowing you to set a transformation function to be used by the binding. More...
 
template<typename T_source , typename T_target , typename T_functor_to >
static Glib::RefPtr< Bindingbind_property (const PropertyProxy_ReadOnly< T_source > & source_property, const PropertyProxy_WriteOnly< T_target > & target_property, BindingFlags flags, const T_functor_to & transform_to)
 Creates a binding between source_property and target_property, allowing you to set a transformation function to be used by the binding. More...
 
template<typename T_source , typename T_target , typename T_functor_to , typename T_functor_from >
static Glib::RefPtr< Bindingbind_property (const PropertyProxy< T_source > & source_property, const PropertyProxy< T_target > & target_property, BindingFlags flags, const T_functor_to & transform_to, const T_functor_from & transform_from)
 Creates a binding between source_property and target_property, allowing you to set the transformation functions to be used by the binding. More...
 

Related Functions

(Note that these are not member functions.)

const Glib::RefPtr< Glib::Binding > & manage (const Glib::RefPtr< Glib::Binding > & binding)
 Sets a Glib::Binding as having its lifetime managed by the lifetimes of its source and target objects, rather than requiring a Glib::RefPtr to be kept. More...
 
Glib::RefPtr< Glib::Bindingwrap (GBinding * object, bool take_copy=false)
 A Glib::wrap() method for this object. More...
 

Additional Inherited Members

- Protected Member Functions inherited from Glib::Object
 Object ()
 
 Object (const Glib::ConstructParams & construct_params)
 
 Object (GObject * castitem)
 
 ~Object () noexcept override
 
- Protected Member Functions inherited from Glib::ObjectBase
 ObjectBase ()
 This default constructor is called implicitly from the constructor of user-derived classes, even if, for instance, Gtk::Button calls a different ObjectBase constructor. More...
 
 ObjectBase (const char * custom_type_name)
 A derived constructor always overrides this choice. More...
 
 ObjectBase (const std::type_info & custom_type_info)
 This constructor is a special feature to allow creation of derived types on the fly, without having to use g_object_new() manually. More...
 
 ObjectBase (ObjectBase && src) noexcept
 
ObjectBaseoperator= (ObjectBase && src) noexcept
 
virtual ~ObjectBase () noexcept=0
 
void initialize (GObject * castitem)
 
void initialize_move (GObject * castitem, Glib::ObjectBase * previous_wrapper)
 

Detailed Description

Bind two object properties.

Glib::Binding is the representation of a binding between a property on a Glib::ObjectBase instance (or source) and another property on another Glib::ObjectBase instance (or target). Whenever the source property changes, the same value is applied to the target property; for instance, the following binding:

Glib::Binding::bind_property(object1->property_a(), object2->property_b());
static Glib::RefPtr< Binding > bind_property(const PropertyProxy_Base &source_property, const PropertyProxy_Base &target_property, BindingFlags flags=BINDING_DEFAULT)
Creates a binding between source_property and target_property.
Definition: binding.h:355

will cause property_b() of object2 to be updated every time the value of property_a() of object1 changes.

It is possible to create a bidirectional binding between two properties of two Glib::ObjectBase instances, so that if either property changes, the other is updated as well, for instance:

Glib::Binding::bind_property(object1->property_a(), object2->property_b(),
@ BINDING_BIDIRECTIONAL
Bidirectional binding; if either the property of the source or the property of the target changes,...
Definition: binding.h:87

will keep the two properties in sync.

It is also possible to set a custom transformation function (in both directions, in case of a bidirectional binding) to apply a custom transformation from the source value to the target value before applying it; for instance, the following binding:

bool celsius_to_fahrenheit(const double& celsius, double& fahrenheit);
bool fahrenheit_to_celsius(const double& fahrenheit, double& celsius);
Glib::Binding::bind_property(adjustment1->property_value(),
adjustment2->property_value(), Glib::BINDING_BIDIRECTIONAL,
sigc::ptr_fun(celsius_to_fahrenheit), sigc::ptr_fun(fahrenheit_to_celsius));
pointer_to_unary_function< _Arg, _Result > ptr_fun(_Result(*__x)(_Arg))

will keep property_value() of the two adjustments in sync; the celsius_to_fahrenheit() function will be called whenever property_value() of adjustment1 changes and will transform the current value of the property before applying it to property_value() of adjustment2.

Vice versa, the fahrenheit_to_celsius() function will be called whenever property_value() of adjustment2 changes, and will transform the current value of the property before applying it to property_value() of adjustment1.

Note that Glib::Binding does not resolve cycles by itself; a cycle like

object1->property_A() -> object2->property_B()
object2->property_B() -> object3->property_C()
object3->property_C() -> object1->property_A()

might lead to an infinite loop. The loop, in this particular case, can be avoided if the objects emit the GObject::notify signal only if the value has effectively been changed. A binding is implemented using the GObject::notify signal, so it is susceptible to all the various ways of blocking a signal emission, like Glib::SignalProxyNormal::emission_stop() or g_signal_handler_block().

The binding between properties is broken, and its resources freed, when the Glib::Binding loses its last Glib::RefPtr (by default), the source or target object is deleted, or unbind() is called. If a Glib::RefPtr to the Glib::Binding remains after the binding is broken another way, get_source() and get_target() return an empty Glib::RefPtr. So, by default, you must keep a Glib::RefPtr to the Glib::Binding for as long as you want it to bind, but doing that does not guarantee the source/target are still alive or bound.

If it is not convenient to maintain a Glib::RefPtr to keep a Glib::Binding active, you can pass the Glib::Binding to Glib::manage() to specify that it should have its lifetime managed by the source/target objects and unbind() only. In that case, it will stay active as long as the source and target exist and unbind() is not called, even if no Glib::RefPtr to it is kept.

Since glibmm 2.44:

Member Typedef Documentation

◆ SlotTransform

using Glib::Binding::SlotTransform = sigc::slot<bool, const GValue*, GValue*>

A slot to be called to transform values in a binding created by bind_property_value().

For instance:

bool on_transform_to(const GValue* from_value, GValue* to_value);
Returns
true if the transformation was successful, and false otherwise.

◆ SlotTypedTransform

template <typename T_from , typename T_to >
using Glib::Binding::SlotTypedTransform = sigc::slot<bool, const T_from&, T_to&>

A slot to be called to transform values in a binding created by bind_property().

For instance:

bool on_transform_to(const Glib::ustring& from_string, int& to_int);
Glib::ustring has much the same interface as std::string, but contains Unicode characters encoded as ...
Definition: ustring.h:327
Returns
true if the transformation was successful, and false otherwise.

Constructor & Destructor Documentation

◆ Binding()

Glib::Binding::Binding ( Binding &&  src)
noexcept

◆ ~Binding()

Glib::Binding::~Binding ( )
overridenoexcept

Member Function Documentation

◆ bind_property() [1/6]

template <typename T_source , typename T_target , typename T_functor_to >
static Glib::RefPtr< Binding > Glib::Binding::bind_property ( const PropertyProxy< T_source > &  source_property,
const PropertyProxy< T_target > &  target_property,
BindingFlags  flags,
const T_functor_to &  transform_to 
)
inlinestatic

Creates a binding between source_property and target_property, allowing you to set a transformation function to be used by the binding.

Parameters
source_propertyThe source property to bind.
target_propertyThe target property to bind.
flagsFlags to pass to Binding.
transform_toThe transformation function from the source to the target, or an empty slot to use the default.
Returns
The Binding instance representing the binding between the two Glib::ObjectBase instances, or nullptr in case of error.
Template Parameters
T_sourceType of the source property. Must be a type that can be stored in a Glib::Value<T_source> object.
T_targetType of the target property. Must be a type that can be stored in a Glib::Value<T_target> object.
T_functor_toType of functor that translates from the source to the target. Must be convertible to SlotTypedTransform<T_source, T_target>.
See also
bind_property_value()
Since glibmm 2.44:

◆ bind_property() [2/6]

template <typename T_source , typename T_target , typename T_functor_to , typename T_functor_from >
static Glib::RefPtr< Binding > Glib::Binding::bind_property ( const PropertyProxy< T_source > &  source_property,
const PropertyProxy< T_target > &  target_property,
BindingFlags  flags,
const T_functor_to &  transform_to,
const T_functor_from &  transform_from 
)
inlinestatic

Creates a binding between source_property and target_property, allowing you to set the transformation functions to be used by the binding.

Parameters
source_propertyThe source property to bind.
target_propertyThe target property to bind.
flagsFlags to pass to Binding.
transform_toThe transformation function from the source to the target, or an empty slot to use the default.
transform_fromThe transformation function from the target to the source, or an empty slot to use the default.
Returns
The Binding instance representing the binding between the two Glib::ObjectBase instances, or nullptr in case of error.
Template Parameters
T_sourceType of the source property. Must be a type that can be stored in a Glib::Value<T_source> object.
T_targetType of the target property. Must be a type that can be stored in a Glib::Value<T_target> object.
T_functor_toType of functor that translates from the source to the target. Must be convertible to SlotTypedTransform<T_source, T_target>.
T_functor_fromType of functor that translates from the target to the source. Must be convertible to SlotTypedTransform<T_target, T_source>.
See also
bind_property_value()
Since glibmm 2.44:

◆ bind_property() [3/6]

template <typename T_source , typename T_target , typename T_functor_to >
static Glib::RefPtr< Binding > Glib::Binding::bind_property ( const PropertyProxy< T_source > &  source_property,
const PropertyProxy_WriteOnly< T_target > &  target_property,
BindingFlags  flags,
const T_functor_to &  transform_to 
)
inlinestatic

Creates a binding between source_property and target_property, allowing you to set a transformation function to be used by the binding.

Parameters
source_propertyThe source property to bind.
target_propertyThe target property to bind.
flagsFlags to pass to Binding.
transform_toThe transformation function from the source to the target, or an empty slot to use the default.
Returns
The Binding instance representing the binding between the two Glib::ObjectBase instances, or nullptr in case of error.
Template Parameters
T_sourceType of the source property. Must be a type that can be stored in a Glib::Value<T_source> object.
T_targetType of the target property. Must be a type that can be stored in a Glib::Value<T_target> object.
T_functor_toType of functor that translates from the source to the target. Must be convertible to SlotTypedTransform<T_source, T_target>.
See also
bind_property_value()
Since glibmm 2.44:

◆ bind_property() [4/6]

static Glib::RefPtr< Binding > Glib::Binding::bind_property ( const PropertyProxy_Base source_property,
const PropertyProxy_Base target_property,
BindingFlags  flags = BINDING_DEFAULT 
)
inlinestatic

Creates a binding between source_property and target_property.

Parameters
source_propertyThe source property to bind.
target_propertyThe target property to bind.
flagsFlags to pass to Binding.
Returns
The Binding instance representing the binding between the two Glib::ObjectBase instances, or nullptr in case of error.
See also
bind_property_value()
Since glibmm 2.44:

◆ bind_property() [5/6]

template <typename T_source , typename T_target , typename T_functor_to >
static Glib::RefPtr< Binding > Glib::Binding::bind_property ( const PropertyProxy_ReadOnly< T_source > &  source_property,
const PropertyProxy< T_target > &  target_property,
BindingFlags  flags,
const T_functor_to &  transform_to 
)
inlinestatic

Creates a binding between source_property and target_property, allowing you to set a transformation function to be used by the binding.

Parameters
source_propertyThe source property to bind.
target_propertyThe target property to bind.
flagsFlags to pass to Binding.
transform_toThe transformation function from the source to the target, or an empty slot to use the default.
Returns
The Binding instance representing the binding between the two Glib::ObjectBase instances, or nullptr in case of error.
Template Parameters
T_sourceType of the source property. Must be a type that can be stored in a Glib::Value<T_source> object.
T_targetType of the target property. Must be a type that can be stored in a Glib::Value<T_target> object.
T_functor_toType of functor that translates from the source to the target. Must be convertible to SlotTypedTransform<T_source, T_target>.
See also
bind_property_value()
Since glibmm 2.44:

◆ bind_property() [6/6]

template <typename T_source , typename T_target , typename T_functor_to >
static Glib::RefPtr< Binding > Glib::Binding::bind_property ( const PropertyProxy_ReadOnly< T_source > &  source_property,
const PropertyProxy_WriteOnly< T_target > &  target_property,
BindingFlags  flags,
const T_functor_to &  transform_to 
)
inlinestatic

Creates a binding between source_property and target_property, allowing you to set a transformation function to be used by the binding.

Parameters
source_propertyThe source property to bind.
target_propertyThe target property to bind.
flagsFlags to pass to Binding.
transform_toThe transformation function from the source to the target, or an empty slot to use the default.
Returns
The Binding instance representing the binding between the two Glib::ObjectBase instances, or nullptr in case of error.
Template Parameters
T_sourceType of the source property. Must be a type that can be stored in a Glib::Value<T_source> object.
T_targetType of the target property. Must be a type that can be stored in a Glib::Value<T_target> object.
T_functor_toType of functor that translates from the source to the target. Must be convertible to SlotTypedTransform<T_source, T_target>.
See also
bind_property_value()
Since glibmm 2.44:

◆ bind_property_value()

static Glib::RefPtr< Binding > Glib::Binding::bind_property_value ( const PropertyProxy_Base source_property,
const PropertyProxy_Base target_property,
BindingFlags  flags = BINDING_DEFAULT,
const SlotTransform transform_to = SlotTransform(),
const SlotTransform transform_from = SlotTransform() 
)
static

Creates a binding between source_property and target_property, allowing you to set the transformation functions to be used by the binding.

If flags contains Glib::BINDING_BIDIRECTIONAL then the binding will be mutual: if target_property changes then the source_property will be updated as well. The transform_from function is only used in case of bidirectional bindings, otherwise it will be ignored.

A Glib::ObjectBase instance can have multiple bindings.

If you supply transformation functions, it is usually easier to use one of the bind_property() overloads, to avoid the use of GValue in the transformation functions.

Parameters
source_propertyThe source property to bind.
target_propertyThe target property to bind.
flagsFlags to pass to Binding.
transform_toThe transformation function from the source to the target, or an empty slot to use the default.
transform_fromThe transformation function from the target to the source, or an empty slot to use the default.
Returns
The Binding instance representing the binding between the two Glib::ObjectBase instances, or nullptr in case of error.
Since glibmm 2.44:

◆ get_flags()

BindingFlags Glib::Binding::get_flags ( ) const

Retrieves the flags passed when constructing the Binding.

Since glibmm 2.44:
Returns
The BindingFlags used by the Binding.

◆ get_source() [1/2]

Glib::RefPtr< Glib::ObjectBase > Glib::Binding::get_source ( )

Retrieves the Glib::ObjectBase instance used as the source of the binding.

A Glib::Binding can outlive the source Glib::ObjectBase as the binding does not hold a strong reference to the source. If the source is destroyed before the binding then this function will return an empty Glib::RefPtr.

Since glibmm 2.44:
Returns
The source Glib::ObjectBase.

◆ get_source() [2/2]

Glib::RefPtr< const Glib::ObjectBase > Glib::Binding::get_source ( ) const

Retrieves the Glib::ObjectBase instance used as the source of the binding.

A Glib::Binding can outlive the source Glib::ObjectBase as the binding does not hold a strong reference to the source. If the source is destroyed before the binding then this function will return an empty Glib::RefPtr.

Since glibmm 2.44:
Returns
The source Glib::ObjectBase.

◆ get_source_property()

Glib::ustring Glib::Binding::get_source_property ( ) const

Retrieves the name of the property of Binding::property_source() used as the source of the binding.

Since glibmm 2.44:
Returns
The name of the source property.

◆ get_target() [1/2]

Glib::RefPtr< Glib::ObjectBase > Glib::Binding::get_target ( )

Retrieves the Glib::ObjectBase instance used as the target of the binding.

A Glib::Binding can outlive the target Glib::ObjectBase as the binding does not hold a strong reference to the target. If the target is destroyed before the binding then this function will return an empty Glib::RefPtr.

Since glibmm 2.44:
Returns
The target Glib::ObjectBase.

◆ get_target() [2/2]

Glib::RefPtr< const Glib::ObjectBase > Glib::Binding::get_target ( ) const

Retrieves the Glib::ObjectBase instance used as the target of the binding.

A Glib::Binding can outlive the target Glib::ObjectBase as the binding does not hold a strong reference to the target. If the target is destroyed before the binding then this function will return an empty Glib::RefPtr.

Since glibmm 2.44:
Returns
The target Glib::ObjectBase.

◆ get_target_property()

Glib::ustring Glib::Binding::get_target_property ( ) const

Retrieves the name of the property of Binding::property_target() used as the target of the binding.

Since glibmm 2.44:
Returns
The name of the target property.

◆ get_type()

static GType Glib::Binding::get_type ( )
static

Get the GType for this class, for use with the underlying GObject type system.

◆ gobj() [1/2]

GBinding * Glib::Binding::gobj ( )
inline

Provides access to the underlying C GObject.

◆ gobj() [2/2]

const GBinding * Glib::Binding::gobj ( ) const
inline

Provides access to the underlying C GObject.

◆ gobj_copy()

GBinding * Glib::Binding::gobj_copy ( )

Provides access to the underlying C instance. The caller is responsible for unrefing it. Use when directly setting fields in structs.

◆ operator=()

Binding & Glib::Binding::operator= ( Binding &&  src)
noexcept

◆ property_flags()

Glib::PropertyProxy_ReadOnly< Glib::BindingFlags > Glib::Binding::property_flags ( ) const

Flags to be used to control the Binding.

Since glibmm 2.44:

Default value: BINDING_DEFAULT

Returns
A PropertyProxy_ReadOnly that allows you to get the value of the property, or receive notification when the value of the property changes.

◆ property_source()

Glib::PropertyProxy_ReadOnly< Glib::RefPtr< Glib::ObjectBase > > Glib::Binding::property_source ( ) const

The Object that should be used as the source of the binding.

Since glibmm 2.44:
Returns
A PropertyProxy_ReadOnly that allows you to get the value of the property, or receive notification when the value of the property changes.

◆ property_source_property()

Glib::PropertyProxy_ReadOnly< Glib::ustring > Glib::Binding::property_source_property ( ) const

The name of the property of Binding::property_source() that should be used as the source of the binding.

This should be in [canonical form][canonical-parameter-names] to get the best performance.

Since glibmm 2.44:

Default value: ""

Returns
A PropertyProxy_ReadOnly that allows you to get the value of the property, or receive notification when the value of the property changes.

◆ property_target()

Glib::PropertyProxy_ReadOnly< Glib::RefPtr< Glib::ObjectBase > > Glib::Binding::property_target ( ) const

The Object that should be used as the target of the binding.

Since glibmm 2.44:
Returns
A PropertyProxy_ReadOnly that allows you to get the value of the property, or receive notification when the value of the property changes.

◆ property_target_property()

Glib::PropertyProxy_ReadOnly< Glib::ustring > Glib::Binding::property_target_property ( ) const

The name of the property of Binding::property_target() that should be used as the target of the binding.

This should be in [canonical form][canonical-parameter-names] to get the best performance.

Since glibmm 2.44:

Default value: ""

Returns
A PropertyProxy_ReadOnly that allows you to get the value of the property, or receive notification when the value of the property changes.

◆ unbind()

void Glib::Binding::unbind ( )

Explicitly releases the binding between the source and the target property expressed by this Binding instance.

The binding is also released if either the source object or the target object is deleted, or this Binding instance loses its last reference, i.e. there is no more Glib::RefPtr that holds a pointer to it.

Since glibmm 2.44:

Friends And Related Function Documentation

◆ manage()

const Glib::RefPtr< Glib::Binding > & manage ( const Glib::RefPtr< Glib::Binding > &  binding)
related

Sets a Glib::Binding as having its lifetime managed by the lifetimes of its source and target objects, rather than requiring a Glib::RefPtr to be kept.

See the class description of Glib::Binding for full information on the lifetimes of bindings.

For instance:

void bind_my_properties(const Glib::RefPtr<Source>& source,
const Glib::RefPtr<Target>& target)
{
Glib::manage(Glib::Binding::bind_property(source->property_foo(),
target->property_bar()));
// don’t keep RefPtr to new Binding as source & target control its lifetime
}
RefPtr<> is a reference-counting shared smartpointer.
Definition: refptr.h:52
Since glibmm 2.66:
Parameters
bindingThe Glib::Binding to set as managed, or an empty Glib::RefPtr.
Returns
The same Glib::Binding or empty Glib::RefPtr.

◆ wrap()

Glib::RefPtr< Glib::Binding > wrap ( GBinding *  object,
bool  take_copy = false 
)
related

A Glib::wrap() method for this object.

Parameters
objectThe C instance.
take_copyFalse if the result should take ownership of the C instance. True if it should take a new copy or ref.
Returns
A C++ instance that wraps this C instance.