## GladeWidget

GladeWidget — An object wrapper for the Glade runtime environment.

## Synopsis

                        GladeWidget;
    GladeWidget *       glade_widget_get_from_gobject       (gpointer object);
    void                glade_widget_add_child              (GladeWidget *parent,
                                                             GladeWidget *child,
                                                             gboolean at_mouse);
    void                glade_widget_remove_child           (GladeWidget *parent,
                                                             GladeWidget *child);
    void                glade_widget_replace                (GladeWidget *parent,
                                                             GObject *old_object,
                                                             GObject *new_object);
    void                glade_widget_rebuild                (GladeWidget *gwidget);
    GladeWidget *       glade_widget_read                   (GladeProject *project,
                                                             GladeWidget *parent,
                                                             GladeXmlNode *node,
                                                             const gchar *internal);
    void                glade_widget_write                  (GladeWidget *widget,
                                                             GladeXmlContext *context,
                                                             GladeXmlNode *node);
    void                glade_widget_read_child             (GladeWidget *widget,
                                                             GladeXmlNode *node);
    void                glade_widget_write_child            (GladeWidget *widget,
                                                             GladeWidget *child,
                                                             GladeXmlContext *context,
                                                             GladeXmlNode *node);
    void                glade_widget_write_placeholder      (GladeWidget *parent,
                                                             GObject *object,
                                                             GladeXmlContext *context,
                                                             GladeXmlNode *node);
    void                glade_widget_write_special_child_prop
                                                            (GladeWidget *parent,
                                                             GObject *object,
                                                             GladeXmlContext *context,
                                                             GladeXmlNode *node);
    GladeEditorProperty * glade_widget_create_editor_property
                                                            (GladeWidget *widget,
                                                             const gchar *property,
                                                             gboolean packing,
                                                             gboolean use_command);
    void                glade_widget_set_child_type_from_node
                                                            (GladeWidget *parent,
                                                             GObject *child,
                                                             GladeXmlNode *node);
    GladeWidget *       glade_widget_dup                    (GladeWidget *template_widget,
                                                             gboolean exact);
    void                glade_widget_copy_signals           (GladeWidget *widget,
                                                             GladeWidget *template_widget);
    void                glade_widget_copy_properties        (GladeWidget *widget,
                                                             GladeWidget *template_widget,
                                                             gboolean copy_parentless,
                                                             gboolean exact);
    void                glade_widget_set_packing_properties (GladeWidget *widget,
                                                             GladeWidget *container);
    GladeProperty *     glade_widget_get_property           (GladeWidget *widget,
                                                             const gchar *id_property);
    GladeProperty *     glade_widget_get_pack_property      (GladeWidget *widget,
                                                             const gchar *id_property);
    GList *             glade_widget_dup_properties         (GladeWidget *dest_widget,
                                                             GList *template_props,
                                                             gboolean as_load,
                                                             gboolean copy_parentless,
                                                             gboolean exact);
    void                glade_widget_remove_property        (GladeWidget *widget,
                                                             const gchar *id_property);
    void                glade_widget_show                   (GladeWidget *widget);
    void                glade_widget_hide                   (GladeWidget *widget);
    void                glade_widget_add_signal_handler     (GladeWidget *widget,
                                                             GladeSignal *signal_handler);
    void                glade_widget_remove_signal_handler  (GladeWidget *widget,
                                                             GladeSignal *signal_handler);
    void                glade_widget_change_signal_handler  (GladeWidget *widget,
                                                             GladeSignal *old_signal_handler,
                                                             GladeSignal *new_signal_handler);
    GPtrArray *         glade_widget_list_signal_handlers   (GladeWidget *widget,
                                                             const gchar *signal_name);
    gboolean            glade_widget_has_decendant          (GladeWidget *widget,
                                                             GType type);
    gboolean            glade_widget_event                  (GladeWidget *gwidget,
                                                             GdkEvent *event);
    gboolean            glade_widget_placeholder_relation   (GladeWidget *parent,
                                                             GladeWidget *widget);
    GladeWidgetAction * glade_widget_get_action             (GladeWidget *widget,
                                                             const gchar *action_path);
    GladeWidgetAction * glade_widget_get_pack_action        (GladeWidget *widget,
                                                             const gchar *action_path);
    gboolean            glade_widget_set_action_sensitive   (GladeWidget *widget,
                                                             const gchar *action_path,
                                                             gboolean sensitive);
    gboolean            glade_widget_set_pack_action_sensitive
                                                            (GladeWidget *widget,
                                                             const gchar *action_path,
                                                             gboolean sensitive);
    void                glade_widget_remove_action          (GladeWidget *widget,
                                                             const gchar *action_path);
    void                glade_widget_remove_pack_action     (GladeWidget *widget,
                                                             const gchar *action_path);
    void                glade_widget_add_prop_ref           (GladeWidget *widget,
                                                             GladeProperty *property);
    void                glade_widget_remove_prop_ref        (GladeWidget *widget,
                                                             GladeProperty *property);
    void                glade_widget_object_set_property    (GladeWidget *widget,
                                                             const gchar *property_name,
                                                             const GValue *value);
    void                glade_widget_object_get_property    (GladeWidget *widget,
                                                             const gchar *property_name,
                                                             GValue *value);
    void                glade_widget_child_set_property     (GladeWidget *widget,
                                                             GladeWidget *child,
                                                             const gchar *property_name,
                                                             const GValue *value);
    void                glade_widget_child_get_property     (GladeWidget *widget,
                                                             GladeWidget *child,
                                                             const gchar *property_name,
                                                             GValue *value);
    gboolean            glade_widget_property_get           (GladeWidget *widget,
                                                             const gchar *id_property,
                                                             ...);
    gboolean            glade_widget_property_set           (GladeWidget *widget,
                                                             const gchar *id_property,
                                                             ...);
    gboolean            glade_widget_pack_property_get      (GladeWidget *widget,
                                                             const gchar *id_property,
                                                             ...);
    gboolean            glade_widget_pack_property_set      (GladeWidget *widget,
                                                             const gchar *id_property,
                                                             ...);
    gboolean            glade_widget_property_reset         (GladeWidget *widget,
                                                             const gchar *id_property);
    gboolean            glade_widget_pack_property_reset    (GladeWidget *widget,
                                                             const gchar *id_property);
    gboolean            glade_widget_property_default       (GladeWidget *widget,
                                                             const gchar *id_property);
    gboolean            glade_widget_property_original_default
                                                            (GladeWidget *widget,
                                                             const gchar *id_property);
    gboolean            glade_widget_pack_property_default  (GladeWidget *widget,
                                                             const gchar *id_property);
    gboolean            glade_widget_property_set_sensitive (GladeWidget *widget,
                                                             const gchar *id_property,
                                                             gboolean sensitive,
                                                             const gchar *reason);
    gboolean            glade_widget_pack_property_set_sensitive
                                                            (GladeWidget *widget,
                                                             const gchar *id_property,
                                                             gboolean sensitive,
                                                             const gchar *reason);
    gboolean            glade_widget_property_set_enabled   (GladeWidget *widget,
                                                             const gchar *id_property,
                                                             gboolean enabled);
    gboolean            glade_widget_pack_property_set_enabled
                                                            (GladeWidget *widget,
                                                             const gchar *id_property,
                                                             gboolean enabled);
    gboolean            glade_widget_property_set_save_always
                                                            (GladeWidget *widget,
                                                             const gchar *id_property,
                                                             gboolean setting);
    gboolean            glade_widget_pack_property_set_save_always
                                                            (GladeWidget *widget,
                                                             const gchar *id_property,
                                                             gboolean setting);
    gchar *             glade_widget_property_string        (GladeWidget *widget,
                                                             const gchar *id_property,
                                                             const GValue *value);
    gchar *             glade_widget_pack_property_string   (GladeWidget *widget,
                                                             const gchar *id_property,
                                                             const GValue *value);
    void                glade_widget_set_name               (GladeWidget *widget,
                                                             const gchar *name);
    const gchar *       glade_widget_get_name               (GladeWidget *widget);
    void                glade_widget_set_internal           (GladeWidget *widget,
                                                             const gchar *internal);
    const gchar *       glade_widget_get_internal           (GladeWidget *widget);
    void                glade_widget_set_object             (GladeWidget *gwidget,
                                                             GObject *new_object);
    GObject *           glade_widget_get_object             (GladeWidget *widget);
    void                glade_widget_set_project            (GladeWidget *widget,
                                                             GladeProject *project);
    GladeProject *      glade_widget_get_project            (GladeWidget *widget);
    GladeWidgetAdaptor * glade_widget_get_adaptor           (GladeWidget *widget);
    GladeWidget *       glade_widget_get_parent             (GladeWidget *widget);
    void                glade_widget_set_parent             (GladeWidget *widget,
                                                             GladeWidget *parent);
    gboolean            glade_widget_superuser              (void);
    void                glade_widget_push_superuser         (void);
    void                glade_widget_pop_superuser          (void);

