|
| | Binding (Binding&& src) noexcept |
| |
| Binding& | operator= (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::ObjectBase > | get_source () |
| | Retrieves the Object instance used as the source of the binding. More...
|
| |
| Glib::RefPtr< const Glib::ObjectBase > | get_source () const |
| | Retrieves the Object 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::ObjectBase > | get_target () |
| | Retrieves the Object instance used as the target of the binding. More...
|
| |
| Glib::RefPtr< const Glib::ObjectBase > | get_target () const |
| | Retrieves the Object 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::BindingFlags > | property_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::ustring > | property_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::ustring > | property_target_property () const |
| | The name of the property of Binding::property_target() that should be used as the target of the binding. More...
|
| |
| | Object (const Object&)=delete |
| |
| Object& | operator= (const Object&)=delete |
| |
| | Object (Object&& src) noexcept |
| |
| Object& | operator= (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) |
| |
| | ObjectBase (const ObjectBase&)=delete |
| |
| ObjectBase& | operator= (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...
|
| |
| | trackable () noexcept |
| |
| | trackable (const trackable &src) noexcept |
| |
| | trackable (trackable &&src) |
| |
| | ~trackable () |
| |
| void | add_destroy_notify_callback (void *data, func_destroy_notify func) const |
| |
| void | notify_callbacks () |
| |
| trackable & | operator= (const trackable &src) |
| |
| trackable & | operator= (trackable &&src) |
| |
| void | remove_destroy_notify_callback (void *data) const |
| |
|
| static GType | get_type () |
| | Get the GType for this class, for use with the underlying GObject type system. More...
|
| |
| static Glib::RefPtr< 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()) |
| | 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< 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. More...
|
| |
| template<typename T_source , typename T_target , typename T_functor_to > |
| static Glib::RefPtr< Binding > | bind_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< Binding > | bind_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< Binding > | bind_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< 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) |
| | 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< 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) |
| | Creates a binding between source_property and target_property, allowing you to set the transformation functions to be used by the binding. More...
|
| |
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:
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:
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);
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().
A binding will be severed, and the resources it allocates freed, whenever either one of the Glib::ObjectBase instances it refers to is deleted, when unbind() is called, or when the Glib::Binding instance loses its last reference.
- Since glibmm 2.44: