File: gimpexportprocedure.h

package info (click to toggle)
gimp 3.0.4-6
  • links: PTS, VCS
  • area: main
  • in suites: forky
  • size: 210,316 kB
  • sloc: ansic: 842,339; lisp: 10,761; python: 10,318; cpp: 7,238; perl: 4,355; sh: 1,043; xml: 963; yacc: 609; lex: 348; javascript: 150; makefile: 43
file content (130 lines) | stat: -rw-r--r-- 7,184 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
/* GIMP - The GNU Image Manipulation Program
 * Copyright (C) 1995 Spencer Kimball and Peter Mattis
 *
 * gimpexportprocedure.h
 * Copyright (C) 2019 Michael Natterer <mitch@gimp.org>
 *
 * This library is free software: you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 3 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library.  If not, see
 * <https://www.gnu.org/licenses/>.
 */

#ifndef __GIMP_EXPORT_PROCEDURE_H__
#define __GIMP_EXPORT_PROCEDURE_H__

#include <libgimp/gimpfileprocedure.h>

G_BEGIN_DECLS

/* For information look into the C source or the html documentation */


/**
 * GimpRunExportFunc:
 * @procedure:   the #GimpProcedure that runs.
 * @run_mode:    the #GimpRunMode.
 * @image:       the image to export.
 * @file:        the #GFile to export to.
 * @options:     the #GimpExportOptions settings.
 * @metadata:    metadata object prepared for the mimetype passed in
 *               gimp_file_procedure_set_mime_types() if export_metadata
 *               argument was set in gimp_export_procedure_new().
 * @config:      the @procedure's remaining arguments.
 * @run_data: (closure): the run_data given in gimp_export_procedure_new().
 *
 * The export function is run during the lifetime of the GIMP session,
 * each time a plug-in export procedure is called.
 *
 * If a MimeType was passed in gimp_export_procedure_new(), then @metadata will be
 * non-%NULL and can be tweaked by the run() function if needed. Otherwise you
 * can let it as-is and it will be stored back into the exported @file according
 * to rules on metadata export shared across formats.
 *
 * Returns: (transfer full): the @procedure's return values.
 *
 * Since: 3.0
 **/
typedef GimpValueArray * (* GimpRunExportFunc) (GimpProcedure        *procedure,
                                                GimpRunMode           run_mode,
                                                GimpImage            *image,
                                                GFile                *file,
                                                GimpExportOptions    *options,
                                                GimpMetadata         *metadata,
                                                GimpProcedureConfig  *config,
                                                gpointer              run_data);

/**
 * GimpExportGetCapabilitiesFunc:
 * @procedure:   the #GimpProcedure that runs.
 * @config:      the #GimpProcedureConfig.
 * @options:     the @GimpExportOptions object to update.
 * @get_capabilities_data: (closure): the @get_capabilities_data argument
 *                         given to [method@Gimp.ExportProcedure.set_capabilities].
 *
 * This function returns the capabilities requested by your export
 * procedure, depending on @config or @options.
 *
 * Returns: a bitfield of the capabilities you want when preparing the
 *          image for exporting.
 *
 * Since: 3.0
 **/
typedef GimpExportCapabilities   (* GimpExportGetCapabilitiesFunc) (GimpProcedure        *procedure,
                                                                    GimpProcedureConfig  *config,
                                                                    GimpExportOptions    *options,
                                                                    gpointer              get_capabilities_data);


#define GIMP_TYPE_EXPORT_PROCEDURE (gimp_export_procedure_get_type ())
G_DECLARE_FINAL_TYPE (GimpExportProcedure, gimp_export_procedure, GIMP, EXPORT_PROCEDURE, GimpFileProcedure)


GimpProcedure * gimp_export_procedure_new                   (GimpPlugIn                    *plug_in,
                                                             const gchar                   *name,
                                                             GimpPDBProcType                proc_type,
                                                             gboolean                       export_metadata,
                                                             GimpRunExportFunc              run_func,
                                                             gpointer                       run_data,
                                                             GDestroyNotify                 run_data_destroy);

void            gimp_export_procedure_set_capabilities      (GimpExportProcedure           *procedure,
                                                             GimpExportCapabilities         capabilities,
                                                             GimpExportGetCapabilitiesFunc  get_capabilities_func,
                                                             gpointer                       get_capabilities_data,
                                                             GDestroyNotify                 get_capabilities_data_destroy);


void            gimp_export_procedure_set_support_exif      (GimpExportProcedure           *procedure,
                                                             gboolean                       supports);
void            gimp_export_procedure_set_support_iptc      (GimpExportProcedure           *procedure,
                                                             gboolean                       supports);
void            gimp_export_procedure_set_support_xmp       (GimpExportProcedure           *procedure,
                                                             gboolean                       supports);
void            gimp_export_procedure_set_support_profile   (GimpExportProcedure           *procedure,
                                                             gboolean                       supports);
void            gimp_export_procedure_set_support_thumbnail (GimpExportProcedure           *procedure,
                                                             gboolean                       supports);
void            gimp_export_procedure_set_support_comment   (GimpExportProcedure           *procedure,
                                                             gboolean                       supports);

gboolean        gimp_export_procedure_get_support_exif      (GimpExportProcedure           *procedure);
gboolean        gimp_export_procedure_get_support_iptc      (GimpExportProcedure           *procedure);
gboolean        gimp_export_procedure_get_support_xmp       (GimpExportProcedure           *procedure);
gboolean        gimp_export_procedure_get_support_profile   (GimpExportProcedure           *procedure);
gboolean        gimp_export_procedure_get_support_thumbnail (GimpExportProcedure           *procedure);
gboolean        gimp_export_procedure_get_support_comment   (GimpExportProcedure           *procedure);


G_END_DECLS

#endif  /*  __GIMP_EXPORT_PROCEDURE_H__  */