UI plugins

## UI plugins UI plugins |

## Synopsis

    GdauiDataEntry *    (*GdauiEntryCreateFunc)             (GdaDataHandler *Param1,
                                                             GType Param2,
                                                             const gchar *Param3);
    GtkCellRenderer *   (*GdauiCellCreateFunc)              (GdaDataHandler *Param1,
                                                             GType Param2,
                                                             const gchar *Param3);
                        GdauiPlugin;
    void                gdaui_plugin_declare                (const GdauiPlugin *plugin);

## Description

## Details

### GdauiEntryCreateFunc ()

    GdauiDataEntry *    (*GdauiEntryCreateFunc)             (GdaDataHandler *Param1,
                                                             GType Param2,
                                                             const gchar *Param3);

`Param1` : |
`Param2` : |
`Param3` : |
Returns : |

### GdauiCellCreateFunc ()

    GtkCellRenderer *   (*GdauiCellCreateFunc)              (GdaDataHandler *Param1,
                                                             GType Param2,
                                                             const gchar *Param3);

`Param1` : |
`Param2` : |
`Param3` : |
Returns : |

### 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 */

    	/* actual widget creation: one of them must be not NULL */
    	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

gchar *`plugin_name`; | the name of the plugin
gchar *`plugin_descr`; | a description for the plugin, or `NULL`
gchar *`plugin_file`; | the shared object implementing the plugin, can be `NULL` for internal plugins
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`
gchar *`options_xml_spec`; | a string describing the plugin's options, or `NULL`
GdauiEntryCreateFunc `entry_create_func`; | the function called to create a GdauiDataEntry, or `NULL`
GdauiCellCreateFunc `cell_create_func`; | the function called to create a GtkCellRenderer, or `NULL`

### 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.

`plugin` : | a pointer to a structure filled to describe the new plugin