## GladeProperty GladeProperty — An interface to properties on the GladeWidget. |

## Synopsis

                        GladeProperty;
    GladeProperty *     glade_property_new                  (GladePropertyClass *klass,
                                                             GladeWidget *widget,
                                                             GValue *value);
    GladeProperty *     glade_property_dup                  (GladeProperty *template_prop,
                                                             GladeWidget *widget);
    void                glade_property_reset                (GladeProperty *property);
    void                glade_property_original_reset       (GladeProperty *property);
    gboolean            glade_property_default              (GladeProperty *property);
    gboolean            glade_property_original_default     (GladeProperty *property);
    gboolean            glade_property_equals_value         (GladeProperty *property,
                                                             const GValue *value);
    gboolean            glade_property_equals               (GladeProperty *property,
                                                             ...);
    gboolean            glade_property_set_value            (GladeProperty *property,
                                                             const GValue *value);
    gboolean            glade_property_set_va_list          (GladeProperty *property,
                                                             va_list vl);
    gboolean            glade_property_set                  (GladeProperty *property,
                                                             ...);
    void                glade_property_get_value            (GladeProperty *property,
                                                             GValue *value);
    void                glade_property_get_default          (GladeProperty *property,
                                                             GValue *value);
    void                glade_property_get_va_list          (GladeProperty *property,
                                                             va_list vl);
    void                glade_property_get                  (GladeProperty *property,
                                                             ...);
    void                glade_property_add_object           (GladeProperty *property,
                                                             GObject *object);
    void                glade_property_remove_object        (GladeProperty *property,
                                                             GObject *object);
    void                glade_property_sync                 (GladeProperty *property);
    void                glade_property_load                 (GladeProperty *property);
    void                glade_property_read                 (GladeProperty *property,
                                                             GladeProject *project,
                                                             GladeXmlNode *node);
    void                glade_property_write                (GladeProperty *property,
                                                             GladeXmlContext *context,
                                                             GladeXmlNode *node);
    void                glade_property_set_sensitive        (GladeProperty *property,
                                                             gboolean sensitive,
                                                             const gchar *reason);
    gboolean            glade_property_get_sensitive        (GladeProperty *property);
    void                glade_property_set_save_always      (GladeProperty *property,
                                                             gboolean setting);
    gboolean            glade_property_get_save_always      (GladeProperty *property);
    void                glade_property_set_enabled          (GladeProperty *property,
                                                             gboolean enabled);
    gboolean            glade_property_get_enabled          (GladeProperty *property);
    void                glade_property_i18n_set_comment     (GladeProperty *property,
                                                             const gchar *str);
    const gchar *       glade_property_i18n_get_comment     (GladeProperty *property);
    void                glade_property_i18n_set_translatable
                                                            (GladeProperty *property,
                                                             gboolean translatable);
    gboolean            glade_property_i18n_get_translatable
                                                            (GladeProperty *property);
    void                glade_property_push_superuser       (void);
    void                glade_property_pop_superuser        (void);
    gboolean            glade_property_superuser            (void);

## Object Hierarchy

      GObject
       +----GladeProperty

## Properties

      "class"                    gpointer              : Read / Write / Construct Only
      "enabled"                  gboolean              : Read / Write
      "i18n-comment"             gchar*                : Read / Write
      "i18n-context"             gchar*                : Read / Write
      "i18n-translatable"        gboolean              : Read / Write
      "sensitive"                gboolean              : Read / Write
      "state"                    gint                  : Read

## Signals

      "tooltip-changed"                                : Run Last
      "value-changed"                                  : Run Last

## Description

Every object property of every GladeWidget in every GladeProject has a GladeProperty to interface with, GladeProperty provides a means to handle properties in the runtime environment.

A GladeProperty can be seen as an instance of a GladePropertyClass, the GladePropertyClass describes how a GladeProperty will function.

## Details

### GladeProperty

    typedef struct _GladeProperty GladeProperty;

### glade_property_new ()

    GladeProperty *     glade_property_new                  (GladePropertyClass *klass,
                                                             GladeWidget *widget,
                                                             GValue *value);