## Object Hierarchy

      GObject
       +----GladeWidget
             +----GladeFixed

## Properties

      "adaptor"                  GladeGObjectAdaptor*  : Read / Write / Construct Only
      "anarchist"                gboolean              : Read / Write / Construct Only
      "internal"                 gchar*                : Read / Write / Construct
      "internal-name"            gchar*                : Write / Construct Only
      "name"                     gchar*                : Read / Write / Construct
      "object"                   GObject*              : Read / Write / Construct
      "parent"                   GladeWidget*          : Read / Write / Construct
      "project"                  GladeProject*         : Read / Write / Construct
      "properties"               gpointer              : Read / Write / Construct Only
      "reason"                   gint                  : Write / Construct Only
      "support-warning"          gchar*                : Read
      "template"                 GladeWidget*          : Write / Construct Only
      "template-exact"           gboolean              : Write / Construct Only
      "toplevel-height"          gint                  : Read / Write
      "toplevel-width"           gint                  : Read / Write

## Signals

      "add-signal-handler"                             : Run Last
      "button-press-event"                             : Run Last
      "button-release-event"                           : Run Last
      "change-signal-handler"                          : Run Last
      "motion-notify-event"                            : Run Last
      "remove-signal-handler"                          : Run Last
      "support-changed"                                : Run Last

