Name
gimpmodule -- Common definitions for creating a pluggable GIMP module.
Description
Common definitions for creating a pluggable GIMP module.
Details
enum GimpModuleStatus
typedef enum
{
GIMP_MODULE_OK,
GIMP_MODULE_UNLOAD
} GimpModuleStatus; |
struct GimpModuleInfo
struct GimpModuleInfo
{
gpointer shutdown_data;
const gchar *purpose;
const gchar *author;
const gchar *version;
const gchar *copyright;
const gchar *date;
}; |
GimpModuleInitFunc ()
GIMP modules should G_MODULE_EXPORT a function named "module_init"
of this type.
The "module_init" function is called by the GIMP at startup,
and should return either GIMP_MODULE_OK if it sucessfully initialised or
GIMP_MODULE_UNLOAD if the module failed to hook whatever functions
it wanted. GIMP_MODULE_UNLOAD causes the module to be closed, so
the module must not have registered any internal functions or given
out pointers to its data to anyone.
If the module returns GIMP_MODULE_OK, it should also return a
GimpModuleInfo structure describing itself.
GimpModuleCompletedCB ()
void (*GimpModuleCompletedCB) (gpointer completed_data); |
The type of the completed_cb passed to the "module_unload" function
(see below).
GimpModuleUnloadFunc ()
void (*GimpModuleUnloadFunc) (gpointer shutdown_data,
GimpModuleCompletedCB completed_cb,
gpointer completed_data); |
If GIMP modules want to allow themselves to be unloaded, they
should G_MODULE_EXPORT a function named "module_unload" of
this type.
GIMP calls the "module_unload" unload request function to ask
a module to prepare itself to be unloaded. It is called with the
value of shutdown_data supplied in the GimpModuleInfo struct.
The module should ensure that none of its code or data are being
used, and then call the supplied completed_cb callback function with
the completed_data provided. Typically the shutdown request function
will queue de-registration activities then return. Only when the
de-registration has finished should the completed_cb be invoked.