## IAnjutaPluginFactory IAnjutaPluginFactory — Create Anjuta plugin objects |

## Stability Level

Unstable, unless otherwise indicated

## Functions

GQuark | ianjuta_plugin_factory_error_quark ()
AnjutaPlugin * | ianjuta_plugin_factory_new_plugin ()

## Types and Values

enum | IAnjutaPluginFactoryError

## Object Hierarchy

        GEnum
        ╰── IAnjutaPluginFactoryError
        GInterface
        ╰── IAnjutaPluginFactory

## Includes

    #include <libanjuta/interfaces/ianjuta-plugin-factory.h>

## Description

This interface is used to create all Anjuta plugin objects. It is already implemented inside Anjuta by an object able to load plugins written in C. In order to load plugins in other languages (or in a different way), a loader plugin implementing this interface must be written first, probably in C.

## Functions

### ianjuta_plugin_factory_error_quark ()

    GQuark
    ianjuta_plugin_factory_error_quark (void);

### ianjuta_plugin_factory_new_plugin ()

    AnjutaPlugin *
    ianjuta_plugin_factory_new_plugin (IAnjutaPluginFactory *obj,
                                       AnjutaPluginHandle *handle,
                                       AnjutaShell *shell,
                                       GError **err);

Create a new AnjutaPlugin object from the plugin information handle, give it the AnjutaShell object as argument.

#### Parameters

obj | Self |
handle | Plugin information |
shell | Anjuta shell |
err | Error propagation and reporting. |

#### Returns

a new plugin object

## Types and Values

### enum IAnjutaPluginFactoryError

These enumeration is used to specify errors.

#### Members

IANJUTA_PLUGIN_FACTORY_OK |  |
IANJUTA_PLUGIN_FACTORY_MISSING_LOCATION | Module file location is missing in .plugin file |
IANJUTA_PLUGIN_FACTORY_MISSING_TYPE | Plugin type (just after double colon following location) is missing in .plugin file |
IANJUTA_PLUGIN_FACTORY_MISSING_MODULE | Module file name not found, plugin module is probably not installed |
IANJUTA_PLUGIN_FACTORY_INVALID_MODULE | Module file cannot be loaded, not a shared library perhaps |
IANJUTA_PLUGIN_FACTORY_MISSING_FUNCTION | Module does not contain registration function, library is not an anjuta plugin or is not for the right version |
IANJUTA_PLUGIN_FACTORY_INVALID_TYPE | Module has not registered plugin type, library is not an anjuta plugin or not for the right version |
IANJUTA_PLUGIN_FACTORY_UNKNOWN_ERROR | Another error |