## GladePropertyClass

GladePropertyClass — Property Class-wide metadata.

## Synopsis

    #define             GPC_OBJECT_DELIMITER
    #define             GPC_PROPERTY_NAMELEN
                        GladePropertyClass;
    GladePropertyClass * glade_property_class_new           (GladeWidgetAdaptor *adaptor,
                                                             const gchar *id);
    GladePropertyClass * glade_property_class_new_from_spec (GladeWidgetAdaptor *adaptor,
                                                             GParamSpec *spec);
    GladePropertyClass * glade_property_class_clone         (GladePropertyClass *property_class,
                                                             gboolean reset_version);
    void                glade_property_class_free           (GladePropertyClass *property_class);
    gboolean            glade_property_class_is_visible     (GladePropertyClass *property_class);
    gboolean            glade_property_class_is_object      (GladePropertyClass *property_class);
    GValue *            glade_property_class_make_gvalue_from_string
                                                            (GladePropertyClass *property_class,
                                                             const gchar *string,
                                                             GladeProject *project);
    gchar *             glade_property_class_make_string_from_gvalue
                                                            (GladePropertyClass *property_class,
                                                             const GValue *value);
    GValue *            glade_property_class_make_gvalue_from_vl
                                                            (GladePropertyClass *property_class,
                                                             va_list vl);
    void                glade_property_class_set_vl_from_gvalue
                                                            (GladePropertyClass *klass,
                                                             GValue *value,
                                                             va_list vl);
    GValue *            glade_property_class_make_gvalue    (GladePropertyClass *klass,
                                                             ...);
    void                glade_property_class_get_from_gvalue
                                                            (GladePropertyClass *klass,
                                                             GValue *value,
                                                             ...);
    gboolean            glade_property_class_update_from_node
                                                            (GladeXmlNode *node,
                                                             GType object_type,
                                                             GladePropertyClass **property_class,
                                                             const gchar *domain);
    GtkAdjustment *     glade_property_class_make_adjustment
                                                            (GladePropertyClass *property_class);
    gboolean            glade_property_class_match          (GladePropertyClass *klass,
                                                             GladePropertyClass *comp);
    gboolean            glade_property_class_void_value     (GladePropertyClass *klass,
                                                             GValue *value);

## Description

GladePropertyClass is a structure based on a GParamSpec and parameters from the Glade catalog files and describes how properties are to be handled in Glade; it also provides an interface to convert GValue to strings and va_lists etc (back and forth).

## Details

### GPC_OBJECT_DELIMITER

    #define GPC_OBJECT_DELIMITER ", "

### GPC_PROPERTY_NAMELEN

    #define GPC_PROPERTY_NAMELEN 512  /* Enough space for a property name I think */

### GladePropertyClass

    typedef struct _GladePropertyClass GladePropertyClass;

### glade_property_class_new ()

    GladePropertyClass * glade_property_class_new           (GladeWidgetAdaptor *adaptor,
                                                             const gchar *id);

`adaptor` : | The GladeWidgetAdaptor to create this property for
`id` : | the id for the new property class
Returns : | a new GladePropertyClass

### glade_property_class_new_from_spec ()

    GladePropertyClass * glade_property_class_new_from_spec (GladeWidgetAdaptor *adaptor,
                                                             GParamSpec *spec);

`adaptor` : | A generic pointer (i.e. a GladeWidgetClass)
`spec` : | A GParamSpec
Returns : | a newly created GladePropertyClass based on `spec` or `NULL` if its unsupported.

### glade_property_class_clone ()

    GladePropertyClass * glade_property_class_clone         (GladePropertyClass *property_class,
                                                             gboolean reset_version);

`property_class` : | a GladePropertyClass
`reset_version` : | whether the introduction version should be reset in the clone
Returns : | a new GladePropertyClass cloned from `property_class`

### glade_property_class_free ()

    void                glade_property_class_free           (GladePropertyClass *property_class);

Frees `klass` and its associated memory.

`property_class` : | a GladePropertyClass

### glade_property_class_is_visible ()

    gboolean            glade_property_class_is_visible     (GladePropertyClass *property_class);