## Description

GladeWidget is the proxy between the instantiated runtime object and the Glade core metadata. This api will be mostly usefull for its convenience api for getting and setting properties (mostly from the plugin).

## Details

### GladeWidget

    typedef struct _GladeWidget GladeWidget;

### glade_widget_get_from_gobject ()

    GladeWidget *       glade_widget_get_from_gobject       (gpointer object);

### glade_widget_add_child ()

    void                glade_widget_add_child              (GladeWidget *parent,
                                                             GladeWidget *child,
                                                             gboolean at_mouse);

Adds `child` to `parent` in a generic way for this GladeWidget parent.

`parent` : | A GladeWidget
`child` : | the GladeWidget to add
`at_mouse` : | whether the added widget should be added at the current mouse position

### glade_widget_remove_child ()

    void                glade_widget_remove_child           (GladeWidget *parent,
                                                             GladeWidget *child);

Removes `child` from `parent` in a generic way for this GladeWidget parent.

`parent` : | A GladeWidget
`child` : | the GladeWidget to add

### glade_widget_replace ()

    void                glade_widget_replace                (GladeWidget *parent,
                                                             GObject *old_object,
                                                             GObject *new_object);

Replaces a GObject with another GObject inside a GObject which behaves as a container.

Note that both GObjects must be owned by a GladeWidget.

`old_object` : | a GObject
`new_object` : | a GObject

### glade_widget_rebuild ()

    void                glade_widget_rebuild                (GladeWidget *gwidget);

Replaces the current widget instance with a new one while preserving all properties children and takes care of reparenting.

`gwidget` : | a GladeWidget

### glade_widget_read ()

    GladeWidget *       glade_widget_read                   (GladeProject *project,
                                                             GladeWidget *parent,
                                                             GladeXmlNode *node,
                                                             const gchar *internal);

`project` : | a GladeProject
`parent` : | The parent GladeWidget or `NULL`
`node` : | a GladeXmlNode
Returns : | a new GladeWidget for `project`, based on `node`

### glade_widget_write ()

    void                glade_widget_write                  (GladeWidget *widget,
                                                             GladeXmlContext *context,
                                                             GladeXmlNode *node);

Recursively writes out `widget` and its children and appends the created GladeXmlNode to `node`.

`widget` : | The GladeWidget
`context` : | A GladeXmlContext
`node` : | A GladeXmlNode

### glade_widget_read_child ()

    void                glade_widget_read_child             (GladeWidget *widget,
                                                             GladeXmlNode *node);

Reads in a child widget from the xml (handles 'child' tag)

`widget` : | A GladeWidget
`node` : | a GladeXmlNode

### glade_widget_write_child ()

    void                glade_widget_write_child            (GladeWidget *widget,
                                                             GladeWidget *child,
                                                             GladeXmlContext *context,
                                                             GladeXmlNode *node);

Writes out a widget to the xml, takes care of packing properties and special child types.

`widget` : | A GladeWidget
`child` : | The child GladeWidget to write
`context` : | A GladeXmlContext
`node` : | A GladeXmlNode

### glade_widget_write_placeholder ()

    void                glade_widget_write_placeholder      (GladeWidget *parent,
                                                             GObject *object,
                                                             GladeXmlContext *context,
                                                             GladeXmlNode *node);

Writes out a placeholder to the xml

`parent` : | The parent GladeWidget
`object` : | A GladePlaceHolder
`context` : | A GladeXmlContext
`node` : | A GladeXmlNode

### glade_widget_write_special_child_prop ()

    void                glade_widget_write_special_child_prop
                                                            (GladeWidget *parent,
                                                             GObject *object,
                                                             GladeXmlContext *context,
                                                             GladeXmlNode *node);

### glade_widget_create_editor_property ()

    GladeEditorProperty * glade_widget_create_editor_property
                                                            (GladeWidget *widget,
                                                             const gchar *property,
                                                             gboolean packing,
                                                             gboolean use_command);

This is a convenience function to create a GladeEditorProperty corresponding to `property`

`widget` : | A GladeWidget
`property` : | The widget's property
`packing` : | whether `property` indicates a packing property or not.
`use_command` : | Whether the undo/redo stack applies here.
Returns : | A newly created and connected GladeEditorProperty

### glade_widget_set_child_type_from_node ()

    void                glade_widget_set_child_type_from_node
                                                            (GladeWidget *parent,
                                                             GObject *child,
                                                             GladeXmlNode *node);

