| Top |
The FMAIExporter interface exports items to the outside world. Each implementation may provide one or more formats.
For its own internal needs, FileManager-Actions™ requires that each export format have its own identifier, as an ASCII string.
In order to avoid any collision, this export format identifier is allocated by the FileManager-Actions™ maintainers team. If you wish provide yourself a new export format, and so need a new export format identifier, please contact the maintainers (see filemanager-actions.doap at the root of the source tree).
Below is a list of currently allocated export format identifiers. This list has been last updated on 2015, September 10th.
Table 5. Currently allocated export format identifiers
| Identifier | Name | Holder | Allocated on | ||
|---|---|---|---|---|---|
Ask |
Reserved for FileManager-Actions™ internal needs | FileManager-Actions™ | 2010-02-15 | current | |
Desktop1 |
FMA Desktop module | FileManager-Actions™ | 2010-07-28 | current | |
GConfSchemaV1 |
FMA XML module | FileManager-Actions™ | 2010-02-15 | deprecated | |
GConfSchemaV2 |
FMA XML module | FileManager-Actions™ | 2010-02-15 | deprecated | |
GConfEntry |
FMA XML module | FileManager-Actions™ | 2010-02-15 | deprecated |
Table 6. Historic of the versions of the FMAIExporter interface
| FileManager-Actions™ version | FMAIExporter interface version | ||
|---|---|---|---|
| from 2.30 to 3.1.5 | 1 | deprecated | |
| since 3.2 | 2 | current version |
#define FMA_IEXPORTER( instance ) ( G_TYPE_CHECK_INSTANCE_CAST( instance, FMA_TYPE_IEXPORTER, FMAIExporter ))
#define FMA_IS_IEXPORTER( instance ) ( G_TYPE_CHECK_INSTANCE_TYPE( instance, FMA_TYPE_IEXPORTER ))
typedef struct {
/**
* get_version:
* @instance: this FMAIExporter instance.
*
* FileManager-Actions calls this method each time it needs to know
* which version of this interface the plugin implements.
*
* If this method is not implemented by the plugin,
* FileManager-Actions considers that the plugin only implements
* the version 1 of the FMAIImporter interface.
*
* Return value: if implemented, this method must return the version
* number of this interface the I/O provider is supporting.
*
* Defaults to 1.
*
* Since: 2.30
*/
guint ( *get_version )( const FMAIExporter *instance );
/**
* get_name:
* @instance: this FMAIExporter instance.
*
* Return value: if implemented, the method should return the name to be
* displayed, as a newly allocated string which will be g_free() by the
* caller.
*
* This may be the name of the module itself, but this also may be a
* special name the modules gives to this interface.
*
* Defaults to a NULL string.
*
* Since: 2.30
*/
gchar * ( *get_name ) ( const FMAIExporter *instance );
/**
* get_formats:
* @instance: this FMAIExporter instance.
*
* For its own internal needs, FileManager-Actions requires each export
* format has its own unique identifier (in fact, just a small ASCII
* string).
*
* To avoid any collision, the format identifier is allocated by the
* FileManager-Actions maintainers team. If you wish develop a new export
* format, and so need a new format identifier, please contact the
* maintainers (see filemanager-actions.doap).
*
* Return value:
* - Interface v1:
* a null-terminated list of FMAIExporterFormat structures
* which describes the formats supported by this FMAIExporter
* provider.
* The returned list is owned by the FMAIExporter provider,
* and should not be freed nor released by the caller.
*
* - Interface v2:
* a GList of FMAIExporterFormatv2 structures
* which describes the formats supported by this FMAIExporter
* provider.
* The caller should then invoke the free_formats() method
* in order the provider be able to release the resources
* allocated to the list.
*
* Defaults to NULL (no format at all).
*
* Since: 2.30
*/
void * ( *get_formats )( const FMAIExporter *instance );
/**
* free_formats:
* @instance: this FMAIExporter instance.
* @formats: a null-terminated list of FMAIExporterFormatv2 structures,
* as returned by get_formats() method above.
*
* Free the resources allocated to the @formats list.
*
* Since: 3.2
*/
void ( *free_formats )( const FMAIExporter *instance, GList *formats );
/**
* to_file:
* @instance: this FMAIExporter instance.
* @parms: a FMAIExporterFileParmsv2 structure.
*
* Exports the specified 'exported' to the target 'folder' in the required
* 'format'.
*
* Return value: the FMAIExporterExportStatus status of the operation.
*
* Since: 2.30
*/
guint ( *to_file ) ( const FMAIExporter *instance, FMAIExporterFileParmsv2 *parms );
/**
* to_buffer:
* @instance: this FMAIExporter instance.
* @parms: a FMAIExporterFileParmsv2 structure.
*
* Exports the specified 'exported' to a newly allocated 'buffer' in
* the required 'format'. The allocated 'buffer' will be g_free()
* by the caller.
*
* Return value: the FMAIExporterExportStatus status of the operation.
*
* Since: 2.30
*/
guint ( *to_buffer ) ( const FMAIExporter *instance, FMAIExporterBufferParmsv2 *parms );
} FMAIExporterInterface;
This defines the interface that a FMAIExporter should implement.
The reasons for which an item may not have been exported
typedef struct {
gchar *format;
gchar *label;
gchar *description;
} FMAIExporterFormat;
FMAIExporterFormat has been deprecated since version 3.2 and should not be used in newly-written code.
This structure describes a supported output format.
It must be provided by each FMAIExporter implementation
(see e.g. src/io-xml/naxml-formats.c).
When listing available export formats, the instance returns a GList of these structures.
typedef struct {
guint version;
FMAIExporter *provider;
gchar *format;
gchar *label;
gchar *description;
GdkPixbuf *pixbuf;
} FMAIExporterFormatv2;
FMAIExporterFormatv2 is deprecated and should not be used in newly-written code.
This structure describes a supported output format.
It must be provided by each FMAIExporter implementation
(see e.g. src/io-xml/fma-xml-formats.c).
When listing available export formats, the provider
must return a GList
of these structures.
guint |
the version of this FMAIExporterFormatv2 structure; equals to 2; since structure version 1. |
|
FMAIExporter * |
the FMAIExporter provider for this format; since structure version 2. |
|
gchar * |
format identifier (ascii, allocated by the FileManager-Actions team); since structure version 2. |
|
gchar * |
short label to be displayed in dialog (UTF-8 localized); since structure version 2. |
|
gchar * |
full description of the format (UTF-8 localized); mainly used as a tooltip; since structure version 2. |
|
GdkPixbuf * |
an image to be associated with this export format; this pixbuf is supposed to be rendered with GTK_ICON_SIZE_DIALOG size; since structure version 2. |
Since: 3.2
typedef struct {
guint version;
FMAObjectItem *exported;
gchar *folder;
GQuark format;
gchar *basename;
GSList *messages;
} FMAIExporterFileParms;
FMAIExporterFileParms has been deprecated since version 3.2 and should not be used in newly-written code.
The structure that the implementation receives as a parameter of
FMAIExporterInterface.to_file() interface method.
guint |
[in] version of this structure; since structure version 1. |
|
FMAObjectItem * |
[in] exported FMAObjectItem-derived object; since structure version 1. |
|
gchar * |
[in] URI of the target folder; since structure version 1. |
|
GQuark |
[in] export format as a GQuark; since structure version 1. |
|
gchar * |
[out] basename of the exported file; since structure version 1. |
|
GSList * |
[in/out] a GSList list of localized strings; the provider may append messages to this list, but shouldn't reinitialize it; since structure version 1. |
typedef struct {
guint version;
guint content;
FMAObjectItem *exported;
gchar *folder;
gchar *format;
gchar *basename;
GSList *messages;
} FMAIExporterFileParmsv2;
The structure that the plugin receives as a parameter of
FMAIExporterInterface.to_file() interface method.
guint |
[in] version of this structure; equals to 2; since structure version 1. |
|
guint |
[in] version of the content of this structure; equals to 1; since structure version 2. |
|
FMAObjectItem * |
[in] exported FMAObjectItem-derived object; since structure version 1. |
|
gchar * |
[in] URI of the target folder; since structure version 1. |
|
gchar * |
[in] export format string identifier; since structure version 1. |
|
gchar * |
[out] basename of the exported file; since structure version 1. |
|
GSList * |
[in/out] a GSList list of localized strings; the provider may append messages to this list, but shouldn't reinitialize it; since structure version 1. |
Since: 3.2
typedef struct {
guint version;
FMAObjectItem *exported;
GQuark format;
gchar *buffer;
GSList *messages;
} FMAIExporterBufferParms;
FMAIExporterBufferParms has been deprecated since version 3.2 and should not be used in newly-written code.
The structure that the plugin receives as a parameter of
FMAIExporterInterface.to_buffer() interface method.
guint |
[in] version of this structure; since structure version 1. |
|
FMAObjectItem * |
[in] exported FMAObjectItem-derived object; since structure version 1. |
|
GQuark |
[in] export format as a GQuark; since structure version 1. |
|
gchar * |
[out] buffer which contains the exported object; since structure version 1. |
|
GSList * |
[in/out] a GSList list of localized strings; the provider may append messages to this list, but shouldn't reinitialize it; since structure version 1. |
typedef struct {
guint version;
guint content;
FMAObjectItem *exported;
gchar *format;
gchar *buffer;
GSList *messages;
} FMAIExporterBufferParmsv2;
The structure that the plugin receives as a parameter of
FMAIExporterInterface.to_buffer() interface method.
guint |
[in] version of this structure; equals to 2; since structure version 1. |
|
guint |
[in] version of the content of this structure; equals to 1; since structure version 2. |
|
FMAObjectItem * |
[in] exported FMAObjectItem-derived object; since structure version 1. |
|
gchar * |
[in] export format string identifier; since structure version 2. |
|
gchar * |
[out] buffer which contains the exported object; since structure version 1. |
|
GSList * |
[in/out] a GSList list of localized strings; the provider may append messages to this list, but shouldn't reinitialize it; since structure version 1. |
Since: 3.2