IAnjutaPluginFactory

IAnjutaPluginFactory — Create Anjuta plugin objects

Stability Level

Unstable, unless otherwise indicated

Synopsis

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

enum                IAnjutaPluginFactoryError;
struct              IAnjutaPluginFactoryIface;
GQuark              ianjuta_plugin_factory_error_quark  (void);
AnjutaPlugin *      ianjuta_plugin_factory_new_plugin   (IAnjutaPluginFactory *obj,
                                                         AnjutaPluginHandle *handle,
                                                         AnjutaShell *shell,
                                                         GError **err);

Object Hierarchy

  GEnum
   +----IAnjutaPluginFactoryError

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.

Details

enum IAnjutaPluginFactoryError

typedef enum {
	IANJUTA_PLUGIN_FACTORY_OK = 0,
	IANJUTA_PLUGIN_FACTORY_MISSING_LOCATION,
	IANJUTA_PLUGIN_FACTORY_MISSING_TYPE,
	IANJUTA_PLUGIN_FACTORY_MISSING_MODULE,
	IANJUTA_PLUGIN_FACTORY_INVALID_MODULE,
	IANJUTA_PLUGIN_FACTORY_MISSING_FUNCTION,
	IANJUTA_PLUGIN_FACTORY_INVALID_TYPE,
	IANJUTA_PLUGIN_FACTORY_UNKNOWN_ERROR,
} IAnjutaPluginFactoryError;

These enumeration is used to specify errors.

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

struct IAnjutaPluginFactoryIface

struct IAnjutaPluginFactoryIface {
	GTypeInterface g_iface;
	

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


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.

obj :

Self

handle :

Plugin information

shell :

Anjuta shell

err :

Error propagation and reporting.

Returns :

a new plugin object