### glade_widget_dup ()

    GladeWidget *       glade_widget_dup                    (GladeWidget *template_widget,
                                                             gboolean exact);

Creates a deep copy of GladeWidget. if `exact` is specified, the widget name is preserved and signals are carried over (this is used to maintain names & signals in Cut/Paste context as opposed to Copy/Paste contexts).

`template_widget` : | a GladeWidget
`exact` : | whether or not to creat an exact duplicate
Returns : | The newly created GladeWidget

### glade_widget_copy_signals ()

    void                glade_widget_copy_signals           (GladeWidget *widget,
                                                             GladeWidget *template_widget);

Sets signals in `widget` based on the values of matching signals in `template_widget`

`widget` : | a 'dest' GladeWidget
`template_widget` : | a 'src' GladeWidget

### glade_widget_copy_properties ()

    void                glade_widget_copy_properties        (GladeWidget *widget,
                                                             GladeWidget *template_widget,
                                                             gboolean copy_parentless,
                                                             gboolean exact);

Sets properties in `widget` based on the values of matching properties in `template_widget`

`widget` : | a 'dest' GladeWidget
`template_widget` : | a 'src' GladeWidget
`copy_parentless` : | whether to copy reffed widgets at all
`exact` : | whether to copy reffed widgets exactly

### glade_widget_set_packing_properties ()

    void                glade_widget_set_packing_properties (GladeWidget *widget,
                                                             GladeWidget *container);

Generates the packing_properties list of the widget, given the class of the container we are adding the widget to. If the widget already has packing_properties, but the container has changed, the current list is freed and replaced.

`widget` : | A GladeWidget
`container` : | The parent GladeWidget

### glade_widget_get_property ()

    GladeProperty *     glade_widget_get_property           (GladeWidget *widget,
                                                             const gchar *id_property);

`widget` : | a GladeWidget
`id_property` : | a string naming a GladeProperty
Returns : | the GladeProperty in `widget` named `id_property`

### glade_widget_get_pack_property ()

    GladeProperty *     glade_widget_get_pack_property      (GladeWidget *widget,
                                                             const gchar *id_property);

`widget` : | a GladeWidget
`id_property` : | a string naming a GladeProperty
Returns : | the GladeProperty in `widget` named `id_property`

### glade_widget_dup_properties ()

    GList *             glade_widget_dup_properties         (GladeWidget *dest_widget,
                                                             GList *template_props,
                                                             gboolean as_load,
                                                             gboolean copy_parentless,
                                                             gboolean exact);

Copies a list of properties, if `as_load` is specified, then properties that are not saved to the glade file are ignored.

`dest_widget` : | the widget we are copying properties for
`template_props` : | the GladeProperty list to copy
`as_load` : | whether to behave as if loading the project
`copy_parentless` : | whether to copy reffed widgets at all
`exact` : | whether to copy reffed widgets exactly
Returns : | A newly allocated GList of new GladeProperty objects.

### glade_widget_remove_property ()

    void                glade_widget_remove_property        (GladeWidget *widget,
                                                             const gchar *id_property);

