glibmm: Glib::Property< T > Class Template Reference

glibmm 2.46.3

- Main Page
- Related Pages
- Modules
- Namespaces
- Classes
- Examples

- Class List
- Class Index
- Class Hierarchy
- Class Members

Public Types | Public Member Functions | List of all members
Glib::Property< T > Class Template Reference

A Glib::Object property. More...

`#include <glibmm/property.h>`

Inheritance diagram for Glib::Property< T >:
[legend]

## Public Types
typedef T | PropertyType
typedef Glib::Value< T > | ValueType

## Public Member Functions
| Property (Glib::Object& object, const Glib::ustring& name)
| Constructs a property of the object with the specified name. More...
| 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. More...
void | set_value (const PropertyType& data)
| Sets the value of the property to data. More...
PropertyType | get_value () const
| Returns the value of the property. More...
Property< T >& | operator= (const PropertyType& data)
| Sets the value of the property to data. More...
| operator PropertyType () const
| Returns the value of the property. More...
Glib::PropertyProxy< T > | get_proxy ()
| Returns a proxy object that can be used to manipulate this property. More...
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. More...
void | notify ()
| Notifies the object containing the property that the property has changed. More...

## 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. More...
| ~PropertyBase () noexcept
bool | lookup_property (const Glib::ustring& name)
| Checks if the property has already been installed. More...
void | install_property (GParamSpec* param_spec)
| Installs the property specified by the given param_spec. More...
const char* | get_name_internal () const
| Returns the name of the property. More...
Protected Attributes inherited from Glib::PropertyBase
Glib::Object* | object_
Glib::ValueBase | value_
GParamSpec* | param_spec_

## Detailed Description

### template<class T>
class Glib::Property< T >

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:

- Its unique name, used to identify the property.
- A human-readable nick name.
- A short description.
- The default value and the minimum and maximum bounds (depending on the type of the property).
- Flags, defining, among other things, whether the property can be read or written.

This Property class currently supports only the name and default value. The minimum and maximum bounds are set to the full range of the value. The nick and the explanation are set to empty. The flags are set to indicate that the property can be both read from and written to.

The class information must be installed into the GObject system once per property, but this is handled automatically.

A property can be used only as direct data member of a type, inheriting from Glib::Object. A reference to the object must be passed to the constructor of the property.

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:

class MyCellRenderer : public Gtk::CellRenderer
{
public:
MyCellRenderer()
:
Glib::ObjectBase (typeid(MyCellRenderer)),
Gtk::CellRenderer(),
property_mybool (*this, "mybool", true),
property_myint_ (*this, "myint", 42)
{}
virtual ~MyCellRenderer() {}
// Glib::Property<> can be public,
Glib::Property<bool> property_mybool;
// or private, and combined with Glib::PropertyProxy<>.
Glib::PropertyProxy<int> property_myint() { return property_myint_.get_proxy(); }
private:
Glib::Property<int> property_myint_;
};

## Member Typedef Documentation

template <class T>

typedef T Glib::Property< T >::PropertyType

template <class T>

typedef Glib::Value<T> Glib::Property< T >::ValueType

## Constructor & Destructor Documentation

template <class 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.

template <class T>

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.

## Member Function Documentation

template <class T>

Glib::PropertyProxy<T> Glib::Property< T >::get_proxy | ( |  | ) |
| inline

Returns a proxy object that can be used to manipulate this property.

template <class T>

PropertyType Glib::Property< T >::get_value | ( |  | ) | const
| inline

Returns the value of the property.

template <class T>

Glib::Property< T >::operator PropertyType | ( |  | ) | const
| inline

Returns the value of the property.

template <class T>

Property<T>& Glib::Property< T >::operator= | ( | const PropertyType& | data | ) |
| inline

Sets the value of the property to data.

The object containing the property will be notified about the change.

template <class T>

void Glib::Property< T >::set_value | ( | const PropertyType& | data | ) |
| inline

Sets the value of the property to data.

The object containing the property will be notified about the change.