Gimp/app/pdb/misc_cmds.c
Michael Natterer 20946c66bd added a const_type member to all PDB types, Removed casts from all
2006-04-02  Michael Natterer  <mitch@gimp.org>

	* tools/pdbgen/pdb.pl: added a const_type member to all PDB types,
	Removed casts from all get_value_funcs which return const
	pointers, they can stay const now.

	* tools/pdbgen/app.pl: use the const_type to declare input args.

	* app/pdb/gimpprocedure.h: pass const arguments to the internal
	marshallers.

	* app/xcf/xcf.c: changed accordingly.

	* tools/pdbgen/pdb/paint_tools.pdb
	* tools/pdbgen/pdb/paths.pdb: added some const qualifiers.

	* tools/pdbgen/lib.pl: use the const_type for input args instead
	of adding the const qualifier based on the type.

	* app/pdb/_cmds.c
	* libgimp/gimpparasite_pdb.[ch]: regenerated.

	Unrelated:

	* app/pdb/gimpargument.c (gimp_arguments_destroy): no need any
	more to destroy the argument array in reverse order (we don't need
	access to the previous element because arrays in GValues memory
	manage themselves now).
2006-04-02 16:03:32 +00:00

201 lines
5.7 KiB
C

/* The GIMP -- an image manipulation program
* Copyright (C) 1995-2003 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.
*/
/* NOTE: This file is autogenerated by pdbgen.pl. */
#include "config.h"
#include <glib.h>
#ifdef G_OS_WIN32
#include <process.h>
#endif
#include <sys/types.h>
#ifdef HAVE_UNISTD_H
#include <unistd.h>
#endif
#include <glib-object.h>
#include "libgimpbase/gimpbase.h"
#include "pdb-types.h"
#include "gimpargument.h"
#include "gimpprocedure.h"
#include "procedural_db.h"
#include "core/gimpparamspecs.h"
#include "core/gimp.h"
static GimpProcedure version_proc;
static GimpProcedure getpid_proc;
static GimpProcedure quit_proc;
void
register_misc_procs (Gimp *gimp)
{
GimpProcedure *procedure;
/*
* version
*/
procedure = gimp_procedure_init (&version_proc, 0, 1);
gimp_procedure_add_return_value (procedure,
GIMP_PDB_STRING,
gimp_param_spec_string ("version",
"version",
"The gimp version",
FALSE, FALSE,
NULL,
GIMP_PARAM_READWRITE));
procedural_db_register (gimp, procedure);
/*
* getpid
*/
procedure = gimp_procedure_init (&getpid_proc, 0, 1);
gimp_procedure_add_return_value (procedure,
GIMP_PDB_INT32,
g_param_spec_int ("pid",
"pid",
"The PID",
G_MININT32, G_MAXINT32, 0,
GIMP_PARAM_READWRITE));
procedural_db_register (gimp, procedure);
/*
* quit
*/
procedure = gimp_procedure_init (&quit_proc, 1, 0);
gimp_procedure_add_argument (procedure,
GIMP_PDB_INT32,
g_param_spec_boolean ("force",
"force",
"Flag specifying whether to force the gimp to or exit normally",
FALSE,
GIMP_PARAM_READWRITE));
procedural_db_register (gimp, procedure);
}
static GimpArgument *
version_invoker (GimpProcedure *procedure,
Gimp *gimp,
GimpContext *context,
GimpProgress *progress,
const GimpArgument *args)
{
GimpArgument *return_vals;
gchar *version = NULL;
version = g_strdup (GIMP_VERSION);
return_vals = gimp_procedure_get_return_values (procedure, TRUE);
g_value_take_string (&return_vals[1].value, version);
return return_vals;
}
static GimpProcedure version_proc =
{
TRUE, TRUE,
"gimp-version",
"gimp-version",
"Returns the host gimp version.",
"This procedure returns the version number of the currently running gimp.",
"Manish Singh",
"Manish Singh",
"1999",
NULL,
GIMP_INTERNAL,
0, NULL, 0, NULL,
{ { version_invoker } }
};
static GimpArgument *
getpid_invoker (GimpProcedure *procedure,
Gimp *gimp,
GimpContext *context,
GimpProgress *progress,
const GimpArgument *args)
{
GimpArgument *return_vals;
gint32 pid = 0;
pid = getpid ();
return_vals = gimp_procedure_get_return_values (procedure, TRUE);
g_value_set_int (&return_vals[1].value, pid);
return return_vals;
}
static GimpProcedure getpid_proc =
{
TRUE, TRUE,
"gimp-getpid",
"gimp-getpid",
"Returns the PID of the host gimp process.",
"This procedure returns the process ID of the currently running gimp.",
"Michael Natterer <mitch@gimp.org>",
"Michael Natterer",
"2005",
NULL,
GIMP_INTERNAL,
0, NULL, 0, NULL,
{ { getpid_invoker } }
};
static GimpArgument *
quit_invoker (GimpProcedure *procedure,
Gimp *gimp,
GimpContext *context,
GimpProgress *progress,
const GimpArgument *args)
{
gboolean success = TRUE;
gboolean force;
force = g_value_get_boolean (&args[0].value);
if (success)
{
gimp_exit (gimp, force);
}
return gimp_procedure_get_return_values (procedure, success);
}
static GimpProcedure quit_proc =
{
TRUE, TRUE,
"gimp-quit",
"gimp-quit",
"Causes the gimp to exit gracefully.",
"The internal procedure which can either be used to make the gimp quit. If there are unsaved images in an interactive GIMP session, the user will be asked for confirmation. If force is TRUE, the application is quit without querying the user to save any dirty images.",
"Spencer Kimball & Peter Mattis",
"Spencer Kimball & Peter Mattis",
"1995-1996",
NULL,
GIMP_INTERNAL,
0, NULL, 0, NULL,
{ { quit_invoker } }
};