Removes the GladeProperty indicated by `id_property` from `widget` (this is intended for use in the plugin, to remove properties from composite children that dont make sence to allow the user to specify, notably - properties that are proxied through the composite widget's properties or style properties).

`widget` : | A GladeWidget
`id_property` : | the name of the property

### glade_widget_show ()

    void                glade_widget_show                   (GladeWidget *widget);

Display `widget` in it's project's GladeDesignView

`widget` : | A GladeWidget

### glade_widget_hide ()

    void                glade_widget_hide                   (GladeWidget *widget);

Hide `widget`

`widget` : | A GladeWidget

### glade_widget_add_signal_handler ()

    void                glade_widget_add_signal_handler     (GladeWidget *widget,
                                                             GladeSignal *signal_handler);

Adds a signal handler for `widget`

`widget` : | A GladeWidget
`signal_handler` : | The GladeSignal

### glade_widget_remove_signal_handler ()

    void                glade_widget_remove_signal_handler  (GladeWidget *widget,
                                                             GladeSignal *signal_handler);

Removes a signal handler from `widget`

`widget` : | A GladeWidget
`signal_handler` : | The GladeSignal

### glade_widget_change_signal_handler ()

    void                glade_widget_change_signal_handler  (GladeWidget *widget,
                                                             GladeSignal *old_signal_handler,
                                                             GladeSignal *new_signal_handler);

Changes a GladeSignal on `widget`

`widget` : | A GladeWidget
`old_signal_handler` : | the old GladeSignal
`new_signal_handler` : | the new GladeSignal

### glade_widget_list_signal_handlers ()

    GPtrArray *         glade_widget_list_signal_handlers   (GladeWidget *widget,
                                                             const gchar *signal_name);

`widget` : | a GladeWidget
`signal_name` : | the name of the signal
Returns : | A GPtrArray of GladeSignal for `signal_name`

### glade_widget_has_decendant ()

    gboolean            glade_widget_has_decendant          (GladeWidget *widget,
                                                             GType type);

`widget` : | a GladeWidget
`type` : | a GType
Returns : | whether this GladeWidget has any decendants of type `type` or any decendants that implement the `type` interface

### glade_widget_event ()

    gboolean            glade_widget_event                  (GladeWidget *gwidget,
                                                             GdkEvent *event);

Feed an event to be handled on the project GladeWidget hierarchy.

`event` : | A GdkEvent
Returns : | whether the event was handled or not.

### glade_widget_placeholder_relation ()

    gboolean            glade_widget_placeholder_relation   (GladeWidget *parent,
                                                             GladeWidget *widget);

Returns whether placeholders should be used in operations concerning this parent & child.

Currently that criteria is whether `parent` is a GtkContainer, `widget` is a GtkWidget and the parent adaptor has been marked to use placeholders.

`parent` : | A GladeWidget
`widget` : | The child GladeWidget
Returns : | whether to use placeholders for this relationship.

### glade_widget_get_action ()

    GladeWidgetAction * glade_widget_get_action             (GladeWidget *widget,
                                                             const gchar *action_path);

Returns a GladeWidgetAction object indentified by `action_path`.

`widget` : | a GladeWidget
`action_path` : | a full action path including groups
Returns : | the action or NULL if not found.

### glade_widget_get_pack_action ()

    GladeWidgetAction * glade_widget_get_pack_action        (GladeWidget *widget,
                                                             const gchar *action_path);

Returns a GladeWidgetAction object indentified by `action_path`.

`widget` : | a GladeWidget
`action_path` : | a full action path including groups
Returns : | the action or NULL if not found.

### glade_widget_set_action_sensitive ()

    gboolean            glade_widget_set_action_sensitive   (GladeWidget *widget,
                                                             const gchar *action_path,
                                                             gboolean sensitive);

Sets the sensitivity of `action_path` in `widget`

`widget` : | a GladeWidget
`action_path` : | a full action path including groups
`sensitive` : | setting sensitive or insensitive
Returns : | whether `action_path` was found or not.

### glade_widget_set_pack_action_sensitive ()

    gboolean            glade_widget_set_pack_action_sensitive
                                                            (GladeWidget *widget,
                                                             const gchar *action_path,
                                                             gboolean sensitive);

Sets the sensitivity of `action_path` in `widget`

`widget` : | a GladeWidget
`action_path` : | a full action path including groups
`sensitive` : | setting sensitive or insensitive
Returns : | whether `action_path` was found or not.

### glade_widget_remove_action ()

    void                glade_widget_remove_action          (GladeWidget *widget,
                                                             const gchar *action_path);

Remove an action.

`widget` : | a GladeWidget
`action_path` : | a full action path including groups

### glade_widget_remove_pack_action ()

    void                glade_widget_remove_pack_action     (GladeWidget *widget,
                                                             const gchar *action_path);

Remove a packing action.

`widget` : | a GladeWidget
`action_path` : | a full action path including groups

### glade_widget_add_prop_ref ()

    void                glade_widget_add_prop_ref           (GladeWidget *widget,
                                                             GladeProperty *property);

Adds `property` to `widget` 's list of referenced properties.

Note: this is used to track properties on other objects that reffer to this object.

`widget` : | A GladeWidget
`property` : | the GladeProperty

### glade_widget_remove_prop_ref ()

    void                glade_widget_remove_prop_ref        (GladeWidget *widget,
                                                             GladeProperty *property);

Removes `property` from `widget` 's list of referenced properties.

Note: this is used to track properties on other objects that reffer to this object.

`widget` : | A GladeWidget
`property` : | the GladeProperty

### glade_widget_object_set_property ()

    void                glade_widget_object_set_property    (GladeWidget *widget,
                                                             const gchar *property_name,
                                                             const GValue *value);

This function applies `value` to the property `property_name` on the runtime object of `widget`.

`widget` : | A GladeWidget
`property_name` : | The property identifier
`value` : | The GValue

### glade_widget_object_get_property ()

    void                glade_widget_object_get_property    (GladeWidget *widget,
                                                             const gchar *property_name,
                                                             GValue *value);

This function retrieves the value of the property `property_name` on the runtime object of `widget` and sets it in `value`.

`widget` : | A GladeWidget
`property_name` : | The property identifier
`value` : | The GValue

### glade_widget_child_set_property ()

    void                glade_widget_child_set_property     (GladeWidget *widget,
                                                             GladeWidget *child,
                                                             const gchar *property_name,
                                                             const GValue *value);

Sets `child`'s packing property identified by `property_name` to `value`.

`widget` : | A GladeWidget
`child` : | The GladeWidget child
`property_name` : | The id of the property
`value` : | The `GValue`

### glade_widget_child_get_property ()

    void                glade_widget_child_get_property     (GladeWidget *widget,
                                                             GladeWidget *child,
                                                             const gchar *property_name,
                                                             GValue *value);

Gets `child`'s packing property identified by `property_name`.

`widget` : | A GladeWidget
`child` : | The GladeWidget child
`property_name` : | The id of the property
`value` : | The `GValue`

### glade_widget_property_get ()

    gboolean            glade_widget_property_get           (GladeWidget *widget,
                                                             const gchar *id_property,
                                                             ...);

Gets the value of `id_property` in `widget`

`widget` : | a GladeWidget
`id_property` : | a string naming a GladeProperty
`...` : | The return location for the value of the said GladeProperty
Returns : | whether `id_property` was found or not.

### glade_widget_property_set ()

    gboolean            glade_widget_property_set           (GladeWidget *widget,
                                                             const gchar *id_property,
                                                             ...);

Sets the value of `id_property` in `widget`

`widget` : | a GladeWidget
`id_property` : | a string naming a GladeProperty
`...` : | A value of the correct type for the said GladeProperty
Returns : | whether `id_property` was found or not.

### glade_widget_pack_property_get ()

    gboolean            glade_widget_pack_property_get      (GladeWidget *widget,
                                                             const gchar *id_property,
                                                             ...);

Gets the value of `id_property` in `widget` packing properties

`widget` : | a GladeWidget
`id_property` : | a string naming a GladeProperty
`...` : | The return location for the value of the said GladeProperty
Returns : | whether `id_property` was found or not.

### glade_widget_pack_property_set ()

    gboolean            glade_widget_pack_property_set      (GladeWidget *widget,
                                                             const gchar *id_property,
                                                             ...);

Sets the value of `id_property` in `widget` packing properties

`widget` : | a GladeWidget
`id_property` : | a string naming a GladeProperty
`...` : | The return location for the value of the said GladeProperty
Returns : | whether `id_property` was found or not.

### glade_widget_property_reset ()

    gboolean            glade_widget_property_reset         (GladeWidget *widget,
                                                             const gchar *id_property);

Resets `id_property` in `widget` to it's default value

`widget` : | a GladeWidget
`id_property` : | a string naming a GladeProperty
Returns : | whether `id_property` was found or not.

### glade_widget_pack_property_reset ()

    gboolean            glade_widget_pack_property_reset    (GladeWidget *widget,
                                                             const gchar *id_property);

Resets `id_property` in `widget`'s packing properties to it's default value

`widget` : | a GladeWidget
`id_property` : | a string naming a GladeProperty
Returns : | whether `id_property` was found or not.

### glade_widget_property_default ()

    gboolean            glade_widget_property_default       (GladeWidget *widget,
                                                             const gchar *id_property);

`widget` : | a GladeWidget
`id_property` : | a string naming a GladeProperty
Returns : | whether whether `id_property` was found and is currently set to it's default value.

### glade_widget_property_original_default ()

    gboolean            glade_widget_property_original_default
                                                            (GladeWidget *widget,
                                                             const gchar *id_property);

`widget` : | a GladeWidget
`id_property` : | a string naming a GladeProperty
Returns : | whether whether `id_property` was found and is currently set to it's original default value.

### glade_widget_pack_property_default ()

    gboolean            glade_widget_pack_property_default  (GladeWidget *widget,
                                                             const gchar *id_property);

`widget` : | a GladeWidget
`id_property` : | a string naming a GladeProperty
Returns : | whether whether `id_property` was found and is currently set to it's default value.

### glade_widget_property_set_sensitive ()

    gboolean            glade_widget_property_set_sensitive (GladeWidget *widget,
                                                             const gchar *id_property,
                                                             gboolean sensitive,
                                                             const gchar *reason);

Sets the sensitivity of `id_property` in `widget`

`widget` : | a GladeWidget
`id_property` : | a string naming a GladeProperty
`sensitive` : | setting sensitive or insensitive
`reason` : | a description of why the user cant edit this property which will be used as a tooltip
Returns : | whether `id_property` was found or not.

### glade_widget_pack_property_set_sensitive ()

    gboolean            glade_widget_pack_property_set_sensitive
                                                            (GladeWidget *widget,
                                                             const gchar *id_property,
                                                             gboolean sensitive,
                                                             const gchar *reason);

Sets the sensitivity of `id_property` in `widget`'s packing properties.

`widget` : | a GladeWidget
`id_property` : | a string naming a GladeProperty
`sensitive` : | setting sensitive or insensitive
`reason` : | a description of why the user cant edit this property which will be used as a tooltip
Returns : | whether `id_property` was found or not.

### glade_widget_property_set_enabled ()

    gboolean            glade_widget_property_set_enabled   (GladeWidget *widget,
                                                             const gchar *id_property,
                                                             gboolean enabled);

Sets the enabled state of `id_property` in `widget`; this is used for optional properties.

`widget` : | a GladeWidget
`id_property` : | a string naming a GladeProperty
`enabled` : | setting enabled or disabled
Returns : | whether `id_property` was found or not.

### glade_widget_pack_property_set_enabled ()

    gboolean            glade_widget_pack_property_set_enabled
                                                            (GladeWidget *widget,
                                                             const gchar *id_property,
                                                             gboolean enabled);

Sets the enabled state of `id_property` in `widget`'s packing properties; this is used for optional properties.

`widget` : | a GladeWidget
`id_property` : | a string naming a GladeProperty
`enabled` : | setting enabled or disabled
Returns : | whether `id_property` was found or not.

### glade_widget_property_set_save_always ()

    gboolean            glade_widget_property_set_save_always
                                                            (GladeWidget *widget,
                                                             const gchar *id_property,
                                                             gboolean setting);

Sets whether `id_property` in `widget` 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).

