## UI plugins

UI plugins — Plugin to customize dana entry widgets and call renderers in tree views

## Stability Level

Stable, unless otherwise indicated

## Functions

GdauiDataEntry * | (*GdauiEntryCreateFunc) ()
GtkCellRenderer * | (*GdauiCellCreateFunc) ()
void | gdaui_plugin_declare ()

## Types and Values

| GdauiPlugin

## Description

This section describes the functions used to declare UI plugins: data entry and cell renderers.

## Functions

### GdauiEntryCreateFunc ()

    GdauiDataEntry *
    (*GdauiEntryCreateFunc) (GdaDataHandler *handler,
                             GType type,
                             const gchar *options);

Defines a function which creates a GdauiDataEntry widget

#### Parameters

handler | a GdaDataHandler |
type | a GType |
options | options, or `NULL`. | [allow-none]

#### Returns

a new GdauiDataEntry

### GdauiCellCreateFunc ()

    GtkCellRenderer *
    (*GdauiCellCreateFunc) (GdaDataHandler *handler,
                            GType type,
                            const gchar *options);

Defines a function which creates a GtkCellRenderer object

#### Parameters

handler | a GdaDataHandler |
type | a GType |
options | options, or `NULL`. | [allow-none]

#### Returns

a new GtkCellRenderer

### gdaui_plugin_declare ()

    void
    gdaui_plugin_declare (const GdauiPlugin *plugin);

Adds a new plugin which will be used by the forms and grids. The new plugin, as described by `plugin` can declare a custom widget to be used for forms, grids, or both.

If a plugin is already declared with the same name as the requested name, then a warning is issued and the operation fails.

#### Parameters

plugin | a pointer to a structure filled to describe the new plugin. All the contained information is copied. |

## Types and Values

### GdauiPlugin

    typedef struct {
    	gchar                  *plugin_name;
    	gchar                  *plugin_descr;
    	gchar                  *plugin_file;

    	guint                   nb_g_types; /* 0 if all types are accepted */
            GType                  *valid_g_types; /* not NULL if @nb_g_types is not 0 */

    	gchar                  *options_xml_spec; /* NULL if no option possible */

    	GdauiEntryCreateFunc    entry_create_func;
    	GdauiCellCreateFunc     cell_create_func;
    } GdauiPlugin;

Structure representing a plugin.

Note: `entry_create_func` and `cell_create_func` can't be `NULL` at the same time

#### Members

gchar *`plugin_name`; | the name of the plugin |
gchar *`plugin_descr`; | a description for the plugin, or `NULL`. | [allow-none]
gchar *`plugin_file`; | the shared object implementing the plugin, can be `NULL` for internal plugins. | [allow-none]
guint `nb_g_types`; | number of types the plugin can handle, or `0` for any type |
GType *`valid_g_types`; | an array of GType, containing the accepted types, its size is `nb_g_types` , or `NULL` if `nb_g_types` is `0`. | [allow-none]
gchar *`options_xml_spec`; | a string describing the plugin's options, or `NULL`. | [allow-none]
GdauiEntryCreateFunc `entry_create_func`; | the function called to create a GdauiDataEntry, or `NULL`. | [allow-none]
GdauiCellCreateFunc `cell_create_func`; | the function called to create a GtkCellRenderer, or `NULL`. | [allow-none]