2006-03-31 Michael Natterer <mitch@gimp.org>
* app/pdb/gimpprocedure.h (struct ProcRecord): added new member
"gboolean static_strings", so the ProcRecord struct and its
strings can be marked as static separately.
* app/pdb/gimpprocedure.[ch] (gimp_procedure_dispose): removed.
(gimp_procedure_free): don't free the struct if it's static.
(gimp_procedure_set_strings)
(gimp_procedure_set_static_strings)
(gimp_procedure_take_strings): new functions to set a procedure's
strings.
* app/pdb/procedural_db.c (procedural_db_free_entry): simply call
gimp_procedure_free() on all procedures, the memory-manage
themselves now.
* app/plug-in/plug-in-message.c (plug_in_handle_proc_install): use
gimp_procedure_set_strings() instead of setting them manually.
* app/xcf/xcf.c: register gimp-xcf-load and gimp-xcf-save
dynamically so further ProcRecord struct changes don't affect this
file.
* tools/pdbgen/app.pl: set "static_proc" to TRUE for static procs.
* app/pdb/*_cmds.c: regenerated.
2006-03-31 Michael Natterer <mitch@gimp.org>
* app/pdb/gimpprocedure.[ch] (struct ProcRecord): added new member
"gboolean static_proc" which indicates whether a ProcRecord struct
and its strings are static.
(gimp_procedure_dispose): new function which frees the procedure's
args and values, and its strings if it is not static.
* app/xcf/xcf.c
* tools/pdbgen/app.pl: set "static_proc" to TRUE for static procs.
* app/pdb/procedural_db.c (procedural_db_free): call
gimp_procedure_free() or gimp_procedure_dispose(), depending on
procedure->static_proc.
* app/pdb/procedural_db.h: removed #if 0'ed cruft.
* app/plug-in/plug-in-proc-def.[ch]: removed
plug_in_proc_def_get_proc().
* app/file/file-open.c
* app/file/file-save.c
* tools/pdbgen/pdb/fileops.pdb: access proc_def->procedure directly.
* app/pdb/*_cmds.c: regenerated.
2006-03-31 Michael Natterer <mitch@gimp.org>
* app/pdb/gimpprocedure.[ch]: added gimp_procedure_new() and
gimp_procedure_free() functions.
* app/plug-in/plug-in-proc-def.h (struct PlugInProcDef): use a
ProcRecord pointer instead of including the entire struct.
* app/plug-in/plug-in-proc-def.c: use the new() and free()
functions above to allocate/free the ProcRecord.
* app/actions/plug-in-actions.c
* app/actions/plug-in-commands.c
* app/menus/plug-in-menus.c
* app/plug-in/plug-in-message.c
* app/plug-in/plug-in-rc.c
* app/plug-in/plug-in-run.c
* app/plug-in/plug-in.c
* app/plug-in/plug-ins-query.c
* app/plug-in/plug-ins.c
* app/xcf/xcf.c: changed accordingly.
Unrelated:
* app/pdb/gimpprocedure.c (gimp_procedure_execute): be more verbose
when warning about out-of-bounds parameter values.
* tools/pdbgen/pdb/fileops.pdb: allow GIMP_RUN_WITH_LAST_VALS for
file_save because indirect saving (e.g. remote or compressed)
needs it.
* app/pdb/fileops_cmds.c: regenerated.
2006-03-30 Sven Neumann <sven@gimp.org>
* app/paint/gimpclone.[ch]: use doubles for src coordinates. Added
properties for "src-drawable", "src-x" and "src-y".
* tools/pdbgen/pdb/paint_tools.pdb: resurrected cloning from
drawables over the PDB. This used to be broken for quite a while.
* app/pdb/paint_tools_cmds.c: regenerated.
2006-03-30 Michael Natterer <mitch@gimp.org>
* app/pdb/procedural_db.[ch] (struct Argument): replace the value
union by a GValue.
(procedural_db_argument_init)
(procedural_db_compat_arg_init): new functions to initialize
an Argument. They call g_value_init() on the Argument's value.
(procedural_db_arguments)
(procedural_db_return_values): initialize the returned Argument
arrays so their GValues are ready to use. Allow to get the
(unsuccessful) return values of a NULL ProcRecord.
(procedural_db_destroy_args): g_value_unset() the values. Added a
"gboolean full_destroy" parameter. Its only effect is to destroy
PDB arrays, everything else is nicely memory managed by GValue.
(procedural_db_execute)
(procedural_db_run_proc): do GValue stuff. Added n_args and
n_return_vals parameters to execute().
(procedural_db_execute_proc): private function to execute a
procedure. Validates the passed in arguments using the registered
GParamSpecs before passing them to the resp. exec method.
* app/plug-in/plug-in-params.[ch] (plug_in_params_to_args): needs
an array of ProcArgs now in order to initialize the Arguments'
GValues correctly. Passing NULL ProcArgs uses
procedural_db_compat_arg_init(), so procedures (plug-ins)
returning more values than expected work.
(plug_in_args_to_params): do GValue stuff here too.
(plug_in_args_destroy): removed this function,
procedural_db_destroy_args() does the same now.
* app/plug-in/plug-in-message.c (plug_in_handle_proc_run):
simplified quite a bit because everything returns n_return_values
now. Call plug_in_params_to_args() only of the procedure was found.
(plug_in_handle_proc_return_priv): pass ProcRecs to
plug_in_params_to_args().
* 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/plug-in/plug-ins.c
* app/plug-in/plug-in-progress.c
* app/plug-in/plug-in-run.[ch]
* app/widgets/gimphelp.c
* app/widgets/gimppdbdialog.c
* app/xcf/xcf.c
* tools/pdbgen/pdb/fileops.pdb: changed accordingly: don't
g_new/g_free Argument arrays, always use procedural_db_foo()
functions. Use GValue functions to get/set Arguments.
* tools/pdbgen/pdb.pl: added get_value_func and set_value_func to
all PDB types. Removed id_func, id_ret_func and check_func. Added
flags which indicated that a type is an ID. Removed unused utility
functions.
* tools/pdbgen/lib.pl: use the flag instead of looking at
functions and value types.
* tools/pdbgen/app.pl: use the get_value_func and set_value_func
to marshal inargs and outargs. Removed all checks performed on
inargs because that's done by GParamSpec validation now. Added the
missing bits to register excluded values with GimpParamSpecEnum.
* app/pdb/*_cmds.c: regenerated.
2006-03-29 Michael Natterer <mitch@gimp.org>
* tools/pdbgen/pdb/fileops.pdb (file_save): pass the filename, not
a GimpImage to file_utils_filename_to_uri(). Fixes bug #336527.
* app/pdb/fileops_cmds.c: regenerated.
2006-03-29 Michael Natterer <mitch@gimp.org>
* app/pdb/procedural_db.[ch] (procedural_db_init_proc): return the
procedure.
* tools/pdbgen/app.pl: use a local ProcRecord* variable so the
generated code becomes more readable.
* app/pdb/*_cmds.c: regenerated.
2006-03-28 Michael Natterer <mitch@gimp.org>
* app/pdb/procedural_db.[ch] (struct ProcArg): replace "name"
and "description" by a GParamSpec.
(procedural_db_init_proc)
(procedural_db_add_argument)
(procedural_db_add_return_value)
(procedural_db_add_compat_arg)
(procedural_db_add_compat_val): new functions which dynamically
allocate and register arguments and return value arrays based on
GParamSpecs.
* app/pdb/procedural-db-query.c
* app/plug-in/plug-in-message.c
* app/plug-in/plug-in-proc-def.c
* app/plug-in/plug-in-rc.c
* app/xcf/xcf.c
* tools/pdbgen/pdb/procedural_db.pdb: changed accordingly.
* tools/pdbgen/app.pl: get rid of all ProcArg arrays and generate
code that registers args and values with the procedures.
* app/pdb/*_cmds.c: regenerated.
2006-03-27 Michael Natterer <mitch@gimp.org>
* app/pdb/procedural_db.h (ArgMarshal): pass the ProcRecord as
first parameter, so marshallers have access to their ProcRecord
without the need for global variables.
* app/pdb/procedural_db.c
* tools/pdbgen/app.pl: changed addordingly.
* tools/pdbgen/app.pl: removed support for invoke->proc. Introduce
invoke->no_marshalling instead which indicates that invoke->code
should be used literally as marshaller code, without any
substitutions or generated variables.
* tools/pdbgen/pdb/fileops.pdb: changed accordingly.
* app/pdb/*_cmds.c: regenerated.
2006-03-26 Michael Natterer <mitch@gimp.org>
* tools/pdbgen/lib.pl: removed support for arg->implicit_fill.
* tools/pdbgen/pdb/progress.pdb (progress_init): remove it without
replacement, the generated function on the libgimp side is
internal anyway.
* libgimp/gimpprogress_pdb.[ch] (_gimp_progress_init): rgenerated
with a display_ID parameter.
* libgimp/gimpprogress.c (gimp_progress_init): pass
gimp_default_display() to _gimp_progress_init().
2006-03-22 Michael Natterer <mitch@gimp.org>
* tools/pdbgen/app.pl: removed support for invoke->pass_through.
* tools/pdbgen/pdb/fileops.pdb: added a C utility function and
call it from both register_load_handler() and
register_magic_load_handler() instead of letting the generated
invokers call each other.
* app/pdb/fileops_cmds.c: regenerated.
2006-03-21 Michael Natterer <mitch@gimp.org>
* tools/pdbgen/app.pl: removed support for arg->cond.
* tools/pdbgen/edit.pdb
* tools/pdbgen/image.pdb: move its logic into the C code.
* app/pdb/edit_cmds.c
* app/pdb/image_cmds.c: regenerated.
2006-03-18 Michael Natterer <mitch@gimp.org>
* tools/pdbgen/app.pl
* tools/pdbgen/pdb/progress.pdb: got rid of the unused
arg->no_id_lookup.
* tools/pdbgen/pdb/plug_in.pdb: flattened a forgotten foreach().
2006-03-18 Michael Natterer <mitch@gimp.org>
* tools/pdbgen/app.pl: removed support for arg->on_success and
arg->on_fail.
* tools/pdbgen/pdb/gradient_select.pdb
* tools/pdbgen/pdb/gradients.pdb
* tools/pdbgen/pdb/paint_tools.pdb
* tools/pdbgen/pdb/selection_tools.pdb: moved their logic to the C
code.
* app/pdb/gradient_select_cmds.c
* app/pdb/gradients_cmds.c
* app/pdb/paint_tools_cmds.c
* app/pdb/selection_tools_cmds.c: regenerated.
2006-03-17 Michael Natterer <mitch@gimp.org>
* tools/pdbgen/pdb.pl: generically map NULL to -1 when returning
object IDs.
* tools/pdbgen/app.pl: remove support for "return_fail => foo"
which did the same on a per-return-value basis. Removed some more
obscure perl without any effect on the generated code.
* tools/pdbgen/pdb/image.pdb
* tools/pdbgen/pdb/text_tool.pdb: don't use "return_fail => foo".
* app/pdb/channel_cmds.c
* app/pdb/display_cmds.c
* app/pdb/drawable_cmds.c
* app/pdb/drawable_transform_cmds.c
* app/pdb/edit_cmds.c
* app/pdb/fileops_cmds.c
* app/pdb/image_cmds.c
* app/pdb/layer_cmds.c
* app/pdb/selection_cmds.c
* app/pdb/transform_tools_cmds.c
* app/pdb/vectors_cmds.c: regenerated.
2006-03-16 Michael Natterer <mitch@gimp.org>
* tools/pdbgen/pdb/image.pdb: replaced code generated by now gone
utility functions list_proc() and type_move() by pdbgen
boilerplate code. Fixed wrapper of gimp_image_lower_channel() to
actually lower the channel (it was lowering the active layer).
* app/pdb/image_cmds.c
* libgimp/gimpimage_pdb.[ch]: regenerated.
2006-03-15 Michael Natterer <mitch@gimp.org>
* tools/pdbgen/pdb/channel.pdb
* tools/pdbgen/pdb/layer.pdb: removed dim(), accessors(),
get_prop() and set_prop() utility functions and expand everything
to pdbgen boilerplate code. Use the real layer mask API instead of
the crap from pdb_glue.h. Fixed some API docs.
* app/pdb/channel_cmds.c
* app/pdb/layer_cmds.c
* libgimp/gimplayer_pdb.c: regenerated.
* app/pdb/Makefile.am
* app/pdb/pdb_glue.h: bye bye uglyness.
2006-03-15 Michael Natterer <mitch@gimp.org>
* tools/pdbgen/pdb.pl: define init values for all pdb types.
* tools/pdbgen/app.pl: unconditionally initialize all return
values, and no parameter.
* tools/pdbgen/pdb/*.pdb: removed init => 1 from all arguments
and return values.
* app/pdb/*_cmds.c: regenerated.
2006-03-14 Michael Natterer <mitch@gimp.org>
* tools/pdbgen/pdb/*.pdb: remove lots of perl crack:
- create almost all parameter arrays manually instead of
generating them from utility functions
- removed lots of other utility functions
- moved variable declarations into the enclosed code snippets
where possible
- some cleanup and API doc fixes
* tools/pdbgen/stddefs.pdb: added some perl crack:
define utility functions for all contributors which own more than
some functions, so they can change their names and email addresses
at a central place.
* app/pdb/[many].c: regenerated.
* libgimp/gimpcolor_pdb.c
* libgimp/gimpdrawabletransform_pdb.c
* libgimp/gimptransformtools_pdb.c
* libgimp/gimpvectors_pdb.c: ditto. Changed affect only API docs.
2006-03-13 Michael Natterer <mitch@gimp.org>
* app/core/gimpimage-guides.[ch]: added gimp_image_get_guide() and
gimp_image_get_next_guide(), which take a guide_ID and return the
image's GimpGuide with that ID (the one after that for next_guide())
* tools/pdbgen/pdb/guides.pdb: use them instead of having this
code here.
* app/pdb/guides_cmds.c: regenerated.