`widget` : | a GladeWidget
`id_property` : | a string naming a GladeProperty
`setting` : | the setting
Returns : | whether `id_property` was found or not.

### glade_widget_pack_property_set_save_always ()

    gboolean            glade_widget_pack_property_set_save_always
                                                            (GladeWidget *widget,
                                                             const gchar *id_property,
                                                             gboolean setting);

Sets whether `id_property` in `widget` 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).

`widget` : | a GladeWidget
`id_property` : | a string naming a GladeProperty
`setting` : | the setting
Returns : | whether `id_property` was found or not.

### glade_widget_property_string ()

    gchar *             glade_widget_property_string        (GladeWidget *widget,
                                                             const gchar *id_property,
                                                             const GValue *value);

Creates a printable string representing `id_property` in `widget`, if `value` is specified it will be used in place of `id_property`'s real value (this is a convinience function to print/debug properties usually from plugin backends).

`widget` : | a GladeWidget
`id_property` : | a string naming a GladeProperty
`value` : | the GValue to print or `NULL`
Returns : | A newly allocated string representing `id_property`

### glade_widget_pack_property_string ()

    gchar *             glade_widget_pack_property_string   (GladeWidget *widget,
                                                             const gchar *id_property,
                                                             const GValue *value);

Same as `glade_widget_property_string()` but for packing properties.