`property_class` : | A GladePropertyClass
Returns : | whether or not to show this property in the editor

### glade_property_class_is_object ()

    gboolean            glade_property_class_is_object      (GladePropertyClass *property_class);

`property_class` : | A GladePropertyClass
Returns : | whether or not this is an object property that refers to another object in this project.

### glade_property_class_make_gvalue_from_string ()

    GValue *            glade_property_class_make_gvalue_from_string
                                                            (GladePropertyClass *property_class,
                                                             const gchar *string,
                                                             GladeProject *project);

`property_class` : | A GladePropertyClass
`string` : | a string representation of this property
`project` : | the GladeProject that the property should be resolved for
Returns : | A GValue created based on the `property_class` and `string` criteria.

### glade_property_class_make_string_from_gvalue ()

    gchar *             glade_property_class_make_string_from_gvalue
                                                            (GladePropertyClass *property_class,
                                                             const GValue *value);

`property_class` : | A GladePropertyClass
`value` : | A GValue
Returns : | A newly allocated string representation of `value`

### glade_property_class_make_gvalue_from_vl ()

    GValue *            glade_property_class_make_gvalue_from_vl
                                                            (GladePropertyClass *property_class,
                                                             va_list vl);

`property_class` : | A GladePropertyClass
`vl` : | a va_list holding one argument of the correct type specified by `property_class`
Returns : | A GValue created based on the `property_class` and a `vl` arg of the correct type.

### glade_property_class_set_vl_from_gvalue ()

    void                glade_property_class_set_vl_from_gvalue
                                                            (GladePropertyClass *klass,
                                                             GValue *value,
                                                             va_list vl);

Sets `vl` from `value` based on `klass` criteria.

`klass` : | A GladePropertyClass
`value` : | A GValue to set
`vl` : | a va_list holding one argument of the correct type specified by `klass`

### glade_property_class_make_gvalue ()

    GValue *            glade_property_class_make_gvalue    (GladePropertyClass *klass,
                                                             ...);

`klass` : | A GladePropertyClass
`...` : | an argument of the correct type specified by `property_class`
Returns : | A GValue created based on the `property_class` and the provided argument.

### glade_property_class_get_from_gvalue ()

    void                glade_property_class_get_from_gvalue
                                                            (GladePropertyClass *klass,
                                                             GValue *value,
                                                             ...);

Assignes the provided return location to `value`

`klass` : | A GladePropertyClass
`value` : | A GValue to set
`...` : | a return location of the correct type

### glade_property_class_update_from_node ()

    gboolean            glade_property_class_update_from_node
                                                            (GladeXmlNode *node,
                                                             GType object_type,
                                                             GladePropertyClass **property_class,
                                                             const gchar *domain);

Updates the `property_class` with the contents of the node in the xml file. Only the values found in the xml file are overridden.

`node` : | the property node
`object_type` : | the GType of the owning object
`property_class` : | a pointer to the property class
`domain` : | the domain to translate catalog strings from
Returns : | `TRUE` on success. `property_class` is set to NULL if the property has Disabled="TRUE".

### glade_property_class_make_adjustment ()

    GtkAdjustment *     glade_property_class_make_adjustment
                                                            (GladePropertyClass *property_class);

Creates and appropriate GtkAdjustment for use in the editor

`property_class` : | a pointer to the property class
Returns : | An appropriate GtkAdjustment for use in the Property editor

### glade_property_class_match ()

    gboolean            glade_property_class_match          (GladePropertyClass *klass,
                                                             GladePropertyClass *comp);

`klass` : | a GladePropertyClass
`comp` : | a GladePropertyClass
Returns : | whether `klass` and `comp` are a match or not (properties in seperate decendant heirarchies that have the same name are not matches).

### glade_property_class_void_value ()

    gboolean            glade_property_class_void_value     (GladePropertyClass *klass,
                                                             GValue *value);

`klass` : | a GladePropertyClass
Returns : | Whether `value` for this `klass` is voided; a voided value can be a `NULL` value for boxed or object type param specs.