43
static void gimp_module_class_init (GimpModuleClass *klass);
44
static void gimp_module_init (GimpModule *module);
46
static void gimp_module_finalize (GObject *object);
48
static gboolean gimp_module_load (GTypeModule *module);
49
static void gimp_module_unload (GTypeModule *module);
51
static gboolean gimp_module_open (GimpModule *module);
52
static gboolean gimp_module_close (GimpModule *module);
53
static void gimp_module_set_last_error (GimpModule *module,
54
const gchar *error_str);
44
static void gimp_module_finalize (GObject *object);
46
static gboolean gimp_module_load (GTypeModule *module);
47
static void gimp_module_unload (GTypeModule *module);
49
static gboolean gimp_module_open (GimpModule *module);
50
static gboolean gimp_module_close (GimpModule *module);
51
static void gimp_module_set_last_error (GimpModule *module,
52
const gchar *error_str);
55
G_DEFINE_TYPE (GimpModule, gimp_module, G_TYPE_TYPE_MODULE)
57
#define parent_class gimp_module_parent_class
57
59
static guint module_signals[LAST_SIGNAL];
59
static GTypeModuleClass *parent_class = NULL;
63
gimp_module_get_type (void)
65
static GType module_type = 0;
69
static const GTypeInfo module_info =
71
sizeof (GimpModuleClass),
73
NULL, /* base_finalize */
74
(GClassInitFunc) gimp_module_class_init,
75
NULL, /* class_finalize */
76
NULL, /* class_data */
79
(GInstanceInitFunc) gimp_module_init,
82
module_type = g_type_register_static (G_TYPE_TYPE_MODULE,
91
63
gimp_module_class_init (GimpModuleClass *klass)
93
GObjectClass *object_class;
94
GTypeModuleClass *module_class;
96
object_class = G_OBJECT_CLASS (klass);
97
module_class = G_TYPE_MODULE_CLASS (klass);
99
parent_class = g_type_class_peek_parent (klass);
65
GObjectClass *object_class = G_OBJECT_CLASS (klass);
66
GTypeModuleClass *module_class = G_TYPE_MODULE_CLASS (klass);
101
68
module_signals[MODIFIED] =
102
69
g_signal_new ("modified",
103
G_TYPE_FROM_CLASS (klass),
105
G_STRUCT_OFFSET (GimpModuleClass, modified),
107
g_cclosure_marshal_VOID__VOID,
70
G_TYPE_FROM_CLASS (klass),
72
G_STRUCT_OFFSET (GimpModuleClass, modified),
74
g_cclosure_marshal_VOID__VOID,
110
77
object_class->finalize = gimp_module_finalize;
164
129
gimp_module_load (GTypeModule *module)
166
GimpModule *gimp_module;
131
GimpModule *gimp_module = GIMP_MODULE (module);
169
g_return_val_if_fail (GIMP_IS_MODULE (module), FALSE);
171
gimp_module = GIMP_MODULE (module);
173
134
g_return_val_if_fail (gimp_module->filename != NULL, FALSE);
174
135
g_return_val_if_fail (gimp_module->module == NULL, FALSE);
176
137
if (gimp_module->verbose)
177
g_print (_("Loading module: '%s'\n"),
138
g_print ("Loading module '%s'\n",
178
139
gimp_filename_to_utf8 (gimp_module->filename));
180
141
if (! gimp_module_open (gimp_module))
189
150
gimp_module_set_last_error (gimp_module,
190
151
"Missing gimp_module_register() symbol");
192
if (gimp_module->verbose)
193
g_message (_("Module '%s' load error: %s"),
194
gimp_filename_to_utf8 (gimp_module->filename),
195
gimp_module->last_module_error);
153
g_message (_("Module '%s' load error: %s"),
154
gimp_filename_to_utf8 (gimp_module->filename),
155
gimp_module->last_module_error);
197
157
gimp_module_close (gimp_module);
208
168
gimp_module_set_last_error (gimp_module,
209
169
"gimp_module_register() returned FALSE");
211
if (gimp_module->verbose)
212
g_message (_("Module '%s' load error: %s"),
213
gimp_filename_to_utf8 (gimp_module->filename),
214
gimp_module->last_module_error);
171
g_message (_("Module '%s' load error: %s"),
172
gimp_filename_to_utf8 (gimp_module->filename),
173
gimp_module->last_module_error);
216
175
gimp_module_close (gimp_module);
229
188
gimp_module_unload (GTypeModule *module)
231
GimpModule *gimp_module;
233
g_return_if_fail (GIMP_IS_MODULE (module));
235
gimp_module = GIMP_MODULE (module);
190
GimpModule *gimp_module = GIMP_MODULE (module);
237
192
g_return_if_fail (gimp_module->module != NULL);
194
if (gimp_module->verbose)
195
g_print ("Unloading module '%s'\n",
196
gimp_filename_to_utf8 (gimp_module->filename));
239
198
gimp_module_close (gimp_module);
322
277
gimp_module_set_last_error (module,
323
278
"Missing gimp_module_query() symbol");
326
g_message (_("Module '%s' load error: %s"),
327
gimp_filename_to_utf8 (module->filename),
328
module->last_module_error);
280
g_message (_("Module '%s' load error: %s"),
281
gimp_filename_to_utf8 (module->filename),
282
module->last_module_error);
330
284
gimp_module_close (module);
350
304
"module ABI version does not match" :
351
305
"gimp_module_query() returned NULL");
354
g_message (_("Module '%s' load error: %s"),
355
gimp_filename_to_utf8 (module->filename),
356
module->last_module_error);
307
g_message (_("Module '%s' load error: %s"),
308
gimp_filename_to_utf8 (module->filename),
309
module->last_module_error);
358
311
gimp_module_close (module);
438
391
* @const_static_values:
440
* Registers an enum similar to g_enum_register_static() but for
441
* modules. This function should actually live in GLib but since
442
* there's no such API, it is provided here.
393
* This function is deprecated! Use g_type_module_register_enum() instead.
444
395
* Return value: a new enum #GType
447
398
gimp_module_register_enum (GTypeModule *module,
449
400
const GEnumValue *const_static_values)
451
GTypeInfo enum_type_info = { 0, };
453
g_return_val_if_fail (G_IS_TYPE_MODULE (module), 0);
454
g_return_val_if_fail (name != NULL, 0);
455
g_return_val_if_fail (const_static_values != NULL, 0);
457
g_enum_complete_type_info (G_TYPE_ENUM,
458
&enum_type_info, const_static_values);
460
return g_type_module_register_type (G_TYPE_MODULE (module),
461
G_TYPE_ENUM, name, &enum_type_info, 0);
402
return g_type_module_register_enum (module, name, const_static_values);
474
415
module->state = GIMP_MODULE_STATE_ERROR;
475
416
gimp_module_set_last_error (module, g_module_error ());
478
g_message (_("Module '%s' load error: %s"),
479
gimp_filename_to_utf8 (module->filename),
480
module->last_module_error);
418
g_message (_("Module '%s' load error: %s"),
419
gimp_filename_to_utf8 (module->filename),
420
module->last_module_error);