`widget` : | a GladeWidget
`id_property` : | a string naming a GladeProperty
`value` : | the GValue to print or `NULL`
Returns : | A newly allocated string representing `id_property`

### glade_widget_set_name ()

    void                glade_widget_set_name               (GladeWidget *widget,
                                                             const gchar *name);

Sets `widget`'s name to `name`.

`widget` : | a GladeWidget
`name` : | a string

### glade_widget_get_name ()

    const gchar *       glade_widget_get_name               (GladeWidget *widget);

`widget` : | a GladeWidget
Returns : | a pointer to `widget`'s name

### glade_widget_set_internal ()

    void                glade_widget_set_internal           (GladeWidget *widget,
                                                             const gchar *internal);

Sets the internal name of `widget` to `internal`

`widget` : | A GladeWidget
`internal` : | The internal name

### glade_widget_get_internal ()

    const gchar *       glade_widget_get_internal           (GladeWidget *widget);

`widget` : | a GladeWidget
Returns : | the internal name of `widget`

### glade_widget_set_object ()

    void                glade_widget_set_object             (GladeWidget *gwidget,
                                                             GObject *new_object);

Set the runtime object for this GladeWidget wrapper (this is used deep in the core and is probably unsafe to use elsewhere).

`gwidget` : | A GladeWidget
`new_object` : | the new GObject for `gwidget`

### glade_widget_get_object ()

    GObject *           glade_widget_get_object             (GladeWidget *widget);

`widget` : | a GladeWidget
Returns : | the GObject associated with `widget`

### glade_widget_set_project ()

    void                glade_widget_set_project            (GladeWidget *widget,
                                                             GladeProject *project);

Makes `widget` belong to `project`.

`widget` : | a GladeWidget
`project` : | a GladeProject

### glade_widget_get_project ()

    GladeProject *      glade_widget_get_project            (GladeWidget *widget);

`widget` : | a GladeWidget
Returns : | the GladeProject that `widget` belongs to

### glade_widget_get_adaptor ()

    GladeWidgetAdaptor * glade_widget_get_adaptor           (GladeWidget *widget);

`widget` : | a GladeWidget
Returns : | the GladeWidgetAdaptor of `widget`

### glade_widget_get_parent ()

    GladeWidget *       glade_widget_get_parent             (GladeWidget *widget);

`widget` : | A GladeWidget
Returns : | The parenting GladeWidget

### glade_widget_set_parent ()

    void                glade_widget_set_parent             (GladeWidget *widget,
                                                             GladeWidget *parent);

sets the parenting GladeWidget

`widget` : | A GladeWidget
`parent` : | the parenting GladeWidget (or `NULL`)

### glade_widget_superuser ()

    gboolean            glade_widget_superuser              (void);

Checks if we are in superuser mode.

Superuser mode is when we are - Loading a project - Dupping a widget recursively - Rebuilding an instance for a construct-only property