Creates a GladeProperty of type `klass` for `widget` with `value`; if `value` is `NULL`, then the introspected default value for that property will be used.

`klass` : | A GladePropertyClass defining this property
`widget` : | The GladeWidget this property is created for
`value` : | The initial GValue of the property or `NULL` (the GladeProperty will assume ownership of `value`)
Returns : | The newly created GladeProperty

### glade_property_dup ()

    GladeProperty *     glade_property_dup                  (GladeProperty *template_prop,
                                                             GladeWidget *widget);

`template_prop` : | A GladeProperty
`widget` : | A GladeWidget
Returns : | A newly duplicated property based on the new widget

### glade_property_reset ()

    void                glade_property_reset                (GladeProperty *property);

Resets this property to its default value

`property` : | A GladeProperty

### glade_property_original_reset ()

    void                glade_property_original_reset       (GladeProperty *property);

Resets this property to its original default value

`property` : | A GladeProperty

### glade_property_default ()

    gboolean            glade_property_default              (GladeProperty *property);

`property` : | A GladeProperty
Returns : | Whether this property is at its default value

### glade_property_original_default ()

    gboolean            glade_property_original_default     (GladeProperty *property);

`property` : | A GladeProperty
Returns : | Whether this property is at its original default value

### glade_property_equals_value ()

    gboolean            glade_property_equals_value         (GladeProperty *property,
                                                             const GValue *value);

`property` : | a GladeProperty
`value` : | a GValue
Returns : | Whether this property is equal to the value provided

### glade_property_equals ()

    gboolean            glade_property_equals               (GladeProperty *property,
                                                             ...);

`property` : | a GladeProperty
`...` : | a provided property value
Returns : | Whether this property is equal to the value provided

### glade_property_set_value ()

    gboolean            glade_property_set_value            (GladeProperty *property,
                                                             const GValue *value);

Sets the property's value

`property` : | a GladeProperty
`value` : | a GValue
Returns : | Whether the property was successfully set.

### glade_property_set_va_list ()

    gboolean            glade_property_set_va_list          (GladeProperty *property,
                                                             va_list vl);

Sets the property's value

`property` : | a GladeProperty
`vl` : | a va_list with value to set

### glade_property_set ()

    gboolean            glade_property_set                  (GladeProperty *property,
                                                             ...);

Sets the property's value (in a convenient way)

`property` : | a GladeProperty
`...` : | the value to set

### glade_property_get_value ()

    void                glade_property_get_value            (GladeProperty *property,
                                                             GValue *value);

Retrieve the property value

`property` : | a GladeProperty
`value` : | a GValue

### glade_property_get_default ()

    void                glade_property_get_default          (GladeProperty *property,
                                                             GValue *value);

Retrieve the default property value

`property` : | a GladeProperty
`value` : | a GValue

### glade_property_get_va_list ()

    void                glade_property_get_va_list          (GladeProperty *property,
                                                             va_list vl);

Retrieve the property value

`property` : | a GladeProperty
`vl` : | a va_list

### glade_property_get ()

    void                glade_property_get                  (GladeProperty *property,
                                                             ...);

Retrieve the property value

`property` : | a GladeProperty
`...` : | An address to store the value

### glade_property_add_object ()

    void                glade_property_add_object           (GladeProperty *property,
                                                             GObject *object);

Adds `object` to the object list in `property`.

Note: This function expects `property` to be a GladeParamSpecObjects or GParamSpecObject type property.

`property` : | a GladeProperty
`object` : | The GObject to add

### glade_property_remove_object ()

    void                glade_property_remove_object        (GladeProperty *property,
                                                             GObject *object);

Removes `object` from the object list in `property`.

Note: This function expects `property` to be a GladeParamSpecObjects or GParamSpecObject type property.

`property` : | a GladeProperty
`object` : | The GObject to add

### glade_property_sync ()

    void                glade_property_sync                 (GladeProperty *property);

Synchronize the object with this property

`property` : | a GladeProperty

### glade_property_load ()

    void                glade_property_load                 (GladeProperty *property);

Loads the value of `property` from the coresponding object instance

`property` : | a GladeProperty

### glade_property_read ()

    void                glade_property_read                 (GladeProperty *property,
                                                             GladeProject *project,
                                                             GladeXmlNode *node);

Read the value and any attributes for `property` from `node`, assumes `property` is being loaded for `project`

Note that object values will only be resolved after the project is completely loaded

`property` : | a GladeProperty or NULL
`project` : | the GladeProject
`node` : | the GladeXmlNode to read, will either be a 'widget' node or a 'child' node for packing properties.

### glade_property_write ()

    void                glade_property_write                (GladeProperty *property,
                                                             GladeXmlContext *context,
                                                             GladeXmlNode *node);

Write `property` to `node`

`property` : | a GladeProperty
`context` : | A GladeXmlContext
`node` : | A GladeXmlNode

### glade_property_set_sensitive ()

    void                glade_property_set_sensitive        (GladeProperty *property,
                                                             gboolean sensitive,
                                                             const gchar *reason);

### glade_property_get_sensitive ()

    gboolean            glade_property_get_sensitive        (GladeProperty *property);

### glade_property_set_save_always ()

    void                glade_property_set_save_always      (GladeProperty *property,
                                                             gboolean setting);

Sets whether this property should be special cased to always be saved regardless of its default value. (used for some special cases like properties that are assigned initial values in composite widgets or derived widget code).

`property` : | A GladeProperty
`setting` : | the value to set

### glade_property_get_save_always ()

    gboolean            glade_property_get_save_always      (GladeProperty *property);

`property` : | A GladeProperty
Returns : | whether this property is special cased to always be saved regardless of its default value.

### glade_property_set_enabled ()

    void                glade_property_set_enabled          (GladeProperty *property,
                                                             gboolean enabled);

### glade_property_get_enabled ()

    gboolean            glade_property_get_enabled          (GladeProperty *property);

### glade_property_i18n_set_comment ()

    void                glade_property_i18n_set_comment     (GladeProperty *property,
                                                             const gchar *str);

### glade_property_i18n_get_comment ()

    const gchar *       glade_property_i18n_get_comment     (GladeProperty *property);

### glade_property_i18n_set_translatable ()

    void                glade_property_i18n_set_translatable
                                                            (GladeProperty *property,
                                                             gboolean translatable);

### glade_property_i18n_get_translatable ()

    gboolean            glade_property_i18n_get_translatable
                                                            (GladeProperty *property);

### glade_property_push_superuser ()

    void                glade_property_push_superuser       (void);

### glade_property_pop_superuser ()

    void                glade_property_pop_superuser        (void);

### glade_property_superuser ()

    gboolean            glade_property_superuser            (void);

## Property Details

### The `"class"` property

      "class"                    gpointer              : Read / Write / Construct Only

The GladePropertyClass for this property.

### The `"enabled"` property

      "enabled"                  gboolean              : Read / Write

If the property is optional, this is its enabled state.

Default value: TRUE

### The `"i18n-comment"` property

      "i18n-comment"             gchar*                : Read / Write

Comment for translators.

Default value: NULL

### The `"i18n-context"` property

      "i18n-context"             gchar*                : Read / Write

Context for translation.

Default value: NULL

### The `"i18n-translatable"` property

      "i18n-translatable"        gboolean              : Read / Write

Whether this property is translatable.

Default value: TRUE

### The `"sensitive"` property

      "sensitive"                gboolean              : Read / Write

This gives backends control to set property sensitivity.

Default value: TRUE

### The `"state"` property

      "state"                    gint                  : Read

Priority information for the property editor to act on.

Allowed values: >= 0

Default value: 0

## Signal Details

### The `"tooltip-changed"` signal

    void                user_function                      (GladeProperty *gladeproperty,
                                                            gchar         *arg1,
                                                            gchar         *arg2,
                                                            gchar         *arg3,
                                                            gpointer       user_data)          : Run Last

### The `"value-changed"` signal

    void                user_function                      (GladeProperty *gladeproperty,
                                                            gpointer       arg1,
                                                            gpointer       arg2,
                                                            gpointer       user_data)          : Run Last