Turn all ID param specs into object param specs (e.g. GimpParamImageID
becomes GimpParamImage) and convert between IDs and objects in
gimpgpparams.c directly above the the wire protocol, so all of app/,
libgimp/ and plug-ins/ can deal directly with objects down to the
lowest level and not care about IDs.
Use the actual object param specs for procedure arguments and return
values again instead of a plain g_param_spec_object() and bring back
the none_ok parameter.
This implies changing the PDB type checking functions to work on pure
integers instead of IDs (one can't check whether object creation is
possible if performing that check requires the object to already
exist).
For example gimp_foo_is_valid() becomes gimp_foo_id_is_valid() and is
not involved in automatic object creation magic at the protocol
level. Added wrappers which still say gimp_foo_is_valid() and take the
respective objects.
Adapted all code, and it all becomes nicer and less convoluted, even
the generated PDB wrappers in app/ and libgimp/.
It's just too weird to be public. Remove its properties from the wire
protocol and from pluginrc. Instead, have all GParamSpecs' flags on
the wire and in pluginrc, so we can use stuff like
GIMP_PARAM_NO_VALIDATE.
Port the remaining few places to GIMP_PROC_ARG_STRING().
I'm sure something is broken now wrt UTF-8 validation,
will add tighter checks in the next commit.
2009-01-17 Michael Natterer <mitch@gimp.org>
* all files with a GPL header and all COPYING files:
Change licence to GPLv3 (and to LGPLv3 for libgimp).
Cleaned up some copyright headers and regenerated the parsers in
the ImageMap plugin.
svn path=/trunk/; revision=27913
2008-09-19 Michael Natterer <mitch@gimp.org>
* plug-ins/script-fu/script-fu-types.h (struct SFScript): rename
"menu_path" to "menu_label". Having a full path here is just
compat cruft.
* plug-ins/script-fu/script-fu-scripts.c
* plug-ins/script-fu/script-fu-script.[ch]: changed accordingly.
svn path=/trunk/; revision=27016
2008-09-19 Michael Natterer <mitch@gimp.org>
* plug-ins/script-fu/script-fu-script.[ch]: add new functions
script_fu_script_get_title() and script_fu_script_reset().
* plug-ins/script-fu/script-fu-scripts.c (script_fu_add_script):
don't set all default values *and* values when parsing the script,
just set the defaults and call script_fu_script_reset() afterwards.
* plug-ins/script-fu/script-fu-interface.c (script_fu_interface):
use the new script_fu_script_get_title().
(script_fu_reset): call script_fu_script_reset() and then update
the UI from the current values, instead of doing slightly
different things for each arg type.
svn path=/trunk/; revision=27009
2008-09-18 Michael Natterer <mitch@gimp.org>
* plug-ins/script-fu/script-fu-script.[ch]: add new functions
script_fu_script_collect_standard_args(),
script_fu_script_get_command() and
script_fu_script_get_command_from_params().
* plug-ins/script-fu/script-fu-scripts.c: remove the resp. code
here and use above functions instead.
* plug-ins/script-fu/script-fu-interface.c (script_fu_ok): changed
loop over args to only copy all widget content into the script's
values and then call script_fu_script_get_command().
svn path=/trunk/; revision=26993
2008-09-17 Michael Natterer <mitch@gimp.org>
* plug-ins/script-fu/script-fu-types.h: add struct SFArg which
keeps all a script argument's type, label, value and default
value.
(struct SFScript): replace separate arrays of type, label etc. by
one array of SFArg. Remove array of GimpParamDef because they are
only needed while registering the temp proc.
* plug-ins/script-fu/Makefile.am
* plug-ins/script-fu/script-fu-script.[ch]: new files implementing
script_fu_script_new(), script_fu_script_free(),
script_fu_script_register_proc() and
script_fu_script_unregister_proc().
* plug-ins/script-fu/script-fu-scripts.c: remove lots of code now
implemented in script-fu-script.c. Changed stuff according to the
introduction of SFArg. Moved variables to local scopes. Most
changes are in script_fu_add_script(), almost every line changed
and it's hopefully more readable now. Lots of cleanup all over the
place.
* plug-ins/script-fu/script-fu-interface.c: changed stuff
according to the introduction of SFArg
svn path=/trunk/; revision=26978