mirror of https://github.com/GNOME/gimp.git
app/pdb/Makefile.am moved Argument and ProcArg structs and functions to
2006-03-31 Michael Natterer <mitch@gimp.org> * app/pdb/Makefile.am * app/pdb/gimpargument.[ch]: moved Argument and ProcArg structs and functions to these new files. Renamed functions to gimp_argument_foo(). * app/pdb/procedural_db.[ch]: removed them here. * app/batch.c * app/actions/plug-in-commands.c * app/actions/vectors-commands.c * app/core/gimppdbprogress.c * app/dialogs/about-dialog.c * app/file/file-open.c * app/file/file-save.c * app/pdb/gimpprocedure.c * app/pdb/procedural_db_cmds.c * app/plug-in/plug-in-message.c * app/plug-in/plug-in-params.c * app/plug-in/plug-in-progress.c * app/plug-in/plug-in-rc.c * app/plug-in/plug-in-run.c * app/plug-in/plug-ins.c * app/widgets/gimphelp.c * app/widgets/gimppdbdialog.c * app/xcf/xcf.c * tools/pdbgen/app.pl * tools/pdbgen/pdb/fileops.pdb: changed #includes and function calls accordingly. * app/pdb/*_cmds.c: regenerated.
This commit is contained in:
parent
fe90ae768b
commit
46a50b7e36
33
ChangeLog
33
ChangeLog
|
@ -1,3 +1,36 @@
|
|||
2006-03-31 Michael Natterer <mitch@gimp.org>
|
||||
|
||||
* app/pdb/Makefile.am
|
||||
* app/pdb/gimpargument.[ch]: moved Argument and ProcArg structs
|
||||
and functions to these new files. Renamed functions to
|
||||
gimp_argument_foo().
|
||||
|
||||
* app/pdb/procedural_db.[ch]: removed them here.
|
||||
|
||||
* app/batch.c
|
||||
* app/actions/plug-in-commands.c
|
||||
* app/actions/vectors-commands.c
|
||||
* app/core/gimppdbprogress.c
|
||||
* app/dialogs/about-dialog.c
|
||||
* app/file/file-open.c
|
||||
* app/file/file-save.c
|
||||
* app/pdb/gimpprocedure.c
|
||||
* app/pdb/procedural_db_cmds.c
|
||||
* app/plug-in/plug-in-message.c
|
||||
* app/plug-in/plug-in-params.c
|
||||
* app/plug-in/plug-in-progress.c
|
||||
* app/plug-in/plug-in-rc.c
|
||||
* app/plug-in/plug-in-run.c
|
||||
* app/plug-in/plug-ins.c
|
||||
* app/widgets/gimphelp.c
|
||||
* app/widgets/gimppdbdialog.c
|
||||
* app/xcf/xcf.c
|
||||
* tools/pdbgen/app.pl
|
||||
* tools/pdbgen/pdb/fileops.pdb: changed #includes and function
|
||||
calls accordingly.
|
||||
|
||||
* app/pdb/*_cmds.c: regenerated.
|
||||
|
||||
2006-03-31 Michael Natterer <mitch@gimp.org>
|
||||
|
||||
* app/pdb/pdb-types.h
|
||||
|
|
|
@ -37,8 +37,8 @@
|
|||
#include "plug-in/plug-in-run.h"
|
||||
#include "plug-in/plug-in-proc-def.h"
|
||||
|
||||
#include "pdb/gimpargument.h"
|
||||
#include "pdb/gimpprocedure.h"
|
||||
#include "pdb/procedural_db.h"
|
||||
|
||||
#include "widgets/gimphelp-ids.h"
|
||||
#include "widgets/gimpmessagebox.h"
|
||||
|
@ -145,7 +145,7 @@ plug_in_run_cmd_callback (GtkAction *action,
|
|||
}
|
||||
|
||||
error:
|
||||
procedural_db_destroy_args (args, procedure->num_args, TRUE);
|
||||
gimp_arguments_destroy (args, procedure->num_args, TRUE);
|
||||
}
|
||||
|
||||
void
|
||||
|
|
|
@ -40,6 +40,7 @@
|
|||
#include "core/gimpstrokedesc.h"
|
||||
#include "core/gimptoolinfo.h"
|
||||
|
||||
#include "pdb/gimpargument.h"
|
||||
#include "pdb/gimpprocedure.h"
|
||||
#include "pdb/procedural_db.h"
|
||||
|
||||
|
@ -343,7 +344,7 @@ vectors_selection_to_vectors_cmd_callback (GtkAction *action,
|
|||
procedure, args, 3 /* not procedure->num_args */,
|
||||
FALSE, TRUE, display ? gimp_display_get_ID (display) : 0);
|
||||
|
||||
procedural_db_destroy_args (args, procedure->num_args, TRUE);
|
||||
gimp_arguments_destroy (args, procedure->num_args, TRUE);
|
||||
}
|
||||
|
||||
void
|
||||
|
|
|
@ -31,6 +31,7 @@
|
|||
|
||||
#include "batch.h"
|
||||
|
||||
#include "pdb/gimpargument.h"
|
||||
#include "pdb/gimpprocedure.h"
|
||||
#include "pdb/procedural_db.h"
|
||||
|
||||
|
@ -162,8 +163,8 @@ batch_run_cmd (Gimp *gimp,
|
|||
break;
|
||||
}
|
||||
|
||||
procedural_db_destroy_args (return_vals, n_return_vals, TRUE);
|
||||
procedural_db_destroy_args (args, procedure->num_args, TRUE);
|
||||
gimp_arguments_destroy (return_vals, n_return_vals, TRUE);
|
||||
gimp_arguments_destroy (args, procedure->num_args, TRUE);
|
||||
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -29,7 +29,7 @@
|
|||
|
||||
#include "core/gimpcontext.h"
|
||||
|
||||
#include "pdb/gimpprocedure.h"
|
||||
#include "pdb/gimpargument.h"
|
||||
#include "pdb/procedural_db.h"
|
||||
|
||||
#include "gimppdbprogress.h"
|
||||
|
@ -271,7 +271,7 @@ gimp_pdb_progress_run_callback (GimpPdbProgress *progress,
|
|||
retval = g_value_get_double (&return_vals[1].value);
|
||||
}
|
||||
|
||||
procedural_db_destroy_args (return_vals, n_return_vals, TRUE);
|
||||
gimp_arguments_destroy (return_vals, n_return_vals, TRUE);
|
||||
|
||||
progress->callback_busy = FALSE;
|
||||
}
|
||||
|
|
|
@ -29,6 +29,7 @@
|
|||
|
||||
#include "core/gimpcontext.h"
|
||||
|
||||
#include "pdb/gimpargument.h"
|
||||
#include "pdb/procedural_db.h"
|
||||
|
||||
#include "about.h"
|
||||
|
@ -223,7 +224,7 @@ about_dialog_load_url (GtkAboutDialog *dialog,
|
|||
&nreturn_vals,
|
||||
GIMP_PDB_STRING, url,
|
||||
GIMP_PDB_END);
|
||||
procedural_db_destroy_args (return_vals, nreturn_vals, TRUE);
|
||||
gimp_arguments_destroy (return_vals, nreturn_vals, TRUE);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -56,6 +56,7 @@
|
|||
#include "core/gimpparamspecs.h"
|
||||
#include "core/gimpprogress.h"
|
||||
|
||||
#include "pdb/gimpargument.h"
|
||||
#include "pdb/gimpprocedure.h"
|
||||
#include "pdb/procedural_db.h"
|
||||
|
||||
|
@ -175,7 +176,7 @@ file_open_image (Gimp *gimp,
|
|||
_("Plug-In could not open image"));
|
||||
}
|
||||
|
||||
procedural_db_destroy_args (return_vals, n_return_vals, TRUE);
|
||||
gimp_arguments_destroy (return_vals, n_return_vals, TRUE);
|
||||
|
||||
return image;
|
||||
}
|
||||
|
@ -256,7 +257,7 @@ file_open_thumbnail (Gimp *gimp,
|
|||
}
|
||||
}
|
||||
|
||||
procedural_db_destroy_args (return_vals, n_return_vals, TRUE);
|
||||
gimp_arguments_destroy (return_vals, n_return_vals, TRUE);
|
||||
|
||||
return image;
|
||||
}
|
||||
|
|
|
@ -53,6 +53,7 @@
|
|||
#include "core/gimpimagefile.h"
|
||||
#include "core/gimpprogress.h"
|
||||
|
||||
#include "pdb/gimpargument.h"
|
||||
#include "pdb/gimpprocedure.h"
|
||||
#include "pdb/procedural_db.h"
|
||||
|
||||
|
@ -140,7 +141,7 @@ file_save (GimpImage *image,
|
|||
|
||||
status = g_value_get_enum (&return_vals[0].value);
|
||||
|
||||
procedural_db_destroy_args (return_vals, n_return_vals, TRUE);
|
||||
gimp_arguments_destroy (return_vals, n_return_vals, TRUE);
|
||||
|
||||
if (status == GIMP_PDB_SUCCESS)
|
||||
{
|
||||
|
|
|
@ -5,6 +5,8 @@ noinst_LIBRARIES = libapppdb.a
|
|||
libapppdb_a_SOURCES = \
|
||||
pdb-types.h \
|
||||
\
|
||||
gimpargument.c \
|
||||
gimpargument.h \
|
||||
gimpprocedure.c \
|
||||
gimpprocedure.h \
|
||||
\
|
||||
|
|
|
@ -25,6 +25,7 @@
|
|||
#include <glib-object.h>
|
||||
|
||||
#include "pdb-types.h"
|
||||
#include "gimpargument.h"
|
||||
#include "gimpprocedure.h"
|
||||
#include "procedural_db.h"
|
||||
#include "core/gimpparamspecs.h"
|
||||
|
|
|
@ -24,6 +24,7 @@
|
|||
#include <glib-object.h>
|
||||
|
||||
#include "pdb-types.h"
|
||||
#include "gimpargument.h"
|
||||
#include "gimpprocedure.h"
|
||||
#include "procedural_db.h"
|
||||
#include "core/gimpparamspecs.h"
|
||||
|
|
|
@ -25,6 +25,7 @@
|
|||
#include <glib-object.h>
|
||||
|
||||
#include "pdb-types.h"
|
||||
#include "gimpargument.h"
|
||||
#include "gimpprocedure.h"
|
||||
#include "procedural_db.h"
|
||||
#include "core/gimpparamspecs.h"
|
||||
|
|
|
@ -25,6 +25,7 @@
|
|||
#include <glib-object.h>
|
||||
|
||||
#include "pdb-types.h"
|
||||
#include "gimpargument.h"
|
||||
#include "gimpprocedure.h"
|
||||
#include "procedural_db.h"
|
||||
#include "core/gimpparamspecs.h"
|
||||
|
|
|
@ -26,6 +26,7 @@
|
|||
#include "libgimpcolor/gimpcolor.h"
|
||||
|
||||
#include "pdb-types.h"
|
||||
#include "gimpargument.h"
|
||||
#include "gimpprocedure.h"
|
||||
#include "procedural_db.h"
|
||||
#include "core/gimpparamspecs.h"
|
||||
|
|
|
@ -24,6 +24,7 @@
|
|||
#include <glib-object.h>
|
||||
|
||||
#include "pdb-types.h"
|
||||
#include "gimpargument.h"
|
||||
#include "gimpprocedure.h"
|
||||
#include "procedural_db.h"
|
||||
#include "core/gimpparamspecs.h"
|
||||
|
|
|
@ -26,6 +26,7 @@
|
|||
#include "libgimpcolor/gimpcolor.h"
|
||||
|
||||
#include "pdb-types.h"
|
||||
#include "gimpargument.h"
|
||||
#include "gimpprocedure.h"
|
||||
#include "procedural_db.h"
|
||||
#include "core/gimpparamspecs.h"
|
||||
|
|
|
@ -24,6 +24,7 @@
|
|||
#include <glib-object.h>
|
||||
|
||||
#include "pdb-types.h"
|
||||
#include "gimpargument.h"
|
||||
#include "gimpprocedure.h"
|
||||
#include "procedural_db.h"
|
||||
#include "core/gimpparamspecs.h"
|
||||
|
|
|
@ -24,6 +24,7 @@
|
|||
#include <glib-object.h>
|
||||
|
||||
#include "pdb-types.h"
|
||||
#include "gimpargument.h"
|
||||
#include "gimpprocedure.h"
|
||||
#include "procedural_db.h"
|
||||
#include "core/gimpparamspecs.h"
|
||||
|
|
|
@ -24,6 +24,7 @@
|
|||
#include <glib-object.h>
|
||||
|
||||
#include "pdb-types.h"
|
||||
#include "gimpargument.h"
|
||||
#include "gimpprocedure.h"
|
||||
#include "procedural_db.h"
|
||||
#include "core/gimpparamspecs.h"
|
||||
|
|
|
@ -26,6 +26,7 @@
|
|||
#include "libgimpmath/gimpmath.h"
|
||||
|
||||
#include "pdb-types.h"
|
||||
#include "gimpargument.h"
|
||||
#include "gimpprocedure.h"
|
||||
#include "procedural_db.h"
|
||||
#include "core/gimpparamspecs.h"
|
||||
|
|
|
@ -25,6 +25,7 @@
|
|||
#include <glib-object.h>
|
||||
|
||||
#include "pdb-types.h"
|
||||
#include "gimpargument.h"
|
||||
#include "gimpprocedure.h"
|
||||
#include "procedural_db.h"
|
||||
#include "core/gimpparamspecs.h"
|
||||
|
|
|
@ -30,6 +30,7 @@
|
|||
#include "libgimpthumb/gimpthumb.h"
|
||||
|
||||
#include "pdb-types.h"
|
||||
#include "gimpargument.h"
|
||||
#include "gimpprocedure.h"
|
||||
#include "procedural_db.h"
|
||||
#include "core/gimpparamspecs.h"
|
||||
|
@ -507,7 +508,7 @@ file_load_invoker (GimpProcedure *procedure,
|
|||
new_args, proc->num_args,
|
||||
&n_return_vals);
|
||||
|
||||
procedural_db_destroy_args (new_args, proc->num_args, TRUE);
|
||||
gimp_arguments_destroy (new_args, proc->num_args, TRUE);
|
||||
|
||||
return return_vals;
|
||||
}
|
||||
|
@ -730,7 +731,7 @@ file_save_invoker (GimpProcedure *procedure,
|
|||
new_args, proc->num_args,
|
||||
&n_return_vals);
|
||||
|
||||
procedural_db_destroy_args (new_args, proc->num_args, TRUE);
|
||||
gimp_arguments_destroy (new_args, proc->num_args, TRUE);
|
||||
|
||||
return return_vals;
|
||||
}
|
||||
|
|
|
@ -24,6 +24,7 @@
|
|||
#include <glib-object.h>
|
||||
|
||||
#include "pdb-types.h"
|
||||
#include "gimpargument.h"
|
||||
#include "gimpprocedure.h"
|
||||
#include "procedural_db.h"
|
||||
#include "core/gimpparamspecs.h"
|
||||
|
|
|
@ -24,6 +24,7 @@
|
|||
#include <glib-object.h>
|
||||
|
||||
#include "pdb-types.h"
|
||||
#include "gimpargument.h"
|
||||
#include "gimpprocedure.h"
|
||||
#include "procedural_db.h"
|
||||
#include "core/gimpparamspecs.h"
|
||||
|
|
|
@ -24,6 +24,7 @@
|
|||
#include <glib-object.h>
|
||||
|
||||
#include "pdb-types.h"
|
||||
#include "gimpargument.h"
|
||||
#include "gimpprocedure.h"
|
||||
#include "procedural_db.h"
|
||||
#include "core/gimpparamspecs.h"
|
||||
|
|
|
@ -36,6 +36,7 @@
|
|||
|
||||
#include "core/gimp.h"
|
||||
|
||||
#include "gimpargument.h"
|
||||
#include "gimpprocedure.h"
|
||||
#include "procedural_db.h"
|
||||
#include "procedural-db-query.h"
|
||||
|
|
|
@ -40,6 +40,7 @@
|
|||
|
||||
#include "plug-in/plug-in-run.h"
|
||||
|
||||
#include "gimpargument.h"
|
||||
#include "gimpprocedure.h"
|
||||
#include "internal_procs.h"
|
||||
#include "procedural_db.h"
|
||||
|
@ -284,7 +285,7 @@ procedural_db_execute (Gimp *gimp,
|
|||
* and run the next procedure.
|
||||
*/
|
||||
if (g_list_next (list))
|
||||
procedural_db_destroy_args (return_vals, *n_return_vals, TRUE);
|
||||
gimp_arguments_destroy (return_vals, *n_return_vals, TRUE);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -351,7 +352,7 @@ procedural_db_run_proc (Gimp *gimp,
|
|||
gchar *expected = procedural_db_type_name (procedure->args[i].type);
|
||||
gchar *got = procedural_db_type_name (arg_type);
|
||||
|
||||
procedural_db_destroy_args (params, procedure->num_args, TRUE);
|
||||
gimp_arguments_destroy (params, procedure->num_args, TRUE);
|
||||
|
||||
g_message (_("PDB calling error for procedure '%s':\n"
|
||||
"Argument #%d type mismatch (expected %s, got %s)"),
|
||||
|
@ -444,156 +445,11 @@ procedural_db_run_proc (Gimp *gimp,
|
|||
params, procedure->num_args,
|
||||
n_return_vals);
|
||||
|
||||
procedural_db_destroy_args (params, procedure->num_args, FALSE);
|
||||
gimp_arguments_destroy (params, procedure->num_args, FALSE);
|
||||
|
||||
return return_vals;
|
||||
}
|
||||
|
||||
void
|
||||
procedural_db_destroy_args (Argument *args,
|
||||
gint n_args,
|
||||
gboolean full_destroy)
|
||||
{
|
||||
gint i;
|
||||
|
||||
if (! args && n_args)
|
||||
return;
|
||||
|
||||
for (i = n_args - 1; i >= 0; i--)
|
||||
{
|
||||
switch (args[i].type)
|
||||
{
|
||||
case GIMP_PDB_INT32:
|
||||
case GIMP_PDB_INT16:
|
||||
case GIMP_PDB_INT8:
|
||||
case GIMP_PDB_FLOAT:
|
||||
case GIMP_PDB_STRING:
|
||||
break;
|
||||
|
||||
case GIMP_PDB_INT32ARRAY:
|
||||
case GIMP_PDB_INT16ARRAY:
|
||||
case GIMP_PDB_INT8ARRAY:
|
||||
case GIMP_PDB_FLOATARRAY:
|
||||
if (full_destroy)
|
||||
g_free (g_value_get_pointer (&args[i].value));
|
||||
break;
|
||||
|
||||
case GIMP_PDB_STRINGARRAY:
|
||||
if (full_destroy)
|
||||
{
|
||||
gchar **array;
|
||||
gint count;
|
||||
gint j;
|
||||
|
||||
count = g_value_get_int (&args[i - 1].value);
|
||||
array = g_value_get_pointer (&args[i].value);
|
||||
|
||||
for (j = 0; j < count; j++)
|
||||
g_free (array[j]);
|
||||
|
||||
g_free (array);
|
||||
}
|
||||
break;
|
||||
|
||||
case GIMP_PDB_COLOR:
|
||||
case GIMP_PDB_REGION:
|
||||
case GIMP_PDB_DISPLAY:
|
||||
case GIMP_PDB_IMAGE:
|
||||
case GIMP_PDB_LAYER:
|
||||
case GIMP_PDB_CHANNEL:
|
||||
case GIMP_PDB_DRAWABLE:
|
||||
case GIMP_PDB_SELECTION:
|
||||
case GIMP_PDB_BOUNDARY:
|
||||
case GIMP_PDB_VECTORS:
|
||||
case GIMP_PDB_PARASITE:
|
||||
case GIMP_PDB_STATUS:
|
||||
case GIMP_PDB_END:
|
||||
break;
|
||||
}
|
||||
|
||||
g_value_unset (&args[i].value);
|
||||
}
|
||||
|
||||
g_free (args);
|
||||
}
|
||||
|
||||
void
|
||||
procedural_db_argument_init (Argument *arg,
|
||||
ProcArg *proc_arg)
|
||||
{
|
||||
g_return_if_fail (arg != NULL);
|
||||
g_return_if_fail (proc_arg != NULL);
|
||||
|
||||
arg->type = proc_arg->type;
|
||||
g_value_init (&arg->value, proc_arg->pspec->value_type);
|
||||
}
|
||||
|
||||
void
|
||||
procedural_db_compat_arg_init (Argument *arg,
|
||||
GimpPDBArgType arg_type)
|
||||
{
|
||||
g_return_if_fail (arg != NULL);
|
||||
|
||||
arg->type = arg_type;
|
||||
|
||||
switch (arg_type)
|
||||
{
|
||||
case GIMP_PDB_INT32:
|
||||
case GIMP_PDB_INT16:
|
||||
g_value_init (&arg->value, G_TYPE_INT);
|
||||
break;
|
||||
|
||||
case GIMP_PDB_INT8:
|
||||
g_value_init (&arg->value, G_TYPE_UINT);
|
||||
break;
|
||||
|
||||
case GIMP_PDB_FLOAT:
|
||||
g_value_init (&arg->value, G_TYPE_DOUBLE);
|
||||
break;
|
||||
|
||||
case GIMP_PDB_STRING:
|
||||
g_value_init (&arg->value, G_TYPE_STRING);
|
||||
break;
|
||||
|
||||
case GIMP_PDB_INT32ARRAY:
|
||||
case GIMP_PDB_INT16ARRAY:
|
||||
case GIMP_PDB_INT8ARRAY:
|
||||
case GIMP_PDB_FLOATARRAY:
|
||||
case GIMP_PDB_STRINGARRAY:
|
||||
g_value_init (&arg->value, G_TYPE_POINTER);
|
||||
break;
|
||||
|
||||
case GIMP_PDB_COLOR:
|
||||
g_value_init (&arg->value, GIMP_TYPE_RGB);
|
||||
break;
|
||||
|
||||
case GIMP_PDB_REGION:
|
||||
case GIMP_PDB_BOUNDARY:
|
||||
break;
|
||||
|
||||
case GIMP_PDB_DISPLAY:
|
||||
case GIMP_PDB_IMAGE:
|
||||
case GIMP_PDB_LAYER:
|
||||
case GIMP_PDB_CHANNEL:
|
||||
case GIMP_PDB_DRAWABLE:
|
||||
case GIMP_PDB_SELECTION:
|
||||
case GIMP_PDB_VECTORS:
|
||||
g_value_init (&arg->value, G_TYPE_INT);
|
||||
break;
|
||||
|
||||
case GIMP_PDB_PARASITE:
|
||||
g_value_init (&arg->value, GIMP_TYPE_PARASITE);
|
||||
break;
|
||||
|
||||
case GIMP_PDB_STATUS:
|
||||
g_value_init (&arg->value, GIMP_TYPE_PDB_STATUS_TYPE);
|
||||
break;
|
||||
|
||||
case GIMP_PDB_END:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
gchar *
|
||||
procedural_db_type_name (GimpPDBArgType type)
|
||||
{
|
||||
|
|
|
@ -20,19 +20,6 @@
|
|||
#define __PROCEDURAL_DB_H__
|
||||
|
||||
|
||||
struct _Argument
|
||||
{
|
||||
GimpPDBArgType type;
|
||||
GValue value;
|
||||
};
|
||||
|
||||
struct _ProcArg
|
||||
{
|
||||
GimpPDBArgType type; /* Argument type (int, char, char *, etc) */
|
||||
GParamSpec *pspec;
|
||||
};
|
||||
|
||||
|
||||
void procedural_db_init (Gimp *gimp);
|
||||
void procedural_db_free (Gimp *gimp);
|
||||
|
||||
|
@ -59,15 +46,6 @@ Argument * procedural_db_run_proc (Gimp *gimp,
|
|||
gint *n_return_vals,
|
||||
...);
|
||||
|
||||
void procedural_db_argument_init (Argument *arg,
|
||||
ProcArg *proc_arg);
|
||||
void procedural_db_compat_arg_init (Argument *arg,
|
||||
GimpPDBArgType arg_type);
|
||||
|
||||
void procedural_db_destroy_args (Argument *args,
|
||||
gint n_args,
|
||||
gboolean full_destroy);
|
||||
|
||||
gchar * procedural_db_type_name (GimpPDBArgType type);
|
||||
|
||||
|
||||
|
|
|
@ -0,0 +1,177 @@
|
|||
/* The GIMP -- an image manipulation program
|
||||
* Copyright (C) 1995 Spencer Kimball and Peter Mattis
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program 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 General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
#include "config.h"
|
||||
|
||||
#include <glib-object.h>
|
||||
|
||||
#include "libgimpcolor/gimpcolor.h"
|
||||
|
||||
#include "pdb-types.h"
|
||||
|
||||
#include "core/gimpparamspecs.h"
|
||||
|
||||
#include "gimpargument.h"
|
||||
|
||||
|
||||
/* public functions */
|
||||
|
||||
void
|
||||
gimp_argument_init (Argument *arg,
|
||||
ProcArg *proc_arg)
|
||||
{
|
||||
g_return_if_fail (arg != NULL);
|
||||
g_return_if_fail (proc_arg != NULL);
|
||||
|
||||
arg->type = proc_arg->type;
|
||||
g_value_init (&arg->value, proc_arg->pspec->value_type);
|
||||
}
|
||||
|
||||
void
|
||||
gimp_argument_init_compat (Argument *arg,
|
||||
GimpPDBArgType arg_type)
|
||||
{
|
||||
g_return_if_fail (arg != NULL);
|
||||
|
||||
arg->type = arg_type;
|
||||
|
||||
switch (arg_type)
|
||||
{
|
||||
case GIMP_PDB_INT32:
|
||||
case GIMP_PDB_INT16:
|
||||
g_value_init (&arg->value, G_TYPE_INT);
|
||||
break;
|
||||
|
||||
case GIMP_PDB_INT8:
|
||||
g_value_init (&arg->value, G_TYPE_UINT);
|
||||
break;
|
||||
|
||||
case GIMP_PDB_FLOAT:
|
||||
g_value_init (&arg->value, G_TYPE_DOUBLE);
|
||||
break;
|
||||
|
||||
case GIMP_PDB_STRING:
|
||||
g_value_init (&arg->value, G_TYPE_STRING);
|
||||
break;
|
||||
|
||||
case GIMP_PDB_INT32ARRAY:
|
||||
case GIMP_PDB_INT16ARRAY:
|
||||
case GIMP_PDB_INT8ARRAY:
|
||||
case GIMP_PDB_FLOATARRAY:
|
||||
case GIMP_PDB_STRINGARRAY:
|
||||
g_value_init (&arg->value, G_TYPE_POINTER);
|
||||
break;
|
||||
|
||||
case GIMP_PDB_COLOR:
|
||||
g_value_init (&arg->value, GIMP_TYPE_RGB);
|
||||
break;
|
||||
|
||||
case GIMP_PDB_REGION:
|
||||
case GIMP_PDB_BOUNDARY:
|
||||
break;
|
||||
|
||||
case GIMP_PDB_DISPLAY:
|
||||
case GIMP_PDB_IMAGE:
|
||||
case GIMP_PDB_LAYER:
|
||||
case GIMP_PDB_CHANNEL:
|
||||
case GIMP_PDB_DRAWABLE:
|
||||
case GIMP_PDB_SELECTION:
|
||||
case GIMP_PDB_VECTORS:
|
||||
g_value_init (&arg->value, G_TYPE_INT);
|
||||
break;
|
||||
|
||||
case GIMP_PDB_PARASITE:
|
||||
g_value_init (&arg->value, GIMP_TYPE_PARASITE);
|
||||
break;
|
||||
|
||||
case GIMP_PDB_STATUS:
|
||||
g_value_init (&arg->value, GIMP_TYPE_PDB_STATUS_TYPE);
|
||||
break;
|
||||
|
||||
case GIMP_PDB_END:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
gimp_arguments_destroy (Argument *args,
|
||||
gint n_args,
|
||||
gboolean full_destroy)
|
||||
{
|
||||
gint i;
|
||||
|
||||
if (! args && n_args)
|
||||
return;
|
||||
|
||||
for (i = n_args - 1; i >= 0; i--)
|
||||
{
|
||||
switch (args[i].type)
|
||||
{
|
||||
case GIMP_PDB_INT32:
|
||||
case GIMP_PDB_INT16:
|
||||
case GIMP_PDB_INT8:
|
||||
case GIMP_PDB_FLOAT:
|
||||
case GIMP_PDB_STRING:
|
||||
break;
|
||||
|
||||
case GIMP_PDB_INT32ARRAY:
|
||||
case GIMP_PDB_INT16ARRAY:
|
||||
case GIMP_PDB_INT8ARRAY:
|
||||
case GIMP_PDB_FLOATARRAY:
|
||||
if (full_destroy)
|
||||
g_free (g_value_get_pointer (&args[i].value));
|
||||
break;
|
||||
|
||||
case GIMP_PDB_STRINGARRAY:
|
||||
if (full_destroy)
|
||||
{
|
||||
gchar **array;
|
||||
gint count;
|
||||
gint j;
|
||||
|
||||
count = g_value_get_int (&args[i - 1].value);
|
||||
array = g_value_get_pointer (&args[i].value);
|
||||
|
||||
for (j = 0; j < count; j++)
|
||||
g_free (array[j]);
|
||||
|
||||
g_free (array);
|
||||
}
|
||||
break;
|
||||
|
||||
case GIMP_PDB_COLOR:
|
||||
case GIMP_PDB_REGION:
|
||||
case GIMP_PDB_DISPLAY:
|
||||
case GIMP_PDB_IMAGE:
|
||||
case GIMP_PDB_LAYER:
|
||||
case GIMP_PDB_CHANNEL:
|
||||
case GIMP_PDB_DRAWABLE:
|
||||
case GIMP_PDB_SELECTION:
|
||||
case GIMP_PDB_BOUNDARY:
|
||||
case GIMP_PDB_VECTORS:
|
||||
case GIMP_PDB_PARASITE:
|
||||
case GIMP_PDB_STATUS:
|
||||
case GIMP_PDB_END:
|
||||
break;
|
||||
}
|
||||
|
||||
g_value_unset (&args[i].value);
|
||||
}
|
||||
|
||||
g_free (args);
|
||||
}
|
|
@ -0,0 +1,46 @@
|
|||
/* The GIMP -- an image manipulation program
|
||||
* Copyright (C) 1995 Spencer Kimball and Peter Mattis
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program 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 General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
#ifndef __GIMP_ARGUMENT_H__
|
||||
#define __GIMP_ARGUMENT_H__
|
||||
|
||||
|
||||
struct _Argument
|
||||
{
|
||||
GimpPDBArgType type;
|
||||
GValue value;
|
||||
};
|
||||
|
||||
struct _ProcArg
|
||||
{
|
||||
GimpPDBArgType type;
|
||||
GParamSpec *pspec;
|
||||
};
|
||||
|
||||
|
||||
void gimp_argument_init (Argument *arg,
|
||||
ProcArg *proc_arg);
|
||||
void gimp_argument_init_compat (Argument *arg,
|
||||
GimpPDBArgType arg_type);
|
||||
|
||||
void gimp_arguments_destroy (Argument *args,
|
||||
gint n_args,
|
||||
gboolean full_destroy);
|
||||
|
||||
|
||||
#endif /* __GIMP_ARGUMENT_H__ */
|
|
@ -36,6 +36,7 @@
|
|||
|
||||
#include "core/gimp.h"
|
||||
|
||||
#include "gimpargument.h"
|
||||
#include "gimpprocedure.h"
|
||||
#include "procedural_db.h"
|
||||
#include "procedural-db-query.h"
|
||||
|
|
|
@ -40,6 +40,7 @@
|
|||
|
||||
#include "plug-in/plug-in-run.h"
|
||||
|
||||
#include "gimpargument.h"
|
||||
#include "gimpprocedure.h"
|
||||
#include "internal_procs.h"
|
||||
#include "procedural_db.h"
|
||||
|
@ -284,7 +285,7 @@ procedural_db_execute (Gimp *gimp,
|
|||
* and run the next procedure.
|
||||
*/
|
||||
if (g_list_next (list))
|
||||
procedural_db_destroy_args (return_vals, *n_return_vals, TRUE);
|
||||
gimp_arguments_destroy (return_vals, *n_return_vals, TRUE);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -351,7 +352,7 @@ procedural_db_run_proc (Gimp *gimp,
|
|||
gchar *expected = procedural_db_type_name (procedure->args[i].type);
|
||||
gchar *got = procedural_db_type_name (arg_type);
|
||||
|
||||
procedural_db_destroy_args (params, procedure->num_args, TRUE);
|
||||
gimp_arguments_destroy (params, procedure->num_args, TRUE);
|
||||
|
||||
g_message (_("PDB calling error for procedure '%s':\n"
|
||||
"Argument #%d type mismatch (expected %s, got %s)"),
|
||||
|
@ -444,156 +445,11 @@ procedural_db_run_proc (Gimp *gimp,
|
|||
params, procedure->num_args,
|
||||
n_return_vals);
|
||||
|
||||
procedural_db_destroy_args (params, procedure->num_args, FALSE);
|
||||
gimp_arguments_destroy (params, procedure->num_args, FALSE);
|
||||
|
||||
return return_vals;
|
||||
}
|
||||
|
||||
void
|
||||
procedural_db_destroy_args (Argument *args,
|
||||
gint n_args,
|
||||
gboolean full_destroy)
|
||||
{
|
||||
gint i;
|
||||
|
||||
if (! args && n_args)
|
||||
return;
|
||||
|
||||
for (i = n_args - 1; i >= 0; i--)
|
||||
{
|
||||
switch (args[i].type)
|
||||
{
|
||||
case GIMP_PDB_INT32:
|
||||
case GIMP_PDB_INT16:
|
||||
case GIMP_PDB_INT8:
|
||||
case GIMP_PDB_FLOAT:
|
||||
case GIMP_PDB_STRING:
|
||||
break;
|
||||
|
||||
case GIMP_PDB_INT32ARRAY:
|
||||
case GIMP_PDB_INT16ARRAY:
|
||||
case GIMP_PDB_INT8ARRAY:
|
||||
case GIMP_PDB_FLOATARRAY:
|
||||
if (full_destroy)
|
||||
g_free (g_value_get_pointer (&args[i].value));
|
||||
break;
|
||||
|
||||
case GIMP_PDB_STRINGARRAY:
|
||||
if (full_destroy)
|
||||
{
|
||||
gchar **array;
|
||||
gint count;
|
||||
gint j;
|
||||
|
||||
count = g_value_get_int (&args[i - 1].value);
|
||||
array = g_value_get_pointer (&args[i].value);
|
||||
|
||||
for (j = 0; j < count; j++)
|
||||
g_free (array[j]);
|
||||
|
||||
g_free (array);
|
||||
}
|
||||
break;
|
||||
|
||||
case GIMP_PDB_COLOR:
|
||||
case GIMP_PDB_REGION:
|
||||
case GIMP_PDB_DISPLAY:
|
||||
case GIMP_PDB_IMAGE:
|
||||
case GIMP_PDB_LAYER:
|
||||
case GIMP_PDB_CHANNEL:
|
||||
case GIMP_PDB_DRAWABLE:
|
||||
case GIMP_PDB_SELECTION:
|
||||
case GIMP_PDB_BOUNDARY:
|
||||
case GIMP_PDB_VECTORS:
|
||||
case GIMP_PDB_PARASITE:
|
||||
case GIMP_PDB_STATUS:
|
||||
case GIMP_PDB_END:
|
||||
break;
|
||||
}
|
||||
|
||||
g_value_unset (&args[i].value);
|
||||
}
|
||||
|
||||
g_free (args);
|
||||
}
|
||||
|
||||
void
|
||||
procedural_db_argument_init (Argument *arg,
|
||||
ProcArg *proc_arg)
|
||||
{
|
||||
g_return_if_fail (arg != NULL);
|
||||
g_return_if_fail (proc_arg != NULL);
|
||||
|
||||
arg->type = proc_arg->type;
|
||||
g_value_init (&arg->value, proc_arg->pspec->value_type);
|
||||
}
|
||||
|
||||
void
|
||||
procedural_db_compat_arg_init (Argument *arg,
|
||||
GimpPDBArgType arg_type)
|
||||
{
|
||||
g_return_if_fail (arg != NULL);
|
||||
|
||||
arg->type = arg_type;
|
||||
|
||||
switch (arg_type)
|
||||
{
|
||||
case GIMP_PDB_INT32:
|
||||
case GIMP_PDB_INT16:
|
||||
g_value_init (&arg->value, G_TYPE_INT);
|
||||
break;
|
||||
|
||||
case GIMP_PDB_INT8:
|
||||
g_value_init (&arg->value, G_TYPE_UINT);
|
||||
break;
|
||||
|
||||
case GIMP_PDB_FLOAT:
|
||||
g_value_init (&arg->value, G_TYPE_DOUBLE);
|
||||
break;
|
||||
|
||||
case GIMP_PDB_STRING:
|
||||
g_value_init (&arg->value, G_TYPE_STRING);
|
||||
break;
|
||||
|
||||
case GIMP_PDB_INT32ARRAY:
|
||||
case GIMP_PDB_INT16ARRAY:
|
||||
case GIMP_PDB_INT8ARRAY:
|
||||
case GIMP_PDB_FLOATARRAY:
|
||||
case GIMP_PDB_STRINGARRAY:
|
||||
g_value_init (&arg->value, G_TYPE_POINTER);
|
||||
break;
|
||||
|
||||
case GIMP_PDB_COLOR:
|
||||
g_value_init (&arg->value, GIMP_TYPE_RGB);
|
||||
break;
|
||||
|
||||
case GIMP_PDB_REGION:
|
||||
case GIMP_PDB_BOUNDARY:
|
||||
break;
|
||||
|
||||
case GIMP_PDB_DISPLAY:
|
||||
case GIMP_PDB_IMAGE:
|
||||
case GIMP_PDB_LAYER:
|
||||
case GIMP_PDB_CHANNEL:
|
||||
case GIMP_PDB_DRAWABLE:
|
||||
case GIMP_PDB_SELECTION:
|
||||
case GIMP_PDB_VECTORS:
|
||||
g_value_init (&arg->value, G_TYPE_INT);
|
||||
break;
|
||||
|
||||
case GIMP_PDB_PARASITE:
|
||||
g_value_init (&arg->value, GIMP_TYPE_PARASITE);
|
||||
break;
|
||||
|
||||
case GIMP_PDB_STATUS:
|
||||
g_value_init (&arg->value, GIMP_TYPE_PDB_STATUS_TYPE);
|
||||
break;
|
||||
|
||||
case GIMP_PDB_END:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
gchar *
|
||||
procedural_db_type_name (GimpPDBArgType type)
|
||||
{
|
||||
|
|
|
@ -20,19 +20,6 @@
|
|||
#define __PROCEDURAL_DB_H__
|
||||
|
||||
|
||||
struct _Argument
|
||||
{
|
||||
GimpPDBArgType type;
|
||||
GValue value;
|
||||
};
|
||||
|
||||
struct _ProcArg
|
||||
{
|
||||
GimpPDBArgType type; /* Argument type (int, char, char *, etc) */
|
||||
GParamSpec *pspec;
|
||||
};
|
||||
|
||||
|
||||
void procedural_db_init (Gimp *gimp);
|
||||
void procedural_db_free (Gimp *gimp);
|
||||
|
||||
|
@ -59,15 +46,6 @@ Argument * procedural_db_run_proc (Gimp *gimp,
|
|||
gint *n_return_vals,
|
||||
...);
|
||||
|
||||
void procedural_db_argument_init (Argument *arg,
|
||||
ProcArg *proc_arg);
|
||||
void procedural_db_compat_arg_init (Argument *arg,
|
||||
GimpPDBArgType arg_type);
|
||||
|
||||
void procedural_db_destroy_args (Argument *args,
|
||||
gint n_args,
|
||||
gboolean full_destroy);
|
||||
|
||||
gchar * procedural_db_type_name (GimpPDBArgType type);
|
||||
|
||||
|
||||
|
|
|
@ -40,6 +40,7 @@
|
|||
|
||||
#include "plug-in/plug-in-run.h"
|
||||
|
||||
#include "gimpargument.h"
|
||||
#include "gimpprocedure.h"
|
||||
#include "procedural_db.h"
|
||||
|
||||
|
@ -338,7 +339,7 @@ gimp_procedure_get_arguments (GimpProcedure *procedure)
|
|||
args = g_new0 (Argument, procedure->num_args);
|
||||
|
||||
for (i = 0; i < procedure->num_args; i++)
|
||||
procedural_db_argument_init (&args[i], &procedure->args[i]);
|
||||
gimp_argument_init (&args[i], &procedure->args[i]);
|
||||
|
||||
return args;
|
||||
}
|
||||
|
@ -361,7 +362,7 @@ gimp_procedure_get_return_values (GimpProcedure *procedure,
|
|||
|
||||
args = g_new0 (Argument, n_args);
|
||||
|
||||
procedural_db_compat_arg_init (&args[0], GIMP_PDB_STATUS);
|
||||
gimp_argument_init_compat (&args[0], GIMP_PDB_STATUS);
|
||||
|
||||
if (success)
|
||||
g_value_set_enum (&args[0].value, GIMP_PDB_SUCCESS);
|
||||
|
@ -370,7 +371,7 @@ gimp_procedure_get_return_values (GimpProcedure *procedure,
|
|||
|
||||
if (procedure)
|
||||
for (i = 0; i < procedure->num_values; i++)
|
||||
procedural_db_argument_init (&args[i + 1], &procedure->values[i]);
|
||||
gimp_argument_init (&args[i + 1], &procedure->values[i]);
|
||||
|
||||
return args;
|
||||
}
|
||||
|
|
|
@ -28,6 +28,7 @@
|
|||
#include "libgimpmodule/gimpmodule.h"
|
||||
|
||||
#include "pdb-types.h"
|
||||
#include "gimpargument.h"
|
||||
#include "gimpprocedure.h"
|
||||
#include "procedural_db.h"
|
||||
#include "core/gimpparamspecs.h"
|
||||
|
|
|
@ -27,6 +27,7 @@
|
|||
#include "libgimpcolor/gimpcolor.h"
|
||||
|
||||
#include "pdb-types.h"
|
||||
#include "gimpargument.h"
|
||||
#include "gimpprocedure.h"
|
||||
#include "procedural_db.h"
|
||||
#include "core/gimpparamspecs.h"
|
||||
|
|
|
@ -24,6 +24,7 @@
|
|||
#include <glib-object.h>
|
||||
|
||||
#include "pdb-types.h"
|
||||
#include "gimpargument.h"
|
||||
#include "gimpprocedure.h"
|
||||
#include "procedural_db.h"
|
||||
#include "core/gimpparamspecs.h"
|
||||
|
|
|
@ -25,6 +25,7 @@
|
|||
#include <glib-object.h>
|
||||
|
||||
#include "pdb-types.h"
|
||||
#include "gimpargument.h"
|
||||
#include "gimpprocedure.h"
|
||||
#include "procedural_db.h"
|
||||
#include "core/gimpparamspecs.h"
|
||||
|
|
|
@ -27,6 +27,7 @@
|
|||
#include "libgimpcolor/gimpcolor.h"
|
||||
|
||||
#include "pdb-types.h"
|
||||
#include "gimpargument.h"
|
||||
#include "gimpprocedure.h"
|
||||
#include "procedural_db.h"
|
||||
#include "core/gimpparamspecs.h"
|
||||
|
|
|
@ -24,6 +24,7 @@
|
|||
#include <glib-object.h>
|
||||
|
||||
#include "pdb-types.h"
|
||||
#include "gimpargument.h"
|
||||
#include "gimpprocedure.h"
|
||||
#include "procedural_db.h"
|
||||
#include "core/gimpparamspecs.h"
|
||||
|
|
|
@ -24,6 +24,7 @@
|
|||
#include <glib-object.h>
|
||||
|
||||
#include "pdb-types.h"
|
||||
#include "gimpargument.h"
|
||||
#include "gimpprocedure.h"
|
||||
#include "procedural_db.h"
|
||||
#include "core/gimpparamspecs.h"
|
||||
|
|
|
@ -28,6 +28,7 @@
|
|||
#include "libgimpmath/gimpmath.h"
|
||||
|
||||
#include "pdb-types.h"
|
||||
#include "gimpargument.h"
|
||||
#include "gimpprocedure.h"
|
||||
#include "procedural_db.h"
|
||||
#include "core/gimpparamspecs.h"
|
||||
|
|
|
@ -24,6 +24,7 @@
|
|||
#include <glib-object.h>
|
||||
|
||||
#include "pdb-types.h"
|
||||
#include "gimpargument.h"
|
||||
#include "gimpprocedure.h"
|
||||
#include "procedural_db.h"
|
||||
#include "core/gimpparamspecs.h"
|
||||
|
|
|
@ -25,6 +25,7 @@
|
|||
#include <glib-object.h>
|
||||
|
||||
#include "pdb-types.h"
|
||||
#include "gimpargument.h"
|
||||
#include "gimpprocedure.h"
|
||||
#include "procedural_db.h"
|
||||
#include "core/gimpparamspecs.h"
|
||||
|
|
|
@ -38,6 +38,7 @@
|
|||
#include "libgimpbase/gimpbase.h"
|
||||
|
||||
#include "pdb-types.h"
|
||||
#include "gimpargument.h"
|
||||
#include "gimpprocedure.h"
|
||||
#include "procedural_db.h"
|
||||
#include "core/gimpparamspecs.h"
|
||||
|
|
|
@ -26,6 +26,7 @@
|
|||
#include "libgimpmath/gimpmath.h"
|
||||
|
||||
#include "pdb-types.h"
|
||||
#include "gimpargument.h"
|
||||
#include "gimpprocedure.h"
|
||||
#include "procedural_db.h"
|
||||
#include "core/gimpparamspecs.h"
|
||||
|
|
|
@ -27,6 +27,7 @@
|
|||
#include "libgimpcolor/gimpcolor.h"
|
||||
|
||||
#include "pdb-types.h"
|
||||
#include "gimpargument.h"
|
||||
#include "gimpprocedure.h"
|
||||
#include "procedural_db.h"
|
||||
#include "core/gimpparamspecs.h"
|
||||
|
|
|
@ -24,6 +24,7 @@
|
|||
#include <glib-object.h>
|
||||
|
||||
#include "pdb-types.h"
|
||||
#include "gimpargument.h"
|
||||
#include "gimpprocedure.h"
|
||||
#include "procedural_db.h"
|
||||
#include "core/gimpparamspecs.h"
|
||||
|
|
|
@ -27,6 +27,7 @@
|
|||
#include "libgimpcolor/gimpcolor.h"
|
||||
|
||||
#include "pdb-types.h"
|
||||
#include "gimpargument.h"
|
||||
#include "gimpprocedure.h"
|
||||
#include "procedural_db.h"
|
||||
#include "core/gimpparamspecs.h"
|
||||
|
|
|
@ -26,6 +26,7 @@
|
|||
#include "libgimpbase/gimpbase.h"
|
||||
|
||||
#include "pdb-types.h"
|
||||
#include "gimpargument.h"
|
||||
#include "gimpprocedure.h"
|
||||
#include "procedural_db.h"
|
||||
#include "core/gimpparamspecs.h"
|
||||
|
|
|
@ -25,6 +25,7 @@
|
|||
#include <glib-object.h>
|
||||
|
||||
#include "pdb-types.h"
|
||||
#include "gimpargument.h"
|
||||
#include "gimpprocedure.h"
|
||||
#include "procedural_db.h"
|
||||
#include "core/gimpparamspecs.h"
|
||||
|
|
|
@ -25,6 +25,7 @@
|
|||
#include <glib-object.h>
|
||||
|
||||
#include "pdb-types.h"
|
||||
#include "gimpargument.h"
|
||||
#include "gimpprocedure.h"
|
||||
#include "procedural_db.h"
|
||||
#include "core/gimpparamspecs.h"
|
||||
|
|
|
@ -24,6 +24,7 @@
|
|||
#include <glib-object.h>
|
||||
|
||||
#include "pdb-types.h"
|
||||
#include "gimpargument.h"
|
||||
#include "gimpprocedure.h"
|
||||
#include "procedural_db.h"
|
||||
#include "core/gimpparamspecs.h"
|
||||
|
|
|
@ -25,6 +25,7 @@
|
|||
#include <glib-object.h>
|
||||
|
||||
#include "pdb-types.h"
|
||||
#include "gimpargument.h"
|
||||
#include "gimpprocedure.h"
|
||||
#include "procedural_db.h"
|
||||
#include "core/gimpparamspecs.h"
|
||||
|
|
|
@ -29,6 +29,7 @@
|
|||
#include "libgimpbase/gimpprotocol.h"
|
||||
|
||||
#include "pdb-types.h"
|
||||
#include "gimpargument.h"
|
||||
#include "gimpprocedure.h"
|
||||
#include "procedural_db.h"
|
||||
#include "core/gimpparamspecs.h"
|
||||
|
|
|
@ -36,6 +36,7 @@
|
|||
|
||||
#include "core/gimp.h"
|
||||
|
||||
#include "gimpargument.h"
|
||||
#include "gimpprocedure.h"
|
||||
#include "procedural_db.h"
|
||||
#include "procedural-db-query.h"
|
||||
|
|
|
@ -40,6 +40,7 @@
|
|||
|
||||
#include "plug-in/plug-in-run.h"
|
||||
|
||||
#include "gimpargument.h"
|
||||
#include "gimpprocedure.h"
|
||||
#include "internal_procs.h"
|
||||
#include "procedural_db.h"
|
||||
|
@ -284,7 +285,7 @@ procedural_db_execute (Gimp *gimp,
|
|||
* and run the next procedure.
|
||||
*/
|
||||
if (g_list_next (list))
|
||||
procedural_db_destroy_args (return_vals, *n_return_vals, TRUE);
|
||||
gimp_arguments_destroy (return_vals, *n_return_vals, TRUE);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -351,7 +352,7 @@ procedural_db_run_proc (Gimp *gimp,
|
|||
gchar *expected = procedural_db_type_name (procedure->args[i].type);
|
||||
gchar *got = procedural_db_type_name (arg_type);
|
||||
|
||||
procedural_db_destroy_args (params, procedure->num_args, TRUE);
|
||||
gimp_arguments_destroy (params, procedure->num_args, TRUE);
|
||||
|
||||
g_message (_("PDB calling error for procedure '%s':\n"
|
||||
"Argument #%d type mismatch (expected %s, got %s)"),
|
||||
|
@ -444,156 +445,11 @@ procedural_db_run_proc (Gimp *gimp,
|
|||
params, procedure->num_args,
|
||||
n_return_vals);
|
||||
|
||||
procedural_db_destroy_args (params, procedure->num_args, FALSE);
|
||||
gimp_arguments_destroy (params, procedure->num_args, FALSE);
|
||||
|
||||
return return_vals;
|
||||
}
|
||||
|
||||
void
|
||||
procedural_db_destroy_args (Argument *args,
|
||||
gint n_args,
|
||||
gboolean full_destroy)
|
||||
{
|
||||
gint i;
|
||||
|
||||
if (! args && n_args)
|
||||
return;
|
||||
|
||||
for (i = n_args - 1; i >= 0; i--)
|
||||
{
|
||||
switch (args[i].type)
|
||||
{
|
||||
case GIMP_PDB_INT32:
|
||||
case GIMP_PDB_INT16:
|
||||
case GIMP_PDB_INT8:
|
||||
case GIMP_PDB_FLOAT:
|
||||
case GIMP_PDB_STRING:
|
||||
break;
|
||||
|
||||
case GIMP_PDB_INT32ARRAY:
|
||||
case GIMP_PDB_INT16ARRAY:
|
||||
case GIMP_PDB_INT8ARRAY:
|
||||
case GIMP_PDB_FLOATARRAY:
|
||||
if (full_destroy)
|
||||
g_free (g_value_get_pointer (&args[i].value));
|
||||
break;
|
||||
|
||||
case GIMP_PDB_STRINGARRAY:
|
||||
if (full_destroy)
|
||||
{
|
||||
gchar **array;
|
||||
gint count;
|
||||
gint j;
|
||||
|
||||
count = g_value_get_int (&args[i - 1].value);
|
||||
array = g_value_get_pointer (&args[i].value);
|
||||
|
||||
for (j = 0; j < count; j++)
|
||||
g_free (array[j]);
|
||||
|
||||
g_free (array);
|
||||
}
|
||||
break;
|
||||
|
||||
case GIMP_PDB_COLOR:
|
||||
case GIMP_PDB_REGION:
|
||||
case GIMP_PDB_DISPLAY:
|
||||
case GIMP_PDB_IMAGE:
|
||||
case GIMP_PDB_LAYER:
|
||||
case GIMP_PDB_CHANNEL:
|
||||
case GIMP_PDB_DRAWABLE:
|
||||
case GIMP_PDB_SELECTION:
|
||||
case GIMP_PDB_BOUNDARY:
|
||||
case GIMP_PDB_VECTORS:
|
||||
case GIMP_PDB_PARASITE:
|
||||
case GIMP_PDB_STATUS:
|
||||
case GIMP_PDB_END:
|
||||
break;
|
||||
}
|
||||
|
||||
g_value_unset (&args[i].value);
|
||||
}
|
||||
|
||||
g_free (args);
|
||||
}
|
||||
|
||||
void
|
||||
procedural_db_argument_init (Argument *arg,
|
||||
ProcArg *proc_arg)
|
||||
{
|
||||
g_return_if_fail (arg != NULL);
|
||||
g_return_if_fail (proc_arg != NULL);
|
||||
|
||||
arg->type = proc_arg->type;
|
||||
g_value_init (&arg->value, proc_arg->pspec->value_type);
|
||||
}
|
||||
|
||||
void
|
||||
procedural_db_compat_arg_init (Argument *arg,
|
||||
GimpPDBArgType arg_type)
|
||||
{
|
||||
g_return_if_fail (arg != NULL);
|
||||
|
||||
arg->type = arg_type;
|
||||
|
||||
switch (arg_type)
|
||||
{
|
||||
case GIMP_PDB_INT32:
|
||||
case GIMP_PDB_INT16:
|
||||
g_value_init (&arg->value, G_TYPE_INT);
|
||||
break;
|
||||
|
||||
case GIMP_PDB_INT8:
|
||||
g_value_init (&arg->value, G_TYPE_UINT);
|
||||
break;
|
||||
|
||||
case GIMP_PDB_FLOAT:
|
||||
g_value_init (&arg->value, G_TYPE_DOUBLE);
|
||||
break;
|
||||
|
||||
case GIMP_PDB_STRING:
|
||||
g_value_init (&arg->value, G_TYPE_STRING);
|
||||
break;
|
||||
|
||||
case GIMP_PDB_INT32ARRAY:
|
||||
case GIMP_PDB_INT16ARRAY:
|
||||
case GIMP_PDB_INT8ARRAY:
|
||||
case GIMP_PDB_FLOATARRAY:
|
||||
case GIMP_PDB_STRINGARRAY:
|
||||
g_value_init (&arg->value, G_TYPE_POINTER);
|
||||
break;
|
||||
|
||||
case GIMP_PDB_COLOR:
|
||||
g_value_init (&arg->value, GIMP_TYPE_RGB);
|
||||
break;
|
||||
|
||||
case GIMP_PDB_REGION:
|
||||
case GIMP_PDB_BOUNDARY:
|
||||
break;
|
||||
|
||||
case GIMP_PDB_DISPLAY:
|
||||
case GIMP_PDB_IMAGE:
|
||||
case GIMP_PDB_LAYER:
|
||||
case GIMP_PDB_CHANNEL:
|
||||
case GIMP_PDB_DRAWABLE:
|
||||
case GIMP_PDB_SELECTION:
|
||||
case GIMP_PDB_VECTORS:
|
||||
g_value_init (&arg->value, G_TYPE_INT);
|
||||
break;
|
||||
|
||||
case GIMP_PDB_PARASITE:
|
||||
g_value_init (&arg->value, GIMP_TYPE_PARASITE);
|
||||
break;
|
||||
|
||||
case GIMP_PDB_STATUS:
|
||||
g_value_init (&arg->value, GIMP_TYPE_PDB_STATUS_TYPE);
|
||||
break;
|
||||
|
||||
case GIMP_PDB_END:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
gchar *
|
||||
procedural_db_type_name (GimpPDBArgType type)
|
||||
{
|
||||
|
|
|
@ -20,19 +20,6 @@
|
|||
#define __PROCEDURAL_DB_H__
|
||||
|
||||
|
||||
struct _Argument
|
||||
{
|
||||
GimpPDBArgType type;
|
||||
GValue value;
|
||||
};
|
||||
|
||||
struct _ProcArg
|
||||
{
|
||||
GimpPDBArgType type; /* Argument type (int, char, char *, etc) */
|
||||
GParamSpec *pspec;
|
||||
};
|
||||
|
||||
|
||||
void procedural_db_init (Gimp *gimp);
|
||||
void procedural_db_free (Gimp *gimp);
|
||||
|
||||
|
@ -59,15 +46,6 @@ Argument * procedural_db_run_proc (Gimp *gimp,
|
|||
gint *n_return_vals,
|
||||
...);
|
||||
|
||||
void procedural_db_argument_init (Argument *arg,
|
||||
ProcArg *proc_arg);
|
||||
void procedural_db_compat_arg_init (Argument *arg,
|
||||
GimpPDBArgType arg_type);
|
||||
|
||||
void procedural_db_destroy_args (Argument *args,
|
||||
gint n_args,
|
||||
gboolean full_destroy);
|
||||
|
||||
gchar * procedural_db_type_name (GimpPDBArgType type);
|
||||
|
||||
|
||||
|
|
|
@ -26,6 +26,7 @@
|
|||
#include "libgimpbase/gimpbase.h"
|
||||
|
||||
#include "pdb-types.h"
|
||||
#include "gimpargument.h"
|
||||
#include "gimpprocedure.h"
|
||||
#include "procedural_db.h"
|
||||
#include "core/gimpparamspecs.h"
|
||||
|
|
|
@ -24,6 +24,7 @@
|
|||
#include <glib-object.h>
|
||||
|
||||
#include "pdb-types.h"
|
||||
#include "gimpargument.h"
|
||||
#include "gimpprocedure.h"
|
||||
#include "procedural_db.h"
|
||||
#include "core/gimpparamspecs.h"
|
||||
|
|
|
@ -24,6 +24,7 @@
|
|||
#include <glib-object.h>
|
||||
|
||||
#include "pdb-types.h"
|
||||
#include "gimpargument.h"
|
||||
#include "gimpprocedure.h"
|
||||
#include "procedural_db.h"
|
||||
#include "core/gimpparamspecs.h"
|
||||
|
|
|
@ -26,6 +26,7 @@
|
|||
#include "libgimpcolor/gimpcolor.h"
|
||||
|
||||
#include "pdb-types.h"
|
||||
#include "gimpargument.h"
|
||||
#include "gimpprocedure.h"
|
||||
#include "procedural_db.h"
|
||||
#include "core/gimpparamspecs.h"
|
||||
|
|
|
@ -26,6 +26,7 @@
|
|||
#include "libgimpbase/gimpbase.h"
|
||||
|
||||
#include "pdb-types.h"
|
||||
#include "gimpargument.h"
|
||||
#include "gimpprocedure.h"
|
||||
#include "procedural_db.h"
|
||||
#include "core/gimpparamspecs.h"
|
||||
|
|
|
@ -26,6 +26,7 @@
|
|||
#include "libgimpmath/gimpmath.h"
|
||||
|
||||
#include "pdb-types.h"
|
||||
#include "gimpargument.h"
|
||||
#include "gimpprocedure.h"
|
||||
#include "procedural_db.h"
|
||||
#include "core/gimpparamspecs.h"
|
||||
|
|
|
@ -24,6 +24,7 @@
|
|||
#include <glib-object.h>
|
||||
|
||||
#include "pdb-types.h"
|
||||
#include "gimpargument.h"
|
||||
#include "gimpprocedure.h"
|
||||
#include "procedural_db.h"
|
||||
#include "core/gimpparamspecs.h"
|
||||
|
|
|
@ -26,6 +26,7 @@
|
|||
#include "libgimpbase/gimpbase.h"
|
||||
|
||||
#include "pdb-types.h"
|
||||
#include "gimpargument.h"
|
||||
#include "gimpprocedure.h"
|
||||
#include "procedural_db.h"
|
||||
#include "core/gimpparamspecs.h"
|
||||
|
|
|
@ -25,6 +25,7 @@
|
|||
#include <glib-object.h>
|
||||
|
||||
#include "pdb-types.h"
|
||||
#include "gimpargument.h"
|
||||
#include "gimpprocedure.h"
|
||||
#include "procedural_db.h"
|
||||
#include "core/gimpparamspecs.h"
|
||||
|
|
|
@ -33,6 +33,7 @@
|
|||
#include "core/gimpimage.h"
|
||||
#include "core/gimpparamspecs.h"
|
||||
|
||||
#include "pdb/gimpargument.h"
|
||||
#include "pdb/gimpprocedure.h"
|
||||
#include "pdb/procedural_db.h"
|
||||
|
||||
|
|
|
@ -702,6 +702,8 @@ GPL
|
|||
|
||||
$headers .= '#include "pdb-types.h"';
|
||||
$headers .= "\n";
|
||||
$headers .= '#include "gimpargument.h"';
|
||||
$headers .= "\n";
|
||||
$headers .= '#include "gimpprocedure.h"';
|
||||
$headers .= "\n";
|
||||
$headers .= '#include "procedural_db.h"';
|
||||
|
|
|
@ -89,7 +89,7 @@ HELP
|
|||
new_args, proc->num_args,
|
||||
&n_return_vals);
|
||||
|
||||
procedural_db_destroy_args (new_args, proc->num_args, TRUE);
|
||||
gimp_arguments_destroy (new_args, proc->num_args, TRUE);
|
||||
|
||||
return return_vals;
|
||||
}
|
||||
|
@ -216,7 +216,7 @@ HELP
|
|||
new_args, proc->num_args,
|
||||
&n_return_vals);
|
||||
|
||||
procedural_db_destroy_args (new_args, proc->num_args, TRUE);
|
||||
gimp_arguments_destroy (new_args, proc->num_args, TRUE);
|
||||
|
||||
return return_vals;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue