glibmm 2.82.0
|
A Glib::Object property. More...
#include <glibmm/property.h>
Public Types | |
using | PropertyType = T |
using | ValueType = Glib::Value< T > |
Public Member Functions | |
Property (Glib::Object &object, const Glib::ustring & name) | |
Constructs a property of the object with the specified name. | |
Property (Glib::Object &object, const Glib::ustring & name, const PropertyType &default_value) | |
Constructs a property of the object with the specified name and default_value. | |
Property (Glib::Object &object, const Glib::ustring & name, const Glib::ustring &nick, const Glib::ustring &blurb, Glib::ParamFlags flags) | |
Constructs a property of the object with the specified name, nick, blurb and flags. | |
Property (Glib::Object &object, const Glib::ustring & name, const PropertyType &default_value, const Glib::ustring &nick, const Glib::ustring &blurb, Glib::ParamFlags flags) | |
Constructs a property of the object with the specified name, default_value, nick, blurb and flags. | |
void | set_value (const PropertyType &data) |
Sets the value of the property to data. | |
PropertyType | get_value () const |
Returns the value of the property. | |
Property< T > & | operator= (const PropertyType &data) |
Sets the value of the property to data. | |
operator PropertyType () const | |
Returns the value of the property. | |
Glib::PropertyProxy< T > | get_proxy () |
Returns a proxy object that can be used to read or write this property. | |
Glib::PropertyProxy_ReadOnly< T > | get_proxy () const |
Returns a proxy object that can be used to read this property. | |
Public Member Functions inherited from Glib::PropertyBase | |
PropertyBase (const PropertyBase &)=delete | |
PropertyBase & | operator= (const PropertyBase &)=delete |
Glib::ustring | get_name () const |
Returns the name of the property. | |
Glib::ustring | get_nick () const |
Returns the nickname of the property. | |
Glib::ustring | get_blurb () const |
Returns the short description of the property. | |
void | notify () |
Notifies the object containing the property that the property has changed. | |
Additional Inherited Members | |
Protected Member Functions inherited from Glib::PropertyBase | |
PropertyBase (Glib::Object &object, GType value_type) | |
This constructs a property of type value_type for the object. | |
~PropertyBase () noexcept | |
bool | lookup_property (const Glib::ustring & name) |
Checks if the property has already been installed. | |
void | install_property (GParamSpec *param_spec) |
Installs the property specified by the given param_spec. | |
const char * | get_name_internal () const |
Returns the name of the property. | |
Protected Attributes inherited from Glib::PropertyBase | |
Glib::Object * | object_ |
Glib::ValueBase | value_ |
GParamSpec * | param_spec_ |
A Glib::Object property.
This class wraps a GObject property, providing a C++ API to the GObject property system, for use with classes derived from Glib::Object or Glib::Interface.
A property is a value associated with each instance of a type and some class data for each property:
This Property class currently supports the name, nick name, description, default value and flags. The minimum and maximum bounds are set to the full range of the value. Because of internal implementation, flags shouldn't be set to values: Glib::ParamFlags::STATIC_NAME, Glib::ParamFlags::STATIC_NICK, Glib::ParamFlags::STATIC_BLURB, Glib::ParamFlags::CONSTRUCT and Glib::ParamFlags::CONSTRUCT_ONLY.
The class information must be installed into the GObject system once per property, but this is handled automatically.
Each property belongs to an object, inheriting from Glib::Object. A reference to the object must be passed to the constructor of the property.
Each instance of a Glib::Object-derived type must construct the same properties (same type, same name) in the same order. One way to achieve this is to declare all properties as direct data members of the type.
You may register new properties for your class (actually for the underlying GType) simply by adding a Property instance as a class member. However, your constructor must call the Glib::ObjectBase constructor with a new GType name, in order to register a new GType.
Example:
using Glib::Property< T >::PropertyType = T |
using Glib::Property< T >::ValueType = Glib::Value<T> |
Glib::Property< T >::Property | ( | Glib::Object & | object, |
const Glib::ustring & | name | ||
) |
Constructs a property of the object with the specified name.
For each instance of the object, the same property must be constructed with the same name.
Glib::Property< T >::Property | ( | Glib::Object & | object, |
const Glib::ustring & | name, | ||
const PropertyType & | default_value | ||
) |
Constructs a property of the object with the specified name and default_value.
For each instance of the object, the same property must be constructed with the same name.
Glib::Property< T >::Property | ( | Glib::Object & | object, |
const Glib::ustring & | name, | ||
const Glib::ustring & | nick, | ||
const Glib::ustring & | blurb, | ||
Glib::ParamFlags | flags | ||
) |
Constructs a property of the object with the specified name, nick, blurb and flags.
For each instance of the object, the same property must be constructed with the same name.
Glib::Property< T >::Property | ( | Glib::Object & | object, |
const Glib::ustring & | name, | ||
const PropertyType & | default_value, | ||
const Glib::ustring & | nick, | ||
const Glib::ustring & | blurb, | ||
Glib::ParamFlags | flags | ||
) |
Constructs a property of the object with the specified name, default_value, nick, blurb and flags.
For each instance of the object, the same property must be constructed with the same name.
|
inline |
Returns a proxy object that can be used to read or write this property.
|
inline |
Returns a proxy object that can be used to read this property.
|
inline |
Returns the value of the property.
|
inline |
Returns the value of the property.
|
inline |
Sets the value of the property to data.
The object containing the property will be notified about the change.
|
inline |
Sets the value of the property to data.
The object containing the property will be notified about the change.