#ifndef _GLADE_WIDGET_ADAPTOR_H_ #define _GLADE_WIDGET_ADAPTOR_H_ #include #include #include #include #include #include #include #include #include G_BEGIN_DECLS #define GLADE_TYPE_WIDGET_ADAPTOR (glade_widget_adaptor_get_type()) #define GLADE_WIDGET_ADAPTOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GLADE_TYPE_WIDGET_ADAPTOR, GladeWidgetAdaptor)) #define GLADE_WIDGET_ADAPTOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GLADE_TYPE_WIDGET_ADAPTOR, GladeWidgetAdaptorClass)) #define GLADE_IS_WIDGET_ADAPTOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GLADE_TYPE_WIDGET_ADAPTOR)) #define GLADE_IS_WIDGET_ADAPTOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GLADE_TYPE_WIDGET_ADAPTOR)) #define GLADE_WIDGET_ADAPTOR_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GLADE_WIDGET_ADAPTOR, GladeWidgetAdaptorClass)) typedef struct _GladeWidgetAdaptorPrivate GladeWidgetAdaptorPrivate; typedef struct _GladeWidgetAdaptorClass GladeWidgetAdaptorClass; /** * GWA_DEPRECATED: * @obj: A #GladeWidgetAdaptor * * Checks whether this widget class is marked as deprecated */ #define GWA_DEPRECATED(obj) \ ((obj) ? GLADE_WIDGET_ADAPTOR_GET_CLASS(obj)->deprecated : FALSE) /** * GWA_VERSION_SINCE_MAJOR: * @obj: A #GladeWidgetAdaptor * * Checks major version in which this widget was introduced */ #define GWA_VERSION_SINCE_MAJOR(obj) \ ((obj) ? GLADE_WIDGET_ADAPTOR_GET_CLASS(obj)->version_since_major : 0) /** * GWA_VERSION_SINCE_MINOR: * @obj: A #GladeWidgetAdaptor * * Checks minor version in which this widget was introduced */ #define GWA_VERSION_SINCE_MINOR(obj) \ ((obj) ? GLADE_WIDGET_ADAPTOR_GET_CLASS(obj)->version_since_minor : 0) /** * GWA_VERSION_CHECK: * @adaptor: A #GladeWidgetAdaptor * @major_version: The major version to check * @minor_version: The minor version to check * * Evaluates to %TRUE if @adaptor is available in its owning library version-@major_verion.@minor_version. * */ #define GWA_VERSION_CHECK(adaptor, major_version, minor_version) \ ((GWA_VERSION_SINCE_MAJOR (adaptor) == major_version) ? \ (GWA_VERSION_SINCE_MINOR (adaptor) <= minor_version) : \ (GWA_VERSION_SINCE_MAJOR (adaptor) <= major_version)) /** * GWA_IS_TOPLEVEL: * @obj: A #GladeWidgetAdaptor * * Checks whether this widget class has been marked as * a toplevel one. */ #define GWA_IS_TOPLEVEL(obj) \ ((obj) ? GLADE_WIDGET_ADAPTOR_GET_CLASS(obj)->toplevel : FALSE) /** * GWA_USE_PLACEHOLDERS: * @obj: A #GladeWidgetAdaptor * * Checks whether this widget class has been marked to * use placeholders in child widget operations */ #define GWA_USE_PLACEHOLDERS(obj) \ ((obj) ? GLADE_WIDGET_ADAPTOR_GET_CLASS(obj)->use_placeholders : FALSE) /** * GWA_DEFAULT_WIDTH: * @obj: A #GladeWidgetAdaptor * * Returns: the default width to be used when this widget * is toplevel in the GladeDesignLayout */ #define GWA_DEFAULT_WIDTH(obj) \ ((obj) ? GLADE_WIDGET_ADAPTOR_GET_CLASS(obj)->default_width : -1) /** * GWA_DEFAULT_HEIGHT: * @obj: A #GladeWidgetAdaptor * * Returns: the default width to be used when this widget * is toplevel in the GladeDesignLayout */ #define GWA_DEFAULT_HEIGHT(obj) \ ((obj) ? GLADE_WIDGET_ADAPTOR_GET_CLASS(obj)->default_height : -1) /** * GWA_SCROLLABLE_WIDGET: * @obj: A #GladeWidgetAdaptor * * Checks whether this is a GtkWidgetClass with scrolling capabilities. */ #define GWA_SCROLLABLE_WIDGET(obj) \ ((obj) ? \ g_type_is_a (glade_widget_adaptor_get_object_type \ (GLADE_WIDGET_ADAPTOR (obj)), \ GTK_TYPE_SCROLLABLE) : FALSE) /** * GWA_GET_CLASS: * @type: A #GType * * Shorthand for referencing glade adaptor classes from * the plugin eg. GWA_GET_CLASS (GTK_TYPE_CONTAINER)->post_create (adaptor... */ #define GWA_GET_CLASS(type) \ (((type) == G_TYPE_OBJECT) ? \ (GladeWidgetAdaptorClass *)g_type_class_peek (GLADE_TYPE_WIDGET_ADAPTOR) : \ GLADE_WIDGET_ADAPTOR_GET_CLASS (glade_widget_adaptor_get_by_type(type))) /** * GWA_GET_OCLASS: * @type: A #GType. * * Same as GWA_GET_CLASS but casted to GObjectClass */ #define GWA_GET_OCLASS(type) ((GObjectClass*)GWA_GET_CLASS(type)) #define GLADE_VALID_CREATE_REASON(reason) (reason >= 0 && reason < GLADE_CREATE_REASONS) /** * GladeCreateReason: * @GLADE_CREATE_USER: Was created at the user's request * (this is a good time to set any properties * or add children to the project; like GtkFrame's * label for example). * @GLADE_CREATE_COPY: Was created as a result of the copy/paste * mechanism, at this point you can count on glade * to follow up with properties and children on * its own. * @GLADE_CREATE_LOAD: Was created during the load process. * @GLADE_CREATE_REBUILD: Was created as a replacement for another project * object; this only happens when the user is * changing a property that is marked by the type * system as G_PARAM_SPEC_CONSTRUCT_ONLY. * @GLADE_CREATE_REASONS: Never used. * * These are the reasons your #GladePostCreateFunc can be called. */ typedef enum { GLADE_CREATE_USER = 0, GLADE_CREATE_COPY, GLADE_CREATE_LOAD, GLADE_CREATE_REBUILD, GLADE_CREATE_REASONS } GladeCreateReason; /** * GladeCreateWidgetFunc: * @adaptor: A #GladeWidgetAdaptor * @first_property_name: the name of the first property * @var_args: the value of the first property, followed optionally by more * name/value pairs, followed by %NULL * * This entry point allows the backend to create a specialized GladeWidget * derived object for handling instances in the core. * * Returns: A newly created #GladeWidget for the said adaptor. */ typedef GladeWidget * (* GladeCreateWidgetFunc) (GladeWidgetAdaptor *adaptor, const gchar *first_property_name, va_list var_args); /** * GladeSetPropertyFunc: * @adaptor: A #GladeWidgetAdaptor * @object: The #GObject * @property_name: The property identifier * @value: The #GValue * * This delagate function is used to apply the property value on * the runtime object. * * Sets @value on @object for a given #GladePropertyClass */ typedef void (* GladeSetPropertyFunc) (GladeWidgetAdaptor *adaptor, GObject *object, const gchar *property_name, const GValue *value); /** * GladeGetPropertyFunc: * @adaptor: A #GladeWidgetAdaptor * @object: The #GObject * @property_name: The property identifier * @value: The #GValue * * Gets @value on @object for a given #GladePropertyClass */ typedef void (* GladeGetPropertyFunc) (GladeWidgetAdaptor *adaptor, GObject *object, const gchar *property_name, GValue *value); /** * GladeVerifyPropertyFunc: * @adaptor: A #GladeWidgetAdaptor * @object: The #GObject * @property_name: The property identifier * @value: The #GValue * * This delagate function is always called whenever setting any * properties with the exception of load time, and copy/paste time * (basicly the two places where we recreate a hierarchy that we * already know "works") its basicly an optional backend provided * boundry checker for properties. * * Returns: whether or not its OK to set @value on @object */ typedef gboolean (* GladeVerifyPropertyFunc) (GladeWidgetAdaptor *adaptor, GObject *object, const gchar *property_name, const GValue *value); /** * GladeChildSetPropertyFunc: * @adaptor: A #GladeWidgetAdaptor * @container: The #GObject container * @child: The #GObject child * @property_name: The property name * @value: The #GValue * * Called to set the packing property @property_name to @value * on the @child object of @container. */ typedef void (* GladeChildSetPropertyFunc) (GladeWidgetAdaptor *adaptor, GObject *container, GObject *child, const gchar *property_name, const GValue *value); /** * GladeChildGetPropertyFunc: * @adaptor: A #GladeWidgetAdaptor * @container: The #GObject container * @child: The #GObject child * @property_name: The property name * @value: The #GValue * * Called to get the packing property @property_name * on the @child object of @container into @value. */ typedef void (* GladeChildGetPropertyFunc) (GladeWidgetAdaptor *adaptor, GObject *container, GObject *child, const gchar *property_name, GValue *value); /** * GladeChildVerifyPropertyFunc: * @adaptor: A #GladeWidgetAdaptor * @container: The #GObject container * @child: The #GObject child * @property_name: The property name * @value: The #GValue * * This delagate function is always called whenever setting any * properties with the exception of load time, and copy/paste time * (basicly the two places where we recreate a hierarchy that we * already know "works") its basicly an optional backend provided * boundry checker for properties. * * Returns: whether or not its OK to set @value on @object */ typedef gboolean (* GladeChildVerifyPropertyFunc) (GladeWidgetAdaptor *adaptor, GObject *container, GObject *child, const gchar *property_name, const GValue *value); /** * GladeAddChildVerifyFunc: * @adaptor: A #GladeWidgetAdaptor * @parent: A #GObject container * @child: A #GObject child * @user_feedback: whether a notification dialog should be * presented in the case that the child cannot not be added. * * Checks whether @child can be added to @parent. * * If @user_feedback is %TRUE and @child cannot be * added then this shows a notification dialog to the user * explaining why. * * Returns: whether @child can be added to @parent. */ typedef gboolean (* GladeAddChildVerifyFunc) (GladeWidgetAdaptor *adaptor, GObject *parent, GObject *child, gboolean user_feedback); /** * GladeGetChildrenFunc: * @adaptor: A #GladeWidgetAdaptor * @container: A #GObject container * * A function called to get @containers children. * * Returns: A #GList of #GObject children. */ typedef GList *(* GladeGetChildrenFunc) (GladeWidgetAdaptor *adaptor, GObject *container); /** * GladeAddChildFunc: * @adaptor: A #GladeWidgetAdaptor * @parent: A #GObject container * @child: A #GObject child * * Called to add @child to @parent. */ typedef void (* GladeAddChildFunc) (GladeWidgetAdaptor *adaptor, GObject *parent, GObject *child); /** * GladeRemoveChildFunc: * @adaptor: A #GladeWidgetAdaptor * @parent: A #GObject container * @child: A #GObject child * * Called to remove @child from @parent. */ typedef void (* GladeRemoveChildFunc) (GladeWidgetAdaptor *adaptor, GObject *parent, GObject *child); /** * GladeReplaceChildFunc: * @adaptor: A #GladeWidgetAdaptor * @container: A #GObject container * @old_obj: The old #GObject child * @new_obj: The new #GObject child to take its place * * Called to swap placeholders with project objects * in containers. */ typedef void (* GladeReplaceChildFunc) (GladeWidgetAdaptor *adaptor, GObject *container, GObject *old_obj, GObject *new_obj); /** * GladeConstructObjectFunc: * @adaptor: A #GladeWidgetAdaptor * @n_parameters: amount of construct parameters * @parameters: array of construct #GParameter args to create * the new object with. * * This function is called to construct a GObject instance. * (for language bindings that may need to construct a wrapper * object). * * Returns: A newly created #GObject */ typedef GObject *(* GladeConstructObjectFunc) (GladeWidgetAdaptor *adaptor, guint n_parameters, GParameter *parameters); /** * GladeDestroyObjectFunc: * @adaptor: A #GladeWidgetAdaptor * @object: The #GObject to destroy * * This function is called to break any additional references to * a GObject instance. Note that this function is not responsible * for calling g_object_unref() on @object, the reference count * of @object belongs to it's #GladeWidget wrapper. * * The #GtkWidget adaptor will call gtk_widget_destroy() before * chaining up in this function. * * If your adaptor adds any references in any way at * #GladePostCreateFunc time or #GladeConstructObjectFunc * time, then this function must be implemented to also * remove that reference. * */ typedef void (* GladeDestroyObjectFunc) (GladeWidgetAdaptor *adaptor, GObject *object); /** * GladePostCreateFunc: * @adaptor: A #GladeWidgetAdaptor * @object: a #GObject * @reason: a #GladeCreateReason * * This function is called exactly once for any project object * instance and can be for any #GladeCreateReason. */ typedef void (* GladePostCreateFunc) (GladeWidgetAdaptor *adaptor, GObject *object, GladeCreateReason reason); /** * GladeGetInternalFunc: * @adaptor: A #GladeWidgetAdaptor * @parent: A #GObject composite object * @name: A string identifier * * Called to lookup @child in composite object @parent by @name. * * Returns: The specified internal widget. */ typedef GObject *(* GladeGetInternalFunc) (GladeWidgetAdaptor *adaptor, GObject *parent, const gchar *name); /** * GladeActionActivateFunc: * @adaptor: A #GladeWidgetAdaptor * @object: The #GObject * @action_path: The action path * * This delagate function is used to catch actions from the core. * */ typedef void (* GladeActionActivateFunc) (GladeWidgetAdaptor *adaptor, GObject *object, const gchar *action_path); /** * GladeChildActionActivateFunc: * @adaptor: A #GladeWidgetAdaptor * @container: The #GtkContainer * @object: The #GObject * @action_path: The action path * * This delagate function is used to catch packing actions from the core. * */ typedef void (* GladeChildActionActivateFunc) (GladeWidgetAdaptor *adaptor, GObject *container, GObject *object, const gchar *action_path); /** * GladeActionSubmenuFunc: * @adaptor: A #GladeWidgetAdaptor * @object: The #GObject * @action_path: The action path * * This delagate function is used to create dynamically customized * submenus. Called only for actions that dont have children. * */ typedef GtkWidget *(* GladeActionSubmenuFunc) (GladeWidgetAdaptor *adaptor, GObject *object, const gchar *action_path); /** * GladeDependsFunc: * @adaptor: A #GladeWidgetAdaptor * @widget: A #GladeWidget of the adaptor * @another: another #GladeWidget * * Checks whether @widget depends on @another to be placed earlier in * the glade file. * * Returns: whether @widget depends on @another being parsed first in * the resulting glade file. */ typedef gboolean (* GladeDependsFunc) (GladeWidgetAdaptor *adaptor, GladeWidget *widget, GladeWidget *another); /** * GladeReadWidgetFunc: * @adaptor: A #GladeWidgetAdaptor * @widget: The #GladeWidget * @node: The #GladeXmlNode * * This function is called to update @widget from @node. * */ typedef void (* GladeReadWidgetFunc) (GladeWidgetAdaptor *adaptor, GladeWidget *widget, GladeXmlNode *node); /** * GladeWriteWidgetFunc: * @adaptor: A #GladeWidgetAdaptor * @widget: The #GladeWidget * @node: The #GladeXmlNode * * This function is called to fill in @node from @widget. * */ typedef void (* GladeWriteWidgetFunc) (GladeWidgetAdaptor *adaptor, GladeWidget *widget, GladeXmlContext *context, GladeXmlNode *node); /** * GladeCreateEPropFunc: * @adaptor: A #GladeWidgetAdaptor * @klass: The #GladePropertyClass to be edited * @use_command: whether to use the GladeCommand interface * to commit property changes * * Creates a GladeEditorProperty to edit @klass * * Returns: A newly created #GladeEditorProperty */ typedef GladeEditorProperty *(* GladeCreateEPropFunc) (GladeWidgetAdaptor *adaptor, GladePropertyClass *klass, gboolean use_command); /** * GladeStringFromValueFunc: * @adaptor: A #GladeWidgetAdaptor * @klass: The #GladePropertyClass * @value: The #GValue to convert to a string * * For normal properties this is used to serialize * property values, for custom properties (only when new pspecs are * introduced) its needed for value comparisons in boxed pspecs * and also to update the UI for undo/redo items etc. * * Returns: A newly allocated string representation of @value */ typedef gchar *(* GladeStringFromValueFunc) (GladeWidgetAdaptor *adaptor, GladePropertyClass *klass, const GValue *value); /** * GladeCreateEditableFunc: * @adaptor: A #GladeWidgetAdaptor * @type: The #GladeEditorPageType * * This is used to allow the backend to override the way an * editor page is layed out (note that editor widgets are created * on demand and not at startup). * * Returns: A new #GladeEditable widget */ typedef GladeEditable *(* GladeCreateEditableFunc) (GladeWidgetAdaptor *adaptor, GladeEditorPageType type); /* Note that everything that must be processed at the creation of * every instance is managed on the instance structure, and everywhere * that we want to take advantage of inheritance is handled in the class * structure. */ struct _GladeWidgetAdaptor { GObject parent_instance; GladeWidgetAdaptorPrivate *priv; }; struct _GladeWidgetAdaptorClass { GObjectClass parent_class; guint16 version_since_major; /* Version in which this widget was */ guint16 version_since_minor; /* introduced. */ gint16 default_width; /* Default width in GladeDesignLayout */ gint16 default_height; /* Default height in GladeDesignLayout */ guint deprecated : 1; /* If this widget is currently * deprecated */ guint toplevel : 1; /* If this class is toplevel */ guint use_placeholders : 1; /* Whether or not to use placeholders * to interface with child widgets. */ GladeCreateWidgetFunc create_widget; /* Creates a GladeWidget for this adaptor */ GladeConstructObjectFunc construct_object; /* Object constructor */ GladePostCreateFunc deep_post_create; /* Executed after widget creation: * plugins use this to setup various * support codes (adaptors must always * chain up in this stage of instantiation). */ GladePostCreateFunc post_create; /* Executed after widget creation: * plugins use this to setup various * support codes (adaptors are free here * to chain up or not in this stage of * instantiation). */ GladeGetInternalFunc get_internal_child; /* Retrieves the the internal child * of the given name. */ /* Delagate to verify if this is a valid value for this property, * if this function exists and returns FALSE, then glade_property_set * will abort before making any changes */ GladeVerifyPropertyFunc verify_property; /* An optional backend function used instead of g_object_set() * virtual properties must be handled with this function. */ GladeSetPropertyFunc set_property; /* An optional backend function used instead of g_object_get() * virtual properties must be handled with this function. * * Note that since glade knows what the property values are * at all times regardless of the objects copy, this is currently * only used to obtain the values of packing properties that are * set by the said object's parent at "container_add" time. */ GladeGetPropertyFunc get_property; GladeAddChildVerifyFunc add_verify; /* Checks if a child can be added */ GladeAddChildFunc add; /* Adds a new child of this type */ GladeRemoveChildFunc remove; /* Removes a child from the container */ GladeGetChildrenFunc get_children; /* Returns a list of direct children for * this support type. */ GladeChildVerifyPropertyFunc child_verify_property; /* A boundry checker for * packing properties */ GladeChildSetPropertyFunc child_set_property; /* Sets/Gets a packing property */ GladeChildGetPropertyFunc child_get_property; /* for this child */ GladeReplaceChildFunc replace_child; /* This method replaces a * child widget with * another one: it's used to * replace a placeholder with * a widget and viceversa. */ GladeActionActivateFunc action_activate; /* This method is used to catch actions */ GladeChildActionActivateFunc child_action_activate; /* This method is used to catch packing actions */ GladeActionSubmenuFunc action_submenu; /* Delagate function to create dynamic submenus * in action menus. */ GladeDependsFunc depends; /* Periodically sort widgets in the project */ GladeReadWidgetFunc read_widget; /* Reads widget attributes from xml */ GladeWriteWidgetFunc write_widget; /* Writes widget attributes to the xml */ GladeReadWidgetFunc read_child; /* Reads widget attributes from xml */ GladeWriteWidgetFunc write_child; /* Writes widget attributes to the xml */ GladeCreateEPropFunc create_eprop; /* Creates a GladeEditorProperty */ GladeStringFromValueFunc string_from_value; /* Creates a string for a value */ GladeCreateEditableFunc create_editable; /* Creates a page for the editor */ GladeDestroyObjectFunc destroy_object; /* Object destructor */ GladeWriteWidgetFunc write_widget_after;/* Writes widget attributes to the xml (after children) */ void (* glade_reserved1) (void); void (* glade_reserved2) (void); void (* glade_reserved3) (void); void (* glade_reserved4) (void); void (* glade_reserved5) (void); void (* glade_reserved6) (void); }; #define glade_widget_adaptor_create_widget(adaptor, query, ...) \ (glade_widget_adaptor_create_widget_real (query, "adaptor", adaptor, __VA_ARGS__)); GType glade_widget_adaptor_get_type (void) G_GNUC_CONST; GType glade_widget_adaptor_get_object_type (GladeWidgetAdaptor *adaptor); G_CONST_RETURN gchar *glade_widget_adaptor_get_name (GladeWidgetAdaptor *adaptor); G_CONST_RETURN gchar *glade_widget_adaptor_get_generic_name (GladeWidgetAdaptor *adaptor); G_CONST_RETURN gchar *glade_widget_adaptor_get_title (GladeWidgetAdaptor *adaptor); G_CONST_RETURN gchar *glade_widget_adaptor_get_icon_name (GladeWidgetAdaptor *adaptor); G_CONST_RETURN gchar *glade_widget_adaptor_get_missing_icon (GladeWidgetAdaptor *adaptor); G_CONST_RETURN gchar *glade_widget_adaptor_get_catalog (GladeWidgetAdaptor *adaptor); G_CONST_RETURN gchar *glade_widget_adaptor_get_book (GladeWidgetAdaptor *adaptor); G_CONST_RETURN GList *glade_widget_adaptor_get_properties (GladeWidgetAdaptor *adaptor); G_CONST_RETURN GList *glade_widget_adaptor_get_packing_props(GladeWidgetAdaptor *adaptor); G_CONST_RETURN GList *glade_widget_adaptor_get_signals (GladeWidgetAdaptor *adaptor); GList *glade_widget_adaptor_list_adaptors (void); GladeWidgetAdaptor *glade_widget_adaptor_from_catalog (GladeCatalog *catalog, GladeXmlNode *class_node, GModule *module); void glade_widget_adaptor_register (GladeWidgetAdaptor *adaptor); GladeWidget *glade_widget_adaptor_create_internal (GladeWidget *parent, GObject *internal_object, const gchar *internal_name, const gchar *parent_name, gboolean anarchist, GladeCreateReason reason); GladeWidget *glade_widget_adaptor_create_widget_real (gboolean query, const gchar *first_property, ...); GladeWidgetAdaptor *glade_widget_adaptor_get_by_name (const gchar *name); GladeWidgetAdaptor *glade_widget_adaptor_get_by_type (GType type); GladeWidgetAdaptor *glade_widget_adaptor_from_pspec (GladeWidgetAdaptor *adaptor, GParamSpec *spec); GladePropertyClass *glade_widget_adaptor_get_property_class (GladeWidgetAdaptor *adaptor, const gchar *name); GladePropertyClass *glade_widget_adaptor_get_pack_property_class (GladeWidgetAdaptor *adaptor, const gchar *name); GParameter *glade_widget_adaptor_default_params (GladeWidgetAdaptor *adaptor, gboolean construct, guint *n_params); GObject *glade_widget_adaptor_construct_object (GladeWidgetAdaptor *adaptor, guint n_parameters, GParameter *parameters); void glade_widget_adaptor_destroy_object (GladeWidgetAdaptor *adaptor, GObject *object); void glade_widget_adaptor_post_create (GladeWidgetAdaptor *adaptor, GObject *object, GladeCreateReason reason); GObject *glade_widget_adaptor_get_internal_child (GladeWidgetAdaptor *adaptor, GObject *object, const gchar *internal_name); void glade_widget_adaptor_set_property (GladeWidgetAdaptor *adaptor, GObject *object, const gchar *property_name, const GValue *value); void glade_widget_adaptor_get_property (GladeWidgetAdaptor *adaptor, GObject *object, const gchar *property_name, GValue *value); gboolean glade_widget_adaptor_verify_property (GladeWidgetAdaptor *adaptor, GObject *object, const gchar *property_name, const GValue *value); gboolean glade_widget_adaptor_add_verify (GladeWidgetAdaptor *adaptor, GObject *container, GObject *child, gboolean user_feedback); void glade_widget_adaptor_add (GladeWidgetAdaptor *adaptor, GObject *container, GObject *child); void glade_widget_adaptor_remove (GladeWidgetAdaptor *adaptor, GObject *container, GObject *child); GList *glade_widget_adaptor_get_children (GladeWidgetAdaptor *adaptor, GObject *container); gboolean glade_widget_adaptor_has_child (GladeWidgetAdaptor *adaptor, GObject *container, GObject *child); void glade_widget_adaptor_child_set_property (GladeWidgetAdaptor *adaptor, GObject *container, GObject *child, const gchar *property_name, const GValue *value); void glade_widget_adaptor_child_get_property (GladeWidgetAdaptor *adaptor, GObject *container, GObject *child, const gchar *property_name, GValue *value); gboolean glade_widget_adaptor_child_verify_property (GladeWidgetAdaptor *adaptor, GObject *container, GObject *child, const gchar *property_name, const GValue *value); void glade_widget_adaptor_replace_child (GladeWidgetAdaptor *adaptor, GObject *container, GObject *old_obj, GObject *new_obj); gboolean glade_widget_adaptor_query (GladeWidgetAdaptor *adaptor); G_CONST_RETURN gchar *glade_widget_adaptor_get_packing_default(GladeWidgetAdaptor *child_adaptor, GladeWidgetAdaptor *container_adaptor, const gchar *id); gboolean glade_widget_adaptor_is_container (GladeWidgetAdaptor *adaptor); gboolean glade_widget_adaptor_action_add (GladeWidgetAdaptor *adaptor, const gchar *action_path, const gchar *label, const gchar *stock, gboolean important); gboolean glade_widget_adaptor_pack_action_add (GladeWidgetAdaptor *adaptor, const gchar *action_path, const gchar *label, const gchar *stock, gboolean important); gboolean glade_widget_adaptor_action_remove (GladeWidgetAdaptor *adaptor, const gchar *action_path); gboolean glade_widget_adaptor_pack_action_remove (GladeWidgetAdaptor *adaptor, const gchar *action_path); GList *glade_widget_adaptor_actions_new (GladeWidgetAdaptor *adaptor); GList *glade_widget_adaptor_pack_actions_new (GladeWidgetAdaptor *adaptor); void glade_widget_adaptor_action_activate (GladeWidgetAdaptor *adaptor, GObject *object, const gchar *action_path); void glade_widget_adaptor_child_action_activate (GladeWidgetAdaptor *adaptor, GObject *container, GObject *object, const gchar *action_path); GtkWidget *glade_widget_adaptor_action_submenu (GladeWidgetAdaptor *adaptor, GObject *object, const gchar *action_path); G_DEPRECATED gboolean glade_widget_adaptor_depends (GladeWidgetAdaptor *adaptor, GladeWidget *widget, GladeWidget *another); void glade_widget_adaptor_read_widget (GladeWidgetAdaptor *adaptor, GladeWidget *widget, GladeXmlNode *node); void glade_widget_adaptor_write_widget (GladeWidgetAdaptor *adaptor, GladeWidget *widget, GladeXmlContext *context, GladeXmlNode *node); void glade_widget_adaptor_write_widget_after (GladeWidgetAdaptor *adaptor, GladeWidget *widget, GladeXmlContext *context, GladeXmlNode *node); void glade_widget_adaptor_read_child (GladeWidgetAdaptor *adaptor, GladeWidget *widget, GladeXmlNode *node); void glade_widget_adaptor_write_child (GladeWidgetAdaptor *adaptor, GladeWidget *widget, GladeXmlContext *context, GladeXmlNode *node); GladeEditorProperty *glade_widget_adaptor_create_eprop (GladeWidgetAdaptor *adaptor, GladePropertyClass *klass, gboolean use_command); GladeEditorProperty *glade_widget_adaptor_create_eprop_by_name (GladeWidgetAdaptor *adaptor, const gchar *property_id, gboolean packing, gboolean use_command); gchar *glade_widget_adaptor_string_from_value (GladeWidgetAdaptor *adaptor, GladePropertyClass *klass, const GValue *value); GladeEditable *glade_widget_adaptor_create_editable (GladeWidgetAdaptor *adaptor, GladeEditorPageType type); GladeSignalClass *glade_widget_adaptor_get_signal_class (GladeWidgetAdaptor *adaptor, const gchar *name); GladeWidgetAdaptor *glade_widget_adaptor_get_parent_adaptor (GladeWidgetAdaptor *adaptor); gboolean glade_widget_adaptor_has_internal_children (GladeWidgetAdaptor *adaptor); G_END_DECLS #endif /* _GLADE_WIDGET_ADAPTOR_H_ */