In these cases, we must act like a load, this should be checked from the plugin when implementing containers, when undo/redo comes around, the plugin is responsable for maintaining the same container size when widgets are added/removed.

### glade_widget_push_superuser ()

    void                glade_widget_push_superuser         (void);

Sets superuser mode

### glade_widget_pop_superuser ()

    void                glade_widget_pop_superuser          (void);

Unsets superuser mode

## Property Details

### The `"adaptor"` property

      "adaptor"                  GladeGObjectAdaptor*  : Read / Write / Construct Only

The class adaptor for the associated widget.

### The `"anarchist"` property

      "anarchist"                gboolean              : Read / Write / Construct Only

Whether this composite child is an ancestral child or an anarchist child.

Default value: FALSE

### The `"internal"` property

      "internal"                 gchar*                : Read / Write / Construct

The internal name of the widget.

Default value: NULL

### The `"internal-name"` property

      "internal-name"            gchar*                : Write / Construct Only

A generic name prefix for internal widgets.

Default value: NULL

### The `"name"` property

      "name"                     gchar*                : Read / Write / Construct

The name of the widget.

Default value: NULL

### The `"object"` property

      "object"                   GObject*              : Read / Write / Construct

The object associated.

### The `"parent"` property

      "parent"                   GladeWidget*          : Read / Write / Construct

A pointer to the parenting GladeWidget.

### The `"project"` property

      "project"                  GladeProject*         : Read / Write / Construct

The glade project that this widget belongs to.

### The `"properties"` property

      "properties"               gpointer              : Read / Write / Construct Only

A list of GladeProperties.

### The `"reason"` property

      "reason"                   gint                  : Write / Construct Only

A GladeCreateReason for this creation.

Allowed values: [0,3]

Default value: 0

### The `"support-warning"` property

      "support-warning"          gchar*                : Read

A warning string about version mismatches.

Default value: NULL

### The `"template"` property

      "template"                 GladeWidget*          : Write / Construct Only

A GladeWidget template to base a new widget on.

### The `"template-exact"` property

      "template-exact"           gboolean              : Write / Construct Only

Whether we are creating an exact duplicate when using a template.

Default value: FALSE

### The `"toplevel-height"` property

      "toplevel-height"          gint                  : Read / Write

The height of the widget when toplevel in the GladeDesignLayout.

Allowed values: >= G_MAXULONG

Default value: -1

### The `"toplevel-width"` property

      "toplevel-width"           gint                  : Read / Write

The width of the widget when toplevel in the GladeDesignLayout.

Allowed values: >= G_MAXULONG

Default value: -1

## Signal Details

### The `"add-signal-handler"` signal

    void                user_function                      (GladeWidget *gladewidget,
                                                            gpointer     arg1,
                                                            gpointer     user_data)        : Run Last

`gladewidget` : | the GladeWidget which received the signal.
`arg1` : | the GladeSignal that was added to `gladewidget`.
`user_data` : | user data set when the signal handler was connected.

### The `"button-press-event"` signal

    gboolean            user_function                      (GladeWidget    *gladewidget,
                                                            GdkEventButton *arg1,
                                                            gpointer        user_data)        : Run Last

`gladewidget` : | the GladeWidget which received the signal.
`arg1` : | the GdkEvent
`user_data` : | user data set when the signal handler was connected.

### The `"button-release-event"` signal

    gboolean            user_function                      (GladeWidget    *gladewidget,
                                                            GdkEventButton *event,
                                                            gpointer        user_data)        : Run Last

### The `"change-signal-handler"` signal

    void                user_function                      (GladeWidget *gladewidget,
                                                            gpointer     arg1,
                                                            gpointer     arg2,
                                                            gpointer     user_data)        : Run Last

`gladewidget` : | the GladeWidget which received the signal.
`arg1` : | the old GladeSignal
`arg2` : | the new GladeSignal
`user_data` : | user data set when the signal handler was connected.

### The `"motion-notify-event"` signal

    gboolean            user_function                      (GladeWidget    *gladewidget,
                                                            GdkEventMotion *arg1,
                                                            gpointer        user_data)        : Run Last

`gladewidget` : | the GladeWidget which received the signal.
`arg1` : | the GdkEvent
`user_data` : | user data set when the signal handler was connected.

### The `"remove-signal-handler"` signal

    void                user_function                      (GladeWidget *gladewidget,
                                                            gpointer     arg1,
                                                            gpointer     user_data)        : Run Last

`gladewidget` : | the GladeWidget which received the signal.
`arg1` : | the GladeSignal that was removed from `gladewidget`.
`user_data` : | user data set when the signal handler was connected.

### The `"support-changed"` signal

    void                user_function                      (GladeWidget *gladewidget,
                                                            gpointer     user_data)        : Run Last

Emitted when property and signal support metadatas and messages have been updated.

`gladewidget` : | the GladeWidget which received the signal.
`user_data` : | user data set when the signal handler was connected.