gimp/app/plug-in/gimpplugin-message.c

857 lines
28 KiB
C
Raw Normal View History

/* GIMP - The GNU Image Manipulation Program
1997-11-25 06:05:25 +08:00
* Copyright (C) 1995 Spencer Kimball and Peter Mattis
*
Made an object out of the plug-in struct. Also change refcounting 2006-05-03 Michael Natterer <mitch@gimp.org> Made an object out of the plug-in struct. Also change refcounting considerably: - gimp_plug_in_open() adds a reference that is only dropped by gimp_plug_in_close(). - temporarily ref the plug-in while handling messages. - remporarily ref the plug-in while a recursive main loop is running. - each caller of gimp_plug_in_new() also unrefs the plug-in before returning, the only reference that persists across functions (that keeps the plug-in alive) is the one added by open(). * app/plug-in/plug-in.[ch] * app/plug-in/plug-in-context.[ch] * app/plug-in/plug-in-message.[ch] * app/plug-in/plug-in-progress.[ch]: removed these files... * app/plug-in/gimpplugin.[ch] * app/plug-in/gimpplugin-context.[ch] * app/plug-in/gimpplugin-message.[ch] * app/plug-in/gimpplugin-progress.[ch]: ...and added here as GObject. * app/plug-in/plug-in-proc-frame.[ch]: removed... * app/plug-in/gimppluginprocframe.[ch]: ...and added with a namespace. * app/plug-in/Makefile.am * app/plug-in/plug-in-types.h * app/plug-in/gimppluginmanager-call.c * app/plug-in/gimppluginmanager-file.c * app/plug-in/gimppluginmanager.[ch] * app/pdb/gimppluginprocedure.c * app/pdb/gimptemporaryprocedure.c * app/pdb/gimptemporaryprocedure.h * tools/pdbgen/pdb/context.pdb * tools/pdbgen/pdb/drawable.pdb * tools/pdbgen/pdb/help.pdb * tools/pdbgen/pdb/message.pdb * tools/pdbgen/pdb/plug_in.pdb * tools/pdbgen/pdb/progress.pdb * tools/pdbgen/pdb/undo.pdb: changed accordingly. * app/pdb/context_cmds.c * app/pdb/drawable_cmds.c * app/pdb/help_cmds.c * app/pdb/message_cmds.c * app/pdb/plug_in_cmds.c * app/pdb/progress_cmds.c * app/pdb/undo_cmds.c: regenerated.
2006-05-04 02:05:06 +08:00
* gimpplugin-message.c
*
1997-11-25 06:05:25 +08:00
* 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.
1997-11-25 06:05:25 +08:00
*/
1997-11-25 06:05:25 +08:00
#include "config.h"
1999-03-07 20:56:03 +08:00
1997-11-25 06:05:25 +08:00
#include <string.h>
1999-03-07 20:56:03 +08:00
#include <glib-object.h>
Makefile.am configure.in added new directory libgimpbase/ 2001-05-21 Michael Natterer <mitch@gimp.org> * Makefile.am * configure.in * gimptool-1.4.in: added new directory libgimpbase/ * app/Makefile.am: link against the new lib. * app/appenums.h: removed the PDB enums which are in libgimpbase/gimpbasetypes.h now. They are all "Gimp" prefixed. * app/apptypes.h: #include "libgimpbase/gimpbasetypes.h" * app/[lots] * app/core/[of] * app/gui/[files] * app/tools/: changed includes and all PDB types. * app/pdb/*: regenerated. * libgimp/Makefile.am: don't build libgimpi.a uglyness any more. * libgimp/gimpenv.[ch] * libgimp/gimplimits.[hh] * libgimp/gimpparasite.[ch] * libgimp/gimpparasiteio.[ch] * libgimp/gimpprotocol.[ch] * libgimp/gimpsignal.[ch] * libgimp/gimpunit.h * libgimp/gimputils.[ch] * libgimp/gimpwire.[ch]: removed... * libgimpbase/*: ...and added here as new library. * libgimp/gimp.[ch] * libgimp/gimpdrawable.[ch] * libgimp/gimpenums.h * libgimp/gimpimage.[ch] * libgimp/gimptile.c * libgimp/gimptypes.h * libgimp/gimpunit.c: changed accordingly. Added the gimp_*_add_new_parasite to gimp.[ch], gimpdrawable.[ch] and gimpimage.[ch]. * libgimpwidgets/gimppatheditor.c * libgimpwidgets/gimpquerybox.c * libgimpwidgets/gimpsizeentry.c * libgimpwidgets/gimpunitmenu.c * libgimpwidgets/gimpwidgets.c * libgimpwidgets/gimpwidgetstypes.h: changed includes accordingly. * plug-ins/*/Makefile.am * plug-ins/common/mkgen.pl: link against libgimpbase. * tools/pdbgen/Makefile.am: scan libgimpbase/gimpbasetypes.h, so the enums are known to pdbgen... * tools/pdbgen/enumcode.pl: ...but don't write them out to libgimp/gimpenums.h * tools/pdbgen/app.pl: include libgimp/gimpbase.h in all *_cmds.c files. Added GIMP_ to the type names ganerated in app/. * tools/pdbgen/enums.pl: regenerated. * tools/pdbgen/pdb.pl * tools/pdbgen/pdb/fileops.pdb * tools/pdbgen/pdb/procedural_db.pdb * tools/pdbgen/pdb/unit.pdb: changed includes.
2001-05-21 21:58:46 +08:00
#include "libgimpbase/gimpbase.h"
#include "libgimpbase/gimpprotocol.h"
#include "libgimpbase/gimpwire.h"
app/Makefile.am removed... 2001-11-30 Michael Natterer <mitch@gimp.org> * app/Makefile.am * app/plug_in.[ch]: removed... * app/plug-in/Makefile.am * app/plug-in/plug-in-types.h * app/plug-in/plug-in.[ch]: ...and added here. * app/appenv.h: removed StackTraceMode and MessageHandlerType... * libgimpbase/gimpbasetypes.h: ...and added them here. * tools/pdbgen/Makefile.am: don't scan "app/apptypes.h" for enums. * tools/pdbgen/enumcode.pl: added a general check to prevent enums which are defined in libgimp* from being written to "libgimp/gimpenums.c". * libgimp/gimpenums.h * plug-ins/script-fu/script-fu-constants.c * tools/pdbgen/enums.pl: regenerated. * app/core/core-types.h: include "pdb/pdb-types.h" so including "core/core-types.h" gets the whole core type space. * app/core/gimp.[ch]: added a "stack_trace_mode" parameter to the constructor and store it in the Gimp struct because the value is also passed to plug-ins and nobody should include "appenv.h". * app/gimprc.[ch]: pass the alternate_system_gimprc and alternate_gimprc filenames from the command line to gimprc_prase() so we don't need to include "appenv.h". * app/batch.[ch]: pass the "batch_cmds" as parameter, don't include "append.h". * app/app_procs.c: pass more parameters around. * app/devices.c * app/errors.c * app/gimphelp.c * app/main.c * app/core/gimpgradient.c * app/display/gimpdisplay.c * app/display/gimpdisplayshell.c * app/file/file-open.c * app/file/file-save.c * app/file/file-utils.c * app/gui/commands.c * app/gui/error-console-dialog.c * app/gui/file-dialog-utils.c * app/gui/file-open-dialog.c * app/gui/file-save-dialog.c * app/gui/paths-dialog.c * app/gui/user-install-dialog.c * app/tools/gimpbezierselecttool.c * app/tools/xinput_airbrush.c * app/xcf/xcf.c * tools/pdbgen/pdb/fileops.pdb * tools/pdbgen/pdb/help.pdb * tools/pdbgen/pdb/message.pdb * tools/pdbgen/pdb/plug_in.pdb: changed accordingly: - changed "plug-in.h" include where needed. - don't call gimp_fatal_error() directly, it's called via the log handler when calling g_error(). - don't incude "errors.h" except from main.c. - changed stack_trace and message_handler enum names. - get "stack_trace_mode" from Gimp. - removed many inclusions of "appenv.h". * app/pdb/fileops_cmds.c * app/pdb/help_cmds.c * app/pdb/message_cmds.c * app/pdb/plug_in_cmds.c * app/pdb/procedural_db.c: regenerated.
2001-12-01 08:14:14 +08:00
#include "plug-in-types.h"
new directory app/base/ 2001-05-15 Michael Natterer <mitch@gimp.org> * configure.in: new directory app/base/ * app/Makefile.am * app/boundary.[ch] * app/brush_scale.[ch] * app/gimpchecks.h * app/gimplut.[ch] * app/pixel_processor.[ch] * app/pixel_region.[ch] * app/pixel_surround.[ch] * app/temp_buf.[ch] * app/tile.[ch] * app/tile_cache.[ch] * app/tile_manager.[ch] * app/tile_manager_pvt.h * app/tile_pvt.h * app/tile_swap.[ch]: moved to base/ * app/base/Makefile.am * app/base/base-types.h * app/base/*: new directory for the sub-object pixel maniplation and storage stuff. Does not include Gtk+ or anything outside base/. Did some cleanup in all files. * app/appenums.h * app/apptypes.h * app/core/gimpimage.h: removed types which are now in base/base-types.h. * app/base/base-config.[ch] * app/gimprc.[ch]: put the config variables for base/ to their own file so base/ doesn not have to include gimprc.h (does not yet work, i.e. the variables are un-configurable right now) * app/main.c: set a log handler for "Gimp-Base". * app/paint-funcs/Makefile.am * app/paint-funcs/paint-funcs.[ch]: removed the color hash which maps RGB to color indices because it's a totally standalone system which has nothing to do with the paint-funcs and introduced a GimpImage dependency. paint-funcs/ should be considered on the same sub-object (glib-only) level as base/, only in a different directory. * app/core/Makefile.am * app/core/gimpimage-colorhash.[ch]: put the color hash here. * app/gimage.c: don't invalidate the color hash here... * app/core/gimpimage.c: ... but in the colormap_changed() default inplementation. Initialize the hash in class_init(). * tools/pdbgen/Makefile.am: scan app/base/base-types.h for enums. * tools/pdbgen/enums.pl: regenerated. * app/[lots] * app/core/[of] * app/gui/[files] * app/pdb/[all] * app/tools/[over] * app/widgets/[the] * tools/pdbgen/pdb/[place]: changed #includes accordingly. And use base_config->value instead of the stuff from gimprc.h.
2001-05-15 19:25:25 +08:00
#include "base/tile.h"
#include "base/tile-manager.h"
app/Makefile.am app/gimpunit.c removed... 2001-07-11 Michael Natterer <mitch@gimp.org> * app/Makefile.am * app/gimpunit.c * app/unitrc.h: removed... * app/core/Makefile.am * app/core/gimpunit.[ch]: ...re-added here. * app/core/gimp.[ch]: added the image and drawable hash tables, next_image_ID, next_guide_ID and next_drawable_ID, added a GimpCoreConfig pointer which is now initalized dynamically. * app/core/gimpcoreconfig.[ch]: don't provide a global core_config variable any more (need to access gimp->config now). * app/gdisplay.[ch] * app/core/gimpdrawable.[ch] * app/core/gimpimage.[ch]: removed all global variables from gimpimage.c and gimpdrawable.c, pass a Gimp* to all *_get_by_ID() functions. * tools/pdbgen/app.pl: pass Gimp* to all _get_by_ID() functions. * app/app_procs.c * app/file-open.c * app/file-save.c * app/gimprc.c * app/libgimp_glue.c * app/module_db.c * app/plug_in.c * app/undo.c * app/user_install.c * app/core/core-types.h * app/core/gimpcontext.c * app/core/gimpimage-crop.c * app/core/gimpimage-new.c * app/core/gimpparasite.c * app/gui/file-new-dialog.c * app/gui/file-open-dialog.c * app/gui/info-window.c * app/gui/preferences-dialog.c * app/gui/resize-dialog.c * app/xcf/xcf-load.c * app/xcf/xcf-save.c * app/xcf/xcf.c * app/widgets/gimpdnd.c * app/pdb/channel_cmds.c * app/pdb/color_cmds.c * app/pdb/convert_cmds.c * app/pdb/display_cmds.c * app/pdb/drawable_cmds.c * app/pdb/edit_cmds.c * app/pdb/fileops_cmds.c * app/pdb/floating_sel_cmds.c * app/pdb/guides_cmds.c * app/pdb/image_cmds.c * app/pdb/layer_cmds.c * app/pdb/parasite_cmds.c * app/pdb/paths_cmds.c * app/pdb/selection_cmds.c * app/pdb/text_tool_cmds.c * app/pdb/tools_cmds.c * app/pdb/undo_cmds.c * app/pdb/unit_cmds.c * tools/pdbgen/pdb/image.pdb * tools/pdbgen/pdb/unit.pdb: changed accordingly.
2001-07-11 20:39:49 +08:00
#include "core/gimp.h"
#include "core/gimpdrawable.h"
Move the shadow tiles from the image to the drawable. Fixes bug #100469. 2008-04-21 Michael Natterer <mitch@gimp.org> Move the shadow tiles from the image to the drawable. Fixes bug #100469. * app/core/Makefile.am * app/core/gimpdrawable-shadow.[ch]: new files implementing the shadow tiles. * app/core/gimpimage.[ch]: remove the shadow tile manager from the GimpImage struct. Remove gimp_image_get_shadow_tiles() and _free_shadow_tiles(). * app/core/gimpdrawable.[ch]: add the shadow tile manager here. Remove get_shadow_tiles() and merge_shadow(). Free the shadow tiles in finalize and when the drawable gets removed from the image. * app/core/gimpdrawable-brightness-contrast.c * app/core/gimpdrawable-color-balance.c * app/core/gimpdrawable-colorize.c * app/core/gimpdrawable-curves.c * app/core/gimpdrawable-desaturate.c * app/core/gimpdrawable-equalize.c * app/core/gimpdrawable-hue-saturation.c * app/core/gimpdrawable-invert.c * app/core/gimpdrawable-levels.c * app/core/gimpdrawable-operation.c * app/core/gimpdrawable-posterize.c * app/core/gimpdrawable-threshold.c * app/core/gimpimagemap.c: changed accordingly. Free the shadow tiles after using them. * app/plug-in/gimpplugin-cleanup.[ch]: add gimp_plug_in_cleanup_add_shadow() and _remove_shadow() which keep track of whether shadow tiles were created on behalf of a plug-in procedure. (gimp_plug_in_cleanup): free shadow tiles which were created but not destroyed by a plug-in procedure. * app/plug-in/gimpplugin-message.c (plug_in_handle_tile_request): call gimp_plug_in_cleanup_add_shadow() whenever a plug-in requests shadow tiles. * tools/pdbgen/pdb/drawable.pdb: use the new drawable shadow API. Add new procedure gimp-drawable-free-shadow. Call gimp_plug_in_cleaup_remove_shadow() when it gets called. * tools/pdbgen/pdb/image.pdb: deprecate gimp-image-free-shadow. Calling it has no effect any longer. * app/pdb/drawable-cmds.c * app/pdb/image-cmds.c * app/pdb/internal-procs.c * libgimp/gimpimage_pdb.[ch] * libgimp/gimpdrawable_pdb.[ch]: regenerated. svn path=/trunk/; revision=25510
2008-04-22 01:20:51 +08:00
#include "core/gimpdrawable-shadow.h"
app/Makefile.am app/gui/Makefile.am app/about_dialog.[ch] 2001-04-17 Michael Natterer <mitch@gimp.org> * app/Makefile.am * app/gui/Makefile.am * app/about_dialog.[ch] * app/brush_edit.[ch] * app/brush_select.[ch] * app/channels_dialog.[ch] * app/color_area.[ch] * app/color_notebook.[ch] * app/color_select.[ch] * app/colormap_dialog.[ch] * app/commands.[ch] * app/file_new_dialog.[ch] * app/gradient_editor.[ch] * app/gradient_select.[ch] * app/indicator_area.[ch] * app/info_dialog.[ch] * app/info_window.[ch] * app/layer_select.[ch] * app/layers_dialog.[ch] * app/menus.[ch] * app/palette.[ch] * app/palette_import.[ch] * app/palette_select.[ch] * app/paths_dialog.[ch] * app/pattern_select.[ch] * app/preferences_dialog.[ch] * app/session.[ch] * app/test_commands.[ch] * app/tips_dialog.[ch] * app/toolbox.[ch]: moved to gui/ (s/_/-/ and some more useful filenames on the way). * app/app_procs.c * app/context_manager.c * app/convert.c * app/disp_callbacks.c * app/errorconsole.c * app/file-open.c * app/file-save.c * app/file-utils.c * app/gdisplay.c * app/gimage.c * app/gimprc.c * app/image_new.c * app/interface.c * app/nav_window.c * app/path.c * app/plug_in.c * app/gui/dialogs-constructors.c * app/pdb/brush_select_cmds.c * app/pdb/convert_cmds.c * app/pdb/gradient_select_cmds.c * app/pdb/pattern_select_cmds.c * app/tools/gimpcolorpickertool.c * app/tools/gimpcroptool.c * app/tools/gimpmagnifytool.c * app/tools/gimpmeasuretool.c * app/tools/gimpscaletool.c * app/tools/gimptransformtool.c * app/widgets/gimpcolorpanel.c * tools/pdbgen/pdb/brush_select.pdb * tools/pdbgen/pdb/convert.pdb * tools/pdbgen/pdb/gradient_select.pdb * tools/pdbgen/pdb/pattern_select.pdb * po/POTFILES.in: changed accordingly.
2001-04-18 05:43:29 +08:00
app/pdb/Makefile.am app/pdb/pdb-types.h new object GimpPDB which keeps all 2006-04-26 Michael Natterer <mitch@gimp.org> * app/pdb/Makefile.am * app/pdb/pdb-types.h * app/pdb/gimppdb.[ch]: new object GimpPDB which keeps all procedures and functions to register and run them. Renamed all functions and did some cleanups. * app/pdb/gimp-pdb.[ch] * app/core/gimp.[ch]: removed the same stuff here. * app/pdb/gimp-pdb-query.[ch]: removed these files... * app/pdb/gimppdb-query.[ch]: ...added here as members of GimpPDB. * app/pdb/gimp-pdb-compat.h: fix include guard. * app/batch.c * app/actions/vectors-commands.c * app/dialogs/about-dialog.c * app/file/file-open.c * app/file/file-save.c * app/plug-in/plug-in-message.c * app/plug-in/plug-ins.c * app/widgets/gimpfiledialog.c * app/widgets/gimphelp.c * app/xcf/xcf.c * tools/pdbgen/pdb/brush_select.pdb * tools/pdbgen/pdb/fileops.pdb * tools/pdbgen/pdb/font_select.pdb * tools/pdbgen/pdb/gradient_select.pdb * tools/pdbgen/pdb/palette_select.pdb * tools/pdbgen/pdb/pattern_select.pdb * tools/pdbgen/pdb/procedural_db.pdb: changed includes and function calls accordingly. * tools/pdbgen/app.pl: pass around GimpPDB instead of Gimp pointers to register the internal procedures with. Changed some newlines in the generated code. * app/pdb/*_cmds.c * app/pdb/internal_procs.[ch]: regenerated. * app/core/gimppdbprogress.[ch] * app/widgets/gimppdbdialog.[ch]: added "pdb" CONSTRUCT_ONLY properties. * app/plug-in/plug-in-progress.c * app/gui/gui-vtable.c: pass gimp->pdb when creating them. * app/widgets/gimpbrushselect.c * app/widgets/gimpfontselect.c * app/widgets/gimpgradientselect.c * app/widgets/gimppaletteselect.c * app/widgets/gimppatternselect.c: use the new local pdb pointers instead of some foo->bar->gimp->pdb overkill.
2006-04-26 17:13:47 +08:00
#include "pdb/gimppdb.h"
#include "pdb/gimp-pdb-compat.h"
Made an object out of the plug-in struct. Also change refcounting 2006-05-03 Michael Natterer <mitch@gimp.org> Made an object out of the plug-in struct. Also change refcounting considerably: - gimp_plug_in_open() adds a reference that is only dropped by gimp_plug_in_close(). - temporarily ref the plug-in while handling messages. - remporarily ref the plug-in while a recursive main loop is running. - each caller of gimp_plug_in_new() also unrefs the plug-in before returning, the only reference that persists across functions (that keeps the plug-in alive) is the one added by open(). * app/plug-in/plug-in.[ch] * app/plug-in/plug-in-context.[ch] * app/plug-in/plug-in-message.[ch] * app/plug-in/plug-in-progress.[ch]: removed these files... * app/plug-in/gimpplugin.[ch] * app/plug-in/gimpplugin-context.[ch] * app/plug-in/gimpplugin-message.[ch] * app/plug-in/gimpplugin-progress.[ch]: ...and added here as GObject. * app/plug-in/plug-in-proc-frame.[ch]: removed... * app/plug-in/gimppluginprocframe.[ch]: ...and added with a namespace. * app/plug-in/Makefile.am * app/plug-in/plug-in-types.h * app/plug-in/gimppluginmanager-call.c * app/plug-in/gimppluginmanager-file.c * app/plug-in/gimppluginmanager.[ch] * app/pdb/gimppluginprocedure.c * app/pdb/gimptemporaryprocedure.c * app/pdb/gimptemporaryprocedure.h * tools/pdbgen/pdb/context.pdb * tools/pdbgen/pdb/drawable.pdb * tools/pdbgen/pdb/help.pdb * tools/pdbgen/pdb/message.pdb * tools/pdbgen/pdb/plug_in.pdb * tools/pdbgen/pdb/progress.pdb * tools/pdbgen/pdb/undo.pdb: changed accordingly. * app/pdb/context_cmds.c * app/pdb/drawable_cmds.c * app/pdb/help_cmds.c * app/pdb/message_cmds.c * app/pdb/plug_in_cmds.c * app/pdb/progress_cmds.c * app/pdb/undo_cmds.c: regenerated.
2006-05-04 02:05:06 +08:00
#include "gimpplugin.h"
Move the shadow tiles from the image to the drawable. Fixes bug #100469. 2008-04-21 Michael Natterer <mitch@gimp.org> Move the shadow tiles from the image to the drawable. Fixes bug #100469. * app/core/Makefile.am * app/core/gimpdrawable-shadow.[ch]: new files implementing the shadow tiles. * app/core/gimpimage.[ch]: remove the shadow tile manager from the GimpImage struct. Remove gimp_image_get_shadow_tiles() and _free_shadow_tiles(). * app/core/gimpdrawable.[ch]: add the shadow tile manager here. Remove get_shadow_tiles() and merge_shadow(). Free the shadow tiles in finalize and when the drawable gets removed from the image. * app/core/gimpdrawable-brightness-contrast.c * app/core/gimpdrawable-color-balance.c * app/core/gimpdrawable-colorize.c * app/core/gimpdrawable-curves.c * app/core/gimpdrawable-desaturate.c * app/core/gimpdrawable-equalize.c * app/core/gimpdrawable-hue-saturation.c * app/core/gimpdrawable-invert.c * app/core/gimpdrawable-levels.c * app/core/gimpdrawable-operation.c * app/core/gimpdrawable-posterize.c * app/core/gimpdrawable-threshold.c * app/core/gimpimagemap.c: changed accordingly. Free the shadow tiles after using them. * app/plug-in/gimpplugin-cleanup.[ch]: add gimp_plug_in_cleanup_add_shadow() and _remove_shadow() which keep track of whether shadow tiles were created on behalf of a plug-in procedure. (gimp_plug_in_cleanup): free shadow tiles which were created but not destroyed by a plug-in procedure. * app/plug-in/gimpplugin-message.c (plug_in_handle_tile_request): call gimp_plug_in_cleanup_add_shadow() whenever a plug-in requests shadow tiles. * tools/pdbgen/pdb/drawable.pdb: use the new drawable shadow API. Add new procedure gimp-drawable-free-shadow. Call gimp_plug_in_cleaup_remove_shadow() when it gets called. * tools/pdbgen/pdb/image.pdb: deprecate gimp-image-free-shadow. Calling it has no effect any longer. * app/pdb/drawable-cmds.c * app/pdb/image-cmds.c * app/pdb/internal-procs.c * libgimp/gimpimage_pdb.[ch] * libgimp/gimpdrawable_pdb.[ch]: regenerated. svn path=/trunk/; revision=25510
2008-04-22 01:20:51 +08:00
#include "gimpplugin-cleanup.h"
Made an object out of the plug-in struct. Also change refcounting 2006-05-03 Michael Natterer <mitch@gimp.org> Made an object out of the plug-in struct. Also change refcounting considerably: - gimp_plug_in_open() adds a reference that is only dropped by gimp_plug_in_close(). - temporarily ref the plug-in while handling messages. - remporarily ref the plug-in while a recursive main loop is running. - each caller of gimp_plug_in_new() also unrefs the plug-in before returning, the only reference that persists across functions (that keeps the plug-in alive) is the one added by open(). * app/plug-in/plug-in.[ch] * app/plug-in/plug-in-context.[ch] * app/plug-in/plug-in-message.[ch] * app/plug-in/plug-in-progress.[ch]: removed these files... * app/plug-in/gimpplugin.[ch] * app/plug-in/gimpplugin-context.[ch] * app/plug-in/gimpplugin-message.[ch] * app/plug-in/gimpplugin-progress.[ch]: ...and added here as GObject. * app/plug-in/plug-in-proc-frame.[ch]: removed... * app/plug-in/gimppluginprocframe.[ch]: ...and added with a namespace. * app/plug-in/Makefile.am * app/plug-in/plug-in-types.h * app/plug-in/gimppluginmanager-call.c * app/plug-in/gimppluginmanager-file.c * app/plug-in/gimppluginmanager.[ch] * app/pdb/gimppluginprocedure.c * app/pdb/gimptemporaryprocedure.c * app/pdb/gimptemporaryprocedure.h * tools/pdbgen/pdb/context.pdb * tools/pdbgen/pdb/drawable.pdb * tools/pdbgen/pdb/help.pdb * tools/pdbgen/pdb/message.pdb * tools/pdbgen/pdb/plug_in.pdb * tools/pdbgen/pdb/progress.pdb * tools/pdbgen/pdb/undo.pdb: changed accordingly. * app/pdb/context_cmds.c * app/pdb/drawable_cmds.c * app/pdb/help_cmds.c * app/pdb/message_cmds.c * app/pdb/plug_in_cmds.c * app/pdb/progress_cmds.c * app/pdb/undo_cmds.c: regenerated.
2006-05-04 02:05:06 +08:00
#include "gimpplugin-message.h"
app/plug-in/Makefile.am app/plug-in/plug-in-types.h new object which keeps 2006-04-29 Michael Natterer <mitch@gimp.org> * app/plug-in/Makefile.am * app/plug-in/plug-in-types.h * app/plug-in/gimppluginmanager.[ch]: new object which keeps all plug-in related stuff that was kept in the Gimp instance. Has "menu-branch-added" and "last-plug-in-changed" signals. * app/plug-in/plug-ins.[ch]: removed, all its functions are in GimpPlugInManager now. * app/core/gimpmarshal.list: new marshaller for the new object. * app/core/gimp.[ch]: removed all plug-in related stuff and keep a GimpPlugInManager around. * app/plug-in/plug-in-data.[ch] * app/plug-in/plug-in-file.[ch] * app/plug-in/plug-in-help-domain.[ch] * app/plug-in/plug-in-locale-domain.[ch] * app/plug-in/plug-in-menu-branch.[ch] * app/plug-in/plug-ins-query.[ch]: removed... * app/plug-in/gimppluginmanager-data.[ch] * app/plug-in/gimppluginmanager-file.[ch] * app/plug-in/gimppluginmanager-help-domain.[ch] * app/plug-in/gimppluginmanager-locale-domain.[ch] * app/plug-in/gimppluginmanager-menu-branch.[ch] * app/plug-in/gimppluginmanager-query.[ch]: ...and added as methods of GimpPlugInManager. * app/plug-in/plug-in-debug.[ch] * app/plug-in/plug-in-shm.[ch]: removed... * app/plug-in/gimpplugindebug.[ch] * app/plug-in/gimppluginshm.[ch]: ...and added as properly namespeced structs with constructors and destructors. * app/core/Makefile.am * app/core/gimpenvirontable.[ch] * app/core/gimpinterpreterdb.[ch]: removed... * app/plug-in/gimpenvirontable.[ch] * app/plug-in/gimpinterpreterdb.[ch]: ...and added here unchanged. * app/core/gimp-gui.[ch] * app/gui/gui-vtable.c: remove gimp_menus_create_branch() and all related stuff. * app/actions/plug-in-actions.[ch]: connect to the plug-in-manager's "menu-path-added" signal and create menu branch actions accordingly. * app/plug-in/plug-in-context.c * app/plug-in/plug-in-message.c * app/plug-in/plug-in-progress.c * app/plug-in/plug-in-run.[ch] * app/plug-in/plug-in.[ch] * app/app_procs.c * app/actions/file-commands.c * app/actions/plug-in-commands.c * app/core/gimpimage.c * app/dialogs/file-open-location-dialog.c * app/dialogs/file-save-dialog.c * app/file/file-open.c * app/gui/gui.c * app/menus/plug-in-menus.c * app/pdb/gimppluginprocedure.c * app/pdb/gimptemporaryprocedure.c * app/widgets/gimpdnd-xds.c * app/widgets/gimpfiledialog.c * app/widgets/gimpfileprocview.c * app/widgets/gimphelp.c * app/widgets/gimpthumbbox.c * app/xcf/xcf.c * tools/pdbgen/pdb/context.pdb * tools/pdbgen/pdb/drawable.pdb * tools/pdbgen/pdb/fileops.pdb * tools/pdbgen/pdb/help.pdb * tools/pdbgen/pdb/message.pdb * tools/pdbgen/pdb/plug_in.pdb * tools/pdbgen/pdb/procedural_db.pdb * tools/pdbgen/pdb/progress.pdb * tools/pdbgen/pdb/undo.pdb: follow above refactoring. * app/pdb/context_cmds.c * app/pdb/drawable_cmds.c * app/pdb/fileops_cmds.c * app/pdb/help_cmds.c * app/pdb/message_cmds.c * app/pdb/plug_in_cmds.c * app/pdb/procedural_db_cmds.c * app/pdb/progress_cmds.c * app/pdb/undo_cmds.c: regenerated.
2006-04-29 06:26:51 +08:00
#include "gimppluginmanager.h"
#include "gimpplugindef.h"
#include "gimppluginshm.h"
#include "gimptemporaryprocedure.h"
badly chopped into the new files below. Pass around much more "PlugIn" and 2002-03-20 Michael Natterer <mitch@gimp.org> * app/plug-in/plug-in.[ch]: badly chopped into the new files below. Pass around much more "PlugIn" and "Gimp" pointers instead of using "current_plug_in" and "the_gimp". Needs much more hacking though... :( * app/plug-in/Makefile.am * app/plug-in/plug-in-def.[ch] * app/plug-in/plug-in-params.[ch] * app/plug-in/plug-in-progress.[ch] * app/plug-in/plug-ins.[ch]: new files. * app/gui/Makefile.am * app/gui/plug-in-commands.[ch] * app/gui/plug-in-menus.[ch]: ditto. * app/plug-in/plug-in-rc.c * app/plug-in/plug-in-types.h: changed accordingly. * app/pdb/procedural_db.c: changed procedural_db_destroy_args() so it can be used from plug_in_args_destroy(). Fixed a parasite memory leak (or introduced a new SEGV, we'll see...). * app/display/Makefile.am: another "truly ugly hack" until the plug-in menu stuff is chopped even more... * app/gui/commands.[ch]: removed filters_repeat_cmd_callback() here, it is now in plug-in-commands.[ch]. * app/widgets/gimpitemfactory.[ch]: removed all gimp_menu_item_*() hacks. We have a GimpItemFactory available in most cases we used to call this functions, and can use gimp_item_factors_from_path() in all other cases. The item factory stuff needs more work anyway... * app/app_procs.c * app/gimphelp.c * app/display/gimpdisplayshell.c * app/gui/file-dialog-utils.c * app/gui/file-open-dialog.[ch] * app/gui/file-save-dialog.[ch] * app/gui/gui.c * app/gui/menus.c * app/gui/paths-dialog.c * app/xcf/xcf.c * tools/pdbgen/pdb/fileops.pdb * tools/pdbgen/pdb/help.pdb * tools/pdbgen/pdb/plug_in.pdb: changed accordingly (includes, renamed functions and gimp_menu_item_*() removal). * app/pdb/fileops_cmds.c * app/pdb/help_cmds.c * app/pdb/plug_in_cmds.c: regenerated.
2002-03-21 01:46:13 +08:00
#include "plug-in-params.h"
#include "gimp-intl.h"
Bit of a large checkin this - it's basically three things: 1 - GimpModules Sun Jan 11 00:24:21 GMT 1999 Austin Donnelly <austin@greenend.org.uk> Bit of a large checkin this - it's basically three things: 1 - GimpModules using gmodules to dynamically load and initialise modules at gimp start of day. 2 - Color selectors now register themselves with a color notebook. 3 - progress bars have been cleaned up a bit, so now have progress indictations on all transform tool and gradient fill operations. Not done bucket fill, but that seems to be the next candidate. New directories: * modules/: new directory for dynamically loadable modules. New files: * modules/.cvsignore * modules/Makefile.am * modules/colorsel_gtk.c: GTK color selector wrapped up as a color selector the gimp can use. * app/gimpprogress.[ch]: progress bars within gimp core, either as popups, or in the status bar. This is mainly code moved out of plug-in.c * app/color_notebook.[ch]: color selector notebook, implementing very similar interface to color_select.h so it can be used as a drop-in replacement for it. * libgimp/color_selector.h: API color selectors need to implement to become a page in the color_notebook. * libgimp/gimpmodule.h: API gimp modules need to implement to be initialised by gimp at start of day. Modified files: * Makefile.am: add modules/ to SUBDIRS * libgimp/Makefile.am: install gimpmodule.h and color_selector.h * app/gimprc.[ch]: recognise module-path variable. * gimprc.in: set module-path variable to something sensible (currently "${gimp_dir}/modules:${gimp_plugin_dir}/modules"). * app/Makefile.am: build color notebook and gimpprogress * app/app_procs.c: register internal GIMP color selector with color notebook. * app/asupsample.c: call progress function less frequently for better performance. * app/asupsample.h: progress_func_t typedef moved to gimpprogress.h * app/blend.c: make callbacks to a progress function * app/color_area.c: use a color notebook rather than a color selector * app/color_panel.c: ditto * app/color_select.c: export color selector interface for notebook * app/color_select.h: color_select_init() prototype * app/flip_tool.c: flip the image every time, rather than every second click. * app/interface.c: move progress bar stuff out to gimpprogress.c. Make the code actually work while we're at it. * app/interface.h: move prototypes for progress functions out to gimpprogress.h * app/plug_in.c: load and initialise modules (if possible). Move progress bar handling code out to gimpprogress.c * app/plug_in.h: keep only a gimp_progress * for each plugin, not a whole bunch of GtkWidgets. * app/scale_tool.c * app/rotate_tool.c * app/shear_tool.c * app/perspective_tool.c: progress bar during operation. De-sensitise the dialog to discourage the user from running two transforms in parallel. * app/transform_core.c: recalculate grid coords when bounding box changes. Only initialise the action area of the dialog once, to avoid multiple "ok" / "reset" buttons appearing. Undraw transform tool with correct matrix to get rid of handle remains on screen. Call a progress function as we apply the transform matrix. A few new i18n markups. Invalidate floating selection marching ants after applying matrix. * app/transform_core.h: transform_core_do() takes an optional progress callback argument (and data). * plug-ins/oilify/oilify.c: send progress bar updates after every pixel region, not only if they processed a multiple of 5 pixels (which was quite unlikely, and therefore gave a jerky progress indication).
1999-01-11 08:57:33 +08:00
/* local function prototypes */
Made an object out of the plug-in struct. Also change refcounting 2006-05-03 Michael Natterer <mitch@gimp.org> Made an object out of the plug-in struct. Also change refcounting considerably: - gimp_plug_in_open() adds a reference that is only dropped by gimp_plug_in_close(). - temporarily ref the plug-in while handling messages. - remporarily ref the plug-in while a recursive main loop is running. - each caller of gimp_plug_in_new() also unrefs the plug-in before returning, the only reference that persists across functions (that keeps the plug-in alive) is the one added by open(). * app/plug-in/plug-in.[ch] * app/plug-in/plug-in-context.[ch] * app/plug-in/plug-in-message.[ch] * app/plug-in/plug-in-progress.[ch]: removed these files... * app/plug-in/gimpplugin.[ch] * app/plug-in/gimpplugin-context.[ch] * app/plug-in/gimpplugin-message.[ch] * app/plug-in/gimpplugin-progress.[ch]: ...and added here as GObject. * app/plug-in/plug-in-proc-frame.[ch]: removed... * app/plug-in/gimppluginprocframe.[ch]: ...and added with a namespace. * app/plug-in/Makefile.am * app/plug-in/plug-in-types.h * app/plug-in/gimppluginmanager-call.c * app/plug-in/gimppluginmanager-file.c * app/plug-in/gimppluginmanager.[ch] * app/pdb/gimppluginprocedure.c * app/pdb/gimptemporaryprocedure.c * app/pdb/gimptemporaryprocedure.h * tools/pdbgen/pdb/context.pdb * tools/pdbgen/pdb/drawable.pdb * tools/pdbgen/pdb/help.pdb * tools/pdbgen/pdb/message.pdb * tools/pdbgen/pdb/plug_in.pdb * tools/pdbgen/pdb/progress.pdb * tools/pdbgen/pdb/undo.pdb: changed accordingly. * app/pdb/context_cmds.c * app/pdb/drawable_cmds.c * app/pdb/help_cmds.c * app/pdb/message_cmds.c * app/pdb/plug_in_cmds.c * app/pdb/progress_cmds.c * app/pdb/undo_cmds.c: regenerated.
2006-05-04 02:05:06 +08:00
static void gimp_plug_in_handle_quit (GimpPlugIn *plug_in);
static void gimp_plug_in_handle_tile_request (GimpPlugIn *plug_in,
GPTileReq *request);
static void gimp_plug_in_handle_tile_put (GimpPlugIn *plug_in,
GPTileReq *request);
static void gimp_plug_in_handle_tile_get (GimpPlugIn *plug_in,
GPTileReq *request);
Made an object out of the plug-in struct. Also change refcounting 2006-05-03 Michael Natterer <mitch@gimp.org> Made an object out of the plug-in struct. Also change refcounting considerably: - gimp_plug_in_open() adds a reference that is only dropped by gimp_plug_in_close(). - temporarily ref the plug-in while handling messages. - remporarily ref the plug-in while a recursive main loop is running. - each caller of gimp_plug_in_new() also unrefs the plug-in before returning, the only reference that persists across functions (that keeps the plug-in alive) is the one added by open(). * app/plug-in/plug-in.[ch] * app/plug-in/plug-in-context.[ch] * app/plug-in/plug-in-message.[ch] * app/plug-in/plug-in-progress.[ch]: removed these files... * app/plug-in/gimpplugin.[ch] * app/plug-in/gimpplugin-context.[ch] * app/plug-in/gimpplugin-message.[ch] * app/plug-in/gimpplugin-progress.[ch]: ...and added here as GObject. * app/plug-in/plug-in-proc-frame.[ch]: removed... * app/plug-in/gimppluginprocframe.[ch]: ...and added with a namespace. * app/plug-in/Makefile.am * app/plug-in/plug-in-types.h * app/plug-in/gimppluginmanager-call.c * app/plug-in/gimppluginmanager-file.c * app/plug-in/gimppluginmanager.[ch] * app/pdb/gimppluginprocedure.c * app/pdb/gimptemporaryprocedure.c * app/pdb/gimptemporaryprocedure.h * tools/pdbgen/pdb/context.pdb * tools/pdbgen/pdb/drawable.pdb * tools/pdbgen/pdb/help.pdb * tools/pdbgen/pdb/message.pdb * tools/pdbgen/pdb/plug_in.pdb * tools/pdbgen/pdb/progress.pdb * tools/pdbgen/pdb/undo.pdb: changed accordingly. * app/pdb/context_cmds.c * app/pdb/drawable_cmds.c * app/pdb/help_cmds.c * app/pdb/message_cmds.c * app/pdb/plug_in_cmds.c * app/pdb/progress_cmds.c * app/pdb/undo_cmds.c: regenerated.
2006-05-04 02:05:06 +08:00
static void gimp_plug_in_handle_proc_run (GimpPlugIn *plug_in,
GPProcRun *proc_run);
static void gimp_plug_in_handle_proc_return (GimpPlugIn *plug_in,
GPProcReturn *proc_return);
static void gimp_plug_in_handle_temp_proc_return (GimpPlugIn *plug_in,
GPProcReturn *proc_return);
static void gimp_plug_in_handle_proc_install (GimpPlugIn *plug_in,
GPProcInstall *proc_install);
static void gimp_plug_in_handle_proc_uninstall (GimpPlugIn *plug_in,
GPProcUninstall *proc_uninstall);
static void gimp_plug_in_handle_extension_ack (GimpPlugIn *plug_in);
static void gimp_plug_in_handle_has_init (GimpPlugIn *plug_in);
1999-03-07 20:56:03 +08:00
1999-05-07 04:56:07 +08:00
/* public functions */
1997-11-25 06:05:25 +08:00
void
Made an object out of the plug-in struct. Also change refcounting 2006-05-03 Michael Natterer <mitch@gimp.org> Made an object out of the plug-in struct. Also change refcounting considerably: - gimp_plug_in_open() adds a reference that is only dropped by gimp_plug_in_close(). - temporarily ref the plug-in while handling messages. - remporarily ref the plug-in while a recursive main loop is running. - each caller of gimp_plug_in_new() also unrefs the plug-in before returning, the only reference that persists across functions (that keeps the plug-in alive) is the one added by open(). * app/plug-in/plug-in.[ch] * app/plug-in/plug-in-context.[ch] * app/plug-in/plug-in-message.[ch] * app/plug-in/plug-in-progress.[ch]: removed these files... * app/plug-in/gimpplugin.[ch] * app/plug-in/gimpplugin-context.[ch] * app/plug-in/gimpplugin-message.[ch] * app/plug-in/gimpplugin-progress.[ch]: ...and added here as GObject. * app/plug-in/plug-in-proc-frame.[ch]: removed... * app/plug-in/gimppluginprocframe.[ch]: ...and added with a namespace. * app/plug-in/Makefile.am * app/plug-in/plug-in-types.h * app/plug-in/gimppluginmanager-call.c * app/plug-in/gimppluginmanager-file.c * app/plug-in/gimppluginmanager.[ch] * app/pdb/gimppluginprocedure.c * app/pdb/gimptemporaryprocedure.c * app/pdb/gimptemporaryprocedure.h * tools/pdbgen/pdb/context.pdb * tools/pdbgen/pdb/drawable.pdb * tools/pdbgen/pdb/help.pdb * tools/pdbgen/pdb/message.pdb * tools/pdbgen/pdb/plug_in.pdb * tools/pdbgen/pdb/progress.pdb * tools/pdbgen/pdb/undo.pdb: changed accordingly. * app/pdb/context_cmds.c * app/pdb/drawable_cmds.c * app/pdb/help_cmds.c * app/pdb/message_cmds.c * app/pdb/plug_in_cmds.c * app/pdb/progress_cmds.c * app/pdb/undo_cmds.c: regenerated.
2006-05-04 02:05:06 +08:00
gimp_plug_in_handle_message (GimpPlugIn *plug_in,
GimpWireMessage *msg)
1997-11-25 06:05:25 +08:00
{
Made an object out of the plug-in struct. Also change refcounting 2006-05-03 Michael Natterer <mitch@gimp.org> Made an object out of the plug-in struct. Also change refcounting considerably: - gimp_plug_in_open() adds a reference that is only dropped by gimp_plug_in_close(). - temporarily ref the plug-in while handling messages. - remporarily ref the plug-in while a recursive main loop is running. - each caller of gimp_plug_in_new() also unrefs the plug-in before returning, the only reference that persists across functions (that keeps the plug-in alive) is the one added by open(). * app/plug-in/plug-in.[ch] * app/plug-in/plug-in-context.[ch] * app/plug-in/plug-in-message.[ch] * app/plug-in/plug-in-progress.[ch]: removed these files... * app/plug-in/gimpplugin.[ch] * app/plug-in/gimpplugin-context.[ch] * app/plug-in/gimpplugin-message.[ch] * app/plug-in/gimpplugin-progress.[ch]: ...and added here as GObject. * app/plug-in/plug-in-proc-frame.[ch]: removed... * app/plug-in/gimppluginprocframe.[ch]: ...and added with a namespace. * app/plug-in/Makefile.am * app/plug-in/plug-in-types.h * app/plug-in/gimppluginmanager-call.c * app/plug-in/gimppluginmanager-file.c * app/plug-in/gimppluginmanager.[ch] * app/pdb/gimppluginprocedure.c * app/pdb/gimptemporaryprocedure.c * app/pdb/gimptemporaryprocedure.h * tools/pdbgen/pdb/context.pdb * tools/pdbgen/pdb/drawable.pdb * tools/pdbgen/pdb/help.pdb * tools/pdbgen/pdb/message.pdb * tools/pdbgen/pdb/plug_in.pdb * tools/pdbgen/pdb/progress.pdb * tools/pdbgen/pdb/undo.pdb: changed accordingly. * app/pdb/context_cmds.c * app/pdb/drawable_cmds.c * app/pdb/help_cmds.c * app/pdb/message_cmds.c * app/pdb/plug_in_cmds.c * app/pdb/progress_cmds.c * app/pdb/undo_cmds.c: regenerated.
2006-05-04 02:05:06 +08:00
g_return_if_fail (GIMP_IS_PLUG_IN (plug_in));
g_return_if_fail (plug_in->open == TRUE);
g_return_if_fail (msg != NULL);
1997-11-25 06:05:25 +08:00
switch (msg->type)
{
case GP_QUIT:
Made an object out of the plug-in struct. Also change refcounting 2006-05-03 Michael Natterer <mitch@gimp.org> Made an object out of the plug-in struct. Also change refcounting considerably: - gimp_plug_in_open() adds a reference that is only dropped by gimp_plug_in_close(). - temporarily ref the plug-in while handling messages. - remporarily ref the plug-in while a recursive main loop is running. - each caller of gimp_plug_in_new() also unrefs the plug-in before returning, the only reference that persists across functions (that keeps the plug-in alive) is the one added by open(). * app/plug-in/plug-in.[ch] * app/plug-in/plug-in-context.[ch] * app/plug-in/plug-in-message.[ch] * app/plug-in/plug-in-progress.[ch]: removed these files... * app/plug-in/gimpplugin.[ch] * app/plug-in/gimpplugin-context.[ch] * app/plug-in/gimpplugin-message.[ch] * app/plug-in/gimpplugin-progress.[ch]: ...and added here as GObject. * app/plug-in/plug-in-proc-frame.[ch]: removed... * app/plug-in/gimppluginprocframe.[ch]: ...and added with a namespace. * app/plug-in/Makefile.am * app/plug-in/plug-in-types.h * app/plug-in/gimppluginmanager-call.c * app/plug-in/gimppluginmanager-file.c * app/plug-in/gimppluginmanager.[ch] * app/pdb/gimppluginprocedure.c * app/pdb/gimptemporaryprocedure.c * app/pdb/gimptemporaryprocedure.h * tools/pdbgen/pdb/context.pdb * tools/pdbgen/pdb/drawable.pdb * tools/pdbgen/pdb/help.pdb * tools/pdbgen/pdb/message.pdb * tools/pdbgen/pdb/plug_in.pdb * tools/pdbgen/pdb/progress.pdb * tools/pdbgen/pdb/undo.pdb: changed accordingly. * app/pdb/context_cmds.c * app/pdb/drawable_cmds.c * app/pdb/help_cmds.c * app/pdb/message_cmds.c * app/pdb/plug_in_cmds.c * app/pdb/progress_cmds.c * app/pdb/undo_cmds.c: regenerated.
2006-05-04 02:05:06 +08:00
gimp_plug_in_handle_quit (plug_in);
1997-11-25 06:05:25 +08:00
break;
1997-11-25 06:05:25 +08:00
case GP_CONFIG:
app/actions/data-commands.c app/actions/documents-commands.c 2006-10-09 Michael Natterer <mitch@gimp.org> * app/actions/data-commands.c * app/actions/documents-commands.c * app/actions/drawable-commands.c * app/actions/gradients-commands.c * app/actions/image-commands.c * app/actions/layers-commands.c * app/actions/palettes-commands.c * app/actions/select-commands.c * app/actions/vectors-commands.c * app/core/gimp-contexts.c * app/core/gimp-documents.c * app/core/gimp-edit.c * app/core/gimp-modules.c * app/core/gimp-parasites.c * app/core/gimp-templates.c * app/core/gimp-units.c * app/core/gimpchannel.c * app/core/gimpdatafactory.[ch] * app/core/gimpdrawable-bucket-fill.c * app/core/gimpimage-merge.c * app/core/gimpimagefile.c * app/core/gimplayer-floating-sel.c * app/core/gimppdbprogress.c * app/core/gimpselection.c * app/dialogs/palette-import-dialog.c * app/display/gimpdisplayshell-dnd.c * app/gui/session.c * app/gui/themes.c * app/pdb/gimpprocedure.c * app/plug-in/gimpplugin-message.c * app/plug-in/gimpplugin.c * app/plug-in/gimppluginmanager-file.c * app/plug-in/gimppluginmanager.c * app/text/gimptextlayer-xcf.c * app/text/gimptextlayer.c * app/widgets/gimpcontrollers.c * app/widgets/gimpdataeditor.c * app/widgets/gimpdevices.c * app/widgets/gimpdnd-xds.c * app/widgets/gimplayertreeview.c * app/widgets/gimptoolbox-dnd.c * app/widgets/gimptoolbox.c * app/widgets/gimpuimanager.c * app/widgets/gimpvectorstreeview.c * tools/pdbgen/pdb/brush.pdb * tools/pdbgen/pdb/gradient.pdb * tools/pdbgen/pdb/palette.pdb: convert lots of g_message() to gimp_message(). Make sure we never pass unknown strings (like error->message) to printf-like functions directly; run them thorugh "%s" instead. Don't translate some messages which should never happen. * app/pdb/brush_cmds.c * app/pdb/gradient_cmds.c * app/pdb/palette_cmds.c: regenerated.
2006-10-10 02:49:15 +08:00
gimp_message (plug_in->manager->gimp, NULL, GIMP_MESSAGE_ERROR,
"Plug-In \"%s\"\n(%s)\n\n"
"sent a CONFIG message. This should not happen.",
gimp_object_get_name (GIMP_OBJECT (plug_in)),
gimp_filename_to_utf8 (plug_in->prog));
Made an object out of the plug-in struct. Also change refcounting 2006-05-03 Michael Natterer <mitch@gimp.org> Made an object out of the plug-in struct. Also change refcounting considerably: - gimp_plug_in_open() adds a reference that is only dropped by gimp_plug_in_close(). - temporarily ref the plug-in while handling messages. - remporarily ref the plug-in while a recursive main loop is running. - each caller of gimp_plug_in_new() also unrefs the plug-in before returning, the only reference that persists across functions (that keeps the plug-in alive) is the one added by open(). * app/plug-in/plug-in.[ch] * app/plug-in/plug-in-context.[ch] * app/plug-in/plug-in-message.[ch] * app/plug-in/plug-in-progress.[ch]: removed these files... * app/plug-in/gimpplugin.[ch] * app/plug-in/gimpplugin-context.[ch] * app/plug-in/gimpplugin-message.[ch] * app/plug-in/gimpplugin-progress.[ch]: ...and added here as GObject. * app/plug-in/plug-in-proc-frame.[ch]: removed... * app/plug-in/gimppluginprocframe.[ch]: ...and added with a namespace. * app/plug-in/Makefile.am * app/plug-in/plug-in-types.h * app/plug-in/gimppluginmanager-call.c * app/plug-in/gimppluginmanager-file.c * app/plug-in/gimppluginmanager.[ch] * app/pdb/gimppluginprocedure.c * app/pdb/gimptemporaryprocedure.c * app/pdb/gimptemporaryprocedure.h * tools/pdbgen/pdb/context.pdb * tools/pdbgen/pdb/drawable.pdb * tools/pdbgen/pdb/help.pdb * tools/pdbgen/pdb/message.pdb * tools/pdbgen/pdb/plug_in.pdb * tools/pdbgen/pdb/progress.pdb * tools/pdbgen/pdb/undo.pdb: changed accordingly. * app/pdb/context_cmds.c * app/pdb/drawable_cmds.c * app/pdb/help_cmds.c * app/pdb/message_cmds.c * app/pdb/plug_in_cmds.c * app/pdb/progress_cmds.c * app/pdb/undo_cmds.c: regenerated.
2006-05-04 02:05:06 +08:00
gimp_plug_in_close (plug_in, TRUE);
1997-11-25 06:05:25 +08:00
break;
1997-11-25 06:05:25 +08:00
case GP_TILE_REQ:
gimp_plug_in_handle_tile_request (plug_in, msg->data);
1997-11-25 06:05:25 +08:00
break;
1997-11-25 06:05:25 +08:00
case GP_TILE_ACK:
app/actions/data-commands.c app/actions/documents-commands.c 2006-10-09 Michael Natterer <mitch@gimp.org> * app/actions/data-commands.c * app/actions/documents-commands.c * app/actions/drawable-commands.c * app/actions/gradients-commands.c * app/actions/image-commands.c * app/actions/layers-commands.c * app/actions/palettes-commands.c * app/actions/select-commands.c * app/actions/vectors-commands.c * app/core/gimp-contexts.c * app/core/gimp-documents.c * app/core/gimp-edit.c * app/core/gimp-modules.c * app/core/gimp-parasites.c * app/core/gimp-templates.c * app/core/gimp-units.c * app/core/gimpchannel.c * app/core/gimpdatafactory.[ch] * app/core/gimpdrawable-bucket-fill.c * app/core/gimpimage-merge.c * app/core/gimpimagefile.c * app/core/gimplayer-floating-sel.c * app/core/gimppdbprogress.c * app/core/gimpselection.c * app/dialogs/palette-import-dialog.c * app/display/gimpdisplayshell-dnd.c * app/gui/session.c * app/gui/themes.c * app/pdb/gimpprocedure.c * app/plug-in/gimpplugin-message.c * app/plug-in/gimpplugin.c * app/plug-in/gimppluginmanager-file.c * app/plug-in/gimppluginmanager.c * app/text/gimptextlayer-xcf.c * app/text/gimptextlayer.c * app/widgets/gimpcontrollers.c * app/widgets/gimpdataeditor.c * app/widgets/gimpdevices.c * app/widgets/gimpdnd-xds.c * app/widgets/gimplayertreeview.c * app/widgets/gimptoolbox-dnd.c * app/widgets/gimptoolbox.c * app/widgets/gimpuimanager.c * app/widgets/gimpvectorstreeview.c * tools/pdbgen/pdb/brush.pdb * tools/pdbgen/pdb/gradient.pdb * tools/pdbgen/pdb/palette.pdb: convert lots of g_message() to gimp_message(). Make sure we never pass unknown strings (like error->message) to printf-like functions directly; run them thorugh "%s" instead. Don't translate some messages which should never happen. * app/pdb/brush_cmds.c * app/pdb/gradient_cmds.c * app/pdb/palette_cmds.c: regenerated.
2006-10-10 02:49:15 +08:00
gimp_message (plug_in->manager->gimp, NULL, GIMP_MESSAGE_ERROR,
"Plug-In \"%s\"\n(%s)\n\n"
"sent a TILE_ACK message. This should not happen.",
gimp_object_get_name (GIMP_OBJECT (plug_in)),
gimp_filename_to_utf8 (plug_in->prog));
Made an object out of the plug-in struct. Also change refcounting 2006-05-03 Michael Natterer <mitch@gimp.org> Made an object out of the plug-in struct. Also change refcounting considerably: - gimp_plug_in_open() adds a reference that is only dropped by gimp_plug_in_close(). - temporarily ref the plug-in while handling messages. - remporarily ref the plug-in while a recursive main loop is running. - each caller of gimp_plug_in_new() also unrefs the plug-in before returning, the only reference that persists across functions (that keeps the plug-in alive) is the one added by open(). * app/plug-in/plug-in.[ch] * app/plug-in/plug-in-context.[ch] * app/plug-in/plug-in-message.[ch] * app/plug-in/plug-in-progress.[ch]: removed these files... * app/plug-in/gimpplugin.[ch] * app/plug-in/gimpplugin-context.[ch] * app/plug-in/gimpplugin-message.[ch] * app/plug-in/gimpplugin-progress.[ch]: ...and added here as GObject. * app/plug-in/plug-in-proc-frame.[ch]: removed... * app/plug-in/gimppluginprocframe.[ch]: ...and added with a namespace. * app/plug-in/Makefile.am * app/plug-in/plug-in-types.h * app/plug-in/gimppluginmanager-call.c * app/plug-in/gimppluginmanager-file.c * app/plug-in/gimppluginmanager.[ch] * app/pdb/gimppluginprocedure.c * app/pdb/gimptemporaryprocedure.c * app/pdb/gimptemporaryprocedure.h * tools/pdbgen/pdb/context.pdb * tools/pdbgen/pdb/drawable.pdb * tools/pdbgen/pdb/help.pdb * tools/pdbgen/pdb/message.pdb * tools/pdbgen/pdb/plug_in.pdb * tools/pdbgen/pdb/progress.pdb * tools/pdbgen/pdb/undo.pdb: changed accordingly. * app/pdb/context_cmds.c * app/pdb/drawable_cmds.c * app/pdb/help_cmds.c * app/pdb/message_cmds.c * app/pdb/plug_in_cmds.c * app/pdb/progress_cmds.c * app/pdb/undo_cmds.c: regenerated.
2006-05-04 02:05:06 +08:00
gimp_plug_in_close (plug_in, TRUE);
1997-11-25 06:05:25 +08:00
break;
1997-11-25 06:05:25 +08:00
case GP_TILE_DATA:
app/actions/data-commands.c app/actions/documents-commands.c 2006-10-09 Michael Natterer <mitch@gimp.org> * app/actions/data-commands.c * app/actions/documents-commands.c * app/actions/drawable-commands.c * app/actions/gradients-commands.c * app/actions/image-commands.c * app/actions/layers-commands.c * app/actions/palettes-commands.c * app/actions/select-commands.c * app/actions/vectors-commands.c * app/core/gimp-contexts.c * app/core/gimp-documents.c * app/core/gimp-edit.c * app/core/gimp-modules.c * app/core/gimp-parasites.c * app/core/gimp-templates.c * app/core/gimp-units.c * app/core/gimpchannel.c * app/core/gimpdatafactory.[ch] * app/core/gimpdrawable-bucket-fill.c * app/core/gimpimage-merge.c * app/core/gimpimagefile.c * app/core/gimplayer-floating-sel.c * app/core/gimppdbprogress.c * app/core/gimpselection.c * app/dialogs/palette-import-dialog.c * app/display/gimpdisplayshell-dnd.c * app/gui/session.c * app/gui/themes.c * app/pdb/gimpprocedure.c * app/plug-in/gimpplugin-message.c * app/plug-in/gimpplugin.c * app/plug-in/gimppluginmanager-file.c * app/plug-in/gimppluginmanager.c * app/text/gimptextlayer-xcf.c * app/text/gimptextlayer.c * app/widgets/gimpcontrollers.c * app/widgets/gimpdataeditor.c * app/widgets/gimpdevices.c * app/widgets/gimpdnd-xds.c * app/widgets/gimplayertreeview.c * app/widgets/gimptoolbox-dnd.c * app/widgets/gimptoolbox.c * app/widgets/gimpuimanager.c * app/widgets/gimpvectorstreeview.c * tools/pdbgen/pdb/brush.pdb * tools/pdbgen/pdb/gradient.pdb * tools/pdbgen/pdb/palette.pdb: convert lots of g_message() to gimp_message(). Make sure we never pass unknown strings (like error->message) to printf-like functions directly; run them thorugh "%s" instead. Don't translate some messages which should never happen. * app/pdb/brush_cmds.c * app/pdb/gradient_cmds.c * app/pdb/palette_cmds.c: regenerated.
2006-10-10 02:49:15 +08:00
gimp_message (plug_in->manager->gimp, NULL, GIMP_MESSAGE_ERROR,
"Plug-In \"%s\"\n(%s)\n\n"
"sent a TILE_DATA message. This should not happen.",
gimp_object_get_name (GIMP_OBJECT (plug_in)),
gimp_filename_to_utf8 (plug_in->prog));
Made an object out of the plug-in struct. Also change refcounting 2006-05-03 Michael Natterer <mitch@gimp.org> Made an object out of the plug-in struct. Also change refcounting considerably: - gimp_plug_in_open() adds a reference that is only dropped by gimp_plug_in_close(). - temporarily ref the plug-in while handling messages. - remporarily ref the plug-in while a recursive main loop is running. - each caller of gimp_plug_in_new() also unrefs the plug-in before returning, the only reference that persists across functions (that keeps the plug-in alive) is the one added by open(). * app/plug-in/plug-in.[ch] * app/plug-in/plug-in-context.[ch] * app/plug-in/plug-in-message.[ch] * app/plug-in/plug-in-progress.[ch]: removed these files... * app/plug-in/gimpplugin.[ch] * app/plug-in/gimpplugin-context.[ch] * app/plug-in/gimpplugin-message.[ch] * app/plug-in/gimpplugin-progress.[ch]: ...and added here as GObject. * app/plug-in/plug-in-proc-frame.[ch]: removed... * app/plug-in/gimppluginprocframe.[ch]: ...and added with a namespace. * app/plug-in/Makefile.am * app/plug-in/plug-in-types.h * app/plug-in/gimppluginmanager-call.c * app/plug-in/gimppluginmanager-file.c * app/plug-in/gimppluginmanager.[ch] * app/pdb/gimppluginprocedure.c * app/pdb/gimptemporaryprocedure.c * app/pdb/gimptemporaryprocedure.h * tools/pdbgen/pdb/context.pdb * tools/pdbgen/pdb/drawable.pdb * tools/pdbgen/pdb/help.pdb * tools/pdbgen/pdb/message.pdb * tools/pdbgen/pdb/plug_in.pdb * tools/pdbgen/pdb/progress.pdb * tools/pdbgen/pdb/undo.pdb: changed accordingly. * app/pdb/context_cmds.c * app/pdb/drawable_cmds.c * app/pdb/help_cmds.c * app/pdb/message_cmds.c * app/pdb/plug_in_cmds.c * app/pdb/progress_cmds.c * app/pdb/undo_cmds.c: regenerated.
2006-05-04 02:05:06 +08:00
gimp_plug_in_close (plug_in, TRUE);
1997-11-25 06:05:25 +08:00
break;
1997-11-25 06:05:25 +08:00
case GP_PROC_RUN:
Made an object out of the plug-in struct. Also change refcounting 2006-05-03 Michael Natterer <mitch@gimp.org> Made an object out of the plug-in struct. Also change refcounting considerably: - gimp_plug_in_open() adds a reference that is only dropped by gimp_plug_in_close(). - temporarily ref the plug-in while handling messages. - remporarily ref the plug-in while a recursive main loop is running. - each caller of gimp_plug_in_new() also unrefs the plug-in before returning, the only reference that persists across functions (that keeps the plug-in alive) is the one added by open(). * app/plug-in/plug-in.[ch] * app/plug-in/plug-in-context.[ch] * app/plug-in/plug-in-message.[ch] * app/plug-in/plug-in-progress.[ch]: removed these files... * app/plug-in/gimpplugin.[ch] * app/plug-in/gimpplugin-context.[ch] * app/plug-in/gimpplugin-message.[ch] * app/plug-in/gimpplugin-progress.[ch]: ...and added here as GObject. * app/plug-in/plug-in-proc-frame.[ch]: removed... * app/plug-in/gimppluginprocframe.[ch]: ...and added with a namespace. * app/plug-in/Makefile.am * app/plug-in/plug-in-types.h * app/plug-in/gimppluginmanager-call.c * app/plug-in/gimppluginmanager-file.c * app/plug-in/gimppluginmanager.[ch] * app/pdb/gimppluginprocedure.c * app/pdb/gimptemporaryprocedure.c * app/pdb/gimptemporaryprocedure.h * tools/pdbgen/pdb/context.pdb * tools/pdbgen/pdb/drawable.pdb * tools/pdbgen/pdb/help.pdb * tools/pdbgen/pdb/message.pdb * tools/pdbgen/pdb/plug_in.pdb * tools/pdbgen/pdb/progress.pdb * tools/pdbgen/pdb/undo.pdb: changed accordingly. * app/pdb/context_cmds.c * app/pdb/drawable_cmds.c * app/pdb/help_cmds.c * app/pdb/message_cmds.c * app/pdb/plug_in_cmds.c * app/pdb/progress_cmds.c * app/pdb/undo_cmds.c: regenerated.
2006-05-04 02:05:06 +08:00
gimp_plug_in_handle_proc_run (plug_in, msg->data);
1997-11-25 06:05:25 +08:00
break;
1997-11-25 06:05:25 +08:00
case GP_PROC_RETURN:
Made an object out of the plug-in struct. Also change refcounting 2006-05-03 Michael Natterer <mitch@gimp.org> Made an object out of the plug-in struct. Also change refcounting considerably: - gimp_plug_in_open() adds a reference that is only dropped by gimp_plug_in_close(). - temporarily ref the plug-in while handling messages. - remporarily ref the plug-in while a recursive main loop is running. - each caller of gimp_plug_in_new() also unrefs the plug-in before returning, the only reference that persists across functions (that keeps the plug-in alive) is the one added by open(). * app/plug-in/plug-in.[ch] * app/plug-in/plug-in-context.[ch] * app/plug-in/plug-in-message.[ch] * app/plug-in/plug-in-progress.[ch]: removed these files... * app/plug-in/gimpplugin.[ch] * app/plug-in/gimpplugin-context.[ch] * app/plug-in/gimpplugin-message.[ch] * app/plug-in/gimpplugin-progress.[ch]: ...and added here as GObject. * app/plug-in/plug-in-proc-frame.[ch]: removed... * app/plug-in/gimppluginprocframe.[ch]: ...and added with a namespace. * app/plug-in/Makefile.am * app/plug-in/plug-in-types.h * app/plug-in/gimppluginmanager-call.c * app/plug-in/gimppluginmanager-file.c * app/plug-in/gimppluginmanager.[ch] * app/pdb/gimppluginprocedure.c * app/pdb/gimptemporaryprocedure.c * app/pdb/gimptemporaryprocedure.h * tools/pdbgen/pdb/context.pdb * tools/pdbgen/pdb/drawable.pdb * tools/pdbgen/pdb/help.pdb * tools/pdbgen/pdb/message.pdb * tools/pdbgen/pdb/plug_in.pdb * tools/pdbgen/pdb/progress.pdb * tools/pdbgen/pdb/undo.pdb: changed accordingly. * app/pdb/context_cmds.c * app/pdb/drawable_cmds.c * app/pdb/help_cmds.c * app/pdb/message_cmds.c * app/pdb/plug_in_cmds.c * app/pdb/progress_cmds.c * app/pdb/undo_cmds.c: regenerated.
2006-05-04 02:05:06 +08:00
gimp_plug_in_handle_proc_return (plug_in, msg->data);
1997-11-25 06:05:25 +08:00
break;
1997-11-25 06:05:25 +08:00
case GP_TEMP_PROC_RUN:
app/actions/data-commands.c app/actions/documents-commands.c 2006-10-09 Michael Natterer <mitch@gimp.org> * app/actions/data-commands.c * app/actions/documents-commands.c * app/actions/drawable-commands.c * app/actions/gradients-commands.c * app/actions/image-commands.c * app/actions/layers-commands.c * app/actions/palettes-commands.c * app/actions/select-commands.c * app/actions/vectors-commands.c * app/core/gimp-contexts.c * app/core/gimp-documents.c * app/core/gimp-edit.c * app/core/gimp-modules.c * app/core/gimp-parasites.c * app/core/gimp-templates.c * app/core/gimp-units.c * app/core/gimpchannel.c * app/core/gimpdatafactory.[ch] * app/core/gimpdrawable-bucket-fill.c * app/core/gimpimage-merge.c * app/core/gimpimagefile.c * app/core/gimplayer-floating-sel.c * app/core/gimppdbprogress.c * app/core/gimpselection.c * app/dialogs/palette-import-dialog.c * app/display/gimpdisplayshell-dnd.c * app/gui/session.c * app/gui/themes.c * app/pdb/gimpprocedure.c * app/plug-in/gimpplugin-message.c * app/plug-in/gimpplugin.c * app/plug-in/gimppluginmanager-file.c * app/plug-in/gimppluginmanager.c * app/text/gimptextlayer-xcf.c * app/text/gimptextlayer.c * app/widgets/gimpcontrollers.c * app/widgets/gimpdataeditor.c * app/widgets/gimpdevices.c * app/widgets/gimpdnd-xds.c * app/widgets/gimplayertreeview.c * app/widgets/gimptoolbox-dnd.c * app/widgets/gimptoolbox.c * app/widgets/gimpuimanager.c * app/widgets/gimpvectorstreeview.c * tools/pdbgen/pdb/brush.pdb * tools/pdbgen/pdb/gradient.pdb * tools/pdbgen/pdb/palette.pdb: convert lots of g_message() to gimp_message(). Make sure we never pass unknown strings (like error->message) to printf-like functions directly; run them thorugh "%s" instead. Don't translate some messages which should never happen. * app/pdb/brush_cmds.c * app/pdb/gradient_cmds.c * app/pdb/palette_cmds.c: regenerated.
2006-10-10 02:49:15 +08:00
gimp_message (plug_in->manager->gimp, NULL, GIMP_MESSAGE_ERROR,
"Plug-In \"%s\"\n(%s)\n\n"
"sent a TEMP_PROC_RUN message. This should not happen.",
gimp_object_get_name (GIMP_OBJECT (plug_in)),
gimp_filename_to_utf8 (plug_in->prog));
Made an object out of the plug-in struct. Also change refcounting 2006-05-03 Michael Natterer <mitch@gimp.org> Made an object out of the plug-in struct. Also change refcounting considerably: - gimp_plug_in_open() adds a reference that is only dropped by gimp_plug_in_close(). - temporarily ref the plug-in while handling messages. - remporarily ref the plug-in while a recursive main loop is running. - each caller of gimp_plug_in_new() also unrefs the plug-in before returning, the only reference that persists across functions (that keeps the plug-in alive) is the one added by open(). * app/plug-in/plug-in.[ch] * app/plug-in/plug-in-context.[ch] * app/plug-in/plug-in-message.[ch] * app/plug-in/plug-in-progress.[ch]: removed these files... * app/plug-in/gimpplugin.[ch] * app/plug-in/gimpplugin-context.[ch] * app/plug-in/gimpplugin-message.[ch] * app/plug-in/gimpplugin-progress.[ch]: ...and added here as GObject. * app/plug-in/plug-in-proc-frame.[ch]: removed... * app/plug-in/gimppluginprocframe.[ch]: ...and added with a namespace. * app/plug-in/Makefile.am * app/plug-in/plug-in-types.h * app/plug-in/gimppluginmanager-call.c * app/plug-in/gimppluginmanager-file.c * app/plug-in/gimppluginmanager.[ch] * app/pdb/gimppluginprocedure.c * app/pdb/gimptemporaryprocedure.c * app/pdb/gimptemporaryprocedure.h * tools/pdbgen/pdb/context.pdb * tools/pdbgen/pdb/drawable.pdb * tools/pdbgen/pdb/help.pdb * tools/pdbgen/pdb/message.pdb * tools/pdbgen/pdb/plug_in.pdb * tools/pdbgen/pdb/progress.pdb * tools/pdbgen/pdb/undo.pdb: changed accordingly. * app/pdb/context_cmds.c * app/pdb/drawable_cmds.c * app/pdb/help_cmds.c * app/pdb/message_cmds.c * app/pdb/plug_in_cmds.c * app/pdb/progress_cmds.c * app/pdb/undo_cmds.c: regenerated.
2006-05-04 02:05:06 +08:00
gimp_plug_in_close (plug_in, TRUE);
1997-11-25 06:05:25 +08:00
break;
1997-11-25 06:05:25 +08:00
case GP_TEMP_PROC_RETURN:
Made an object out of the plug-in struct. Also change refcounting 2006-05-03 Michael Natterer <mitch@gimp.org> Made an object out of the plug-in struct. Also change refcounting considerably: - gimp_plug_in_open() adds a reference that is only dropped by gimp_plug_in_close(). - temporarily ref the plug-in while handling messages. - remporarily ref the plug-in while a recursive main loop is running. - each caller of gimp_plug_in_new() also unrefs the plug-in before returning, the only reference that persists across functions (that keeps the plug-in alive) is the one added by open(). * app/plug-in/plug-in.[ch] * app/plug-in/plug-in-context.[ch] * app/plug-in/plug-in-message.[ch] * app/plug-in/plug-in-progress.[ch]: removed these files... * app/plug-in/gimpplugin.[ch] * app/plug-in/gimpplugin-context.[ch] * app/plug-in/gimpplugin-message.[ch] * app/plug-in/gimpplugin-progress.[ch]: ...and added here as GObject. * app/plug-in/plug-in-proc-frame.[ch]: removed... * app/plug-in/gimppluginprocframe.[ch]: ...and added with a namespace. * app/plug-in/Makefile.am * app/plug-in/plug-in-types.h * app/plug-in/gimppluginmanager-call.c * app/plug-in/gimppluginmanager-file.c * app/plug-in/gimppluginmanager.[ch] * app/pdb/gimppluginprocedure.c * app/pdb/gimptemporaryprocedure.c * app/pdb/gimptemporaryprocedure.h * tools/pdbgen/pdb/context.pdb * tools/pdbgen/pdb/drawable.pdb * tools/pdbgen/pdb/help.pdb * tools/pdbgen/pdb/message.pdb * tools/pdbgen/pdb/plug_in.pdb * tools/pdbgen/pdb/progress.pdb * tools/pdbgen/pdb/undo.pdb: changed accordingly. * app/pdb/context_cmds.c * app/pdb/drawable_cmds.c * app/pdb/help_cmds.c * app/pdb/message_cmds.c * app/pdb/plug_in_cmds.c * app/pdb/progress_cmds.c * app/pdb/undo_cmds.c: regenerated.
2006-05-04 02:05:06 +08:00
gimp_plug_in_handle_temp_proc_return (plug_in, msg->data);
1997-11-25 06:05:25 +08:00
break;
1997-11-25 06:05:25 +08:00
case GP_PROC_INSTALL:
Made an object out of the plug-in struct. Also change refcounting 2006-05-03 Michael Natterer <mitch@gimp.org> Made an object out of the plug-in struct. Also change refcounting considerably: - gimp_plug_in_open() adds a reference that is only dropped by gimp_plug_in_close(). - temporarily ref the plug-in while handling messages. - remporarily ref the plug-in while a recursive main loop is running. - each caller of gimp_plug_in_new() also unrefs the plug-in before returning, the only reference that persists across functions (that keeps the plug-in alive) is the one added by open(). * app/plug-in/plug-in.[ch] * app/plug-in/plug-in-context.[ch] * app/plug-in/plug-in-message.[ch] * app/plug-in/plug-in-progress.[ch]: removed these files... * app/plug-in/gimpplugin.[ch] * app/plug-in/gimpplugin-context.[ch] * app/plug-in/gimpplugin-message.[ch] * app/plug-in/gimpplugin-progress.[ch]: ...and added here as GObject. * app/plug-in/plug-in-proc-frame.[ch]: removed... * app/plug-in/gimppluginprocframe.[ch]: ...and added with a namespace. * app/plug-in/Makefile.am * app/plug-in/plug-in-types.h * app/plug-in/gimppluginmanager-call.c * app/plug-in/gimppluginmanager-file.c * app/plug-in/gimppluginmanager.[ch] * app/pdb/gimppluginprocedure.c * app/pdb/gimptemporaryprocedure.c * app/pdb/gimptemporaryprocedure.h * tools/pdbgen/pdb/context.pdb * tools/pdbgen/pdb/drawable.pdb * tools/pdbgen/pdb/help.pdb * tools/pdbgen/pdb/message.pdb * tools/pdbgen/pdb/plug_in.pdb * tools/pdbgen/pdb/progress.pdb * tools/pdbgen/pdb/undo.pdb: changed accordingly. * app/pdb/context_cmds.c * app/pdb/drawable_cmds.c * app/pdb/help_cmds.c * app/pdb/message_cmds.c * app/pdb/plug_in_cmds.c * app/pdb/progress_cmds.c * app/pdb/undo_cmds.c: regenerated.
2006-05-04 02:05:06 +08:00
gimp_plug_in_handle_proc_install (plug_in, msg->data);
1997-11-25 06:05:25 +08:00
break;
1997-11-25 06:05:25 +08:00
case GP_PROC_UNINSTALL:
Made an object out of the plug-in struct. Also change refcounting 2006-05-03 Michael Natterer <mitch@gimp.org> Made an object out of the plug-in struct. Also change refcounting considerably: - gimp_plug_in_open() adds a reference that is only dropped by gimp_plug_in_close(). - temporarily ref the plug-in while handling messages. - remporarily ref the plug-in while a recursive main loop is running. - each caller of gimp_plug_in_new() also unrefs the plug-in before returning, the only reference that persists across functions (that keeps the plug-in alive) is the one added by open(). * app/plug-in/plug-in.[ch] * app/plug-in/plug-in-context.[ch] * app/plug-in/plug-in-message.[ch] * app/plug-in/plug-in-progress.[ch]: removed these files... * app/plug-in/gimpplugin.[ch] * app/plug-in/gimpplugin-context.[ch] * app/plug-in/gimpplugin-message.[ch] * app/plug-in/gimpplugin-progress.[ch]: ...and added here as GObject. * app/plug-in/plug-in-proc-frame.[ch]: removed... * app/plug-in/gimppluginprocframe.[ch]: ...and added with a namespace. * app/plug-in/Makefile.am * app/plug-in/plug-in-types.h * app/plug-in/gimppluginmanager-call.c * app/plug-in/gimppluginmanager-file.c * app/plug-in/gimppluginmanager.[ch] * app/pdb/gimppluginprocedure.c * app/pdb/gimptemporaryprocedure.c * app/pdb/gimptemporaryprocedure.h * tools/pdbgen/pdb/context.pdb * tools/pdbgen/pdb/drawable.pdb * tools/pdbgen/pdb/help.pdb * tools/pdbgen/pdb/message.pdb * tools/pdbgen/pdb/plug_in.pdb * tools/pdbgen/pdb/progress.pdb * tools/pdbgen/pdb/undo.pdb: changed accordingly. * app/pdb/context_cmds.c * app/pdb/drawable_cmds.c * app/pdb/help_cmds.c * app/pdb/message_cmds.c * app/pdb/plug_in_cmds.c * app/pdb/progress_cmds.c * app/pdb/undo_cmds.c: regenerated.
2006-05-04 02:05:06 +08:00
gimp_plug_in_handle_proc_uninstall (plug_in, msg->data);
1997-11-25 06:05:25 +08:00
break;
1997-11-25 06:05:25 +08:00
case GP_EXTENSION_ACK:
Made an object out of the plug-in struct. Also change refcounting 2006-05-03 Michael Natterer <mitch@gimp.org> Made an object out of the plug-in struct. Also change refcounting considerably: - gimp_plug_in_open() adds a reference that is only dropped by gimp_plug_in_close(). - temporarily ref the plug-in while handling messages. - remporarily ref the plug-in while a recursive main loop is running. - each caller of gimp_plug_in_new() also unrefs the plug-in before returning, the only reference that persists across functions (that keeps the plug-in alive) is the one added by open(). * app/plug-in/plug-in.[ch] * app/plug-in/plug-in-context.[ch] * app/plug-in/plug-in-message.[ch] * app/plug-in/plug-in-progress.[ch]: removed these files... * app/plug-in/gimpplugin.[ch] * app/plug-in/gimpplugin-context.[ch] * app/plug-in/gimpplugin-message.[ch] * app/plug-in/gimpplugin-progress.[ch]: ...and added here as GObject. * app/plug-in/plug-in-proc-frame.[ch]: removed... * app/plug-in/gimppluginprocframe.[ch]: ...and added with a namespace. * app/plug-in/Makefile.am * app/plug-in/plug-in-types.h * app/plug-in/gimppluginmanager-call.c * app/plug-in/gimppluginmanager-file.c * app/plug-in/gimppluginmanager.[ch] * app/pdb/gimppluginprocedure.c * app/pdb/gimptemporaryprocedure.c * app/pdb/gimptemporaryprocedure.h * tools/pdbgen/pdb/context.pdb * tools/pdbgen/pdb/drawable.pdb * tools/pdbgen/pdb/help.pdb * tools/pdbgen/pdb/message.pdb * tools/pdbgen/pdb/plug_in.pdb * tools/pdbgen/pdb/progress.pdb * tools/pdbgen/pdb/undo.pdb: changed accordingly. * app/pdb/context_cmds.c * app/pdb/drawable_cmds.c * app/pdb/help_cmds.c * app/pdb/message_cmds.c * app/pdb/plug_in_cmds.c * app/pdb/progress_cmds.c * app/pdb/undo_cmds.c: regenerated.
2006-05-04 02:05:06 +08:00
gimp_plug_in_handle_extension_ack (plug_in);
1997-11-25 06:05:25 +08:00
break;
case GP_HAS_INIT:
Made an object out of the plug-in struct. Also change refcounting 2006-05-03 Michael Natterer <mitch@gimp.org> Made an object out of the plug-in struct. Also change refcounting considerably: - gimp_plug_in_open() adds a reference that is only dropped by gimp_plug_in_close(). - temporarily ref the plug-in while handling messages. - remporarily ref the plug-in while a recursive main loop is running. - each caller of gimp_plug_in_new() also unrefs the plug-in before returning, the only reference that persists across functions (that keeps the plug-in alive) is the one added by open(). * app/plug-in/plug-in.[ch] * app/plug-in/plug-in-context.[ch] * app/plug-in/plug-in-message.[ch] * app/plug-in/plug-in-progress.[ch]: removed these files... * app/plug-in/gimpplugin.[ch] * app/plug-in/gimpplugin-context.[ch] * app/plug-in/gimpplugin-message.[ch] * app/plug-in/gimpplugin-progress.[ch]: ...and added here as GObject. * app/plug-in/plug-in-proc-frame.[ch]: removed... * app/plug-in/gimppluginprocframe.[ch]: ...and added with a namespace. * app/plug-in/Makefile.am * app/plug-in/plug-in-types.h * app/plug-in/gimppluginmanager-call.c * app/plug-in/gimppluginmanager-file.c * app/plug-in/gimppluginmanager.[ch] * app/pdb/gimppluginprocedure.c * app/pdb/gimptemporaryprocedure.c * app/pdb/gimptemporaryprocedure.h * tools/pdbgen/pdb/context.pdb * tools/pdbgen/pdb/drawable.pdb * tools/pdbgen/pdb/help.pdb * tools/pdbgen/pdb/message.pdb * tools/pdbgen/pdb/plug_in.pdb * tools/pdbgen/pdb/progress.pdb * tools/pdbgen/pdb/undo.pdb: changed accordingly. * app/pdb/context_cmds.c * app/pdb/drawable_cmds.c * app/pdb/help_cmds.c * app/pdb/message_cmds.c * app/pdb/plug_in_cmds.c * app/pdb/progress_cmds.c * app/pdb/undo_cmds.c: regenerated.
2006-05-04 02:05:06 +08:00
gimp_plug_in_handle_has_init (plug_in);
break;
1997-11-25 06:05:25 +08:00
}
}
/* private functions */
1997-11-25 06:05:25 +08:00
static void
Made an object out of the plug-in struct. Also change refcounting 2006-05-03 Michael Natterer <mitch@gimp.org> Made an object out of the plug-in struct. Also change refcounting considerably: - gimp_plug_in_open() adds a reference that is only dropped by gimp_plug_in_close(). - temporarily ref the plug-in while handling messages. - remporarily ref the plug-in while a recursive main loop is running. - each caller of gimp_plug_in_new() also unrefs the plug-in before returning, the only reference that persists across functions (that keeps the plug-in alive) is the one added by open(). * app/plug-in/plug-in.[ch] * app/plug-in/plug-in-context.[ch] * app/plug-in/plug-in-message.[ch] * app/plug-in/plug-in-progress.[ch]: removed these files... * app/plug-in/gimpplugin.[ch] * app/plug-in/gimpplugin-context.[ch] * app/plug-in/gimpplugin-message.[ch] * app/plug-in/gimpplugin-progress.[ch]: ...and added here as GObject. * app/plug-in/plug-in-proc-frame.[ch]: removed... * app/plug-in/gimppluginprocframe.[ch]: ...and added with a namespace. * app/plug-in/Makefile.am * app/plug-in/plug-in-types.h * app/plug-in/gimppluginmanager-call.c * app/plug-in/gimppluginmanager-file.c * app/plug-in/gimppluginmanager.[ch] * app/pdb/gimppluginprocedure.c * app/pdb/gimptemporaryprocedure.c * app/pdb/gimptemporaryprocedure.h * tools/pdbgen/pdb/context.pdb * tools/pdbgen/pdb/drawable.pdb * tools/pdbgen/pdb/help.pdb * tools/pdbgen/pdb/message.pdb * tools/pdbgen/pdb/plug_in.pdb * tools/pdbgen/pdb/progress.pdb * tools/pdbgen/pdb/undo.pdb: changed accordingly. * app/pdb/context_cmds.c * app/pdb/drawable_cmds.c * app/pdb/help_cmds.c * app/pdb/message_cmds.c * app/pdb/plug_in_cmds.c * app/pdb/progress_cmds.c * app/pdb/undo_cmds.c: regenerated.
2006-05-04 02:05:06 +08:00
gimp_plug_in_handle_quit (GimpPlugIn *plug_in)
1997-11-25 06:05:25 +08:00
{
Made an object out of the plug-in struct. Also change refcounting 2006-05-03 Michael Natterer <mitch@gimp.org> Made an object out of the plug-in struct. Also change refcounting considerably: - gimp_plug_in_open() adds a reference that is only dropped by gimp_plug_in_close(). - temporarily ref the plug-in while handling messages. - remporarily ref the plug-in while a recursive main loop is running. - each caller of gimp_plug_in_new() also unrefs the plug-in before returning, the only reference that persists across functions (that keeps the plug-in alive) is the one added by open(). * app/plug-in/plug-in.[ch] * app/plug-in/plug-in-context.[ch] * app/plug-in/plug-in-message.[ch] * app/plug-in/plug-in-progress.[ch]: removed these files... * app/plug-in/gimpplugin.[ch] * app/plug-in/gimpplugin-context.[ch] * app/plug-in/gimpplugin-message.[ch] * app/plug-in/gimpplugin-progress.[ch]: ...and added here as GObject. * app/plug-in/plug-in-proc-frame.[ch]: removed... * app/plug-in/gimppluginprocframe.[ch]: ...and added with a namespace. * app/plug-in/Makefile.am * app/plug-in/plug-in-types.h * app/plug-in/gimppluginmanager-call.c * app/plug-in/gimppluginmanager-file.c * app/plug-in/gimppluginmanager.[ch] * app/pdb/gimppluginprocedure.c * app/pdb/gimptemporaryprocedure.c * app/pdb/gimptemporaryprocedure.h * tools/pdbgen/pdb/context.pdb * tools/pdbgen/pdb/drawable.pdb * tools/pdbgen/pdb/help.pdb * tools/pdbgen/pdb/message.pdb * tools/pdbgen/pdb/plug_in.pdb * tools/pdbgen/pdb/progress.pdb * tools/pdbgen/pdb/undo.pdb: changed accordingly. * app/pdb/context_cmds.c * app/pdb/drawable_cmds.c * app/pdb/help_cmds.c * app/pdb/message_cmds.c * app/pdb/plug_in_cmds.c * app/pdb/progress_cmds.c * app/pdb/undo_cmds.c: regenerated.
2006-05-04 02:05:06 +08:00
gimp_plug_in_close (plug_in, FALSE);
1997-11-25 06:05:25 +08:00
}
static void
gimp_plug_in_handle_tile_request (GimpPlugIn *plug_in,
GPTileReq *request)
{
g_return_if_fail (request != NULL);
if (request->drawable_ID == -1)
gimp_plug_in_handle_tile_put (plug_in, request);
else
gimp_plug_in_handle_tile_get (plug_in, request);
}
static void
gimp_plug_in_handle_tile_put (GimpPlugIn *plug_in,
GPTileReq *request)
1997-11-25 06:05:25 +08:00
{
GPTileData tile_data;
GPTileData *tile_info;
GimpWireMessage msg;
GimpDrawable *drawable;
TileManager *tm;
Tile *tile;
1997-11-25 06:05:25 +08:00
tile_data.drawable_ID = -1;
tile_data.tile_num = 0;
tile_data.shadow = 0;
tile_data.bpp = 0;
tile_data.width = 0;
tile_data.height = 0;
tile_data.use_shm = (plug_in->manager->shm != NULL);
tile_data.data = NULL;
if (! gp_tile_data_write (plug_in->my_write, &tile_data, plug_in))
{
gimp_message (plug_in->manager->gimp, NULL, GIMP_MESSAGE_ERROR,
"plug_in_handle_tile_request: ERROR");
gimp_plug_in_close (plug_in, TRUE);
return;
}
if (! gimp_wire_read_msg (plug_in->my_read, &msg, plug_in))
{
gimp_message (plug_in->manager->gimp, NULL, GIMP_MESSAGE_ERROR,
"plug_in_handle_tile_request: ERROR");
gimp_plug_in_close (plug_in, TRUE);
return;
}
if (msg.type != GP_TILE_DATA)
{
gimp_message (plug_in->manager->gimp, NULL, GIMP_MESSAGE_ERROR,
"expected tile data and received: %d", msg.type);
gimp_plug_in_close (plug_in, TRUE);
return;
}
tile_info = msg.data;
drawable = (GimpDrawable *) gimp_item_get_by_ID (plug_in->manager->gimp,
tile_info->drawable_ID);
if (! GIMP_IS_DRAWABLE (drawable))
{
gimp_message (plug_in->manager->gimp, NULL, GIMP_MESSAGE_ERROR,
"Plug-In \"%s\"\n(%s)\n\n"
"tried writing to invalid drawable %d (killing)",
gimp_object_get_name (GIMP_OBJECT (plug_in)),
gimp_filename_to_utf8 (plug_in->prog),
tile_info->drawable_ID);
gimp_plug_in_close (plug_in, TRUE);
return;
}
else if (gimp_item_is_removed (GIMP_ITEM (drawable)))
{
gimp_message (plug_in->manager->gimp, NULL, GIMP_MESSAGE_ERROR,
"Plug-In \"%s\"\n(%s)\n\n"
"tried writing to drawable %d which was removed "
"from the image (killing)",
gimp_object_get_name (GIMP_OBJECT (plug_in)),
gimp_filename_to_utf8 (plug_in->prog),
tile_info->drawable_ID);
gimp_plug_in_close (plug_in, TRUE);
return;
}
if (tile_info->shadow)
{
tm = gimp_drawable_get_shadow_tiles (drawable);
gimp_plug_in_cleanup_add_shadow (plug_in, drawable);
}
else
{
tm = gimp_drawable_get_tiles (drawable);
}
tile = tile_manager_get (tm, tile_info->tile_num, TRUE, TRUE);
if (! tile)
{
gimp_message (plug_in->manager->gimp, NULL, GIMP_MESSAGE_ERROR,
"Plug-In \"%s\"\n(%s)\n\n"
"requested invalid tile (killing)",
gimp_object_get_name (GIMP_OBJECT (plug_in)),
gimp_filename_to_utf8 (plug_in->prog));
gimp_plug_in_close (plug_in, TRUE);
return;
}
if (tile_data.use_shm)
memcpy (tile_data_pointer (tile, 0, 0),
gimp_plug_in_shm_get_addr (plug_in->manager->shm),
tile_size (tile));
else
memcpy (tile_data_pointer (tile, 0, 0),
tile_info->data,
tile_size (tile));
tile_release (tile, TRUE);
gimp_wire_destroy (&msg);
if (! gp_tile_ack_write (plug_in->my_write, plug_in))
{
gimp_message (plug_in->manager->gimp, NULL, GIMP_MESSAGE_ERROR,
"plug_in_handle_tile_request: ERROR");
gimp_plug_in_close (plug_in, TRUE);
return;
}
}
static void
gimp_plug_in_handle_tile_get (GimpPlugIn *plug_in,
GPTileReq *request)
{
GPTileData tile_data;
GimpWireMessage msg;
GimpDrawable *drawable;
TileManager *tm;
Tile *tile;
drawable = (GimpDrawable *) gimp_item_get_by_ID (plug_in->manager->gimp,
request->drawable_ID);
if (! GIMP_IS_DRAWABLE (drawable))
1997-11-25 06:05:25 +08:00
{
gimp_message (plug_in->manager->gimp, NULL, GIMP_MESSAGE_ERROR,
"Plug-In \"%s\"\n(%s)\n\n"
"tried reading from invalid drawable %d (killing)",
gimp_object_get_name (GIMP_OBJECT (plug_in)),
gimp_filename_to_utf8 (plug_in->prog),
request->drawable_ID);
gimp_plug_in_close (plug_in, TRUE);
return;
}
else if (gimp_item_is_removed (GIMP_ITEM (drawable)))
{
gimp_message (plug_in->manager->gimp, NULL, GIMP_MESSAGE_ERROR,
"Plug-In \"%s\"\n(%s)\n\n"
"tried reading from drawable %d which was removed "
"from the image (killing)",
gimp_object_get_name (GIMP_OBJECT (plug_in)),
gimp_filename_to_utf8 (plug_in->prog),
request->drawable_ID);
gimp_plug_in_close (plug_in, TRUE);
return;
}
if (request->shadow)
{
tm = gimp_drawable_get_shadow_tiles (drawable);
gimp_plug_in_cleanup_add_shadow (plug_in, drawable);
1997-11-25 06:05:25 +08:00
}
else
{
tm = gimp_drawable_get_tiles (drawable);
1997-11-25 06:05:25 +08:00
}
tile = tile_manager_get (tm, request->tile_num, TRUE, FALSE);
if (! tile)
{
gimp_message (plug_in->manager->gimp, NULL, GIMP_MESSAGE_ERROR,
"Plug-In \"%s\"\n(%s)\n\n"
"requested invalid tile (killing)",
gimp_object_get_name (GIMP_OBJECT (plug_in)),
gimp_filename_to_utf8 (plug_in->prog));
gimp_plug_in_close (plug_in, TRUE);
return;
}
tile_data.drawable_ID = request->drawable_ID;
tile_data.tile_num = request->tile_num;
tile_data.shadow = request->shadow;
tile_data.bpp = tile_bpp (tile);
tile_data.width = tile_ewidth (tile);
tile_data.height = tile_eheight (tile);
tile_data.use_shm = (plug_in->manager->shm != NULL);
if (tile_data.use_shm)
memcpy (gimp_plug_in_shm_get_addr (plug_in->manager->shm),
tile_data_pointer (tile, 0, 0),
tile_size (tile));
else
tile_data.data = tile_data_pointer (tile, 0, 0);
if (! gp_tile_data_write (plug_in->my_write, &tile_data, plug_in))
{
gimp_message (plug_in->manager->gimp, NULL, GIMP_MESSAGE_ERROR,
"plug_in_handle_tile_request: ERROR");
gimp_plug_in_close (plug_in, TRUE);
return;
}
tile_release (tile, FALSE);
if (! gimp_wire_read_msg (plug_in->my_read, &msg, plug_in))
{
gimp_message (plug_in->manager->gimp, NULL, GIMP_MESSAGE_ERROR,
"plug_in_handle_tile_request: ERROR");
gimp_plug_in_close (plug_in, TRUE);
return;
}
if (msg.type != GP_TILE_ACK)
{
gimp_message (plug_in->manager->gimp, NULL, GIMP_MESSAGE_ERROR,
"expected tile ack and received: %d", msg.type);
gimp_plug_in_close (plug_in, TRUE);
return;
}
gimp_wire_destroy (&msg);
1997-11-25 06:05:25 +08:00
}
static void
Made an object out of the plug-in struct. Also change refcounting 2006-05-03 Michael Natterer <mitch@gimp.org> Made an object out of the plug-in struct. Also change refcounting considerably: - gimp_plug_in_open() adds a reference that is only dropped by gimp_plug_in_close(). - temporarily ref the plug-in while handling messages. - remporarily ref the plug-in while a recursive main loop is running. - each caller of gimp_plug_in_new() also unrefs the plug-in before returning, the only reference that persists across functions (that keeps the plug-in alive) is the one added by open(). * app/plug-in/plug-in.[ch] * app/plug-in/plug-in-context.[ch] * app/plug-in/plug-in-message.[ch] * app/plug-in/plug-in-progress.[ch]: removed these files... * app/plug-in/gimpplugin.[ch] * app/plug-in/gimpplugin-context.[ch] * app/plug-in/gimpplugin-message.[ch] * app/plug-in/gimpplugin-progress.[ch]: ...and added here as GObject. * app/plug-in/plug-in-proc-frame.[ch]: removed... * app/plug-in/gimppluginprocframe.[ch]: ...and added with a namespace. * app/plug-in/Makefile.am * app/plug-in/plug-in-types.h * app/plug-in/gimppluginmanager-call.c * app/plug-in/gimppluginmanager-file.c * app/plug-in/gimppluginmanager.[ch] * app/pdb/gimppluginprocedure.c * app/pdb/gimptemporaryprocedure.c * app/pdb/gimptemporaryprocedure.h * tools/pdbgen/pdb/context.pdb * tools/pdbgen/pdb/drawable.pdb * tools/pdbgen/pdb/help.pdb * tools/pdbgen/pdb/message.pdb * tools/pdbgen/pdb/plug_in.pdb * tools/pdbgen/pdb/progress.pdb * tools/pdbgen/pdb/undo.pdb: changed accordingly. * app/pdb/context_cmds.c * app/pdb/drawable_cmds.c * app/pdb/help_cmds.c * app/pdb/message_cmds.c * app/pdb/plug_in_cmds.c * app/pdb/progress_cmds.c * app/pdb/undo_cmds.c: regenerated.
2006-05-04 02:05:06 +08:00
gimp_plug_in_handle_proc_run (GimpPlugIn *plug_in,
GPProcRun *proc_run)
1997-11-25 06:05:25 +08:00
{
Made an object out of the plug-in struct. Also change refcounting 2006-05-03 Michael Natterer <mitch@gimp.org> Made an object out of the plug-in struct. Also change refcounting considerably: - gimp_plug_in_open() adds a reference that is only dropped by gimp_plug_in_close(). - temporarily ref the plug-in while handling messages. - remporarily ref the plug-in while a recursive main loop is running. - each caller of gimp_plug_in_new() also unrefs the plug-in before returning, the only reference that persists across functions (that keeps the plug-in alive) is the one added by open(). * app/plug-in/plug-in.[ch] * app/plug-in/plug-in-context.[ch] * app/plug-in/plug-in-message.[ch] * app/plug-in/plug-in-progress.[ch]: removed these files... * app/plug-in/gimpplugin.[ch] * app/plug-in/gimpplugin-context.[ch] * app/plug-in/gimpplugin-message.[ch] * app/plug-in/gimpplugin-progress.[ch]: ...and added here as GObject. * app/plug-in/plug-in-proc-frame.[ch]: removed... * app/plug-in/gimppluginprocframe.[ch]: ...and added with a namespace. * app/plug-in/Makefile.am * app/plug-in/plug-in-types.h * app/plug-in/gimppluginmanager-call.c * app/plug-in/gimppluginmanager-file.c * app/plug-in/gimppluginmanager.[ch] * app/pdb/gimppluginprocedure.c * app/pdb/gimptemporaryprocedure.c * app/pdb/gimptemporaryprocedure.h * tools/pdbgen/pdb/context.pdb * tools/pdbgen/pdb/drawable.pdb * tools/pdbgen/pdb/help.pdb * tools/pdbgen/pdb/message.pdb * tools/pdbgen/pdb/plug_in.pdb * tools/pdbgen/pdb/progress.pdb * tools/pdbgen/pdb/undo.pdb: changed accordingly. * app/pdb/context_cmds.c * app/pdb/drawable_cmds.c * app/pdb/help_cmds.c * app/pdb/message_cmds.c * app/pdb/plug_in_cmds.c * app/pdb/progress_cmds.c * app/pdb/undo_cmds.c: regenerated.
2006-05-04 02:05:06 +08:00
GimpPlugInProcFrame *proc_frame;
gchar *canonical;
const gchar *proc_name = NULL;
Made an object out of the plug-in struct. Also change refcounting 2006-05-03 Michael Natterer <mitch@gimp.org> Made an object out of the plug-in struct. Also change refcounting considerably: - gimp_plug_in_open() adds a reference that is only dropped by gimp_plug_in_close(). - temporarily ref the plug-in while handling messages. - remporarily ref the plug-in while a recursive main loop is running. - each caller of gimp_plug_in_new() also unrefs the plug-in before returning, the only reference that persists across functions (that keeps the plug-in alive) is the one added by open(). * app/plug-in/plug-in.[ch] * app/plug-in/plug-in-context.[ch] * app/plug-in/plug-in-message.[ch] * app/plug-in/plug-in-progress.[ch]: removed these files... * app/plug-in/gimpplugin.[ch] * app/plug-in/gimpplugin-context.[ch] * app/plug-in/gimpplugin-message.[ch] * app/plug-in/gimpplugin-progress.[ch]: ...and added here as GObject. * app/plug-in/plug-in-proc-frame.[ch]: removed... * app/plug-in/gimppluginprocframe.[ch]: ...and added with a namespace. * app/plug-in/Makefile.am * app/plug-in/plug-in-types.h * app/plug-in/gimppluginmanager-call.c * app/plug-in/gimppluginmanager-file.c * app/plug-in/gimppluginmanager.[ch] * app/pdb/gimppluginprocedure.c * app/pdb/gimptemporaryprocedure.c * app/pdb/gimptemporaryprocedure.h * tools/pdbgen/pdb/context.pdb * tools/pdbgen/pdb/drawable.pdb * tools/pdbgen/pdb/help.pdb * tools/pdbgen/pdb/message.pdb * tools/pdbgen/pdb/plug_in.pdb * tools/pdbgen/pdb/progress.pdb * tools/pdbgen/pdb/undo.pdb: changed accordingly. * app/pdb/context_cmds.c * app/pdb/drawable_cmds.c * app/pdb/help_cmds.c * app/pdb/message_cmds.c * app/pdb/plug_in_cmds.c * app/pdb/progress_cmds.c * app/pdb/undo_cmds.c: regenerated.
2006-05-04 02:05:06 +08:00
GimpProcedure *procedure;
GValueArray *args = NULL;
GValueArray *return_vals = NULL;
GError *error = NULL;
g_return_if_fail (proc_run != NULL);
g_return_if_fail (proc_run->name != NULL);
Changed naming scheme for PDB procedure names from 2005-08-03 Michael Natterer <mitch@gimp.org> Changed naming scheme for PDB procedure names from random_crap_that_traditionally_has_underscores to enforced-canonical-identifiers. I'm pretty sure some things are broken after this commit. More changes to come... * libgimpbase/gimpbase.def * libgimpbase/gimputils.[ch]: added gimp_canonicalize_identifier(). * app/pdb/procedural_db.[ch] (struct ProcRecord): added "gchar *original_name" to keep a procedure's original name as reigstered by plug-ins (compat cruft). (procedural_db_init_procs): canonicalized list of deprecated procedures. * app/plug-in/plug-in-proc-def.c (plug_in_proc_def_free): free original_name. * app/plug-in/plug-in-message.c: canonicalize procedure names which are received over the wire. * app/plug-in/plug-in-rc.c: serialize the original_name and create the canonicalized name on-the-fly when deserializing. * app/plug-in/plug-in-run.c: pass the original_name to plug-ins when running them because they strcmp() the passed procedure name. * app/plug-in/plug-ins.c (plug_ins_add_to_db): pass canonical procedure names to procedural_db_execute(). (plug_ins_file_proc_compare): special-case "gimp-xcf", not "gimp_xcf". * app/xcf/xcf.c: changed static XCF procedures accordingly. * tools/pdbgen/app.pl * tools/pdbgen/lib.pl: do some trivial substitutions to generate canonicalized names in app/, and C identifiers with underscores in libgimp/. * tools/pdbgen/pdb/brushes.pdb * tools/pdbgen/pdb/fileops.pdb * tools/pdbgen/pdb/gradients.pdb * tools/pdbgen/pdb/image.pdb * tools/pdbgen/pdb/palettes.pdb * tools/pdbgen/pdb/patterns.pdb * tools/pdbgen/pdb/plug_in.pdb * tools/pdbgen/pdb/procedural_db.pdb * tools/pdbgen/pdb/text_tool.pdb * tools/pdbgen/pdb/transform_tools.pdb: canonicaloized procedure names in calls to std_pdb_deprecated() and in procedure names in generated C code. * app/pdb/*_cmds.c * libgimp/*_pdb.c: regenerated.
2005-08-03 06:52:23 +08:00
canonical = gimp_canonicalize_identifier (proc_run->name);
Made an object out of the plug-in struct. Also change refcounting 2006-05-03 Michael Natterer <mitch@gimp.org> Made an object out of the plug-in struct. Also change refcounting considerably: - gimp_plug_in_open() adds a reference that is only dropped by gimp_plug_in_close(). - temporarily ref the plug-in while handling messages. - remporarily ref the plug-in while a recursive main loop is running. - each caller of gimp_plug_in_new() also unrefs the plug-in before returning, the only reference that persists across functions (that keeps the plug-in alive) is the one added by open(). * app/plug-in/plug-in.[ch] * app/plug-in/plug-in-context.[ch] * app/plug-in/plug-in-message.[ch] * app/plug-in/plug-in-progress.[ch]: removed these files... * app/plug-in/gimpplugin.[ch] * app/plug-in/gimpplugin-context.[ch] * app/plug-in/gimpplugin-message.[ch] * app/plug-in/gimpplugin-progress.[ch]: ...and added here as GObject. * app/plug-in/plug-in-proc-frame.[ch]: removed... * app/plug-in/gimppluginprocframe.[ch]: ...and added with a namespace. * app/plug-in/Makefile.am * app/plug-in/plug-in-types.h * app/plug-in/gimppluginmanager-call.c * app/plug-in/gimppluginmanager-file.c * app/plug-in/gimppluginmanager.[ch] * app/pdb/gimppluginprocedure.c * app/pdb/gimptemporaryprocedure.c * app/pdb/gimptemporaryprocedure.h * tools/pdbgen/pdb/context.pdb * tools/pdbgen/pdb/drawable.pdb * tools/pdbgen/pdb/help.pdb * tools/pdbgen/pdb/message.pdb * tools/pdbgen/pdb/plug_in.pdb * tools/pdbgen/pdb/progress.pdb * tools/pdbgen/pdb/undo.pdb: changed accordingly. * app/pdb/context_cmds.c * app/pdb/drawable_cmds.c * app/pdb/help_cmds.c * app/pdb/message_cmds.c * app/pdb/plug_in_cmds.c * app/pdb/progress_cmds.c * app/pdb/undo_cmds.c: regenerated.
2006-05-04 02:05:06 +08:00
proc_frame = gimp_plug_in_get_proc_frame (plug_in);
1997-11-25 06:05:25 +08:00
app/plug-in/Makefile.am app/plug-in/plug-in-types.h new object which keeps 2006-04-29 Michael Natterer <mitch@gimp.org> * app/plug-in/Makefile.am * app/plug-in/plug-in-types.h * app/plug-in/gimppluginmanager.[ch]: new object which keeps all plug-in related stuff that was kept in the Gimp instance. Has "menu-branch-added" and "last-plug-in-changed" signals. * app/plug-in/plug-ins.[ch]: removed, all its functions are in GimpPlugInManager now. * app/core/gimpmarshal.list: new marshaller for the new object. * app/core/gimp.[ch]: removed all plug-in related stuff and keep a GimpPlugInManager around. * app/plug-in/plug-in-data.[ch] * app/plug-in/plug-in-file.[ch] * app/plug-in/plug-in-help-domain.[ch] * app/plug-in/plug-in-locale-domain.[ch] * app/plug-in/plug-in-menu-branch.[ch] * app/plug-in/plug-ins-query.[ch]: removed... * app/plug-in/gimppluginmanager-data.[ch] * app/plug-in/gimppluginmanager-file.[ch] * app/plug-in/gimppluginmanager-help-domain.[ch] * app/plug-in/gimppluginmanager-locale-domain.[ch] * app/plug-in/gimppluginmanager-menu-branch.[ch] * app/plug-in/gimppluginmanager-query.[ch]: ...and added as methods of GimpPlugInManager. * app/plug-in/plug-in-debug.[ch] * app/plug-in/plug-in-shm.[ch]: removed... * app/plug-in/gimpplugindebug.[ch] * app/plug-in/gimppluginshm.[ch]: ...and added as properly namespeced structs with constructors and destructors. * app/core/Makefile.am * app/core/gimpenvirontable.[ch] * app/core/gimpinterpreterdb.[ch]: removed... * app/plug-in/gimpenvirontable.[ch] * app/plug-in/gimpinterpreterdb.[ch]: ...and added here unchanged. * app/core/gimp-gui.[ch] * app/gui/gui-vtable.c: remove gimp_menus_create_branch() and all related stuff. * app/actions/plug-in-actions.[ch]: connect to the plug-in-manager's "menu-path-added" signal and create menu branch actions accordingly. * app/plug-in/plug-in-context.c * app/plug-in/plug-in-message.c * app/plug-in/plug-in-progress.c * app/plug-in/plug-in-run.[ch] * app/plug-in/plug-in.[ch] * app/app_procs.c * app/actions/file-commands.c * app/actions/plug-in-commands.c * app/core/gimpimage.c * app/dialogs/file-open-location-dialog.c * app/dialogs/file-save-dialog.c * app/file/file-open.c * app/gui/gui.c * app/menus/plug-in-menus.c * app/pdb/gimppluginprocedure.c * app/pdb/gimptemporaryprocedure.c * app/widgets/gimpdnd-xds.c * app/widgets/gimpfiledialog.c * app/widgets/gimpfileprocview.c * app/widgets/gimphelp.c * app/widgets/gimpthumbbox.c * app/xcf/xcf.c * tools/pdbgen/pdb/context.pdb * tools/pdbgen/pdb/drawable.pdb * tools/pdbgen/pdb/fileops.pdb * tools/pdbgen/pdb/help.pdb * tools/pdbgen/pdb/message.pdb * tools/pdbgen/pdb/plug_in.pdb * tools/pdbgen/pdb/procedural_db.pdb * tools/pdbgen/pdb/progress.pdb * tools/pdbgen/pdb/undo.pdb: follow above refactoring. * app/pdb/context_cmds.c * app/pdb/drawable_cmds.c * app/pdb/fileops_cmds.c * app/pdb/help_cmds.c * app/pdb/message_cmds.c * app/pdb/plug_in_cmds.c * app/pdb/procedural_db_cmds.c * app/pdb/progress_cmds.c * app/pdb/undo_cmds.c: regenerated.
2006-04-29 06:26:51 +08:00
procedure = gimp_pdb_lookup_procedure (plug_in->manager->gimp->pdb,
canonical);
1997-11-25 06:05:25 +08:00
if (! procedure)
{
app/plug-in/Makefile.am app/plug-in/plug-in-types.h new object which keeps 2006-04-29 Michael Natterer <mitch@gimp.org> * app/plug-in/Makefile.am * app/plug-in/plug-in-types.h * app/plug-in/gimppluginmanager.[ch]: new object which keeps all plug-in related stuff that was kept in the Gimp instance. Has "menu-branch-added" and "last-plug-in-changed" signals. * app/plug-in/plug-ins.[ch]: removed, all its functions are in GimpPlugInManager now. * app/core/gimpmarshal.list: new marshaller for the new object. * app/core/gimp.[ch]: removed all plug-in related stuff and keep a GimpPlugInManager around. * app/plug-in/plug-in-data.[ch] * app/plug-in/plug-in-file.[ch] * app/plug-in/plug-in-help-domain.[ch] * app/plug-in/plug-in-locale-domain.[ch] * app/plug-in/plug-in-menu-branch.[ch] * app/plug-in/plug-ins-query.[ch]: removed... * app/plug-in/gimppluginmanager-data.[ch] * app/plug-in/gimppluginmanager-file.[ch] * app/plug-in/gimppluginmanager-help-domain.[ch] * app/plug-in/gimppluginmanager-locale-domain.[ch] * app/plug-in/gimppluginmanager-menu-branch.[ch] * app/plug-in/gimppluginmanager-query.[ch]: ...and added as methods of GimpPlugInManager. * app/plug-in/plug-in-debug.[ch] * app/plug-in/plug-in-shm.[ch]: removed... * app/plug-in/gimpplugindebug.[ch] * app/plug-in/gimppluginshm.[ch]: ...and added as properly namespeced structs with constructors and destructors. * app/core/Makefile.am * app/core/gimpenvirontable.[ch] * app/core/gimpinterpreterdb.[ch]: removed... * app/plug-in/gimpenvirontable.[ch] * app/plug-in/gimpinterpreterdb.[ch]: ...and added here unchanged. * app/core/gimp-gui.[ch] * app/gui/gui-vtable.c: remove gimp_menus_create_branch() and all related stuff. * app/actions/plug-in-actions.[ch]: connect to the plug-in-manager's "menu-path-added" signal and create menu branch actions accordingly. * app/plug-in/plug-in-context.c * app/plug-in/plug-in-message.c * app/plug-in/plug-in-progress.c * app/plug-in/plug-in-run.[ch] * app/plug-in/plug-in.[ch] * app/app_procs.c * app/actions/file-commands.c * app/actions/plug-in-commands.c * app/core/gimpimage.c * app/dialogs/file-open-location-dialog.c * app/dialogs/file-save-dialog.c * app/file/file-open.c * app/gui/gui.c * app/menus/plug-in-menus.c * app/pdb/gimppluginprocedure.c * app/pdb/gimptemporaryprocedure.c * app/widgets/gimpdnd-xds.c * app/widgets/gimpfiledialog.c * app/widgets/gimpfileprocview.c * app/widgets/gimphelp.c * app/widgets/gimpthumbbox.c * app/xcf/xcf.c * tools/pdbgen/pdb/context.pdb * tools/pdbgen/pdb/drawable.pdb * tools/pdbgen/pdb/fileops.pdb * tools/pdbgen/pdb/help.pdb * tools/pdbgen/pdb/message.pdb * tools/pdbgen/pdb/plug_in.pdb * tools/pdbgen/pdb/procedural_db.pdb * tools/pdbgen/pdb/progress.pdb * tools/pdbgen/pdb/undo.pdb: follow above refactoring. * app/pdb/context_cmds.c * app/pdb/drawable_cmds.c * app/pdb/fileops_cmds.c * app/pdb/help_cmds.c * app/pdb/message_cmds.c * app/pdb/plug_in_cmds.c * app/pdb/procedural_db_cmds.c * app/pdb/progress_cmds.c * app/pdb/undo_cmds.c: regenerated.
2006-04-29 06:26:51 +08:00
proc_name = gimp_pdb_lookup_compat_proc_name (plug_in->manager->gimp->pdb,
app/pdb/Makefile.am app/pdb/pdb-types.h new object GimpPDB which keeps all 2006-04-26 Michael Natterer <mitch@gimp.org> * app/pdb/Makefile.am * app/pdb/pdb-types.h * app/pdb/gimppdb.[ch]: new object GimpPDB which keeps all procedures and functions to register and run them. Renamed all functions and did some cleanups. * app/pdb/gimp-pdb.[ch] * app/core/gimp.[ch]: removed the same stuff here. * app/pdb/gimp-pdb-query.[ch]: removed these files... * app/pdb/gimppdb-query.[ch]: ...added here as members of GimpPDB. * app/pdb/gimp-pdb-compat.h: fix include guard. * app/batch.c * app/actions/vectors-commands.c * app/dialogs/about-dialog.c * app/file/file-open.c * app/file/file-save.c * app/plug-in/plug-in-message.c * app/plug-in/plug-ins.c * app/widgets/gimpfiledialog.c * app/widgets/gimphelp.c * app/xcf/xcf.c * tools/pdbgen/pdb/brush_select.pdb * tools/pdbgen/pdb/fileops.pdb * tools/pdbgen/pdb/font_select.pdb * tools/pdbgen/pdb/gradient_select.pdb * tools/pdbgen/pdb/palette_select.pdb * tools/pdbgen/pdb/pattern_select.pdb * tools/pdbgen/pdb/procedural_db.pdb: changed includes and function calls accordingly. * tools/pdbgen/app.pl: pass around GimpPDB instead of Gimp pointers to register the internal procedures with. Changed some newlines in the generated code. * app/pdb/*_cmds.c * app/pdb/internal_procs.[ch]: regenerated. * app/core/gimppdbprogress.[ch] * app/widgets/gimppdbdialog.[ch]: added "pdb" CONSTRUCT_ONLY properties. * app/plug-in/plug-in-progress.c * app/gui/gui-vtable.c: pass gimp->pdb when creating them. * app/widgets/gimpbrushselect.c * app/widgets/gimpfontselect.c * app/widgets/gimpgradientselect.c * app/widgets/gimppaletteselect.c * app/widgets/gimppatternselect.c: use the new local pdb pointers instead of some foo->bar->gimp->pdb overkill.
2006-04-26 17:13:47 +08:00
canonical);
if (proc_name)
{
app/plug-in/Makefile.am app/plug-in/plug-in-types.h new object which keeps 2006-04-29 Michael Natterer <mitch@gimp.org> * app/plug-in/Makefile.am * app/plug-in/plug-in-types.h * app/plug-in/gimppluginmanager.[ch]: new object which keeps all plug-in related stuff that was kept in the Gimp instance. Has "menu-branch-added" and "last-plug-in-changed" signals. * app/plug-in/plug-ins.[ch]: removed, all its functions are in GimpPlugInManager now. * app/core/gimpmarshal.list: new marshaller for the new object. * app/core/gimp.[ch]: removed all plug-in related stuff and keep a GimpPlugInManager around. * app/plug-in/plug-in-data.[ch] * app/plug-in/plug-in-file.[ch] * app/plug-in/plug-in-help-domain.[ch] * app/plug-in/plug-in-locale-domain.[ch] * app/plug-in/plug-in-menu-branch.[ch] * app/plug-in/plug-ins-query.[ch]: removed... * app/plug-in/gimppluginmanager-data.[ch] * app/plug-in/gimppluginmanager-file.[ch] * app/plug-in/gimppluginmanager-help-domain.[ch] * app/plug-in/gimppluginmanager-locale-domain.[ch] * app/plug-in/gimppluginmanager-menu-branch.[ch] * app/plug-in/gimppluginmanager-query.[ch]: ...and added as methods of GimpPlugInManager. * app/plug-in/plug-in-debug.[ch] * app/plug-in/plug-in-shm.[ch]: removed... * app/plug-in/gimpplugindebug.[ch] * app/plug-in/gimppluginshm.[ch]: ...and added as properly namespeced structs with constructors and destructors. * app/core/Makefile.am * app/core/gimpenvirontable.[ch] * app/core/gimpinterpreterdb.[ch]: removed... * app/plug-in/gimpenvirontable.[ch] * app/plug-in/gimpinterpreterdb.[ch]: ...and added here unchanged. * app/core/gimp-gui.[ch] * app/gui/gui-vtable.c: remove gimp_menus_create_branch() and all related stuff. * app/actions/plug-in-actions.[ch]: connect to the plug-in-manager's "menu-path-added" signal and create menu branch actions accordingly. * app/plug-in/plug-in-context.c * app/plug-in/plug-in-message.c * app/plug-in/plug-in-progress.c * app/plug-in/plug-in-run.[ch] * app/plug-in/plug-in.[ch] * app/app_procs.c * app/actions/file-commands.c * app/actions/plug-in-commands.c * app/core/gimpimage.c * app/dialogs/file-open-location-dialog.c * app/dialogs/file-save-dialog.c * app/file/file-open.c * app/gui/gui.c * app/menus/plug-in-menus.c * app/pdb/gimppluginprocedure.c * app/pdb/gimptemporaryprocedure.c * app/widgets/gimpdnd-xds.c * app/widgets/gimpfiledialog.c * app/widgets/gimpfileprocview.c * app/widgets/gimphelp.c * app/widgets/gimpthumbbox.c * app/xcf/xcf.c * tools/pdbgen/pdb/context.pdb * tools/pdbgen/pdb/drawable.pdb * tools/pdbgen/pdb/fileops.pdb * tools/pdbgen/pdb/help.pdb * tools/pdbgen/pdb/message.pdb * tools/pdbgen/pdb/plug_in.pdb * tools/pdbgen/pdb/procedural_db.pdb * tools/pdbgen/pdb/progress.pdb * tools/pdbgen/pdb/undo.pdb: follow above refactoring. * app/pdb/context_cmds.c * app/pdb/drawable_cmds.c * app/pdb/fileops_cmds.c * app/pdb/help_cmds.c * app/pdb/message_cmds.c * app/pdb/plug_in_cmds.c * app/pdb/procedural_db_cmds.c * app/pdb/progress_cmds.c * app/pdb/undo_cmds.c: regenerated.
2006-04-29 06:26:51 +08:00
procedure = gimp_pdb_lookup_procedure (plug_in->manager->gimp->pdb,
proc_name);
app/plug-in/Makefile.am app/plug-in/plug-in-types.h new object which keeps 2006-04-29 Michael Natterer <mitch@gimp.org> * app/plug-in/Makefile.am * app/plug-in/plug-in-types.h * app/plug-in/gimppluginmanager.[ch]: new object which keeps all plug-in related stuff that was kept in the Gimp instance. Has "menu-branch-added" and "last-plug-in-changed" signals. * app/plug-in/plug-ins.[ch]: removed, all its functions are in GimpPlugInManager now. * app/core/gimpmarshal.list: new marshaller for the new object. * app/core/gimp.[ch]: removed all plug-in related stuff and keep a GimpPlugInManager around. * app/plug-in/plug-in-data.[ch] * app/plug-in/plug-in-file.[ch] * app/plug-in/plug-in-help-domain.[ch] * app/plug-in/plug-in-locale-domain.[ch] * app/plug-in/plug-in-menu-branch.[ch] * app/plug-in/plug-ins-query.[ch]: removed... * app/plug-in/gimppluginmanager-data.[ch] * app/plug-in/gimppluginmanager-file.[ch] * app/plug-in/gimppluginmanager-help-domain.[ch] * app/plug-in/gimppluginmanager-locale-domain.[ch] * app/plug-in/gimppluginmanager-menu-branch.[ch] * app/plug-in/gimppluginmanager-query.[ch]: ...and added as methods of GimpPlugInManager. * app/plug-in/plug-in-debug.[ch] * app/plug-in/plug-in-shm.[ch]: removed... * app/plug-in/gimpplugindebug.[ch] * app/plug-in/gimppluginshm.[ch]: ...and added as properly namespeced structs with constructors and destructors. * app/core/Makefile.am * app/core/gimpenvirontable.[ch] * app/core/gimpinterpreterdb.[ch]: removed... * app/plug-in/gimpenvirontable.[ch] * app/plug-in/gimpinterpreterdb.[ch]: ...and added here unchanged. * app/core/gimp-gui.[ch] * app/gui/gui-vtable.c: remove gimp_menus_create_branch() and all related stuff. * app/actions/plug-in-actions.[ch]: connect to the plug-in-manager's "menu-path-added" signal and create menu branch actions accordingly. * app/plug-in/plug-in-context.c * app/plug-in/plug-in-message.c * app/plug-in/plug-in-progress.c * app/plug-in/plug-in-run.[ch] * app/plug-in/plug-in.[ch] * app/app_procs.c * app/actions/file-commands.c * app/actions/plug-in-commands.c * app/core/gimpimage.c * app/dialogs/file-open-location-dialog.c * app/dialogs/file-save-dialog.c * app/file/file-open.c * app/gui/gui.c * app/menus/plug-in-menus.c * app/pdb/gimppluginprocedure.c * app/pdb/gimptemporaryprocedure.c * app/widgets/gimpdnd-xds.c * app/widgets/gimpfiledialog.c * app/widgets/gimpfileprocview.c * app/widgets/gimphelp.c * app/widgets/gimpthumbbox.c * app/xcf/xcf.c * tools/pdbgen/pdb/context.pdb * tools/pdbgen/pdb/drawable.pdb * tools/pdbgen/pdb/fileops.pdb * tools/pdbgen/pdb/help.pdb * tools/pdbgen/pdb/message.pdb * tools/pdbgen/pdb/plug_in.pdb * tools/pdbgen/pdb/procedural_db.pdb * tools/pdbgen/pdb/progress.pdb * tools/pdbgen/pdb/undo.pdb: follow above refactoring. * app/pdb/context_cmds.c * app/pdb/drawable_cmds.c * app/pdb/fileops_cmds.c * app/pdb/help_cmds.c * app/pdb/message_cmds.c * app/pdb/plug_in_cmds.c * app/pdb/procedural_db_cmds.c * app/pdb/progress_cmds.c * app/pdb/undo_cmds.c: regenerated.
2006-04-29 06:26:51 +08:00
if (plug_in->manager->gimp->pdb_compat_mode == GIMP_PDB_COMPAT_WARN)
{
app/actions/data-commands.c app/actions/documents-commands.c 2006-10-09 Michael Natterer <mitch@gimp.org> * app/actions/data-commands.c * app/actions/documents-commands.c * app/actions/drawable-commands.c * app/actions/gradients-commands.c * app/actions/image-commands.c * app/actions/layers-commands.c * app/actions/palettes-commands.c * app/actions/select-commands.c * app/actions/vectors-commands.c * app/core/gimp-contexts.c * app/core/gimp-documents.c * app/core/gimp-edit.c * app/core/gimp-modules.c * app/core/gimp-parasites.c * app/core/gimp-templates.c * app/core/gimp-units.c * app/core/gimpchannel.c * app/core/gimpdatafactory.[ch] * app/core/gimpdrawable-bucket-fill.c * app/core/gimpimage-merge.c * app/core/gimpimagefile.c * app/core/gimplayer-floating-sel.c * app/core/gimppdbprogress.c * app/core/gimpselection.c * app/dialogs/palette-import-dialog.c * app/display/gimpdisplayshell-dnd.c * app/gui/session.c * app/gui/themes.c * app/pdb/gimpprocedure.c * app/plug-in/gimpplugin-message.c * app/plug-in/gimpplugin.c * app/plug-in/gimppluginmanager-file.c * app/plug-in/gimppluginmanager.c * app/text/gimptextlayer-xcf.c * app/text/gimptextlayer.c * app/widgets/gimpcontrollers.c * app/widgets/gimpdataeditor.c * app/widgets/gimpdevices.c * app/widgets/gimpdnd-xds.c * app/widgets/gimplayertreeview.c * app/widgets/gimptoolbox-dnd.c * app/widgets/gimptoolbox.c * app/widgets/gimpuimanager.c * app/widgets/gimpvectorstreeview.c * tools/pdbgen/pdb/brush.pdb * tools/pdbgen/pdb/gradient.pdb * tools/pdbgen/pdb/palette.pdb: convert lots of g_message() to gimp_message(). Make sure we never pass unknown strings (like error->message) to printf-like functions directly; run them thorugh "%s" instead. Don't translate some messages which should never happen. * app/pdb/brush_cmds.c * app/pdb/gradient_cmds.c * app/pdb/palette_cmds.c: regenerated.
2006-10-10 02:49:15 +08:00
gimp_message (plug_in->manager->gimp, NULL, GIMP_MESSAGE_WARNING,
"Plug-In \"%s\"\n(%s)\n"
"called deprecated procedure '%s'.\n"
"It should call '%s' instead!",
gimp_object_get_name (GIMP_OBJECT (plug_in)),
gimp_filename_to_utf8 (plug_in->prog),
canonical, proc_name);
}
}
}
else if (procedure->deprecated)
{
app/plug-in/Makefile.am app/plug-in/plug-in-types.h new object which keeps 2006-04-29 Michael Natterer <mitch@gimp.org> * app/plug-in/Makefile.am * app/plug-in/plug-in-types.h * app/plug-in/gimppluginmanager.[ch]: new object which keeps all plug-in related stuff that was kept in the Gimp instance. Has "menu-branch-added" and "last-plug-in-changed" signals. * app/plug-in/plug-ins.[ch]: removed, all its functions are in GimpPlugInManager now. * app/core/gimpmarshal.list: new marshaller for the new object. * app/core/gimp.[ch]: removed all plug-in related stuff and keep a GimpPlugInManager around. * app/plug-in/plug-in-data.[ch] * app/plug-in/plug-in-file.[ch] * app/plug-in/plug-in-help-domain.[ch] * app/plug-in/plug-in-locale-domain.[ch] * app/plug-in/plug-in-menu-branch.[ch] * app/plug-in/plug-ins-query.[ch]: removed... * app/plug-in/gimppluginmanager-data.[ch] * app/plug-in/gimppluginmanager-file.[ch] * app/plug-in/gimppluginmanager-help-domain.[ch] * app/plug-in/gimppluginmanager-locale-domain.[ch] * app/plug-in/gimppluginmanager-menu-branch.[ch] * app/plug-in/gimppluginmanager-query.[ch]: ...and added as methods of GimpPlugInManager. * app/plug-in/plug-in-debug.[ch] * app/plug-in/plug-in-shm.[ch]: removed... * app/plug-in/gimpplugindebug.[ch] * app/plug-in/gimppluginshm.[ch]: ...and added as properly namespeced structs with constructors and destructors. * app/core/Makefile.am * app/core/gimpenvirontable.[ch] * app/core/gimpinterpreterdb.[ch]: removed... * app/plug-in/gimpenvirontable.[ch] * app/plug-in/gimpinterpreterdb.[ch]: ...and added here unchanged. * app/core/gimp-gui.[ch] * app/gui/gui-vtable.c: remove gimp_menus_create_branch() and all related stuff. * app/actions/plug-in-actions.[ch]: connect to the plug-in-manager's "menu-path-added" signal and create menu branch actions accordingly. * app/plug-in/plug-in-context.c * app/plug-in/plug-in-message.c * app/plug-in/plug-in-progress.c * app/plug-in/plug-in-run.[ch] * app/plug-in/plug-in.[ch] * app/app_procs.c * app/actions/file-commands.c * app/actions/plug-in-commands.c * app/core/gimpimage.c * app/dialogs/file-open-location-dialog.c * app/dialogs/file-save-dialog.c * app/file/file-open.c * app/gui/gui.c * app/menus/plug-in-menus.c * app/pdb/gimppluginprocedure.c * app/pdb/gimptemporaryprocedure.c * app/widgets/gimpdnd-xds.c * app/widgets/gimpfiledialog.c * app/widgets/gimpfileprocview.c * app/widgets/gimphelp.c * app/widgets/gimpthumbbox.c * app/xcf/xcf.c * tools/pdbgen/pdb/context.pdb * tools/pdbgen/pdb/drawable.pdb * tools/pdbgen/pdb/fileops.pdb * tools/pdbgen/pdb/help.pdb * tools/pdbgen/pdb/message.pdb * tools/pdbgen/pdb/plug_in.pdb * tools/pdbgen/pdb/procedural_db.pdb * tools/pdbgen/pdb/progress.pdb * tools/pdbgen/pdb/undo.pdb: follow above refactoring. * app/pdb/context_cmds.c * app/pdb/drawable_cmds.c * app/pdb/fileops_cmds.c * app/pdb/help_cmds.c * app/pdb/message_cmds.c * app/pdb/plug_in_cmds.c * app/pdb/procedural_db_cmds.c * app/pdb/progress_cmds.c * app/pdb/undo_cmds.c: regenerated.
2006-04-29 06:26:51 +08:00
if (plug_in->manager->gimp->pdb_compat_mode == GIMP_PDB_COMPAT_WARN)
{
if (! strcmp (procedure->deprecated, "NONE"))
{
app/actions/data-commands.c app/actions/documents-commands.c 2006-10-09 Michael Natterer <mitch@gimp.org> * app/actions/data-commands.c * app/actions/documents-commands.c * app/actions/drawable-commands.c * app/actions/gradients-commands.c * app/actions/image-commands.c * app/actions/layers-commands.c * app/actions/palettes-commands.c * app/actions/select-commands.c * app/actions/vectors-commands.c * app/core/gimp-contexts.c * app/core/gimp-documents.c * app/core/gimp-edit.c * app/core/gimp-modules.c * app/core/gimp-parasites.c * app/core/gimp-templates.c * app/core/gimp-units.c * app/core/gimpchannel.c * app/core/gimpdatafactory.[ch] * app/core/gimpdrawable-bucket-fill.c * app/core/gimpimage-merge.c * app/core/gimpimagefile.c * app/core/gimplayer-floating-sel.c * app/core/gimppdbprogress.c * app/core/gimpselection.c * app/dialogs/palette-import-dialog.c * app/display/gimpdisplayshell-dnd.c * app/gui/session.c * app/gui/themes.c * app/pdb/gimpprocedure.c * app/plug-in/gimpplugin-message.c * app/plug-in/gimpplugin.c * app/plug-in/gimppluginmanager-file.c * app/plug-in/gimppluginmanager.c * app/text/gimptextlayer-xcf.c * app/text/gimptextlayer.c * app/widgets/gimpcontrollers.c * app/widgets/gimpdataeditor.c * app/widgets/gimpdevices.c * app/widgets/gimpdnd-xds.c * app/widgets/gimplayertreeview.c * app/widgets/gimptoolbox-dnd.c * app/widgets/gimptoolbox.c * app/widgets/gimpuimanager.c * app/widgets/gimpvectorstreeview.c * tools/pdbgen/pdb/brush.pdb * tools/pdbgen/pdb/gradient.pdb * tools/pdbgen/pdb/palette.pdb: convert lots of g_message() to gimp_message(). Make sure we never pass unknown strings (like error->message) to printf-like functions directly; run them thorugh "%s" instead. Don't translate some messages which should never happen. * app/pdb/brush_cmds.c * app/pdb/gradient_cmds.c * app/pdb/palette_cmds.c: regenerated.
2006-10-10 02:49:15 +08:00
gimp_message (plug_in->manager->gimp, NULL, GIMP_MESSAGE_WARNING,
"Plug-In \"%s\"\n(%s)\n"
"called deprecated procedure '%s'.",
gimp_object_get_name (GIMP_OBJECT (plug_in)),
gimp_filename_to_utf8 (plug_in->prog),
canonical);
}
else
{
app/actions/data-commands.c app/actions/documents-commands.c 2006-10-09 Michael Natterer <mitch@gimp.org> * app/actions/data-commands.c * app/actions/documents-commands.c * app/actions/drawable-commands.c * app/actions/gradients-commands.c * app/actions/image-commands.c * app/actions/layers-commands.c * app/actions/palettes-commands.c * app/actions/select-commands.c * app/actions/vectors-commands.c * app/core/gimp-contexts.c * app/core/gimp-documents.c * app/core/gimp-edit.c * app/core/gimp-modules.c * app/core/gimp-parasites.c * app/core/gimp-templates.c * app/core/gimp-units.c * app/core/gimpchannel.c * app/core/gimpdatafactory.[ch] * app/core/gimpdrawable-bucket-fill.c * app/core/gimpimage-merge.c * app/core/gimpimagefile.c * app/core/gimplayer-floating-sel.c * app/core/gimppdbprogress.c * app/core/gimpselection.c * app/dialogs/palette-import-dialog.c * app/display/gimpdisplayshell-dnd.c * app/gui/session.c * app/gui/themes.c * app/pdb/gimpprocedure.c * app/plug-in/gimpplugin-message.c * app/plug-in/gimpplugin.c * app/plug-in/gimppluginmanager-file.c * app/plug-in/gimppluginmanager.c * app/text/gimptextlayer-xcf.c * app/text/gimptextlayer.c * app/widgets/gimpcontrollers.c * app/widgets/gimpdataeditor.c * app/widgets/gimpdevices.c * app/widgets/gimpdnd-xds.c * app/widgets/gimplayertreeview.c * app/widgets/gimptoolbox-dnd.c * app/widgets/gimptoolbox.c * app/widgets/gimpuimanager.c * app/widgets/gimpvectorstreeview.c * tools/pdbgen/pdb/brush.pdb * tools/pdbgen/pdb/gradient.pdb * tools/pdbgen/pdb/palette.pdb: convert lots of g_message() to gimp_message(). Make sure we never pass unknown strings (like error->message) to printf-like functions directly; run them thorugh "%s" instead. Don't translate some messages which should never happen. * app/pdb/brush_cmds.c * app/pdb/gradient_cmds.c * app/pdb/palette_cmds.c: regenerated.
2006-10-10 02:49:15 +08:00
gimp_message (plug_in->manager->gimp, NULL, GIMP_MESSAGE_WARNING,
"WARNING: Plug-In \"%s\"\n(%s)\n"
"called deprecated procedure '%s'.\n"
"It should call '%s' instead!",
gimp_object_get_name (GIMP_OBJECT (plug_in)),
gimp_filename_to_utf8 (plug_in->prog),
canonical, procedure->deprecated);
}
}
}
if (! proc_name)
Changed naming scheme for PDB procedure names from 2005-08-03 Michael Natterer <mitch@gimp.org> Changed naming scheme for PDB procedure names from random_crap_that_traditionally_has_underscores to enforced-canonical-identifiers. I'm pretty sure some things are broken after this commit. More changes to come... * libgimpbase/gimpbase.def * libgimpbase/gimputils.[ch]: added gimp_canonicalize_identifier(). * app/pdb/procedural_db.[ch] (struct ProcRecord): added "gchar *original_name" to keep a procedure's original name as reigstered by plug-ins (compat cruft). (procedural_db_init_procs): canonicalized list of deprecated procedures. * app/plug-in/plug-in-proc-def.c (plug_in_proc_def_free): free original_name. * app/plug-in/plug-in-message.c: canonicalize procedure names which are received over the wire. * app/plug-in/plug-in-rc.c: serialize the original_name and create the canonicalized name on-the-fly when deserializing. * app/plug-in/plug-in-run.c: pass the original_name to plug-ins when running them because they strcmp() the passed procedure name. * app/plug-in/plug-ins.c (plug_ins_add_to_db): pass canonical procedure names to procedural_db_execute(). (plug_ins_file_proc_compare): special-case "gimp-xcf", not "gimp_xcf". * app/xcf/xcf.c: changed static XCF procedures accordingly. * tools/pdbgen/app.pl * tools/pdbgen/lib.pl: do some trivial substitutions to generate canonicalized names in app/, and C identifiers with underscores in libgimp/. * tools/pdbgen/pdb/brushes.pdb * tools/pdbgen/pdb/fileops.pdb * tools/pdbgen/pdb/gradients.pdb * tools/pdbgen/pdb/image.pdb * tools/pdbgen/pdb/palettes.pdb * tools/pdbgen/pdb/patterns.pdb * tools/pdbgen/pdb/plug_in.pdb * tools/pdbgen/pdb/procedural_db.pdb * tools/pdbgen/pdb/text_tool.pdb * tools/pdbgen/pdb/transform_tools.pdb: canonicaloized procedure names in calls to std_pdb_deprecated() and in procedure names in generated C code. * app/pdb/*_cmds.c * libgimp/*_pdb.c: regenerated.
2005-08-03 06:52:23 +08:00
proc_name = canonical;
args = plug_in_params_to_args (procedure ? procedure->args : NULL,
procedure ? procedure->num_args : 0,
proc_run->params, proc_run->nparams,
FALSE, FALSE);
app/pdb/Makefile.am app/pdb/pdb-types.h new object GimpPDB which keeps all 2006-04-26 Michael Natterer <mitch@gimp.org> * app/pdb/Makefile.am * app/pdb/pdb-types.h * app/pdb/gimppdb.[ch]: new object GimpPDB which keeps all procedures and functions to register and run them. Renamed all functions and did some cleanups. * app/pdb/gimp-pdb.[ch] * app/core/gimp.[ch]: removed the same stuff here. * app/pdb/gimp-pdb-query.[ch]: removed these files... * app/pdb/gimppdb-query.[ch]: ...added here as members of GimpPDB. * app/pdb/gimp-pdb-compat.h: fix include guard. * app/batch.c * app/actions/vectors-commands.c * app/dialogs/about-dialog.c * app/file/file-open.c * app/file/file-save.c * app/plug-in/plug-in-message.c * app/plug-in/plug-ins.c * app/widgets/gimpfiledialog.c * app/widgets/gimphelp.c * app/xcf/xcf.c * tools/pdbgen/pdb/brush_select.pdb * tools/pdbgen/pdb/fileops.pdb * tools/pdbgen/pdb/font_select.pdb * tools/pdbgen/pdb/gradient_select.pdb * tools/pdbgen/pdb/palette_select.pdb * tools/pdbgen/pdb/pattern_select.pdb * tools/pdbgen/pdb/procedural_db.pdb: changed includes and function calls accordingly. * tools/pdbgen/app.pl: pass around GimpPDB instead of Gimp pointers to register the internal procedures with. Changed some newlines in the generated code. * app/pdb/*_cmds.c * app/pdb/internal_procs.[ch]: regenerated. * app/core/gimppdbprogress.[ch] * app/widgets/gimppdbdialog.[ch]: added "pdb" CONSTRUCT_ONLY properties. * app/plug-in/plug-in-progress.c * app/gui/gui-vtable.c: pass gimp->pdb when creating them. * app/widgets/gimpbrushselect.c * app/widgets/gimpfontselect.c * app/widgets/gimpgradientselect.c * app/widgets/gimppaletteselect.c * app/widgets/gimppatternselect.c: use the new local pdb pointers instead of some foo->bar->gimp->pdb overkill.
2006-04-26 17:13:47 +08:00
/* Execute the procedure even if gimp_pdb_lookup_procedure()
* returned NULL, gimp_pdb_execute_procedure_by_name_args() will
* return appropriate error return_vals.
removed gimp_main_loop() and gimp_main_loop_quit() because they were a 2003-02-03 Michael Natterer <mitch@gimp.org> * app/core/gimp.[ch]: removed gimp_main_loop() and gimp_main_loop_quit() because they were a temp_hack until plug-ins have their own main loops. Added gimp_threads_enter() and gimp_threads_leave() instead. * app/gui/gui.c: ditto: removed the main loop stuff and added functions which call GDK_THREADS_ENTER() and GDK_THREADS_LEAVE() instead. * app/app_procs.c: create the main GMainLoop here and use gimp_threads_enter,leave(). * app/plug-in/plug-in.[ch]: added a ref_count per plug-in so the plug-in is not destroyed under our feet while running a recursive main loop. Added plug_in_ref(). Changed plug_in_destroy() to plug_in_unref(). Don't destroy the plug-in if plug_in_open() fails. Call gimp_threads_enter,leave() around g_main_loop_run(). Changed the way plug_in_push,pop() are used: "current_plug_in" is no longer the plug-in which currently uses the wire, but the plug-in which currently preforms a PDB call (the former meaning was needed when wire callbacks had no plug-in context but needed to get the plug-in from the global "current_plug_in" variable). Removed all calls to plug_in_push,pop() from this file. * app/plug-in/plug-in-message.c (plug_in_handle_proc_run): added plug_in_push,pop() around procedural_db_execute(). No need to construct an error return value if the procedure was not found because procedural_db_execute() already does this. Removed all other plug_in_push,pop(). Added more checks to plug-in message handlers and kill the plug-in if it misbehaves. Cleanup. * app/plug-in/plug-in-progress.c (plug_in_progress_cancel): if the plug-in runs synchronously, provide a GIMP_PDB_CANCEL return value so we don't see error messages about the "failed" procedure. * app/plug-in/plug-in-run.c: removed plug_in_push,pop() stuff. Set the new plug_in->starting_ext boolean while starting an extension so the extension_ack handler knows that it wasn't called from a buggy plug-in. Cleanup. * app/plug-in/plug-ins.c: Cleanup.
2003-02-03 21:21:31 +08:00
*/
gimp_plug_in_manager_plug_in_push (plug_in->manager, plug_in);
app/plug-in/Makefile.am app/plug-in/plug-in-types.h new object which keeps 2006-04-29 Michael Natterer <mitch@gimp.org> * app/plug-in/Makefile.am * app/plug-in/plug-in-types.h * app/plug-in/gimppluginmanager.[ch]: new object which keeps all plug-in related stuff that was kept in the Gimp instance. Has "menu-branch-added" and "last-plug-in-changed" signals. * app/plug-in/plug-ins.[ch]: removed, all its functions are in GimpPlugInManager now. * app/core/gimpmarshal.list: new marshaller for the new object. * app/core/gimp.[ch]: removed all plug-in related stuff and keep a GimpPlugInManager around. * app/plug-in/plug-in-data.[ch] * app/plug-in/plug-in-file.[ch] * app/plug-in/plug-in-help-domain.[ch] * app/plug-in/plug-in-locale-domain.[ch] * app/plug-in/plug-in-menu-branch.[ch] * app/plug-in/plug-ins-query.[ch]: removed... * app/plug-in/gimppluginmanager-data.[ch] * app/plug-in/gimppluginmanager-file.[ch] * app/plug-in/gimppluginmanager-help-domain.[ch] * app/plug-in/gimppluginmanager-locale-domain.[ch] * app/plug-in/gimppluginmanager-menu-branch.[ch] * app/plug-in/gimppluginmanager-query.[ch]: ...and added as methods of GimpPlugInManager. * app/plug-in/plug-in-debug.[ch] * app/plug-in/plug-in-shm.[ch]: removed... * app/plug-in/gimpplugindebug.[ch] * app/plug-in/gimppluginshm.[ch]: ...and added as properly namespeced structs with constructors and destructors. * app/core/Makefile.am * app/core/gimpenvirontable.[ch] * app/core/gimpinterpreterdb.[ch]: removed... * app/plug-in/gimpenvirontable.[ch] * app/plug-in/gimpinterpreterdb.[ch]: ...and added here unchanged. * app/core/gimp-gui.[ch] * app/gui/gui-vtable.c: remove gimp_menus_create_branch() and all related stuff. * app/actions/plug-in-actions.[ch]: connect to the plug-in-manager's "menu-path-added" signal and create menu branch actions accordingly. * app/plug-in/plug-in-context.c * app/plug-in/plug-in-message.c * app/plug-in/plug-in-progress.c * app/plug-in/plug-in-run.[ch] * app/plug-in/plug-in.[ch] * app/app_procs.c * app/actions/file-commands.c * app/actions/plug-in-commands.c * app/core/gimpimage.c * app/dialogs/file-open-location-dialog.c * app/dialogs/file-save-dialog.c * app/file/file-open.c * app/gui/gui.c * app/menus/plug-in-menus.c * app/pdb/gimppluginprocedure.c * app/pdb/gimptemporaryprocedure.c * app/widgets/gimpdnd-xds.c * app/widgets/gimpfiledialog.c * app/widgets/gimpfileprocview.c * app/widgets/gimphelp.c * app/widgets/gimpthumbbox.c * app/xcf/xcf.c * tools/pdbgen/pdb/context.pdb * tools/pdbgen/pdb/drawable.pdb * tools/pdbgen/pdb/fileops.pdb * tools/pdbgen/pdb/help.pdb * tools/pdbgen/pdb/message.pdb * tools/pdbgen/pdb/plug_in.pdb * tools/pdbgen/pdb/procedural_db.pdb * tools/pdbgen/pdb/progress.pdb * tools/pdbgen/pdb/undo.pdb: follow above refactoring. * app/pdb/context_cmds.c * app/pdb/drawable_cmds.c * app/pdb/fileops_cmds.c * app/pdb/help_cmds.c * app/pdb/message_cmds.c * app/pdb/plug_in_cmds.c * app/pdb/procedural_db_cmds.c * app/pdb/progress_cmds.c * app/pdb/undo_cmds.c: regenerated.
2006-04-29 06:26:51 +08:00
return_vals = gimp_pdb_execute_procedure_by_name_args (plug_in->manager->gimp->pdb,
app/pdb/Makefile.am app/pdb/pdb-types.h new object GimpPDB which keeps all 2006-04-26 Michael Natterer <mitch@gimp.org> * app/pdb/Makefile.am * app/pdb/pdb-types.h * app/pdb/gimppdb.[ch]: new object GimpPDB which keeps all procedures and functions to register and run them. Renamed all functions and did some cleanups. * app/pdb/gimp-pdb.[ch] * app/core/gimp.[ch]: removed the same stuff here. * app/pdb/gimp-pdb-query.[ch]: removed these files... * app/pdb/gimppdb-query.[ch]: ...added here as members of GimpPDB. * app/pdb/gimp-pdb-compat.h: fix include guard. * app/batch.c * app/actions/vectors-commands.c * app/dialogs/about-dialog.c * app/file/file-open.c * app/file/file-save.c * app/plug-in/plug-in-message.c * app/plug-in/plug-ins.c * app/widgets/gimpfiledialog.c * app/widgets/gimphelp.c * app/xcf/xcf.c * tools/pdbgen/pdb/brush_select.pdb * tools/pdbgen/pdb/fileops.pdb * tools/pdbgen/pdb/font_select.pdb * tools/pdbgen/pdb/gradient_select.pdb * tools/pdbgen/pdb/palette_select.pdb * tools/pdbgen/pdb/pattern_select.pdb * tools/pdbgen/pdb/procedural_db.pdb: changed includes and function calls accordingly. * tools/pdbgen/app.pl: pass around GimpPDB instead of Gimp pointers to register the internal procedures with. Changed some newlines in the generated code. * app/pdb/*_cmds.c * app/pdb/internal_procs.[ch]: regenerated. * app/core/gimppdbprogress.[ch] * app/widgets/gimppdbdialog.[ch]: added "pdb" CONSTRUCT_ONLY properties. * app/plug-in/plug-in-progress.c * app/gui/gui-vtable.c: pass gimp->pdb when creating them. * app/widgets/gimpbrushselect.c * app/widgets/gimpfontselect.c * app/widgets/gimpgradientselect.c * app/widgets/gimppaletteselect.c * app/widgets/gimppatternselect.c: use the new local pdb pointers instead of some foo->bar->gimp->pdb overkill.
2006-04-26 17:13:47 +08:00
proc_frame->context_stack ?
proc_frame->context_stack->data :
proc_frame->main_context,
proc_frame->progress,
&error,
app/pdb/Makefile.am app/pdb/pdb-types.h new object GimpPDB which keeps all 2006-04-26 Michael Natterer <mitch@gimp.org> * app/pdb/Makefile.am * app/pdb/pdb-types.h * app/pdb/gimppdb.[ch]: new object GimpPDB which keeps all procedures and functions to register and run them. Renamed all functions and did some cleanups. * app/pdb/gimp-pdb.[ch] * app/core/gimp.[ch]: removed the same stuff here. * app/pdb/gimp-pdb-query.[ch]: removed these files... * app/pdb/gimppdb-query.[ch]: ...added here as members of GimpPDB. * app/pdb/gimp-pdb-compat.h: fix include guard. * app/batch.c * app/actions/vectors-commands.c * app/dialogs/about-dialog.c * app/file/file-open.c * app/file/file-save.c * app/plug-in/plug-in-message.c * app/plug-in/plug-ins.c * app/widgets/gimpfiledialog.c * app/widgets/gimphelp.c * app/xcf/xcf.c * tools/pdbgen/pdb/brush_select.pdb * tools/pdbgen/pdb/fileops.pdb * tools/pdbgen/pdb/font_select.pdb * tools/pdbgen/pdb/gradient_select.pdb * tools/pdbgen/pdb/palette_select.pdb * tools/pdbgen/pdb/pattern_select.pdb * tools/pdbgen/pdb/procedural_db.pdb: changed includes and function calls accordingly. * tools/pdbgen/app.pl: pass around GimpPDB instead of Gimp pointers to register the internal procedures with. Changed some newlines in the generated code. * app/pdb/*_cmds.c * app/pdb/internal_procs.[ch]: regenerated. * app/core/gimppdbprogress.[ch] * app/widgets/gimppdbdialog.[ch]: added "pdb" CONSTRUCT_ONLY properties. * app/plug-in/plug-in-progress.c * app/gui/gui-vtable.c: pass gimp->pdb when creating them. * app/widgets/gimpbrushselect.c * app/widgets/gimpfontselect.c * app/widgets/gimpgradientselect.c * app/widgets/gimppaletteselect.c * app/widgets/gimppatternselect.c: use the new local pdb pointers instead of some foo->bar->gimp->pdb overkill.
2006-04-26 17:13:47 +08:00
proc_name,
args);
gimp_plug_in_manager_plug_in_pop (plug_in->manager);
1997-11-25 06:05:25 +08:00
g_value_array_free (args);
if (error)
{
gimp_message (plug_in->manager->gimp, G_OBJECT (proc_frame->progress),
GIMP_MESSAGE_ERROR,
_("PDB calling error for procedure '%s':\n"
"%s"),
canonical, error->message);
g_error_free (error);
}
Changed naming scheme for PDB procedure names from 2005-08-03 Michael Natterer <mitch@gimp.org> Changed naming scheme for PDB procedure names from random_crap_that_traditionally_has_underscores to enforced-canonical-identifiers. I'm pretty sure some things are broken after this commit. More changes to come... * libgimpbase/gimpbase.def * libgimpbase/gimputils.[ch]: added gimp_canonicalize_identifier(). * app/pdb/procedural_db.[ch] (struct ProcRecord): added "gchar *original_name" to keep a procedure's original name as reigstered by plug-ins (compat cruft). (procedural_db_init_procs): canonicalized list of deprecated procedures. * app/plug-in/plug-in-proc-def.c (plug_in_proc_def_free): free original_name. * app/plug-in/plug-in-message.c: canonicalize procedure names which are received over the wire. * app/plug-in/plug-in-rc.c: serialize the original_name and create the canonicalized name on-the-fly when deserializing. * app/plug-in/plug-in-run.c: pass the original_name to plug-ins when running them because they strcmp() the passed procedure name. * app/plug-in/plug-ins.c (plug_ins_add_to_db): pass canonical procedure names to procedural_db_execute(). (plug_ins_file_proc_compare): special-case "gimp-xcf", not "gimp_xcf". * app/xcf/xcf.c: changed static XCF procedures accordingly. * tools/pdbgen/app.pl * tools/pdbgen/lib.pl: do some trivial substitutions to generate canonicalized names in app/, and C identifiers with underscores in libgimp/. * tools/pdbgen/pdb/brushes.pdb * tools/pdbgen/pdb/fileops.pdb * tools/pdbgen/pdb/gradients.pdb * tools/pdbgen/pdb/image.pdb * tools/pdbgen/pdb/palettes.pdb * tools/pdbgen/pdb/patterns.pdb * tools/pdbgen/pdb/plug_in.pdb * tools/pdbgen/pdb/procedural_db.pdb * tools/pdbgen/pdb/text_tool.pdb * tools/pdbgen/pdb/transform_tools.pdb: canonicaloized procedure names in calls to std_pdb_deprecated() and in procedure names in generated C code. * app/pdb/*_cmds.c * libgimp/*_pdb.c: regenerated.
2005-08-03 06:52:23 +08:00
g_free (canonical);
/* Don't bother to send the return value if executing the procedure
* closed the plug-in (e.g. if the procedure is gimp-quit)
*/
if (plug_in->open)
1997-11-25 06:05:25 +08:00
{
GPProcReturn proc_return;
/* Return the name we got called with, *not* proc_name or canonical,
* since proc_name may have been remapped by gimp->procedural_compat_ht
* and canonical may be different too.
*/
proc_return.name = proc_run->name;
proc_return.nparams = return_vals->n_values;
proc_return.params = plug_in_args_to_params (return_vals, FALSE);
if (! gp_proc_return_write (plug_in->my_write, &proc_return, plug_in))
{
gimp_message (plug_in->manager->gimp, NULL, GIMP_MESSAGE_ERROR,
"plug_in_handle_proc_run: ERROR");
gimp_plug_in_close (plug_in, TRUE);
}
g_free (proc_return.params);
1997-11-25 06:05:25 +08:00
}
g_value_array_free (return_vals);
1997-11-25 06:05:25 +08:00
}
static void
Made an object out of the plug-in struct. Also change refcounting 2006-05-03 Michael Natterer <mitch@gimp.org> Made an object out of the plug-in struct. Also change refcounting considerably: - gimp_plug_in_open() adds a reference that is only dropped by gimp_plug_in_close(). - temporarily ref the plug-in while handling messages. - remporarily ref the plug-in while a recursive main loop is running. - each caller of gimp_plug_in_new() also unrefs the plug-in before returning, the only reference that persists across functions (that keeps the plug-in alive) is the one added by open(). * app/plug-in/plug-in.[ch] * app/plug-in/plug-in-context.[ch] * app/plug-in/plug-in-message.[ch] * app/plug-in/plug-in-progress.[ch]: removed these files... * app/plug-in/gimpplugin.[ch] * app/plug-in/gimpplugin-context.[ch] * app/plug-in/gimpplugin-message.[ch] * app/plug-in/gimpplugin-progress.[ch]: ...and added here as GObject. * app/plug-in/plug-in-proc-frame.[ch]: removed... * app/plug-in/gimppluginprocframe.[ch]: ...and added with a namespace. * app/plug-in/Makefile.am * app/plug-in/plug-in-types.h * app/plug-in/gimppluginmanager-call.c * app/plug-in/gimppluginmanager-file.c * app/plug-in/gimppluginmanager.[ch] * app/pdb/gimppluginprocedure.c * app/pdb/gimptemporaryprocedure.c * app/pdb/gimptemporaryprocedure.h * tools/pdbgen/pdb/context.pdb * tools/pdbgen/pdb/drawable.pdb * tools/pdbgen/pdb/help.pdb * tools/pdbgen/pdb/message.pdb * tools/pdbgen/pdb/plug_in.pdb * tools/pdbgen/pdb/progress.pdb * tools/pdbgen/pdb/undo.pdb: changed accordingly. * app/pdb/context_cmds.c * app/pdb/drawable_cmds.c * app/pdb/help_cmds.c * app/pdb/message_cmds.c * app/pdb/plug_in_cmds.c * app/pdb/progress_cmds.c * app/pdb/undo_cmds.c: regenerated.
2006-05-04 02:05:06 +08:00
gimp_plug_in_handle_proc_return (GimpPlugIn *plug_in,
GPProcReturn *proc_return)
{
Made an object out of the plug-in struct. Also change refcounting 2006-05-03 Michael Natterer <mitch@gimp.org> Made an object out of the plug-in struct. Also change refcounting considerably: - gimp_plug_in_open() adds a reference that is only dropped by gimp_plug_in_close(). - temporarily ref the plug-in while handling messages. - remporarily ref the plug-in while a recursive main loop is running. - each caller of gimp_plug_in_new() also unrefs the plug-in before returning, the only reference that persists across functions (that keeps the plug-in alive) is the one added by open(). * app/plug-in/plug-in.[ch] * app/plug-in/plug-in-context.[ch] * app/plug-in/plug-in-message.[ch] * app/plug-in/plug-in-progress.[ch]: removed these files... * app/plug-in/gimpplugin.[ch] * app/plug-in/gimpplugin-context.[ch] * app/plug-in/gimpplugin-message.[ch] * app/plug-in/gimpplugin-progress.[ch]: ...and added here as GObject. * app/plug-in/plug-in-proc-frame.[ch]: removed... * app/plug-in/gimppluginprocframe.[ch]: ...and added with a namespace. * app/plug-in/Makefile.am * app/plug-in/plug-in-types.h * app/plug-in/gimppluginmanager-call.c * app/plug-in/gimppluginmanager-file.c * app/plug-in/gimppluginmanager.[ch] * app/pdb/gimppluginprocedure.c * app/pdb/gimptemporaryprocedure.c * app/pdb/gimptemporaryprocedure.h * tools/pdbgen/pdb/context.pdb * tools/pdbgen/pdb/drawable.pdb * tools/pdbgen/pdb/help.pdb * tools/pdbgen/pdb/message.pdb * tools/pdbgen/pdb/plug_in.pdb * tools/pdbgen/pdb/progress.pdb * tools/pdbgen/pdb/undo.pdb: changed accordingly. * app/pdb/context_cmds.c * app/pdb/drawable_cmds.c * app/pdb/help_cmds.c * app/pdb/message_cmds.c * app/pdb/plug_in_cmds.c * app/pdb/progress_cmds.c * app/pdb/undo_cmds.c: regenerated.
2006-05-04 02:05:06 +08:00
GimpPlugInProcFrame *proc_frame = &plug_in->main_proc_frame;
g_return_if_fail (proc_return != NULL);
if (proc_frame->main_loop)
{
proc_frame->return_vals =
plug_in_params_to_args (proc_frame->procedure->values,
proc_frame->procedure->num_values,
proc_return->params,
proc_return->nparams,
TRUE, TRUE);
g_main_loop_quit (proc_frame->main_loop);
}
Made an object out of the plug-in struct. Also change refcounting 2006-05-03 Michael Natterer <mitch@gimp.org> Made an object out of the plug-in struct. Also change refcounting considerably: - gimp_plug_in_open() adds a reference that is only dropped by gimp_plug_in_close(). - temporarily ref the plug-in while handling messages. - remporarily ref the plug-in while a recursive main loop is running. - each caller of gimp_plug_in_new() also unrefs the plug-in before returning, the only reference that persists across functions (that keeps the plug-in alive) is the one added by open(). * app/plug-in/plug-in.[ch] * app/plug-in/plug-in-context.[ch] * app/plug-in/plug-in-message.[ch] * app/plug-in/plug-in-progress.[ch]: removed these files... * app/plug-in/gimpplugin.[ch] * app/plug-in/gimpplugin-context.[ch] * app/plug-in/gimpplugin-message.[ch] * app/plug-in/gimpplugin-progress.[ch]: ...and added here as GObject. * app/plug-in/plug-in-proc-frame.[ch]: removed... * app/plug-in/gimppluginprocframe.[ch]: ...and added with a namespace. * app/plug-in/Makefile.am * app/plug-in/plug-in-types.h * app/plug-in/gimppluginmanager-call.c * app/plug-in/gimppluginmanager-file.c * app/plug-in/gimppluginmanager.[ch] * app/pdb/gimppluginprocedure.c * app/pdb/gimptemporaryprocedure.c * app/pdb/gimptemporaryprocedure.h * tools/pdbgen/pdb/context.pdb * tools/pdbgen/pdb/drawable.pdb * tools/pdbgen/pdb/help.pdb * tools/pdbgen/pdb/message.pdb * tools/pdbgen/pdb/plug_in.pdb * tools/pdbgen/pdb/progress.pdb * tools/pdbgen/pdb/undo.pdb: changed accordingly. * app/pdb/context_cmds.c * app/pdb/drawable_cmds.c * app/pdb/help_cmds.c * app/pdb/message_cmds.c * app/pdb/plug_in_cmds.c * app/pdb/progress_cmds.c * app/pdb/undo_cmds.c: regenerated.
2006-05-04 02:05:06 +08:00
gimp_plug_in_close (plug_in, FALSE);
}
static void
Made an object out of the plug-in struct. Also change refcounting 2006-05-03 Michael Natterer <mitch@gimp.org> Made an object out of the plug-in struct. Also change refcounting considerably: - gimp_plug_in_open() adds a reference that is only dropped by gimp_plug_in_close(). - temporarily ref the plug-in while handling messages. - remporarily ref the plug-in while a recursive main loop is running. - each caller of gimp_plug_in_new() also unrefs the plug-in before returning, the only reference that persists across functions (that keeps the plug-in alive) is the one added by open(). * app/plug-in/plug-in.[ch] * app/plug-in/plug-in-context.[ch] * app/plug-in/plug-in-message.[ch] * app/plug-in/plug-in-progress.[ch]: removed these files... * app/plug-in/gimpplugin.[ch] * app/plug-in/gimpplugin-context.[ch] * app/plug-in/gimpplugin-message.[ch] * app/plug-in/gimpplugin-progress.[ch]: ...and added here as GObject. * app/plug-in/plug-in-proc-frame.[ch]: removed... * app/plug-in/gimppluginprocframe.[ch]: ...and added with a namespace. * app/plug-in/Makefile.am * app/plug-in/plug-in-types.h * app/plug-in/gimppluginmanager-call.c * app/plug-in/gimppluginmanager-file.c * app/plug-in/gimppluginmanager.[ch] * app/pdb/gimppluginprocedure.c * app/pdb/gimptemporaryprocedure.c * app/pdb/gimptemporaryprocedure.h * tools/pdbgen/pdb/context.pdb * tools/pdbgen/pdb/drawable.pdb * tools/pdbgen/pdb/help.pdb * tools/pdbgen/pdb/message.pdb * tools/pdbgen/pdb/plug_in.pdb * tools/pdbgen/pdb/progress.pdb * tools/pdbgen/pdb/undo.pdb: changed accordingly. * app/pdb/context_cmds.c * app/pdb/drawable_cmds.c * app/pdb/help_cmds.c * app/pdb/message_cmds.c * app/pdb/plug_in_cmds.c * app/pdb/progress_cmds.c * app/pdb/undo_cmds.c: regenerated.
2006-05-04 02:05:06 +08:00
gimp_plug_in_handle_temp_proc_return (GimpPlugIn *plug_in,
GPProcReturn *proc_return)
{
g_return_if_fail (proc_return != NULL);
if (plug_in->temp_proc_frames)
removed gimp_main_loop() and gimp_main_loop_quit() because they were a 2003-02-03 Michael Natterer <mitch@gimp.org> * app/core/gimp.[ch]: removed gimp_main_loop() and gimp_main_loop_quit() because they were a temp_hack until plug-ins have their own main loops. Added gimp_threads_enter() and gimp_threads_leave() instead. * app/gui/gui.c: ditto: removed the main loop stuff and added functions which call GDK_THREADS_ENTER() and GDK_THREADS_LEAVE() instead. * app/app_procs.c: create the main GMainLoop here and use gimp_threads_enter,leave(). * app/plug-in/plug-in.[ch]: added a ref_count per plug-in so the plug-in is not destroyed under our feet while running a recursive main loop. Added plug_in_ref(). Changed plug_in_destroy() to plug_in_unref(). Don't destroy the plug-in if plug_in_open() fails. Call gimp_threads_enter,leave() around g_main_loop_run(). Changed the way plug_in_push,pop() are used: "current_plug_in" is no longer the plug-in which currently uses the wire, but the plug-in which currently preforms a PDB call (the former meaning was needed when wire callbacks had no plug-in context but needed to get the plug-in from the global "current_plug_in" variable). Removed all calls to plug_in_push,pop() from this file. * app/plug-in/plug-in-message.c (plug_in_handle_proc_run): added plug_in_push,pop() around procedural_db_execute(). No need to construct an error return value if the procedure was not found because procedural_db_execute() already does this. Removed all other plug_in_push,pop(). Added more checks to plug-in message handlers and kill the plug-in if it misbehaves. Cleanup. * app/plug-in/plug-in-progress.c (plug_in_progress_cancel): if the plug-in runs synchronously, provide a GIMP_PDB_CANCEL return value so we don't see error messages about the "failed" procedure. * app/plug-in/plug-in-run.c: removed plug_in_push,pop() stuff. Set the new plug_in->starting_ext boolean while starting an extension so the extension_ack handler knows that it wasn't called from a buggy plug-in. Cleanup. * app/plug-in/plug-ins.c: Cleanup.
2003-02-03 21:21:31 +08:00
{
Made an object out of the plug-in struct. Also change refcounting 2006-05-03 Michael Natterer <mitch@gimp.org> Made an object out of the plug-in struct. Also change refcounting considerably: - gimp_plug_in_open() adds a reference that is only dropped by gimp_plug_in_close(). - temporarily ref the plug-in while handling messages. - remporarily ref the plug-in while a recursive main loop is running. - each caller of gimp_plug_in_new() also unrefs the plug-in before returning, the only reference that persists across functions (that keeps the plug-in alive) is the one added by open(). * app/plug-in/plug-in.[ch] * app/plug-in/plug-in-context.[ch] * app/plug-in/plug-in-message.[ch] * app/plug-in/plug-in-progress.[ch]: removed these files... * app/plug-in/gimpplugin.[ch] * app/plug-in/gimpplugin-context.[ch] * app/plug-in/gimpplugin-message.[ch] * app/plug-in/gimpplugin-progress.[ch]: ...and added here as GObject. * app/plug-in/plug-in-proc-frame.[ch]: removed... * app/plug-in/gimppluginprocframe.[ch]: ...and added with a namespace. * app/plug-in/Makefile.am * app/plug-in/plug-in-types.h * app/plug-in/gimppluginmanager-call.c * app/plug-in/gimppluginmanager-file.c * app/plug-in/gimppluginmanager.[ch] * app/pdb/gimppluginprocedure.c * app/pdb/gimptemporaryprocedure.c * app/pdb/gimptemporaryprocedure.h * tools/pdbgen/pdb/context.pdb * tools/pdbgen/pdb/drawable.pdb * tools/pdbgen/pdb/help.pdb * tools/pdbgen/pdb/message.pdb * tools/pdbgen/pdb/plug_in.pdb * tools/pdbgen/pdb/progress.pdb * tools/pdbgen/pdb/undo.pdb: changed accordingly. * app/pdb/context_cmds.c * app/pdb/drawable_cmds.c * app/pdb/help_cmds.c * app/pdb/message_cmds.c * app/pdb/plug_in_cmds.c * app/pdb/progress_cmds.c * app/pdb/undo_cmds.c: regenerated.
2006-05-04 02:05:06 +08:00
GimpPlugInProcFrame *proc_frame = plug_in->temp_proc_frames->data;
proc_frame->return_vals =
plug_in_params_to_args (proc_frame->procedure->values,
proc_frame->procedure->num_values,
proc_return->params,
proc_return->nparams,
TRUE, TRUE);
removed gimp_main_loop() and gimp_main_loop_quit() because they were a 2003-02-03 Michael Natterer <mitch@gimp.org> * app/core/gimp.[ch]: removed gimp_main_loop() and gimp_main_loop_quit() because they were a temp_hack until plug-ins have their own main loops. Added gimp_threads_enter() and gimp_threads_leave() instead. * app/gui/gui.c: ditto: removed the main loop stuff and added functions which call GDK_THREADS_ENTER() and GDK_THREADS_LEAVE() instead. * app/app_procs.c: create the main GMainLoop here and use gimp_threads_enter,leave(). * app/plug-in/plug-in.[ch]: added a ref_count per plug-in so the plug-in is not destroyed under our feet while running a recursive main loop. Added plug_in_ref(). Changed plug_in_destroy() to plug_in_unref(). Don't destroy the plug-in if plug_in_open() fails. Call gimp_threads_enter,leave() around g_main_loop_run(). Changed the way plug_in_push,pop() are used: "current_plug_in" is no longer the plug-in which currently uses the wire, but the plug-in which currently preforms a PDB call (the former meaning was needed when wire callbacks had no plug-in context but needed to get the plug-in from the global "current_plug_in" variable). Removed all calls to plug_in_push,pop() from this file. * app/plug-in/plug-in-message.c (plug_in_handle_proc_run): added plug_in_push,pop() around procedural_db_execute(). No need to construct an error return value if the procedure was not found because procedural_db_execute() already does this. Removed all other plug_in_push,pop(). Added more checks to plug-in message handlers and kill the plug-in if it misbehaves. Cleanup. * app/plug-in/plug-in-progress.c (plug_in_progress_cancel): if the plug-in runs synchronously, provide a GIMP_PDB_CANCEL return value so we don't see error messages about the "failed" procedure. * app/plug-in/plug-in-run.c: removed plug_in_push,pop() stuff. Set the new plug_in->starting_ext boolean while starting an extension so the extension_ack handler knows that it wasn't called from a buggy plug-in. Cleanup. * app/plug-in/plug-ins.c: Cleanup.
2003-02-03 21:21:31 +08:00
Made an object out of the plug-in struct. Also change refcounting 2006-05-03 Michael Natterer <mitch@gimp.org> Made an object out of the plug-in struct. Also change refcounting considerably: - gimp_plug_in_open() adds a reference that is only dropped by gimp_plug_in_close(). - temporarily ref the plug-in while handling messages. - remporarily ref the plug-in while a recursive main loop is running. - each caller of gimp_plug_in_new() also unrefs the plug-in before returning, the only reference that persists across functions (that keeps the plug-in alive) is the one added by open(). * app/plug-in/plug-in.[ch] * app/plug-in/plug-in-context.[ch] * app/plug-in/plug-in-message.[ch] * app/plug-in/plug-in-progress.[ch]: removed these files... * app/plug-in/gimpplugin.[ch] * app/plug-in/gimpplugin-context.[ch] * app/plug-in/gimpplugin-message.[ch] * app/plug-in/gimpplugin-progress.[ch]: ...and added here as GObject. * app/plug-in/plug-in-proc-frame.[ch]: removed... * app/plug-in/gimppluginprocframe.[ch]: ...and added with a namespace. * app/plug-in/Makefile.am * app/plug-in/plug-in-types.h * app/plug-in/gimppluginmanager-call.c * app/plug-in/gimppluginmanager-file.c * app/plug-in/gimppluginmanager.[ch] * app/pdb/gimppluginprocedure.c * app/pdb/gimptemporaryprocedure.c * app/pdb/gimptemporaryprocedure.h * tools/pdbgen/pdb/context.pdb * tools/pdbgen/pdb/drawable.pdb * tools/pdbgen/pdb/help.pdb * tools/pdbgen/pdb/message.pdb * tools/pdbgen/pdb/plug_in.pdb * tools/pdbgen/pdb/progress.pdb * tools/pdbgen/pdb/undo.pdb: changed accordingly. * app/pdb/context_cmds.c * app/pdb/drawable_cmds.c * app/pdb/help_cmds.c * app/pdb/message_cmds.c * app/pdb/plug_in_cmds.c * app/pdb/progress_cmds.c * app/pdb/undo_cmds.c: regenerated.
2006-05-04 02:05:06 +08:00
gimp_plug_in_main_loop_quit (plug_in);
gimp_plug_in_proc_frame_pop (plug_in);
removed gimp_main_loop() and gimp_main_loop_quit() because they were a 2003-02-03 Michael Natterer <mitch@gimp.org> * app/core/gimp.[ch]: removed gimp_main_loop() and gimp_main_loop_quit() because they were a temp_hack until plug-ins have their own main loops. Added gimp_threads_enter() and gimp_threads_leave() instead. * app/gui/gui.c: ditto: removed the main loop stuff and added functions which call GDK_THREADS_ENTER() and GDK_THREADS_LEAVE() instead. * app/app_procs.c: create the main GMainLoop here and use gimp_threads_enter,leave(). * app/plug-in/plug-in.[ch]: added a ref_count per plug-in so the plug-in is not destroyed under our feet while running a recursive main loop. Added plug_in_ref(). Changed plug_in_destroy() to plug_in_unref(). Don't destroy the plug-in if plug_in_open() fails. Call gimp_threads_enter,leave() around g_main_loop_run(). Changed the way plug_in_push,pop() are used: "current_plug_in" is no longer the plug-in which currently uses the wire, but the plug-in which currently preforms a PDB call (the former meaning was needed when wire callbacks had no plug-in context but needed to get the plug-in from the global "current_plug_in" variable). Removed all calls to plug_in_push,pop() from this file. * app/plug-in/plug-in-message.c (plug_in_handle_proc_run): added plug_in_push,pop() around procedural_db_execute(). No need to construct an error return value if the procedure was not found because procedural_db_execute() already does this. Removed all other plug_in_push,pop(). Added more checks to plug-in message handlers and kill the plug-in if it misbehaves. Cleanup. * app/plug-in/plug-in-progress.c (plug_in_progress_cancel): if the plug-in runs synchronously, provide a GIMP_PDB_CANCEL return value so we don't see error messages about the "failed" procedure. * app/plug-in/plug-in-run.c: removed plug_in_push,pop() stuff. Set the new plug_in->starting_ext boolean while starting an extension so the extension_ack handler knows that it wasn't called from a buggy plug-in. Cleanup. * app/plug-in/plug-ins.c: Cleanup.
2003-02-03 21:21:31 +08:00
}
else
{
app/actions/data-commands.c app/actions/documents-commands.c 2006-10-09 Michael Natterer <mitch@gimp.org> * app/actions/data-commands.c * app/actions/documents-commands.c * app/actions/drawable-commands.c * app/actions/gradients-commands.c * app/actions/image-commands.c * app/actions/layers-commands.c * app/actions/palettes-commands.c * app/actions/select-commands.c * app/actions/vectors-commands.c * app/core/gimp-contexts.c * app/core/gimp-documents.c * app/core/gimp-edit.c * app/core/gimp-modules.c * app/core/gimp-parasites.c * app/core/gimp-templates.c * app/core/gimp-units.c * app/core/gimpchannel.c * app/core/gimpdatafactory.[ch] * app/core/gimpdrawable-bucket-fill.c * app/core/gimpimage-merge.c * app/core/gimpimagefile.c * app/core/gimplayer-floating-sel.c * app/core/gimppdbprogress.c * app/core/gimpselection.c * app/dialogs/palette-import-dialog.c * app/display/gimpdisplayshell-dnd.c * app/gui/session.c * app/gui/themes.c * app/pdb/gimpprocedure.c * app/plug-in/gimpplugin-message.c * app/plug-in/gimpplugin.c * app/plug-in/gimppluginmanager-file.c * app/plug-in/gimppluginmanager.c * app/text/gimptextlayer-xcf.c * app/text/gimptextlayer.c * app/widgets/gimpcontrollers.c * app/widgets/gimpdataeditor.c * app/widgets/gimpdevices.c * app/widgets/gimpdnd-xds.c * app/widgets/gimplayertreeview.c * app/widgets/gimptoolbox-dnd.c * app/widgets/gimptoolbox.c * app/widgets/gimpuimanager.c * app/widgets/gimpvectorstreeview.c * tools/pdbgen/pdb/brush.pdb * tools/pdbgen/pdb/gradient.pdb * tools/pdbgen/pdb/palette.pdb: convert lots of g_message() to gimp_message(). Make sure we never pass unknown strings (like error->message) to printf-like functions directly; run them thorugh "%s" instead. Don't translate some messages which should never happen. * app/pdb/brush_cmds.c * app/pdb/gradient_cmds.c * app/pdb/palette_cmds.c: regenerated.
2006-10-10 02:49:15 +08:00
gimp_message (plug_in->manager->gimp, NULL, GIMP_MESSAGE_ERROR,
"Plug-In \"%s\"\n(%s)\n\n"
"sent a TEMP_PROC_RETURN message while not running "
"a temporary procedure. This should not happen.",
gimp_object_get_name (GIMP_OBJECT (plug_in)),
gimp_filename_to_utf8 (plug_in->prog));
Made an object out of the plug-in struct. Also change refcounting 2006-05-03 Michael Natterer <mitch@gimp.org> Made an object out of the plug-in struct. Also change refcounting considerably: - gimp_plug_in_open() adds a reference that is only dropped by gimp_plug_in_close(). - temporarily ref the plug-in while handling messages. - remporarily ref the plug-in while a recursive main loop is running. - each caller of gimp_plug_in_new() also unrefs the plug-in before returning, the only reference that persists across functions (that keeps the plug-in alive) is the one added by open(). * app/plug-in/plug-in.[ch] * app/plug-in/plug-in-context.[ch] * app/plug-in/plug-in-message.[ch] * app/plug-in/plug-in-progress.[ch]: removed these files... * app/plug-in/gimpplugin.[ch] * app/plug-in/gimpplugin-context.[ch] * app/plug-in/gimpplugin-message.[ch] * app/plug-in/gimpplugin-progress.[ch]: ...and added here as GObject. * app/plug-in/plug-in-proc-frame.[ch]: removed... * app/plug-in/gimppluginprocframe.[ch]: ...and added with a namespace. * app/plug-in/Makefile.am * app/plug-in/plug-in-types.h * app/plug-in/gimppluginmanager-call.c * app/plug-in/gimppluginmanager-file.c * app/plug-in/gimppluginmanager.[ch] * app/pdb/gimppluginprocedure.c * app/pdb/gimptemporaryprocedure.c * app/pdb/gimptemporaryprocedure.h * tools/pdbgen/pdb/context.pdb * tools/pdbgen/pdb/drawable.pdb * tools/pdbgen/pdb/help.pdb * tools/pdbgen/pdb/message.pdb * tools/pdbgen/pdb/plug_in.pdb * tools/pdbgen/pdb/progress.pdb * tools/pdbgen/pdb/undo.pdb: changed accordingly. * app/pdb/context_cmds.c * app/pdb/drawable_cmds.c * app/pdb/help_cmds.c * app/pdb/message_cmds.c * app/pdb/plug_in_cmds.c * app/pdb/progress_cmds.c * app/pdb/undo_cmds.c: regenerated.
2006-05-04 02:05:06 +08:00
gimp_plug_in_close (plug_in, TRUE);
}
}
1997-11-25 06:05:25 +08:00
static void
Made an object out of the plug-in struct. Also change refcounting 2006-05-03 Michael Natterer <mitch@gimp.org> Made an object out of the plug-in struct. Also change refcounting considerably: - gimp_plug_in_open() adds a reference that is only dropped by gimp_plug_in_close(). - temporarily ref the plug-in while handling messages. - remporarily ref the plug-in while a recursive main loop is running. - each caller of gimp_plug_in_new() also unrefs the plug-in before returning, the only reference that persists across functions (that keeps the plug-in alive) is the one added by open(). * app/plug-in/plug-in.[ch] * app/plug-in/plug-in-context.[ch] * app/plug-in/plug-in-message.[ch] * app/plug-in/plug-in-progress.[ch]: removed these files... * app/plug-in/gimpplugin.[ch] * app/plug-in/gimpplugin-context.[ch] * app/plug-in/gimpplugin-message.[ch] * app/plug-in/gimpplugin-progress.[ch]: ...and added here as GObject. * app/plug-in/plug-in-proc-frame.[ch]: removed... * app/plug-in/gimppluginprocframe.[ch]: ...and added with a namespace. * app/plug-in/Makefile.am * app/plug-in/plug-in-types.h * app/plug-in/gimppluginmanager-call.c * app/plug-in/gimppluginmanager-file.c * app/plug-in/gimppluginmanager.[ch] * app/pdb/gimppluginprocedure.c * app/pdb/gimptemporaryprocedure.c * app/pdb/gimptemporaryprocedure.h * tools/pdbgen/pdb/context.pdb * tools/pdbgen/pdb/drawable.pdb * tools/pdbgen/pdb/help.pdb * tools/pdbgen/pdb/message.pdb * tools/pdbgen/pdb/plug_in.pdb * tools/pdbgen/pdb/progress.pdb * tools/pdbgen/pdb/undo.pdb: changed accordingly. * app/pdb/context_cmds.c * app/pdb/drawable_cmds.c * app/pdb/help_cmds.c * app/pdb/message_cmds.c * app/pdb/plug_in_cmds.c * app/pdb/progress_cmds.c * app/pdb/undo_cmds.c: regenerated.
2006-05-04 02:05:06 +08:00
gimp_plug_in_handle_proc_install (GimpPlugIn *plug_in,
GPProcInstall *proc_install)
1997-11-25 06:05:25 +08:00
{
GimpPlugInProcedure *proc = NULL;
GimpProcedure *procedure = NULL;
app/plug-in/plug-in-types.h renamed to GimpPlugInProcedure and made a 2006-04-05 Michael Natterer <mitch@gimp.org> * app/plug-in/plug-in-types.h * app/plug-in/plug-in-proc-def.[ch]: renamed to GimpPlugInProcedure and made a GObject derived from GimpProcedure (instead of having a pointer to a GimpProcedure). Added image_types and file_magic utility functions taken from plug-ins.[ch]. Still lives in the same crappy files because I am undecided where to put it... * app/pdb/gimpprocedure.c (gimp_procedure_real_execute): removed switch() statement and always call the internal marshaller because GimpProcedure::execute() is properly overridden by GimpPlugInProcedure now. * app/plug-in/plug-ins.[ch]: removed the mime_type and file_magic utilities added to GimpPlugInProcedure. * app/actions/file-commands.c * app/actions/plug-in-actions.[ch] * app/actions/plug-in-commands.[ch] * app/core/gimp-gui.[ch] * app/core/gimp.[ch] * app/core/gimpimage.[ch] * app/dialogs/file-open-dialog.c * app/dialogs/file-save-dialog.c * app/dialogs/print-size-dialog.c * app/file/file-open.[ch] * app/file/file-save.[ch] * app/file/file-utils.[ch] * app/gui/gui-vtable.c * app/menus/plug-in-menus.[ch] * app/plug-in/plug-in-def.[ch] * 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/widgets/gimpactiongroup.[ch] * app/widgets/gimpdnd-xds.c * app/widgets/gimpfiledialog.[ch] * app/widgets/gimpfileprocview.[ch] * app/widgets/gimppluginaction.[ch] * app/xcf/xcf.c * tools/pdbgen/pdb/fileops.pdb * tools/pdbgen/pdb/plug_in.pdb: changed addordingly. * app/pdb/fileops_cmds.c * app/pdb/plug_in_cmds.c: regenerated.
2006-04-05 16:38:33 +08:00
gchar *canonical;
gboolean null_name = FALSE;
gboolean valid_utf8 = FALSE;
app/plug-in/plug-in-types.h renamed to GimpPlugInProcedure and made a 2006-04-05 Michael Natterer <mitch@gimp.org> * app/plug-in/plug-in-types.h * app/plug-in/plug-in-proc-def.[ch]: renamed to GimpPlugInProcedure and made a GObject derived from GimpProcedure (instead of having a pointer to a GimpProcedure). Added image_types and file_magic utility functions taken from plug-ins.[ch]. Still lives in the same crappy files because I am undecided where to put it... * app/pdb/gimpprocedure.c (gimp_procedure_real_execute): removed switch() statement and always call the internal marshaller because GimpProcedure::execute() is properly overridden by GimpPlugInProcedure now. * app/plug-in/plug-ins.[ch]: removed the mime_type and file_magic utilities added to GimpPlugInProcedure. * app/actions/file-commands.c * app/actions/plug-in-actions.[ch] * app/actions/plug-in-commands.[ch] * app/core/gimp-gui.[ch] * app/core/gimp.[ch] * app/core/gimpimage.[ch] * app/dialogs/file-open-dialog.c * app/dialogs/file-save-dialog.c * app/dialogs/print-size-dialog.c * app/file/file-open.[ch] * app/file/file-save.[ch] * app/file/file-utils.[ch] * app/gui/gui-vtable.c * app/menus/plug-in-menus.[ch] * app/plug-in/plug-in-def.[ch] * 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/widgets/gimpactiongroup.[ch] * app/widgets/gimpdnd-xds.c * app/widgets/gimpfiledialog.[ch] * app/widgets/gimpfileprocview.[ch] * app/widgets/gimppluginaction.[ch] * app/xcf/xcf.c * tools/pdbgen/pdb/fileops.pdb * tools/pdbgen/pdb/plug_in.pdb: changed addordingly. * app/pdb/fileops_cmds.c * app/pdb/plug_in_cmds.c: regenerated.
2006-04-05 16:38:33 +08:00
gint i;
1997-11-25 06:05:25 +08:00
g_return_if_fail (proc_install != NULL);
g_return_if_fail (proc_install->name != NULL);
Changed naming scheme for PDB procedure names from 2005-08-03 Michael Natterer <mitch@gimp.org> Changed naming scheme for PDB procedure names from random_crap_that_traditionally_has_underscores to enforced-canonical-identifiers. I'm pretty sure some things are broken after this commit. More changes to come... * libgimpbase/gimpbase.def * libgimpbase/gimputils.[ch]: added gimp_canonicalize_identifier(). * app/pdb/procedural_db.[ch] (struct ProcRecord): added "gchar *original_name" to keep a procedure's original name as reigstered by plug-ins (compat cruft). (procedural_db_init_procs): canonicalized list of deprecated procedures. * app/plug-in/plug-in-proc-def.c (plug_in_proc_def_free): free original_name. * app/plug-in/plug-in-message.c: canonicalize procedure names which are received over the wire. * app/plug-in/plug-in-rc.c: serialize the original_name and create the canonicalized name on-the-fly when deserializing. * app/plug-in/plug-in-run.c: pass the original_name to plug-ins when running them because they strcmp() the passed procedure name. * app/plug-in/plug-ins.c (plug_ins_add_to_db): pass canonical procedure names to procedural_db_execute(). (plug_ins_file_proc_compare): special-case "gimp-xcf", not "gimp_xcf". * app/xcf/xcf.c: changed static XCF procedures accordingly. * tools/pdbgen/app.pl * tools/pdbgen/lib.pl: do some trivial substitutions to generate canonicalized names in app/, and C identifiers with underscores in libgimp/. * tools/pdbgen/pdb/brushes.pdb * tools/pdbgen/pdb/fileops.pdb * tools/pdbgen/pdb/gradients.pdb * tools/pdbgen/pdb/image.pdb * tools/pdbgen/pdb/palettes.pdb * tools/pdbgen/pdb/patterns.pdb * tools/pdbgen/pdb/plug_in.pdb * tools/pdbgen/pdb/procedural_db.pdb * tools/pdbgen/pdb/text_tool.pdb * tools/pdbgen/pdb/transform_tools.pdb: canonicaloized procedure names in calls to std_pdb_deprecated() and in procedure names in generated C code. * app/pdb/*_cmds.c * libgimp/*_pdb.c: regenerated.
2005-08-03 06:52:23 +08:00
canonical = gimp_canonicalize_identifier (proc_install->name);
/* Sanity check for array arguments */
1997-11-25 06:05:25 +08:00
libgimpwidgets/gimpquerybox.c configure the labels in the message dialog 2003-11-14 Michael Natterer <mitch@gimp.org> * libgimpwidgets/gimpquerybox.c * app/widgets/gimpwidgets-utils.c: configure the labels in the message dialog and the query boxes to do automatic word wrapping to be HIG compliant. * app/app_procs.c * app/batch.c * app/config/gimpconfig-deserialize.c * app/config/gimpconfig-path.c * app/config/gimpconfig-utils.c * app/config/gimpconfigwriter.c * app/config/gimpscanner.c * app/core/gimpbrush.c * app/core/gimpbrushgenerated.c * app/core/gimpbrushpipe.c * app/core/gimpdatafactory.c * app/core/gimpgradient.c * app/core/gimpimage-merge.c * app/core/gimpimage.c * app/core/gimpimagefile.c * app/core/gimplayer-floating-sel.c * app/core/gimppalette.c * app/core/gimppattern.c * app/core/gimpselection.c * app/display/gimpdisplayshell.c * app/file/file-utils.c * app/gui/brush-select.c * app/gui/dialogs-commands.c * app/gui/drawable-commands.c * app/gui/edit-commands.c * app/gui/file-commands.c * app/gui/file-new-dialog.c * app/gui/font-select.c * app/gui/gradient-select.c * app/gui/gui.c * app/gui/image-commands.c * app/gui/layers-commands.c * app/gui/palette-select.c * app/gui/palettes-commands.c * app/gui/pattern-select.c * app/gui/preferences-dialog.c * app/gui/select-commands.c * app/gui/stroke-dialog.c * app/gui/tool-options-menu.c * app/gui/vectors-commands.c * app/gui/view-commands.c * app/plug-in/plug-in-message.c * app/plug-in/plug-in.c * app/plug-in/plug-ins.c * app/text/gimptextlayer-xcf.c * app/text/gimptextlayer.c * app/tools/gimpcurvestool.c * app/tools/gimphuesaturationtool.c * app/tools/gimplevelstool.c * app/tools/gimptransformtool.c * app/vectors/gimpvectors-export.c * app/widgets/gimpdatafactoryview.c * app/widgets/gimphelp.c * app/widgets/gimptemplateview.c * app/widgets/gimptooloptionseditor.c * app/xcf/xcf.c * tools/pdbgen/pdb/image.pdb: removed explicit newlines from messages. Reduced number of translatable strings by making many file error messages the same. Quote single words and filenames with 'foo', not "foo". Replaced some more "drawable" by "layer". General message cleanup and consistency check. * app/pdb/image_cmds.c: regenerated.
2003-11-14 23:33:40 +08:00
for (i = 1; i < proc_install->nparams; i++)
1997-11-25 06:05:25 +08:00
{
Makefile.am configure.in added new directory libgimpbase/ 2001-05-21 Michael Natterer <mitch@gimp.org> * Makefile.am * configure.in * gimptool-1.4.in: added new directory libgimpbase/ * app/Makefile.am: link against the new lib. * app/appenums.h: removed the PDB enums which are in libgimpbase/gimpbasetypes.h now. They are all "Gimp" prefixed. * app/apptypes.h: #include "libgimpbase/gimpbasetypes.h" * app/[lots] * app/core/[of] * app/gui/[files] * app/tools/: changed includes and all PDB types. * app/pdb/*: regenerated. * libgimp/Makefile.am: don't build libgimpi.a uglyness any more. * libgimp/gimpenv.[ch] * libgimp/gimplimits.[hh] * libgimp/gimpparasite.[ch] * libgimp/gimpparasiteio.[ch] * libgimp/gimpprotocol.[ch] * libgimp/gimpsignal.[ch] * libgimp/gimpunit.h * libgimp/gimputils.[ch] * libgimp/gimpwire.[ch]: removed... * libgimpbase/*: ...and added here as new library. * libgimp/gimp.[ch] * libgimp/gimpdrawable.[ch] * libgimp/gimpenums.h * libgimp/gimpimage.[ch] * libgimp/gimptile.c * libgimp/gimptypes.h * libgimp/gimpunit.c: changed accordingly. Added the gimp_*_add_new_parasite to gimp.[ch], gimpdrawable.[ch] and gimpimage.[ch]. * libgimpwidgets/gimppatheditor.c * libgimpwidgets/gimpquerybox.c * libgimpwidgets/gimpsizeentry.c * libgimpwidgets/gimpunitmenu.c * libgimpwidgets/gimpwidgets.c * libgimpwidgets/gimpwidgetstypes.h: changed includes accordingly. * plug-ins/*/Makefile.am * plug-ins/common/mkgen.pl: link against libgimpbase. * tools/pdbgen/Makefile.am: scan libgimpbase/gimpbasetypes.h, so the enums are known to pdbgen... * tools/pdbgen/enumcode.pl: ...but don't write them out to libgimp/gimpenums.h * tools/pdbgen/app.pl: include libgimp/gimpbase.h in all *_cmds.c files. Added GIMP_ to the type names ganerated in app/. * tools/pdbgen/enums.pl: regenerated. * tools/pdbgen/pdb.pl * tools/pdbgen/pdb/fileops.pdb * tools/pdbgen/pdb/procedural_db.pdb * tools/pdbgen/pdb/unit.pdb: changed includes.
2001-05-21 21:58:46 +08:00
if ((proc_install->params[i].type == GIMP_PDB_INT32ARRAY ||
proc_install->params[i].type == GIMP_PDB_INT8ARRAY ||
proc_install->params[i].type == GIMP_PDB_FLOATARRAY ||
proc_install->params[i].type == GIMP_PDB_STRINGARRAY)
&&
proc_install->params[i - 1].type != GIMP_PDB_INT32)
{
app/actions/data-commands.c app/actions/documents-commands.c 2006-10-09 Michael Natterer <mitch@gimp.org> * app/actions/data-commands.c * app/actions/documents-commands.c * app/actions/drawable-commands.c * app/actions/gradients-commands.c * app/actions/image-commands.c * app/actions/layers-commands.c * app/actions/palettes-commands.c * app/actions/select-commands.c * app/actions/vectors-commands.c * app/core/gimp-contexts.c * app/core/gimp-documents.c * app/core/gimp-edit.c * app/core/gimp-modules.c * app/core/gimp-parasites.c * app/core/gimp-templates.c * app/core/gimp-units.c * app/core/gimpchannel.c * app/core/gimpdatafactory.[ch] * app/core/gimpdrawable-bucket-fill.c * app/core/gimpimage-merge.c * app/core/gimpimagefile.c * app/core/gimplayer-floating-sel.c * app/core/gimppdbprogress.c * app/core/gimpselection.c * app/dialogs/palette-import-dialog.c * app/display/gimpdisplayshell-dnd.c * app/gui/session.c * app/gui/themes.c * app/pdb/gimpprocedure.c * app/plug-in/gimpplugin-message.c * app/plug-in/gimpplugin.c * app/plug-in/gimppluginmanager-file.c * app/plug-in/gimppluginmanager.c * app/text/gimptextlayer-xcf.c * app/text/gimptextlayer.c * app/widgets/gimpcontrollers.c * app/widgets/gimpdataeditor.c * app/widgets/gimpdevices.c * app/widgets/gimpdnd-xds.c * app/widgets/gimplayertreeview.c * app/widgets/gimptoolbox-dnd.c * app/widgets/gimptoolbox.c * app/widgets/gimpuimanager.c * app/widgets/gimpvectorstreeview.c * tools/pdbgen/pdb/brush.pdb * tools/pdbgen/pdb/gradient.pdb * tools/pdbgen/pdb/palette.pdb: convert lots of g_message() to gimp_message(). Make sure we never pass unknown strings (like error->message) to printf-like functions directly; run them thorugh "%s" instead. Don't translate some messages which should never happen. * app/pdb/brush_cmds.c * app/pdb/gradient_cmds.c * app/pdb/palette_cmds.c: regenerated.
2006-10-10 02:49:15 +08:00
gimp_message (plug_in->manager->gimp, NULL, GIMP_MESSAGE_ERROR,
"Plug-In \"%s\"\n(%s)\n\n"
"attempted to install procedure \"%s\" "
"which fails to comply with the array parameter "
"passing standard. Argument %d is noncompliant.",
gimp_object_get_name (GIMP_OBJECT (plug_in)),
gimp_filename_to_utf8 (plug_in->prog),
canonical, i);
Changed naming scheme for PDB procedure names from 2005-08-03 Michael Natterer <mitch@gimp.org> Changed naming scheme for PDB procedure names from random_crap_that_traditionally_has_underscores to enforced-canonical-identifiers. I'm pretty sure some things are broken after this commit. More changes to come... * libgimpbase/gimpbase.def * libgimpbase/gimputils.[ch]: added gimp_canonicalize_identifier(). * app/pdb/procedural_db.[ch] (struct ProcRecord): added "gchar *original_name" to keep a procedure's original name as reigstered by plug-ins (compat cruft). (procedural_db_init_procs): canonicalized list of deprecated procedures. * app/plug-in/plug-in-proc-def.c (plug_in_proc_def_free): free original_name. * app/plug-in/plug-in-message.c: canonicalize procedure names which are received over the wire. * app/plug-in/plug-in-rc.c: serialize the original_name and create the canonicalized name on-the-fly when deserializing. * app/plug-in/plug-in-run.c: pass the original_name to plug-ins when running them because they strcmp() the passed procedure name. * app/plug-in/plug-ins.c (plug_ins_add_to_db): pass canonical procedure names to procedural_db_execute(). (plug_ins_file_proc_compare): special-case "gimp-xcf", not "gimp_xcf". * app/xcf/xcf.c: changed static XCF procedures accordingly. * tools/pdbgen/app.pl * tools/pdbgen/lib.pl: do some trivial substitutions to generate canonicalized names in app/, and C identifiers with underscores in libgimp/. * tools/pdbgen/pdb/brushes.pdb * tools/pdbgen/pdb/fileops.pdb * tools/pdbgen/pdb/gradients.pdb * tools/pdbgen/pdb/image.pdb * tools/pdbgen/pdb/palettes.pdb * tools/pdbgen/pdb/patterns.pdb * tools/pdbgen/pdb/plug_in.pdb * tools/pdbgen/pdb/procedural_db.pdb * tools/pdbgen/pdb/text_tool.pdb * tools/pdbgen/pdb/transform_tools.pdb: canonicaloized procedure names in calls to std_pdb_deprecated() and in procedure names in generated C code. * app/pdb/*_cmds.c * libgimp/*_pdb.c: regenerated.
2005-08-03 06:52:23 +08:00
g_free (canonical);
return;
}
1997-11-25 06:05:25 +08:00
}
/* Sanity check strings for UTF-8 validity */
#define VALIDATE(str) (g_utf8_validate ((str), -1, NULL))
#define VALIDATE_OR_NULL(str) ((str) == NULL || g_utf8_validate ((str), -1, NULL))
if (VALIDATE_OR_NULL (proc_install->menu_path) &&
VALIDATE (canonical) &&
VALIDATE_OR_NULL (proc_install->blurb) &&
VALIDATE_OR_NULL (proc_install->help) &&
VALIDATE_OR_NULL (proc_install->author) &&
VALIDATE_OR_NULL (proc_install->copyright) &&
VALIDATE_OR_NULL (proc_install->date))
{
null_name = FALSE;
valid_utf8 = TRUE;
for (i = 0; i < proc_install->nparams && valid_utf8 && !null_name; i++)
{
if (! proc_install->params[i].name)
{
null_name = TRUE;
}
else if (! (VALIDATE (proc_install->params[i].name) &&
VALIDATE_OR_NULL (proc_install->params[i].description)))
{
valid_utf8 = FALSE;
}
}
for (i = 0; i < proc_install->nreturn_vals && valid_utf8 && !null_name; i++)
{
if (! proc_install->return_vals[i].name)
{
null_name = TRUE;
}
else if (! (VALIDATE (proc_install->return_vals[i].name) &&
VALIDATE_OR_NULL (proc_install->return_vals[i].description)))
{
valid_utf8 = FALSE;
}
}
}
#undef VALIDATE
#undef VALIDATE_OR_NULL
if (null_name)
{
gimp_message (plug_in->manager->gimp, NULL, GIMP_MESSAGE_ERROR,
"Plug-In \"%s\"\n(%s)\n\n"
"attempted to install a procedure NULL parameter name.",
gimp_object_get_name (GIMP_OBJECT (plug_in)),
gimp_filename_to_utf8 (plug_in->prog));
g_free (canonical);
return;
}
libgimpwidgets/gimpquerybox.c configure the labels in the message dialog 2003-11-14 Michael Natterer <mitch@gimp.org> * libgimpwidgets/gimpquerybox.c * app/widgets/gimpwidgets-utils.c: configure the labels in the message dialog and the query boxes to do automatic word wrapping to be HIG compliant. * app/app_procs.c * app/batch.c * app/config/gimpconfig-deserialize.c * app/config/gimpconfig-path.c * app/config/gimpconfig-utils.c * app/config/gimpconfigwriter.c * app/config/gimpscanner.c * app/core/gimpbrush.c * app/core/gimpbrushgenerated.c * app/core/gimpbrushpipe.c * app/core/gimpdatafactory.c * app/core/gimpgradient.c * app/core/gimpimage-merge.c * app/core/gimpimage.c * app/core/gimpimagefile.c * app/core/gimplayer-floating-sel.c * app/core/gimppalette.c * app/core/gimppattern.c * app/core/gimpselection.c * app/display/gimpdisplayshell.c * app/file/file-utils.c * app/gui/brush-select.c * app/gui/dialogs-commands.c * app/gui/drawable-commands.c * app/gui/edit-commands.c * app/gui/file-commands.c * app/gui/file-new-dialog.c * app/gui/font-select.c * app/gui/gradient-select.c * app/gui/gui.c * app/gui/image-commands.c * app/gui/layers-commands.c * app/gui/palette-select.c * app/gui/palettes-commands.c * app/gui/pattern-select.c * app/gui/preferences-dialog.c * app/gui/select-commands.c * app/gui/stroke-dialog.c * app/gui/tool-options-menu.c * app/gui/vectors-commands.c * app/gui/view-commands.c * app/plug-in/plug-in-message.c * app/plug-in/plug-in.c * app/plug-in/plug-ins.c * app/text/gimptextlayer-xcf.c * app/text/gimptextlayer.c * app/tools/gimpcurvestool.c * app/tools/gimphuesaturationtool.c * app/tools/gimplevelstool.c * app/tools/gimptransformtool.c * app/vectors/gimpvectors-export.c * app/widgets/gimpdatafactoryview.c * app/widgets/gimphelp.c * app/widgets/gimptemplateview.c * app/widgets/gimptooloptionseditor.c * app/xcf/xcf.c * tools/pdbgen/pdb/image.pdb: removed explicit newlines from messages. Reduced number of translatable strings by making many file error messages the same. Quote single words and filenames with 'foo', not "foo". Replaced some more "drawable" by "layer". General message cleanup and consistency check. * app/pdb/image_cmds.c: regenerated.
2003-11-14 23:33:40 +08:00
if (! valid_utf8)
{
app/actions/data-commands.c app/actions/documents-commands.c 2006-10-09 Michael Natterer <mitch@gimp.org> * app/actions/data-commands.c * app/actions/documents-commands.c * app/actions/drawable-commands.c * app/actions/gradients-commands.c * app/actions/image-commands.c * app/actions/layers-commands.c * app/actions/palettes-commands.c * app/actions/select-commands.c * app/actions/vectors-commands.c * app/core/gimp-contexts.c * app/core/gimp-documents.c * app/core/gimp-edit.c * app/core/gimp-modules.c * app/core/gimp-parasites.c * app/core/gimp-templates.c * app/core/gimp-units.c * app/core/gimpchannel.c * app/core/gimpdatafactory.[ch] * app/core/gimpdrawable-bucket-fill.c * app/core/gimpimage-merge.c * app/core/gimpimagefile.c * app/core/gimplayer-floating-sel.c * app/core/gimppdbprogress.c * app/core/gimpselection.c * app/dialogs/palette-import-dialog.c * app/display/gimpdisplayshell-dnd.c * app/gui/session.c * app/gui/themes.c * app/pdb/gimpprocedure.c * app/plug-in/gimpplugin-message.c * app/plug-in/gimpplugin.c * app/plug-in/gimppluginmanager-file.c * app/plug-in/gimppluginmanager.c * app/text/gimptextlayer-xcf.c * app/text/gimptextlayer.c * app/widgets/gimpcontrollers.c * app/widgets/gimpdataeditor.c * app/widgets/gimpdevices.c * app/widgets/gimpdnd-xds.c * app/widgets/gimplayertreeview.c * app/widgets/gimptoolbox-dnd.c * app/widgets/gimptoolbox.c * app/widgets/gimpuimanager.c * app/widgets/gimpvectorstreeview.c * tools/pdbgen/pdb/brush.pdb * tools/pdbgen/pdb/gradient.pdb * tools/pdbgen/pdb/palette.pdb: convert lots of g_message() to gimp_message(). Make sure we never pass unknown strings (like error->message) to printf-like functions directly; run them thorugh "%s" instead. Don't translate some messages which should never happen. * app/pdb/brush_cmds.c * app/pdb/gradient_cmds.c * app/pdb/palette_cmds.c: regenerated.
2006-10-10 02:49:15 +08:00
gimp_message (plug_in->manager->gimp, NULL, GIMP_MESSAGE_ERROR,
"Plug-In \"%s\"\n(%s)\n\n"
"attempted to install a procedure with invalid UTF-8 strings.",
gimp_object_get_name (GIMP_OBJECT (plug_in)),
gimp_filename_to_utf8 (plug_in->prog));
Changed naming scheme for PDB procedure names from 2005-08-03 Michael Natterer <mitch@gimp.org> Changed naming scheme for PDB procedure names from random_crap_that_traditionally_has_underscores to enforced-canonical-identifiers. I'm pretty sure some things are broken after this commit. More changes to come... * libgimpbase/gimpbase.def * libgimpbase/gimputils.[ch]: added gimp_canonicalize_identifier(). * app/pdb/procedural_db.[ch] (struct ProcRecord): added "gchar *original_name" to keep a procedure's original name as reigstered by plug-ins (compat cruft). (procedural_db_init_procs): canonicalized list of deprecated procedures. * app/plug-in/plug-in-proc-def.c (plug_in_proc_def_free): free original_name. * app/plug-in/plug-in-message.c: canonicalize procedure names which are received over the wire. * app/plug-in/plug-in-rc.c: serialize the original_name and create the canonicalized name on-the-fly when deserializing. * app/plug-in/plug-in-run.c: pass the original_name to plug-ins when running them because they strcmp() the passed procedure name. * app/plug-in/plug-ins.c (plug_ins_add_to_db): pass canonical procedure names to procedural_db_execute(). (plug_ins_file_proc_compare): special-case "gimp-xcf", not "gimp_xcf". * app/xcf/xcf.c: changed static XCF procedures accordingly. * tools/pdbgen/app.pl * tools/pdbgen/lib.pl: do some trivial substitutions to generate canonicalized names in app/, and C identifiers with underscores in libgimp/. * tools/pdbgen/pdb/brushes.pdb * tools/pdbgen/pdb/fileops.pdb * tools/pdbgen/pdb/gradients.pdb * tools/pdbgen/pdb/image.pdb * tools/pdbgen/pdb/palettes.pdb * tools/pdbgen/pdb/patterns.pdb * tools/pdbgen/pdb/plug_in.pdb * tools/pdbgen/pdb/procedural_db.pdb * tools/pdbgen/pdb/text_tool.pdb * tools/pdbgen/pdb/transform_tools.pdb: canonicaloized procedure names in calls to std_pdb_deprecated() and in procedure names in generated C code. * app/pdb/*_cmds.c * libgimp/*_pdb.c: regenerated.
2005-08-03 06:52:23 +08:00
g_free (canonical);
return;
}
1997-11-25 06:05:25 +08:00
/* Create the procedure object */
1997-11-25 06:05:25 +08:00
switch (proc_install->type)
{
Makefile.am configure.in added new directory libgimpbase/ 2001-05-21 Michael Natterer <mitch@gimp.org> * Makefile.am * configure.in * gimptool-1.4.in: added new directory libgimpbase/ * app/Makefile.am: link against the new lib. * app/appenums.h: removed the PDB enums which are in libgimpbase/gimpbasetypes.h now. They are all "Gimp" prefixed. * app/apptypes.h: #include "libgimpbase/gimpbasetypes.h" * app/[lots] * app/core/[of] * app/gui/[files] * app/tools/: changed includes and all PDB types. * app/pdb/*: regenerated. * libgimp/Makefile.am: don't build libgimpi.a uglyness any more. * libgimp/gimpenv.[ch] * libgimp/gimplimits.[hh] * libgimp/gimpparasite.[ch] * libgimp/gimpparasiteio.[ch] * libgimp/gimpprotocol.[ch] * libgimp/gimpsignal.[ch] * libgimp/gimpunit.h * libgimp/gimputils.[ch] * libgimp/gimpwire.[ch]: removed... * libgimpbase/*: ...and added here as new library. * libgimp/gimp.[ch] * libgimp/gimpdrawable.[ch] * libgimp/gimpenums.h * libgimp/gimpimage.[ch] * libgimp/gimptile.c * libgimp/gimptypes.h * libgimp/gimpunit.c: changed accordingly. Added the gimp_*_add_new_parasite to gimp.[ch], gimpdrawable.[ch] and gimpimage.[ch]. * libgimpwidgets/gimppatheditor.c * libgimpwidgets/gimpquerybox.c * libgimpwidgets/gimpsizeentry.c * libgimpwidgets/gimpunitmenu.c * libgimpwidgets/gimpwidgets.c * libgimpwidgets/gimpwidgetstypes.h: changed includes accordingly. * plug-ins/*/Makefile.am * plug-ins/common/mkgen.pl: link against libgimpbase. * tools/pdbgen/Makefile.am: scan libgimpbase/gimpbasetypes.h, so the enums are known to pdbgen... * tools/pdbgen/enumcode.pl: ...but don't write them out to libgimp/gimpenums.h * tools/pdbgen/app.pl: include libgimp/gimpbase.h in all *_cmds.c files. Added GIMP_ to the type names ganerated in app/. * tools/pdbgen/enums.pl: regenerated. * tools/pdbgen/pdb.pl * tools/pdbgen/pdb/fileops.pdb * tools/pdbgen/pdb/procedural_db.pdb * tools/pdbgen/pdb/unit.pdb: changed includes.
2001-05-21 21:58:46 +08:00
case GIMP_PLUGIN:
case GIMP_EXTENSION:
app/plug-in/Makefile.am app/plug-in/plug-in-types.h removed... 2006-04-06 Michael Natterer <mitch@gimp.org> * app/plug-in/Makefile.am * app/plug-in/plug-in-types.h * app/plug-in/plug-in-proc-def.[ch]: removed... * app/pdb/Makefile.am * app/pdb/pdb-types.h * app/pdb/gimppluginprocedure.[ch]: ...and added here. Virtualized get_progname(). * app/pdb/gimptemporaryprocedure.[ch]: new class derived from GimpPlugInProcedure. * app/pdb/gimpprocedure.[ch] (struct GimpProcedure): remove union exec_method and all the structs it needed. Procedure execution is properly virtualized now. Removed gimp_procedure_initialize() and grow the args and values arrays dynamically in gimp_procedure_add_argument()/return_value(). Added marshal_func parameter to gimp_procedure_new(). * app/actions/plug-in-actions.c * app/actions/plug-in-commands.c * app/core/gimp-gui.c * app/dialogs/file-save-dialog.c * app/file/file-open.c * app/file/file-save.c * app/file/file-utils.c * app/gui/gui-vtable.c * app/menus/plug-in-menus.c * app/plug-in/plug-in-def.c * app/plug-in/plug-in-message.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-in.c * app/plug-in/plug-ins-query.c * app/plug-in/plug-ins.c * app/widgets/gimpfiledialog.c * app/widgets/gimpfileprocview.c * app/widgets/gimppluginaction.c * app/xcf/xcf.c * tools/pdbgen/pdb/fileops.pdb * tools/pdbgen/pdb/plug_in.pdb * tools/pdbgen/app.pl: changed accordingly. * app/pdb/*_cmds.c: regenerated. * app/pdb/gimp-pdb.c: added uglyness to make the app link again.
2006-04-06 18:01:30 +08:00
procedure = gimp_plug_in_procedure_new (proc_install->type,
plug_in->prog);
1997-11-25 06:05:25 +08:00
break;
Makefile.am configure.in added new directory libgimpbase/ 2001-05-21 Michael Natterer <mitch@gimp.org> * Makefile.am * configure.in * gimptool-1.4.in: added new directory libgimpbase/ * app/Makefile.am: link against the new lib. * app/appenums.h: removed the PDB enums which are in libgimpbase/gimpbasetypes.h now. They are all "Gimp" prefixed. * app/apptypes.h: #include "libgimpbase/gimpbasetypes.h" * app/[lots] * app/core/[of] * app/gui/[files] * app/tools/: changed includes and all PDB types. * app/pdb/*: regenerated. * libgimp/Makefile.am: don't build libgimpi.a uglyness any more. * libgimp/gimpenv.[ch] * libgimp/gimplimits.[hh] * libgimp/gimpparasite.[ch] * libgimp/gimpparasiteio.[ch] * libgimp/gimpprotocol.[ch] * libgimp/gimpsignal.[ch] * libgimp/gimpunit.h * libgimp/gimputils.[ch] * libgimp/gimpwire.[ch]: removed... * libgimpbase/*: ...and added here as new library. * libgimp/gimp.[ch] * libgimp/gimpdrawable.[ch] * libgimp/gimpenums.h * libgimp/gimpimage.[ch] * libgimp/gimptile.c * libgimp/gimptypes.h * libgimp/gimpunit.c: changed accordingly. Added the gimp_*_add_new_parasite to gimp.[ch], gimpdrawable.[ch] and gimpimage.[ch]. * libgimpwidgets/gimppatheditor.c * libgimpwidgets/gimpquerybox.c * libgimpwidgets/gimpsizeentry.c * libgimpwidgets/gimpunitmenu.c * libgimpwidgets/gimpwidgets.c * libgimpwidgets/gimpwidgetstypes.h: changed includes accordingly. * plug-ins/*/Makefile.am * plug-ins/common/mkgen.pl: link against libgimpbase. * tools/pdbgen/Makefile.am: scan libgimpbase/gimpbasetypes.h, so the enums are known to pdbgen... * tools/pdbgen/enumcode.pl: ...but don't write them out to libgimp/gimpenums.h * tools/pdbgen/app.pl: include libgimp/gimpbase.h in all *_cmds.c files. Added GIMP_ to the type names ganerated in app/. * tools/pdbgen/enums.pl: regenerated. * tools/pdbgen/pdb.pl * tools/pdbgen/pdb/fileops.pdb * tools/pdbgen/pdb/procedural_db.pdb * tools/pdbgen/pdb/unit.pdb: changed includes.
2001-05-21 21:58:46 +08:00
case GIMP_TEMPORARY:
app/plug-in/Makefile.am app/plug-in/plug-in-types.h removed... 2006-04-06 Michael Natterer <mitch@gimp.org> * app/plug-in/Makefile.am * app/plug-in/plug-in-types.h * app/plug-in/plug-in-proc-def.[ch]: removed... * app/pdb/Makefile.am * app/pdb/pdb-types.h * app/pdb/gimppluginprocedure.[ch]: ...and added here. Virtualized get_progname(). * app/pdb/gimptemporaryprocedure.[ch]: new class derived from GimpPlugInProcedure. * app/pdb/gimpprocedure.[ch] (struct GimpProcedure): remove union exec_method and all the structs it needed. Procedure execution is properly virtualized now. Removed gimp_procedure_initialize() and grow the args and values arrays dynamically in gimp_procedure_add_argument()/return_value(). Added marshal_func parameter to gimp_procedure_new(). * app/actions/plug-in-actions.c * app/actions/plug-in-commands.c * app/core/gimp-gui.c * app/dialogs/file-save-dialog.c * app/file/file-open.c * app/file/file-save.c * app/file/file-utils.c * app/gui/gui-vtable.c * app/menus/plug-in-menus.c * app/plug-in/plug-in-def.c * app/plug-in/plug-in-message.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-in.c * app/plug-in/plug-ins-query.c * app/plug-in/plug-ins.c * app/widgets/gimpfiledialog.c * app/widgets/gimpfileprocview.c * app/widgets/gimppluginaction.c * app/xcf/xcf.c * tools/pdbgen/pdb/fileops.pdb * tools/pdbgen/pdb/plug_in.pdb * tools/pdbgen/app.pl: changed accordingly. * app/pdb/*_cmds.c: regenerated. * app/pdb/gimp-pdb.c: added uglyness to make the app link again.
2006-04-06 18:01:30 +08:00
procedure = gimp_temporary_procedure_new (plug_in);
1997-11-25 06:05:25 +08:00
break;
}
app/plug-in/Makefile.am app/plug-in/plug-in-types.h removed... 2006-04-06 Michael Natterer <mitch@gimp.org> * app/plug-in/Makefile.am * app/plug-in/plug-in-types.h * app/plug-in/plug-in-proc-def.[ch]: removed... * app/pdb/Makefile.am * app/pdb/pdb-types.h * app/pdb/gimppluginprocedure.[ch]: ...and added here. Virtualized get_progname(). * app/pdb/gimptemporaryprocedure.[ch]: new class derived from GimpPlugInProcedure. * app/pdb/gimpprocedure.[ch] (struct GimpProcedure): remove union exec_method and all the structs it needed. Procedure execution is properly virtualized now. Removed gimp_procedure_initialize() and grow the args and values arrays dynamically in gimp_procedure_add_argument()/return_value(). Added marshal_func parameter to gimp_procedure_new(). * app/actions/plug-in-actions.c * app/actions/plug-in-commands.c * app/core/gimp-gui.c * app/dialogs/file-save-dialog.c * app/file/file-open.c * app/file/file-save.c * app/file/file-utils.c * app/gui/gui-vtable.c * app/menus/plug-in-menus.c * app/plug-in/plug-in-def.c * app/plug-in/plug-in-message.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-in.c * app/plug-in/plug-ins-query.c * app/plug-in/plug-ins.c * app/widgets/gimpfiledialog.c * app/widgets/gimpfileprocview.c * app/widgets/gimppluginaction.c * app/xcf/xcf.c * tools/pdbgen/pdb/fileops.pdb * tools/pdbgen/pdb/plug_in.pdb * tools/pdbgen/app.pl: changed accordingly. * app/pdb/*_cmds.c: regenerated. * app/pdb/gimp-pdb.c: added uglyness to make the app link again.
2006-04-06 18:01:30 +08:00
proc = GIMP_PLUG_IN_PROCEDURE (procedure);
1997-11-25 06:05:25 +08:00
app/plug-in/plug-in-types.h renamed to GimpPlugInProcedure and made a 2006-04-05 Michael Natterer <mitch@gimp.org> * app/plug-in/plug-in-types.h * app/plug-in/plug-in-proc-def.[ch]: renamed to GimpPlugInProcedure and made a GObject derived from GimpProcedure (instead of having a pointer to a GimpProcedure). Added image_types and file_magic utility functions taken from plug-ins.[ch]. Still lives in the same crappy files because I am undecided where to put it... * app/pdb/gimpprocedure.c (gimp_procedure_real_execute): removed switch() statement and always call the internal marshaller because GimpProcedure::execute() is properly overridden by GimpPlugInProcedure now. * app/plug-in/plug-ins.[ch]: removed the mime_type and file_magic utilities added to GimpPlugInProcedure. * app/actions/file-commands.c * app/actions/plug-in-actions.[ch] * app/actions/plug-in-commands.[ch] * app/core/gimp-gui.[ch] * app/core/gimp.[ch] * app/core/gimpimage.[ch] * app/dialogs/file-open-dialog.c * app/dialogs/file-save-dialog.c * app/dialogs/print-size-dialog.c * app/file/file-open.[ch] * app/file/file-save.[ch] * app/file/file-utils.[ch] * app/gui/gui-vtable.c * app/menus/plug-in-menus.[ch] * app/plug-in/plug-in-def.[ch] * 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/widgets/gimpactiongroup.[ch] * app/widgets/gimpdnd-xds.c * app/widgets/gimpfiledialog.[ch] * app/widgets/gimpfileprocview.[ch] * app/widgets/gimppluginaction.[ch] * app/xcf/xcf.c * tools/pdbgen/pdb/fileops.pdb * tools/pdbgen/pdb/plug_in.pdb: changed addordingly. * app/pdb/fileops_cmds.c * app/pdb/plug_in_cmds.c: regenerated.
2006-04-05 16:38:33 +08:00
proc->mtime = time (NULL);
proc->installed_during_init = (plug_in->call_mode == GIMP_PLUG_IN_CALL_INIT);
1997-11-25 06:05:25 +08:00
gimp_object_take_name (GIMP_OBJECT (procedure), canonical);
gimp_procedure_set_strings (procedure,
proc_install->name,
proc_install->blurb,
proc_install->help,
proc_install->author,
proc_install->copyright,
proc_install->date,
NULL);
1997-11-25 06:05:25 +08:00
gimp_plug_in_procedure_set_image_types (proc, proc_install->image_types);
for (i = 0; i < proc_install->nparams; i++)
1997-11-25 06:05:25 +08:00
{
GParamSpec *pspec =
app/plug-in/Makefile.am app/plug-in/plug-in-types.h new object which keeps 2006-04-29 Michael Natterer <mitch@gimp.org> * app/plug-in/Makefile.am * app/plug-in/plug-in-types.h * app/plug-in/gimppluginmanager.[ch]: new object which keeps all plug-in related stuff that was kept in the Gimp instance. Has "menu-branch-added" and "last-plug-in-changed" signals. * app/plug-in/plug-ins.[ch]: removed, all its functions are in GimpPlugInManager now. * app/core/gimpmarshal.list: new marshaller for the new object. * app/core/gimp.[ch]: removed all plug-in related stuff and keep a GimpPlugInManager around. * app/plug-in/plug-in-data.[ch] * app/plug-in/plug-in-file.[ch] * app/plug-in/plug-in-help-domain.[ch] * app/plug-in/plug-in-locale-domain.[ch] * app/plug-in/plug-in-menu-branch.[ch] * app/plug-in/plug-ins-query.[ch]: removed... * app/plug-in/gimppluginmanager-data.[ch] * app/plug-in/gimppluginmanager-file.[ch] * app/plug-in/gimppluginmanager-help-domain.[ch] * app/plug-in/gimppluginmanager-locale-domain.[ch] * app/plug-in/gimppluginmanager-menu-branch.[ch] * app/plug-in/gimppluginmanager-query.[ch]: ...and added as methods of GimpPlugInManager. * app/plug-in/plug-in-debug.[ch] * app/plug-in/plug-in-shm.[ch]: removed... * app/plug-in/gimpplugindebug.[ch] * app/plug-in/gimppluginshm.[ch]: ...and added as properly namespeced structs with constructors and destructors. * app/core/Makefile.am * app/core/gimpenvirontable.[ch] * app/core/gimpinterpreterdb.[ch]: removed... * app/plug-in/gimpenvirontable.[ch] * app/plug-in/gimpinterpreterdb.[ch]: ...and added here unchanged. * app/core/gimp-gui.[ch] * app/gui/gui-vtable.c: remove gimp_menus_create_branch() and all related stuff. * app/actions/plug-in-actions.[ch]: connect to the plug-in-manager's "menu-path-added" signal and create menu branch actions accordingly. * app/plug-in/plug-in-context.c * app/plug-in/plug-in-message.c * app/plug-in/plug-in-progress.c * app/plug-in/plug-in-run.[ch] * app/plug-in/plug-in.[ch] * app/app_procs.c * app/actions/file-commands.c * app/actions/plug-in-commands.c * app/core/gimpimage.c * app/dialogs/file-open-location-dialog.c * app/dialogs/file-save-dialog.c * app/file/file-open.c * app/gui/gui.c * app/menus/plug-in-menus.c * app/pdb/gimppluginprocedure.c * app/pdb/gimptemporaryprocedure.c * app/widgets/gimpdnd-xds.c * app/widgets/gimpfiledialog.c * app/widgets/gimpfileprocview.c * app/widgets/gimphelp.c * app/widgets/gimpthumbbox.c * app/xcf/xcf.c * tools/pdbgen/pdb/context.pdb * tools/pdbgen/pdb/drawable.pdb * tools/pdbgen/pdb/fileops.pdb * tools/pdbgen/pdb/help.pdb * tools/pdbgen/pdb/message.pdb * tools/pdbgen/pdb/plug_in.pdb * tools/pdbgen/pdb/procedural_db.pdb * tools/pdbgen/pdb/progress.pdb * tools/pdbgen/pdb/undo.pdb: follow above refactoring. * app/pdb/context_cmds.c * app/pdb/drawable_cmds.c * app/pdb/fileops_cmds.c * app/pdb/help_cmds.c * app/pdb/message_cmds.c * app/pdb/plug_in_cmds.c * app/pdb/procedural_db_cmds.c * app/pdb/progress_cmds.c * app/pdb/undo_cmds.c: regenerated.
2006-04-29 06:26:51 +08:00
gimp_pdb_compat_param_spec (plug_in->manager->gimp,
proc_install->params[i].type,
proc_install->params[i].name,
proc_install->params[i].description);
gimp_procedure_add_argument (procedure, pspec);
1997-11-25 06:05:25 +08:00
}
for (i = 0; i < proc_install->nreturn_vals; i++)
1997-11-25 06:05:25 +08:00
{
GParamSpec *pspec =
app/plug-in/Makefile.am app/plug-in/plug-in-types.h new object which keeps 2006-04-29 Michael Natterer <mitch@gimp.org> * app/plug-in/Makefile.am * app/plug-in/plug-in-types.h * app/plug-in/gimppluginmanager.[ch]: new object which keeps all plug-in related stuff that was kept in the Gimp instance. Has "menu-branch-added" and "last-plug-in-changed" signals. * app/plug-in/plug-ins.[ch]: removed, all its functions are in GimpPlugInManager now. * app/core/gimpmarshal.list: new marshaller for the new object. * app/core/gimp.[ch]: removed all plug-in related stuff and keep a GimpPlugInManager around. * app/plug-in/plug-in-data.[ch] * app/plug-in/plug-in-file.[ch] * app/plug-in/plug-in-help-domain.[ch] * app/plug-in/plug-in-locale-domain.[ch] * app/plug-in/plug-in-menu-branch.[ch] * app/plug-in/plug-ins-query.[ch]: removed... * app/plug-in/gimppluginmanager-data.[ch] * app/plug-in/gimppluginmanager-file.[ch] * app/plug-in/gimppluginmanager-help-domain.[ch] * app/plug-in/gimppluginmanager-locale-domain.[ch] * app/plug-in/gimppluginmanager-menu-branch.[ch] * app/plug-in/gimppluginmanager-query.[ch]: ...and added as methods of GimpPlugInManager. * app/plug-in/plug-in-debug.[ch] * app/plug-in/plug-in-shm.[ch]: removed... * app/plug-in/gimpplugindebug.[ch] * app/plug-in/gimppluginshm.[ch]: ...and added as properly namespeced structs with constructors and destructors. * app/core/Makefile.am * app/core/gimpenvirontable.[ch] * app/core/gimpinterpreterdb.[ch]: removed... * app/plug-in/gimpenvirontable.[ch] * app/plug-in/gimpinterpreterdb.[ch]: ...and added here unchanged. * app/core/gimp-gui.[ch] * app/gui/gui-vtable.c: remove gimp_menus_create_branch() and all related stuff. * app/actions/plug-in-actions.[ch]: connect to the plug-in-manager's "menu-path-added" signal and create menu branch actions accordingly. * app/plug-in/plug-in-context.c * app/plug-in/plug-in-message.c * app/plug-in/plug-in-progress.c * app/plug-in/plug-in-run.[ch] * app/plug-in/plug-in.[ch] * app/app_procs.c * app/actions/file-commands.c * app/actions/plug-in-commands.c * app/core/gimpimage.c * app/dialogs/file-open-location-dialog.c * app/dialogs/file-save-dialog.c * app/file/file-open.c * app/gui/gui.c * app/menus/plug-in-menus.c * app/pdb/gimppluginprocedure.c * app/pdb/gimptemporaryprocedure.c * app/widgets/gimpdnd-xds.c * app/widgets/gimpfiledialog.c * app/widgets/gimpfileprocview.c * app/widgets/gimphelp.c * app/widgets/gimpthumbbox.c * app/xcf/xcf.c * tools/pdbgen/pdb/context.pdb * tools/pdbgen/pdb/drawable.pdb * tools/pdbgen/pdb/fileops.pdb * tools/pdbgen/pdb/help.pdb * tools/pdbgen/pdb/message.pdb * tools/pdbgen/pdb/plug_in.pdb * tools/pdbgen/pdb/procedural_db.pdb * tools/pdbgen/pdb/progress.pdb * tools/pdbgen/pdb/undo.pdb: follow above refactoring. * app/pdb/context_cmds.c * app/pdb/drawable_cmds.c * app/pdb/fileops_cmds.c * app/pdb/help_cmds.c * app/pdb/message_cmds.c * app/pdb/plug_in_cmds.c * app/pdb/procedural_db_cmds.c * app/pdb/progress_cmds.c * app/pdb/undo_cmds.c: regenerated.
2006-04-29 06:26:51 +08:00
gimp_pdb_compat_param_spec (plug_in->manager->gimp,
proc_install->return_vals[i].type,
proc_install->return_vals[i].name,
proc_install->return_vals[i].description);
gimp_procedure_add_return_value (procedure, pspec);
1997-11-25 06:05:25 +08:00
}
app/plug-in/Makefile.am app/plug-in/plug-in-types.h removed... 2006-04-06 Michael Natterer <mitch@gimp.org> * app/plug-in/Makefile.am * app/plug-in/plug-in-types.h * app/plug-in/plug-in-proc-def.[ch]: removed... * app/pdb/Makefile.am * app/pdb/pdb-types.h * app/pdb/gimppluginprocedure.[ch]: ...and added here. Virtualized get_progname(). * app/pdb/gimptemporaryprocedure.[ch]: new class derived from GimpPlugInProcedure. * app/pdb/gimpprocedure.[ch] (struct GimpProcedure): remove union exec_method and all the structs it needed. Procedure execution is properly virtualized now. Removed gimp_procedure_initialize() and grow the args and values arrays dynamically in gimp_procedure_add_argument()/return_value(). Added marshal_func parameter to gimp_procedure_new(). * app/actions/plug-in-actions.c * app/actions/plug-in-commands.c * app/core/gimp-gui.c * app/dialogs/file-save-dialog.c * app/file/file-open.c * app/file/file-save.c * app/file/file-utils.c * app/gui/gui-vtable.c * app/menus/plug-in-menus.c * app/plug-in/plug-in-def.c * app/plug-in/plug-in-message.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-in.c * app/plug-in/plug-ins-query.c * app/plug-in/plug-ins.c * app/widgets/gimpfiledialog.c * app/widgets/gimpfileprocview.c * app/widgets/gimppluginaction.c * app/xcf/xcf.c * tools/pdbgen/pdb/fileops.pdb * tools/pdbgen/pdb/plug_in.pdb * tools/pdbgen/app.pl: changed accordingly. * app/pdb/*_cmds.c: regenerated. * app/pdb/gimp-pdb.c: added uglyness to make the app link again.
2006-04-06 18:01:30 +08:00
/* Sanity check menu path */
added a shitload of new GTypes and corresponding GParamSpecs to use them 2006-04-03 Michael Natterer <mitch@gimp.org> * app/core/gimpparamspecs.[ch]: added a shitload of new GTypes and corresponding GParamSpecs to use them as PDB arguments. Each GimpPDBArgType has one or more corresponding GTypes in the core now. * app/pdb/gimpargument.[ch] (struct GimpArgument) (struct GimpArgumentSpec): removed "value" member because the GValue's/GParamSpec's GType carries just as much information now. (gimp_argument_type_to_pdb_arg_type): new function which maps GTypes to GimpPDBArgType. (gimp_pdb_arg_type_to_string): formerly known as procedural_db_type_name(). * app/pdb/gimpprocedure.[ch] * app/pdb/procedural_db.[ch]: completely switch to GValue. Use the new GParamSpecs for procedure arguments. GimpPDBArgType is only used for adding compat args/values of plug-in procedures. (procedural_db_run_proc): the va_list expects a sequence of (GType, value, GType, value, ..., G_TYPE_NONE) now. * app/plug-in/plug-in-params.[ch]: changed accordingly. (plug_in_param_defs_check): removed this function. * app/plug-in/plug-in-message.c (plug_in_handle_proc_install): use plug_in_proc_args_check() instead and initialize the GimpProcedure before doing so. * tools/pdbgen/app.pl * tools/pdbgen/pdb.pl: use the new param spec types and their utility functions. Changed argument/value registration accordingly. * app/pdb/procedural-db-query.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-in-progress.c * app/plug-in/plug-in-rc.c * app/plug-in/plug-ins.c * app/widgets/gimpbrushselect.c * app/widgets/gimpfontselect.c * app/widgets/gimpgradientselect.c * app/widgets/gimphelp.c * app/widgets/gimppaletteselect.c * app/widgets/gimppatternselect.c * tools/pdbgen/pdb/fileops.pdb * tools/pdbgen/pdb/image.pdb * tools/pdbgen/pdb/procedural_db.pdb: changed accordingly. * app/pdb/*_cmds.c: regenerated.
2006-04-04 04:54:55 +08:00
if (proc_install->menu_path)
{
if (proc_install->menu_path[0] == '<')
{
GError *error = NULL;
if (! gimp_plug_in_procedure_add_menu_path (proc,
proc_install->menu_path,
&error))
added a shitload of new GTypes and corresponding GParamSpecs to use them 2006-04-03 Michael Natterer <mitch@gimp.org> * app/core/gimpparamspecs.[ch]: added a shitload of new GTypes and corresponding GParamSpecs to use them as PDB arguments. Each GimpPDBArgType has one or more corresponding GTypes in the core now. * app/pdb/gimpargument.[ch] (struct GimpArgument) (struct GimpArgumentSpec): removed "value" member because the GValue's/GParamSpec's GType carries just as much information now. (gimp_argument_type_to_pdb_arg_type): new function which maps GTypes to GimpPDBArgType. (gimp_pdb_arg_type_to_string): formerly known as procedural_db_type_name(). * app/pdb/gimpprocedure.[ch] * app/pdb/procedural_db.[ch]: completely switch to GValue. Use the new GParamSpecs for procedure arguments. GimpPDBArgType is only used for adding compat args/values of plug-in procedures. (procedural_db_run_proc): the va_list expects a sequence of (GType, value, GType, value, ..., G_TYPE_NONE) now. * app/plug-in/plug-in-params.[ch]: changed accordingly. (plug_in_param_defs_check): removed this function. * app/plug-in/plug-in-message.c (plug_in_handle_proc_install): use plug_in_proc_args_check() instead and initialize the GimpProcedure before doing so. * tools/pdbgen/app.pl * tools/pdbgen/pdb.pl: use the new param spec types and their utility functions. Changed argument/value registration accordingly. * app/pdb/procedural-db-query.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-in-progress.c * app/plug-in/plug-in-rc.c * app/plug-in/plug-ins.c * app/widgets/gimpbrushselect.c * app/widgets/gimpfontselect.c * app/widgets/gimpgradientselect.c * app/widgets/gimphelp.c * app/widgets/gimppaletteselect.c * app/widgets/gimppatternselect.c * tools/pdbgen/pdb/fileops.pdb * tools/pdbgen/pdb/image.pdb * tools/pdbgen/pdb/procedural_db.pdb: changed accordingly. * app/pdb/*_cmds.c: regenerated.
2006-04-04 04:54:55 +08:00
{
app/actions/data-commands.c app/actions/documents-commands.c 2006-10-09 Michael Natterer <mitch@gimp.org> * app/actions/data-commands.c * app/actions/documents-commands.c * app/actions/drawable-commands.c * app/actions/gradients-commands.c * app/actions/image-commands.c * app/actions/layers-commands.c * app/actions/palettes-commands.c * app/actions/select-commands.c * app/actions/vectors-commands.c * app/core/gimp-contexts.c * app/core/gimp-documents.c * app/core/gimp-edit.c * app/core/gimp-modules.c * app/core/gimp-parasites.c * app/core/gimp-templates.c * app/core/gimp-units.c * app/core/gimpchannel.c * app/core/gimpdatafactory.[ch] * app/core/gimpdrawable-bucket-fill.c * app/core/gimpimage-merge.c * app/core/gimpimagefile.c * app/core/gimplayer-floating-sel.c * app/core/gimppdbprogress.c * app/core/gimpselection.c * app/dialogs/palette-import-dialog.c * app/display/gimpdisplayshell-dnd.c * app/gui/session.c * app/gui/themes.c * app/pdb/gimpprocedure.c * app/plug-in/gimpplugin-message.c * app/plug-in/gimpplugin.c * app/plug-in/gimppluginmanager-file.c * app/plug-in/gimppluginmanager.c * app/text/gimptextlayer-xcf.c * app/text/gimptextlayer.c * app/widgets/gimpcontrollers.c * app/widgets/gimpdataeditor.c * app/widgets/gimpdevices.c * app/widgets/gimpdnd-xds.c * app/widgets/gimplayertreeview.c * app/widgets/gimptoolbox-dnd.c * app/widgets/gimptoolbox.c * app/widgets/gimpuimanager.c * app/widgets/gimpvectorstreeview.c * tools/pdbgen/pdb/brush.pdb * tools/pdbgen/pdb/gradient.pdb * tools/pdbgen/pdb/palette.pdb: convert lots of g_message() to gimp_message(). Make sure we never pass unknown strings (like error->message) to printf-like functions directly; run them thorugh "%s" instead. Don't translate some messages which should never happen. * app/pdb/brush_cmds.c * app/pdb/gradient_cmds.c * app/pdb/palette_cmds.c: regenerated.
2006-10-10 02:49:15 +08:00
gimp_message (plug_in->manager->gimp, NULL, GIMP_MESSAGE_WARNING,
"%s", error->message);
added a shitload of new GTypes and corresponding GParamSpecs to use them 2006-04-03 Michael Natterer <mitch@gimp.org> * app/core/gimpparamspecs.[ch]: added a shitload of new GTypes and corresponding GParamSpecs to use them as PDB arguments. Each GimpPDBArgType has one or more corresponding GTypes in the core now. * app/pdb/gimpargument.[ch] (struct GimpArgument) (struct GimpArgumentSpec): removed "value" member because the GValue's/GParamSpec's GType carries just as much information now. (gimp_argument_type_to_pdb_arg_type): new function which maps GTypes to GimpPDBArgType. (gimp_pdb_arg_type_to_string): formerly known as procedural_db_type_name(). * app/pdb/gimpprocedure.[ch] * app/pdb/procedural_db.[ch]: completely switch to GValue. Use the new GParamSpecs for procedure arguments. GimpPDBArgType is only used for adding compat args/values of plug-in procedures. (procedural_db_run_proc): the va_list expects a sequence of (GType, value, GType, value, ..., G_TYPE_NONE) now. * app/plug-in/plug-in-params.[ch]: changed accordingly. (plug_in_param_defs_check): removed this function. * app/plug-in/plug-in-message.c (plug_in_handle_proc_install): use plug_in_proc_args_check() instead and initialize the GimpProcedure before doing so. * tools/pdbgen/app.pl * tools/pdbgen/pdb.pl: use the new param spec types and their utility functions. Changed argument/value registration accordingly. * app/pdb/procedural-db-query.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-in-progress.c * app/plug-in/plug-in-rc.c * app/plug-in/plug-ins.c * app/widgets/gimpbrushselect.c * app/widgets/gimpfontselect.c * app/widgets/gimpgradientselect.c * app/widgets/gimphelp.c * app/widgets/gimppaletteselect.c * app/widgets/gimppatternselect.c * tools/pdbgen/pdb/fileops.pdb * tools/pdbgen/pdb/image.pdb * tools/pdbgen/pdb/procedural_db.pdb: changed accordingly. * app/pdb/*_cmds.c: regenerated.
2006-04-04 04:54:55 +08:00
g_clear_error (&error);
}
}
else
{
app/plug-in/plug-in-types.h renamed to GimpPlugInProcedure and made a 2006-04-05 Michael Natterer <mitch@gimp.org> * app/plug-in/plug-in-types.h * app/plug-in/plug-in-proc-def.[ch]: renamed to GimpPlugInProcedure and made a GObject derived from GimpProcedure (instead of having a pointer to a GimpProcedure). Added image_types and file_magic utility functions taken from plug-ins.[ch]. Still lives in the same crappy files because I am undecided where to put it... * app/pdb/gimpprocedure.c (gimp_procedure_real_execute): removed switch() statement and always call the internal marshaller because GimpProcedure::execute() is properly overridden by GimpPlugInProcedure now. * app/plug-in/plug-ins.[ch]: removed the mime_type and file_magic utilities added to GimpPlugInProcedure. * app/actions/file-commands.c * app/actions/plug-in-actions.[ch] * app/actions/plug-in-commands.[ch] * app/core/gimp-gui.[ch] * app/core/gimp.[ch] * app/core/gimpimage.[ch] * app/dialogs/file-open-dialog.c * app/dialogs/file-save-dialog.c * app/dialogs/print-size-dialog.c * app/file/file-open.[ch] * app/file/file-save.[ch] * app/file/file-utils.[ch] * app/gui/gui-vtable.c * app/menus/plug-in-menus.[ch] * app/plug-in/plug-in-def.[ch] * 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/widgets/gimpactiongroup.[ch] * app/widgets/gimpdnd-xds.c * app/widgets/gimpfiledialog.[ch] * app/widgets/gimpfileprocview.[ch] * app/widgets/gimppluginaction.[ch] * app/xcf/xcf.c * tools/pdbgen/pdb/fileops.pdb * tools/pdbgen/pdb/plug_in.pdb: changed addordingly. * app/pdb/fileops_cmds.c * app/pdb/plug_in_cmds.c: regenerated.
2006-04-05 16:38:33 +08:00
proc->menu_label = g_strdup (proc_install->menu_path);
added a shitload of new GTypes and corresponding GParamSpecs to use them 2006-04-03 Michael Natterer <mitch@gimp.org> * app/core/gimpparamspecs.[ch]: added a shitload of new GTypes and corresponding GParamSpecs to use them as PDB arguments. Each GimpPDBArgType has one or more corresponding GTypes in the core now. * app/pdb/gimpargument.[ch] (struct GimpArgument) (struct GimpArgumentSpec): removed "value" member because the GValue's/GParamSpec's GType carries just as much information now. (gimp_argument_type_to_pdb_arg_type): new function which maps GTypes to GimpPDBArgType. (gimp_pdb_arg_type_to_string): formerly known as procedural_db_type_name(). * app/pdb/gimpprocedure.[ch] * app/pdb/procedural_db.[ch]: completely switch to GValue. Use the new GParamSpecs for procedure arguments. GimpPDBArgType is only used for adding compat args/values of plug-in procedures. (procedural_db_run_proc): the va_list expects a sequence of (GType, value, GType, value, ..., G_TYPE_NONE) now. * app/plug-in/plug-in-params.[ch]: changed accordingly. (plug_in_param_defs_check): removed this function. * app/plug-in/plug-in-message.c (plug_in_handle_proc_install): use plug_in_proc_args_check() instead and initialize the GimpProcedure before doing so. * tools/pdbgen/app.pl * tools/pdbgen/pdb.pl: use the new param spec types and their utility functions. Changed argument/value registration accordingly. * app/pdb/procedural-db-query.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-in-progress.c * app/plug-in/plug-in-rc.c * app/plug-in/plug-ins.c * app/widgets/gimpbrushselect.c * app/widgets/gimpfontselect.c * app/widgets/gimpgradientselect.c * app/widgets/gimphelp.c * app/widgets/gimppaletteselect.c * app/widgets/gimppatternselect.c * tools/pdbgen/pdb/fileops.pdb * tools/pdbgen/pdb/image.pdb * tools/pdbgen/pdb/procedural_db.pdb: changed accordingly. * app/pdb/*_cmds.c: regenerated.
2006-04-04 04:54:55 +08:00
}
}
app/plug-in/Makefile.am app/plug-in/plug-in-types.h removed... 2006-04-06 Michael Natterer <mitch@gimp.org> * app/plug-in/Makefile.am * app/plug-in/plug-in-types.h * app/plug-in/plug-in-proc-def.[ch]: removed... * app/pdb/Makefile.am * app/pdb/pdb-types.h * app/pdb/gimppluginprocedure.[ch]: ...and added here. Virtualized get_progname(). * app/pdb/gimptemporaryprocedure.[ch]: new class derived from GimpPlugInProcedure. * app/pdb/gimpprocedure.[ch] (struct GimpProcedure): remove union exec_method and all the structs it needed. Procedure execution is properly virtualized now. Removed gimp_procedure_initialize() and grow the args and values arrays dynamically in gimp_procedure_add_argument()/return_value(). Added marshal_func parameter to gimp_procedure_new(). * app/actions/plug-in-actions.c * app/actions/plug-in-commands.c * app/core/gimp-gui.c * app/dialogs/file-save-dialog.c * app/file/file-open.c * app/file/file-save.c * app/file/file-utils.c * app/gui/gui-vtable.c * app/menus/plug-in-menus.c * app/plug-in/plug-in-def.c * app/plug-in/plug-in-message.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-in.c * app/plug-in/plug-ins-query.c * app/plug-in/plug-ins.c * app/widgets/gimpfiledialog.c * app/widgets/gimpfileprocview.c * app/widgets/gimppluginaction.c * app/xcf/xcf.c * tools/pdbgen/pdb/fileops.pdb * tools/pdbgen/pdb/plug_in.pdb * tools/pdbgen/app.pl: changed accordingly. * app/pdb/*_cmds.c: regenerated. * app/pdb/gimp-pdb.c: added uglyness to make the app link again.
2006-04-06 18:01:30 +08:00
/* Install the procedure */
1997-11-25 06:05:25 +08:00
switch (proc_install->type)
{
Makefile.am configure.in added new directory libgimpbase/ 2001-05-21 Michael Natterer <mitch@gimp.org> * Makefile.am * configure.in * gimptool-1.4.in: added new directory libgimpbase/ * app/Makefile.am: link against the new lib. * app/appenums.h: removed the PDB enums which are in libgimpbase/gimpbasetypes.h now. They are all "Gimp" prefixed. * app/apptypes.h: #include "libgimpbase/gimpbasetypes.h" * app/[lots] * app/core/[of] * app/gui/[files] * app/tools/: changed includes and all PDB types. * app/pdb/*: regenerated. * libgimp/Makefile.am: don't build libgimpi.a uglyness any more. * libgimp/gimpenv.[ch] * libgimp/gimplimits.[hh] * libgimp/gimpparasite.[ch] * libgimp/gimpparasiteio.[ch] * libgimp/gimpprotocol.[ch] * libgimp/gimpsignal.[ch] * libgimp/gimpunit.h * libgimp/gimputils.[ch] * libgimp/gimpwire.[ch]: removed... * libgimpbase/*: ...and added here as new library. * libgimp/gimp.[ch] * libgimp/gimpdrawable.[ch] * libgimp/gimpenums.h * libgimp/gimpimage.[ch] * libgimp/gimptile.c * libgimp/gimptypes.h * libgimp/gimpunit.c: changed accordingly. Added the gimp_*_add_new_parasite to gimp.[ch], gimpdrawable.[ch] and gimpimage.[ch]. * libgimpwidgets/gimppatheditor.c * libgimpwidgets/gimpquerybox.c * libgimpwidgets/gimpsizeentry.c * libgimpwidgets/gimpunitmenu.c * libgimpwidgets/gimpwidgets.c * libgimpwidgets/gimpwidgetstypes.h: changed includes accordingly. * plug-ins/*/Makefile.am * plug-ins/common/mkgen.pl: link against libgimpbase. * tools/pdbgen/Makefile.am: scan libgimpbase/gimpbasetypes.h, so the enums are known to pdbgen... * tools/pdbgen/enumcode.pl: ...but don't write them out to libgimp/gimpenums.h * tools/pdbgen/app.pl: include libgimp/gimpbase.h in all *_cmds.c files. Added GIMP_ to the type names ganerated in app/. * tools/pdbgen/enums.pl: regenerated. * tools/pdbgen/pdb.pl * tools/pdbgen/pdb/fileops.pdb * tools/pdbgen/pdb/procedural_db.pdb * tools/pdbgen/pdb/unit.pdb: changed includes.
2001-05-21 21:58:46 +08:00
case GIMP_PLUGIN:
case GIMP_EXTENSION:
gimp_plug_in_def_add_procedure (plug_in->plug_in_def, proc);
1997-11-25 06:05:25 +08:00
break;
Makefile.am configure.in added new directory libgimpbase/ 2001-05-21 Michael Natterer <mitch@gimp.org> * Makefile.am * configure.in * gimptool-1.4.in: added new directory libgimpbase/ * app/Makefile.am: link against the new lib. * app/appenums.h: removed the PDB enums which are in libgimpbase/gimpbasetypes.h now. They are all "Gimp" prefixed. * app/apptypes.h: #include "libgimpbase/gimpbasetypes.h" * app/[lots] * app/core/[of] * app/gui/[files] * app/tools/: changed includes and all PDB types. * app/pdb/*: regenerated. * libgimp/Makefile.am: don't build libgimpi.a uglyness any more. * libgimp/gimpenv.[ch] * libgimp/gimplimits.[hh] * libgimp/gimpparasite.[ch] * libgimp/gimpparasiteio.[ch] * libgimp/gimpprotocol.[ch] * libgimp/gimpsignal.[ch] * libgimp/gimpunit.h * libgimp/gimputils.[ch] * libgimp/gimpwire.[ch]: removed... * libgimpbase/*: ...and added here as new library. * libgimp/gimp.[ch] * libgimp/gimpdrawable.[ch] * libgimp/gimpenums.h * libgimp/gimpimage.[ch] * libgimp/gimptile.c * libgimp/gimptypes.h * libgimp/gimpunit.c: changed accordingly. Added the gimp_*_add_new_parasite to gimp.[ch], gimpdrawable.[ch] and gimpimage.[ch]. * libgimpwidgets/gimppatheditor.c * libgimpwidgets/gimpquerybox.c * libgimpwidgets/gimpsizeentry.c * libgimpwidgets/gimpunitmenu.c * libgimpwidgets/gimpwidgets.c * libgimpwidgets/gimpwidgetstypes.h: changed includes accordingly. * plug-ins/*/Makefile.am * plug-ins/common/mkgen.pl: link against libgimpbase. * tools/pdbgen/Makefile.am: scan libgimpbase/gimpbasetypes.h, so the enums are known to pdbgen... * tools/pdbgen/enumcode.pl: ...but don't write them out to libgimp/gimpenums.h * tools/pdbgen/app.pl: include libgimp/gimpbase.h in all *_cmds.c files. Added GIMP_ to the type names ganerated in app/. * tools/pdbgen/enums.pl: regenerated. * tools/pdbgen/pdb.pl * tools/pdbgen/pdb/fileops.pdb * tools/pdbgen/pdb/procedural_db.pdb * tools/pdbgen/pdb/unit.pdb: changed includes.
2001-05-21 21:58:46 +08:00
case GIMP_TEMPORARY:
Made an object out of the plug-in struct. Also change refcounting 2006-05-03 Michael Natterer <mitch@gimp.org> Made an object out of the plug-in struct. Also change refcounting considerably: - gimp_plug_in_open() adds a reference that is only dropped by gimp_plug_in_close(). - temporarily ref the plug-in while handling messages. - remporarily ref the plug-in while a recursive main loop is running. - each caller of gimp_plug_in_new() also unrefs the plug-in before returning, the only reference that persists across functions (that keeps the plug-in alive) is the one added by open(). * app/plug-in/plug-in.[ch] * app/plug-in/plug-in-context.[ch] * app/plug-in/plug-in-message.[ch] * app/plug-in/plug-in-progress.[ch]: removed these files... * app/plug-in/gimpplugin.[ch] * app/plug-in/gimpplugin-context.[ch] * app/plug-in/gimpplugin-message.[ch] * app/plug-in/gimpplugin-progress.[ch]: ...and added here as GObject. * app/plug-in/plug-in-proc-frame.[ch]: removed... * app/plug-in/gimppluginprocframe.[ch]: ...and added with a namespace. * app/plug-in/Makefile.am * app/plug-in/plug-in-types.h * app/plug-in/gimppluginmanager-call.c * app/plug-in/gimppluginmanager-file.c * app/plug-in/gimppluginmanager.[ch] * app/pdb/gimppluginprocedure.c * app/pdb/gimptemporaryprocedure.c * app/pdb/gimptemporaryprocedure.h * tools/pdbgen/pdb/context.pdb * tools/pdbgen/pdb/drawable.pdb * tools/pdbgen/pdb/help.pdb * tools/pdbgen/pdb/message.pdb * tools/pdbgen/pdb/plug_in.pdb * tools/pdbgen/pdb/progress.pdb * tools/pdbgen/pdb/undo.pdb: changed accordingly. * app/pdb/context_cmds.c * app/pdb/drawable_cmds.c * app/pdb/help_cmds.c * app/pdb/message_cmds.c * app/pdb/plug_in_cmds.c * app/pdb/progress_cmds.c * app/pdb/undo_cmds.c: regenerated.
2006-05-04 02:05:06 +08:00
gimp_plug_in_add_temp_proc (plug_in, GIMP_TEMPORARY_PROCEDURE (proc));
1997-11-25 06:05:25 +08:00
break;
}
g_object_unref (proc);
1997-11-25 06:05:25 +08:00
}
static void
Made an object out of the plug-in struct. Also change refcounting 2006-05-03 Michael Natterer <mitch@gimp.org> Made an object out of the plug-in struct. Also change refcounting considerably: - gimp_plug_in_open() adds a reference that is only dropped by gimp_plug_in_close(). - temporarily ref the plug-in while handling messages. - remporarily ref the plug-in while a recursive main loop is running. - each caller of gimp_plug_in_new() also unrefs the plug-in before returning, the only reference that persists across functions (that keeps the plug-in alive) is the one added by open(). * app/plug-in/plug-in.[ch] * app/plug-in/plug-in-context.[ch] * app/plug-in/plug-in-message.[ch] * app/plug-in/plug-in-progress.[ch]: removed these files... * app/plug-in/gimpplugin.[ch] * app/plug-in/gimpplugin-context.[ch] * app/plug-in/gimpplugin-message.[ch] * app/plug-in/gimpplugin-progress.[ch]: ...and added here as GObject. * app/plug-in/plug-in-proc-frame.[ch]: removed... * app/plug-in/gimppluginprocframe.[ch]: ...and added with a namespace. * app/plug-in/Makefile.am * app/plug-in/plug-in-types.h * app/plug-in/gimppluginmanager-call.c * app/plug-in/gimppluginmanager-file.c * app/plug-in/gimppluginmanager.[ch] * app/pdb/gimppluginprocedure.c * app/pdb/gimptemporaryprocedure.c * app/pdb/gimptemporaryprocedure.h * tools/pdbgen/pdb/context.pdb * tools/pdbgen/pdb/drawable.pdb * tools/pdbgen/pdb/help.pdb * tools/pdbgen/pdb/message.pdb * tools/pdbgen/pdb/plug_in.pdb * tools/pdbgen/pdb/progress.pdb * tools/pdbgen/pdb/undo.pdb: changed accordingly. * app/pdb/context_cmds.c * app/pdb/drawable_cmds.c * app/pdb/help_cmds.c * app/pdb/message_cmds.c * app/pdb/plug_in_cmds.c * app/pdb/progress_cmds.c * app/pdb/undo_cmds.c: regenerated.
2006-05-04 02:05:06 +08:00
gimp_plug_in_handle_proc_uninstall (GimpPlugIn *plug_in,
GPProcUninstall *proc_uninstall)
1997-11-25 06:05:25 +08:00
{
app/plug-in/plug-in-types.h renamed to GimpPlugInProcedure and made a 2006-04-05 Michael Natterer <mitch@gimp.org> * app/plug-in/plug-in-types.h * app/plug-in/plug-in-proc-def.[ch]: renamed to GimpPlugInProcedure and made a GObject derived from GimpProcedure (instead of having a pointer to a GimpProcedure). Added image_types and file_magic utility functions taken from plug-ins.[ch]. Still lives in the same crappy files because I am undecided where to put it... * app/pdb/gimpprocedure.c (gimp_procedure_real_execute): removed switch() statement and always call the internal marshaller because GimpProcedure::execute() is properly overridden by GimpPlugInProcedure now. * app/plug-in/plug-ins.[ch]: removed the mime_type and file_magic utilities added to GimpPlugInProcedure. * app/actions/file-commands.c * app/actions/plug-in-actions.[ch] * app/actions/plug-in-commands.[ch] * app/core/gimp-gui.[ch] * app/core/gimp.[ch] * app/core/gimpimage.[ch] * app/dialogs/file-open-dialog.c * app/dialogs/file-save-dialog.c * app/dialogs/print-size-dialog.c * app/file/file-open.[ch] * app/file/file-save.[ch] * app/file/file-utils.[ch] * app/gui/gui-vtable.c * app/menus/plug-in-menus.[ch] * app/plug-in/plug-in-def.[ch] * 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/widgets/gimpactiongroup.[ch] * app/widgets/gimpdnd-xds.c * app/widgets/gimpfiledialog.[ch] * app/widgets/gimpfileprocview.[ch] * app/widgets/gimppluginaction.[ch] * app/xcf/xcf.c * tools/pdbgen/pdb/fileops.pdb * tools/pdbgen/pdb/plug_in.pdb: changed addordingly. * app/pdb/fileops_cmds.c * app/pdb/plug_in_cmds.c: regenerated.
2006-04-05 16:38:33 +08:00
GimpPlugInProcedure *proc;
gchar *canonical;
Changed naming scheme for PDB procedure names from 2005-08-03 Michael Natterer <mitch@gimp.org> Changed naming scheme for PDB procedure names from random_crap_that_traditionally_has_underscores to enforced-canonical-identifiers. I'm pretty sure some things are broken after this commit. More changes to come... * libgimpbase/gimpbase.def * libgimpbase/gimputils.[ch]: added gimp_canonicalize_identifier(). * app/pdb/procedural_db.[ch] (struct ProcRecord): added "gchar *original_name" to keep a procedure's original name as reigstered by plug-ins (compat cruft). (procedural_db_init_procs): canonicalized list of deprecated procedures. * app/plug-in/plug-in-proc-def.c (plug_in_proc_def_free): free original_name. * app/plug-in/plug-in-message.c: canonicalize procedure names which are received over the wire. * app/plug-in/plug-in-rc.c: serialize the original_name and create the canonicalized name on-the-fly when deserializing. * app/plug-in/plug-in-run.c: pass the original_name to plug-ins when running them because they strcmp() the passed procedure name. * app/plug-in/plug-ins.c (plug_ins_add_to_db): pass canonical procedure names to procedural_db_execute(). (plug_ins_file_proc_compare): special-case "gimp-xcf", not "gimp_xcf". * app/xcf/xcf.c: changed static XCF procedures accordingly. * tools/pdbgen/app.pl * tools/pdbgen/lib.pl: do some trivial substitutions to generate canonicalized names in app/, and C identifiers with underscores in libgimp/. * tools/pdbgen/pdb/brushes.pdb * tools/pdbgen/pdb/fileops.pdb * tools/pdbgen/pdb/gradients.pdb * tools/pdbgen/pdb/image.pdb * tools/pdbgen/pdb/palettes.pdb * tools/pdbgen/pdb/patterns.pdb * tools/pdbgen/pdb/plug_in.pdb * tools/pdbgen/pdb/procedural_db.pdb * tools/pdbgen/pdb/text_tool.pdb * tools/pdbgen/pdb/transform_tools.pdb: canonicaloized procedure names in calls to std_pdb_deprecated() and in procedure names in generated C code. * app/pdb/*_cmds.c * libgimp/*_pdb.c: regenerated.
2005-08-03 06:52:23 +08:00
g_return_if_fail (proc_uninstall != NULL);
g_return_if_fail (proc_uninstall->name != NULL);
Changed naming scheme for PDB procedure names from 2005-08-03 Michael Natterer <mitch@gimp.org> Changed naming scheme for PDB procedure names from random_crap_that_traditionally_has_underscores to enforced-canonical-identifiers. I'm pretty sure some things are broken after this commit. More changes to come... * libgimpbase/gimpbase.def * libgimpbase/gimputils.[ch]: added gimp_canonicalize_identifier(). * app/pdb/procedural_db.[ch] (struct ProcRecord): added "gchar *original_name" to keep a procedure's original name as reigstered by plug-ins (compat cruft). (procedural_db_init_procs): canonicalized list of deprecated procedures. * app/plug-in/plug-in-proc-def.c (plug_in_proc_def_free): free original_name. * app/plug-in/plug-in-message.c: canonicalize procedure names which are received over the wire. * app/plug-in/plug-in-rc.c: serialize the original_name and create the canonicalized name on-the-fly when deserializing. * app/plug-in/plug-in-run.c: pass the original_name to plug-ins when running them because they strcmp() the passed procedure name. * app/plug-in/plug-ins.c (plug_ins_add_to_db): pass canonical procedure names to procedural_db_execute(). (plug_ins_file_proc_compare): special-case "gimp-xcf", not "gimp_xcf". * app/xcf/xcf.c: changed static XCF procedures accordingly. * tools/pdbgen/app.pl * tools/pdbgen/lib.pl: do some trivial substitutions to generate canonicalized names in app/, and C identifiers with underscores in libgimp/. * tools/pdbgen/pdb/brushes.pdb * tools/pdbgen/pdb/fileops.pdb * tools/pdbgen/pdb/gradients.pdb * tools/pdbgen/pdb/image.pdb * tools/pdbgen/pdb/palettes.pdb * tools/pdbgen/pdb/patterns.pdb * tools/pdbgen/pdb/plug_in.pdb * tools/pdbgen/pdb/procedural_db.pdb * tools/pdbgen/pdb/text_tool.pdb * tools/pdbgen/pdb/transform_tools.pdb: canonicaloized procedure names in calls to std_pdb_deprecated() and in procedure names in generated C code. * app/pdb/*_cmds.c * libgimp/*_pdb.c: regenerated.
2005-08-03 06:52:23 +08:00
canonical = gimp_canonicalize_identifier (proc_uninstall->name);
proc = gimp_plug_in_procedure_find (plug_in->temp_procedures, canonical);
1997-11-25 06:05:25 +08:00
app/plug-in/plug-in-types.h renamed to GimpPlugInProcedure and made a 2006-04-05 Michael Natterer <mitch@gimp.org> * app/plug-in/plug-in-types.h * app/plug-in/plug-in-proc-def.[ch]: renamed to GimpPlugInProcedure and made a GObject derived from GimpProcedure (instead of having a pointer to a GimpProcedure). Added image_types and file_magic utility functions taken from plug-ins.[ch]. Still lives in the same crappy files because I am undecided where to put it... * app/pdb/gimpprocedure.c (gimp_procedure_real_execute): removed switch() statement and always call the internal marshaller because GimpProcedure::execute() is properly overridden by GimpPlugInProcedure now. * app/plug-in/plug-ins.[ch]: removed the mime_type and file_magic utilities added to GimpPlugInProcedure. * app/actions/file-commands.c * app/actions/plug-in-actions.[ch] * app/actions/plug-in-commands.[ch] * app/core/gimp-gui.[ch] * app/core/gimp.[ch] * app/core/gimpimage.[ch] * app/dialogs/file-open-dialog.c * app/dialogs/file-save-dialog.c * app/dialogs/print-size-dialog.c * app/file/file-open.[ch] * app/file/file-save.[ch] * app/file/file-utils.[ch] * app/gui/gui-vtable.c * app/menus/plug-in-menus.[ch] * app/plug-in/plug-in-def.[ch] * 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/widgets/gimpactiongroup.[ch] * app/widgets/gimpdnd-xds.c * app/widgets/gimpfiledialog.[ch] * app/widgets/gimpfileprocview.[ch] * app/widgets/gimppluginaction.[ch] * app/xcf/xcf.c * tools/pdbgen/pdb/fileops.pdb * tools/pdbgen/pdb/plug_in.pdb: changed addordingly. * app/pdb/fileops_cmds.c * app/pdb/plug_in_cmds.c: regenerated.
2006-04-05 16:38:33 +08:00
if (proc)
Made an object out of the plug-in struct. Also change refcounting 2006-05-03 Michael Natterer <mitch@gimp.org> Made an object out of the plug-in struct. Also change refcounting considerably: - gimp_plug_in_open() adds a reference that is only dropped by gimp_plug_in_close(). - temporarily ref the plug-in while handling messages. - remporarily ref the plug-in while a recursive main loop is running. - each caller of gimp_plug_in_new() also unrefs the plug-in before returning, the only reference that persists across functions (that keeps the plug-in alive) is the one added by open(). * app/plug-in/plug-in.[ch] * app/plug-in/plug-in-context.[ch] * app/plug-in/plug-in-message.[ch] * app/plug-in/plug-in-progress.[ch]: removed these files... * app/plug-in/gimpplugin.[ch] * app/plug-in/gimpplugin-context.[ch] * app/plug-in/gimpplugin-message.[ch] * app/plug-in/gimpplugin-progress.[ch]: ...and added here as GObject. * app/plug-in/plug-in-proc-frame.[ch]: removed... * app/plug-in/gimppluginprocframe.[ch]: ...and added with a namespace. * app/plug-in/Makefile.am * app/plug-in/plug-in-types.h * app/plug-in/gimppluginmanager-call.c * app/plug-in/gimppluginmanager-file.c * app/plug-in/gimppluginmanager.[ch] * app/pdb/gimppluginprocedure.c * app/pdb/gimptemporaryprocedure.c * app/pdb/gimptemporaryprocedure.h * tools/pdbgen/pdb/context.pdb * tools/pdbgen/pdb/drawable.pdb * tools/pdbgen/pdb/help.pdb * tools/pdbgen/pdb/message.pdb * tools/pdbgen/pdb/plug_in.pdb * tools/pdbgen/pdb/progress.pdb * tools/pdbgen/pdb/undo.pdb: changed accordingly. * app/pdb/context_cmds.c * app/pdb/drawable_cmds.c * app/pdb/help_cmds.c * app/pdb/message_cmds.c * app/pdb/plug_in_cmds.c * app/pdb/progress_cmds.c * app/pdb/undo_cmds.c: regenerated.
2006-05-04 02:05:06 +08:00
gimp_plug_in_remove_temp_proc (plug_in, GIMP_TEMPORARY_PROCEDURE (proc));
Changed naming scheme for PDB procedure names from 2005-08-03 Michael Natterer <mitch@gimp.org> Changed naming scheme for PDB procedure names from random_crap_that_traditionally_has_underscores to enforced-canonical-identifiers. I'm pretty sure some things are broken after this commit. More changes to come... * libgimpbase/gimpbase.def * libgimpbase/gimputils.[ch]: added gimp_canonicalize_identifier(). * app/pdb/procedural_db.[ch] (struct ProcRecord): added "gchar *original_name" to keep a procedure's original name as reigstered by plug-ins (compat cruft). (procedural_db_init_procs): canonicalized list of deprecated procedures. * app/plug-in/plug-in-proc-def.c (plug_in_proc_def_free): free original_name. * app/plug-in/plug-in-message.c: canonicalize procedure names which are received over the wire. * app/plug-in/plug-in-rc.c: serialize the original_name and create the canonicalized name on-the-fly when deserializing. * app/plug-in/plug-in-run.c: pass the original_name to plug-ins when running them because they strcmp() the passed procedure name. * app/plug-in/plug-ins.c (plug_ins_add_to_db): pass canonical procedure names to procedural_db_execute(). (plug_ins_file_proc_compare): special-case "gimp-xcf", not "gimp_xcf". * app/xcf/xcf.c: changed static XCF procedures accordingly. * tools/pdbgen/app.pl * tools/pdbgen/lib.pl: do some trivial substitutions to generate canonicalized names in app/, and C identifiers with underscores in libgimp/. * tools/pdbgen/pdb/brushes.pdb * tools/pdbgen/pdb/fileops.pdb * tools/pdbgen/pdb/gradients.pdb * tools/pdbgen/pdb/image.pdb * tools/pdbgen/pdb/palettes.pdb * tools/pdbgen/pdb/patterns.pdb * tools/pdbgen/pdb/plug_in.pdb * tools/pdbgen/pdb/procedural_db.pdb * tools/pdbgen/pdb/text_tool.pdb * tools/pdbgen/pdb/transform_tools.pdb: canonicaloized procedure names in calls to std_pdb_deprecated() and in procedure names in generated C code. * app/pdb/*_cmds.c * libgimp/*_pdb.c: regenerated.
2005-08-03 06:52:23 +08:00
g_free (canonical);
1997-11-25 06:05:25 +08:00
}
badly chopped into the new files below. Pass around much more "PlugIn" and 2002-03-20 Michael Natterer <mitch@gimp.org> * app/plug-in/plug-in.[ch]: badly chopped into the new files below. Pass around much more "PlugIn" and "Gimp" pointers instead of using "current_plug_in" and "the_gimp". Needs much more hacking though... :( * app/plug-in/Makefile.am * app/plug-in/plug-in-def.[ch] * app/plug-in/plug-in-params.[ch] * app/plug-in/plug-in-progress.[ch] * app/plug-in/plug-ins.[ch]: new files. * app/gui/Makefile.am * app/gui/plug-in-commands.[ch] * app/gui/plug-in-menus.[ch]: ditto. * app/plug-in/plug-in-rc.c * app/plug-in/plug-in-types.h: changed accordingly. * app/pdb/procedural_db.c: changed procedural_db_destroy_args() so it can be used from plug_in_args_destroy(). Fixed a parasite memory leak (or introduced a new SEGV, we'll see...). * app/display/Makefile.am: another "truly ugly hack" until the plug-in menu stuff is chopped even more... * app/gui/commands.[ch]: removed filters_repeat_cmd_callback() here, it is now in plug-in-commands.[ch]. * app/widgets/gimpitemfactory.[ch]: removed all gimp_menu_item_*() hacks. We have a GimpItemFactory available in most cases we used to call this functions, and can use gimp_item_factors_from_path() in all other cases. The item factory stuff needs more work anyway... * app/app_procs.c * app/gimphelp.c * app/display/gimpdisplayshell.c * app/gui/file-dialog-utils.c * app/gui/file-open-dialog.[ch] * app/gui/file-save-dialog.[ch] * app/gui/gui.c * app/gui/menus.c * app/gui/paths-dialog.c * app/xcf/xcf.c * tools/pdbgen/pdb/fileops.pdb * tools/pdbgen/pdb/help.pdb * tools/pdbgen/pdb/plug_in.pdb: changed accordingly (includes, renamed functions and gimp_menu_item_*() removal). * app/pdb/fileops_cmds.c * app/pdb/help_cmds.c * app/pdb/plug_in_cmds.c: regenerated.
2002-03-21 01:46:13 +08:00
static void
Made an object out of the plug-in struct. Also change refcounting 2006-05-03 Michael Natterer <mitch@gimp.org> Made an object out of the plug-in struct. Also change refcounting considerably: - gimp_plug_in_open() adds a reference that is only dropped by gimp_plug_in_close(). - temporarily ref the plug-in while handling messages. - remporarily ref the plug-in while a recursive main loop is running. - each caller of gimp_plug_in_new() also unrefs the plug-in before returning, the only reference that persists across functions (that keeps the plug-in alive) is the one added by open(). * app/plug-in/plug-in.[ch] * app/plug-in/plug-in-context.[ch] * app/plug-in/plug-in-message.[ch] * app/plug-in/plug-in-progress.[ch]: removed these files... * app/plug-in/gimpplugin.[ch] * app/plug-in/gimpplugin-context.[ch] * app/plug-in/gimpplugin-message.[ch] * app/plug-in/gimpplugin-progress.[ch]: ...and added here as GObject. * app/plug-in/plug-in-proc-frame.[ch]: removed... * app/plug-in/gimppluginprocframe.[ch]: ...and added with a namespace. * app/plug-in/Makefile.am * app/plug-in/plug-in-types.h * app/plug-in/gimppluginmanager-call.c * app/plug-in/gimppluginmanager-file.c * app/plug-in/gimppluginmanager.[ch] * app/pdb/gimppluginprocedure.c * app/pdb/gimptemporaryprocedure.c * app/pdb/gimptemporaryprocedure.h * tools/pdbgen/pdb/context.pdb * tools/pdbgen/pdb/drawable.pdb * tools/pdbgen/pdb/help.pdb * tools/pdbgen/pdb/message.pdb * tools/pdbgen/pdb/plug_in.pdb * tools/pdbgen/pdb/progress.pdb * tools/pdbgen/pdb/undo.pdb: changed accordingly. * app/pdb/context_cmds.c * app/pdb/drawable_cmds.c * app/pdb/help_cmds.c * app/pdb/message_cmds.c * app/pdb/plug_in_cmds.c * app/pdb/progress_cmds.c * app/pdb/undo_cmds.c: regenerated.
2006-05-04 02:05:06 +08:00
gimp_plug_in_handle_extension_ack (GimpPlugIn *plug_in)
{
if (plug_in->ext_main_loop)
removed gimp_main_loop() and gimp_main_loop_quit() because they were a 2003-02-03 Michael Natterer <mitch@gimp.org> * app/core/gimp.[ch]: removed gimp_main_loop() and gimp_main_loop_quit() because they were a temp_hack until plug-ins have their own main loops. Added gimp_threads_enter() and gimp_threads_leave() instead. * app/gui/gui.c: ditto: removed the main loop stuff and added functions which call GDK_THREADS_ENTER() and GDK_THREADS_LEAVE() instead. * app/app_procs.c: create the main GMainLoop here and use gimp_threads_enter,leave(). * app/plug-in/plug-in.[ch]: added a ref_count per plug-in so the plug-in is not destroyed under our feet while running a recursive main loop. Added plug_in_ref(). Changed plug_in_destroy() to plug_in_unref(). Don't destroy the plug-in if plug_in_open() fails. Call gimp_threads_enter,leave() around g_main_loop_run(). Changed the way plug_in_push,pop() are used: "current_plug_in" is no longer the plug-in which currently uses the wire, but the plug-in which currently preforms a PDB call (the former meaning was needed when wire callbacks had no plug-in context but needed to get the plug-in from the global "current_plug_in" variable). Removed all calls to plug_in_push,pop() from this file. * app/plug-in/plug-in-message.c (plug_in_handle_proc_run): added plug_in_push,pop() around procedural_db_execute(). No need to construct an error return value if the procedure was not found because procedural_db_execute() already does this. Removed all other plug_in_push,pop(). Added more checks to plug-in message handlers and kill the plug-in if it misbehaves. Cleanup. * app/plug-in/plug-in-progress.c (plug_in_progress_cancel): if the plug-in runs synchronously, provide a GIMP_PDB_CANCEL return value so we don't see error messages about the "failed" procedure. * app/plug-in/plug-in-run.c: removed plug_in_push,pop() stuff. Set the new plug_in->starting_ext boolean while starting an extension so the extension_ack handler knows that it wasn't called from a buggy plug-in. Cleanup. * app/plug-in/plug-ins.c: Cleanup.
2003-02-03 21:21:31 +08:00
{
g_main_loop_quit (plug_in->ext_main_loop);
removed gimp_main_loop() and gimp_main_loop_quit() because they were a 2003-02-03 Michael Natterer <mitch@gimp.org> * app/core/gimp.[ch]: removed gimp_main_loop() and gimp_main_loop_quit() because they were a temp_hack until plug-ins have their own main loops. Added gimp_threads_enter() and gimp_threads_leave() instead. * app/gui/gui.c: ditto: removed the main loop stuff and added functions which call GDK_THREADS_ENTER() and GDK_THREADS_LEAVE() instead. * app/app_procs.c: create the main GMainLoop here and use gimp_threads_enter,leave(). * app/plug-in/plug-in.[ch]: added a ref_count per plug-in so the plug-in is not destroyed under our feet while running a recursive main loop. Added plug_in_ref(). Changed plug_in_destroy() to plug_in_unref(). Don't destroy the plug-in if plug_in_open() fails. Call gimp_threads_enter,leave() around g_main_loop_run(). Changed the way plug_in_push,pop() are used: "current_plug_in" is no longer the plug-in which currently uses the wire, but the plug-in which currently preforms a PDB call (the former meaning was needed when wire callbacks had no plug-in context but needed to get the plug-in from the global "current_plug_in" variable). Removed all calls to plug_in_push,pop() from this file. * app/plug-in/plug-in-message.c (plug_in_handle_proc_run): added plug_in_push,pop() around procedural_db_execute(). No need to construct an error return value if the procedure was not found because procedural_db_execute() already does this. Removed all other plug_in_push,pop(). Added more checks to plug-in message handlers and kill the plug-in if it misbehaves. Cleanup. * app/plug-in/plug-in-progress.c (plug_in_progress_cancel): if the plug-in runs synchronously, provide a GIMP_PDB_CANCEL return value so we don't see error messages about the "failed" procedure. * app/plug-in/plug-in-run.c: removed plug_in_push,pop() stuff. Set the new plug_in->starting_ext boolean while starting an extension so the extension_ack handler knows that it wasn't called from a buggy plug-in. Cleanup. * app/plug-in/plug-ins.c: Cleanup.
2003-02-03 21:21:31 +08:00
}
else
{
app/actions/data-commands.c app/actions/documents-commands.c 2006-10-09 Michael Natterer <mitch@gimp.org> * app/actions/data-commands.c * app/actions/documents-commands.c * app/actions/drawable-commands.c * app/actions/gradients-commands.c * app/actions/image-commands.c * app/actions/layers-commands.c * app/actions/palettes-commands.c * app/actions/select-commands.c * app/actions/vectors-commands.c * app/core/gimp-contexts.c * app/core/gimp-documents.c * app/core/gimp-edit.c * app/core/gimp-modules.c * app/core/gimp-parasites.c * app/core/gimp-templates.c * app/core/gimp-units.c * app/core/gimpchannel.c * app/core/gimpdatafactory.[ch] * app/core/gimpdrawable-bucket-fill.c * app/core/gimpimage-merge.c * app/core/gimpimagefile.c * app/core/gimplayer-floating-sel.c * app/core/gimppdbprogress.c * app/core/gimpselection.c * app/dialogs/palette-import-dialog.c * app/display/gimpdisplayshell-dnd.c * app/gui/session.c * app/gui/themes.c * app/pdb/gimpprocedure.c * app/plug-in/gimpplugin-message.c * app/plug-in/gimpplugin.c * app/plug-in/gimppluginmanager-file.c * app/plug-in/gimppluginmanager.c * app/text/gimptextlayer-xcf.c * app/text/gimptextlayer.c * app/widgets/gimpcontrollers.c * app/widgets/gimpdataeditor.c * app/widgets/gimpdevices.c * app/widgets/gimpdnd-xds.c * app/widgets/gimplayertreeview.c * app/widgets/gimptoolbox-dnd.c * app/widgets/gimptoolbox.c * app/widgets/gimpuimanager.c * app/widgets/gimpvectorstreeview.c * tools/pdbgen/pdb/brush.pdb * tools/pdbgen/pdb/gradient.pdb * tools/pdbgen/pdb/palette.pdb: convert lots of g_message() to gimp_message(). Make sure we never pass unknown strings (like error->message) to printf-like functions directly; run them thorugh "%s" instead. Don't translate some messages which should never happen. * app/pdb/brush_cmds.c * app/pdb/gradient_cmds.c * app/pdb/palette_cmds.c: regenerated.
2006-10-10 02:49:15 +08:00
gimp_message (plug_in->manager->gimp, NULL, GIMP_MESSAGE_ERROR,
"Plug-In \"%s\"\n(%s)\n\n"
"sent an EXTENSION_ACK message while not being started "
"as an extension. This should not happen.",
gimp_object_get_name (GIMP_OBJECT (plug_in)),
gimp_filename_to_utf8 (plug_in->prog));
Made an object out of the plug-in struct. Also change refcounting 2006-05-03 Michael Natterer <mitch@gimp.org> Made an object out of the plug-in struct. Also change refcounting considerably: - gimp_plug_in_open() adds a reference that is only dropped by gimp_plug_in_close(). - temporarily ref the plug-in while handling messages. - remporarily ref the plug-in while a recursive main loop is running. - each caller of gimp_plug_in_new() also unrefs the plug-in before returning, the only reference that persists across functions (that keeps the plug-in alive) is the one added by open(). * app/plug-in/plug-in.[ch] * app/plug-in/plug-in-context.[ch] * app/plug-in/plug-in-message.[ch] * app/plug-in/plug-in-progress.[ch]: removed these files... * app/plug-in/gimpplugin.[ch] * app/plug-in/gimpplugin-context.[ch] * app/plug-in/gimpplugin-message.[ch] * app/plug-in/gimpplugin-progress.[ch]: ...and added here as GObject. * app/plug-in/plug-in-proc-frame.[ch]: removed... * app/plug-in/gimppluginprocframe.[ch]: ...and added with a namespace. * app/plug-in/Makefile.am * app/plug-in/plug-in-types.h * app/plug-in/gimppluginmanager-call.c * app/plug-in/gimppluginmanager-file.c * app/plug-in/gimppluginmanager.[ch] * app/pdb/gimppluginprocedure.c * app/pdb/gimptemporaryprocedure.c * app/pdb/gimptemporaryprocedure.h * tools/pdbgen/pdb/context.pdb * tools/pdbgen/pdb/drawable.pdb * tools/pdbgen/pdb/help.pdb * tools/pdbgen/pdb/message.pdb * tools/pdbgen/pdb/plug_in.pdb * tools/pdbgen/pdb/progress.pdb * tools/pdbgen/pdb/undo.pdb: changed accordingly. * app/pdb/context_cmds.c * app/pdb/drawable_cmds.c * app/pdb/help_cmds.c * app/pdb/message_cmds.c * app/pdb/plug_in_cmds.c * app/pdb/progress_cmds.c * app/pdb/undo_cmds.c: regenerated.
2006-05-04 02:05:06 +08:00
gimp_plug_in_close (plug_in, TRUE);
removed gimp_main_loop() and gimp_main_loop_quit() because they were a 2003-02-03 Michael Natterer <mitch@gimp.org> * app/core/gimp.[ch]: removed gimp_main_loop() and gimp_main_loop_quit() because they were a temp_hack until plug-ins have their own main loops. Added gimp_threads_enter() and gimp_threads_leave() instead. * app/gui/gui.c: ditto: removed the main loop stuff and added functions which call GDK_THREADS_ENTER() and GDK_THREADS_LEAVE() instead. * app/app_procs.c: create the main GMainLoop here and use gimp_threads_enter,leave(). * app/plug-in/plug-in.[ch]: added a ref_count per plug-in so the plug-in is not destroyed under our feet while running a recursive main loop. Added plug_in_ref(). Changed plug_in_destroy() to plug_in_unref(). Don't destroy the plug-in if plug_in_open() fails. Call gimp_threads_enter,leave() around g_main_loop_run(). Changed the way plug_in_push,pop() are used: "current_plug_in" is no longer the plug-in which currently uses the wire, but the plug-in which currently preforms a PDB call (the former meaning was needed when wire callbacks had no plug-in context but needed to get the plug-in from the global "current_plug_in" variable). Removed all calls to plug_in_push,pop() from this file. * app/plug-in/plug-in-message.c (plug_in_handle_proc_run): added plug_in_push,pop() around procedural_db_execute(). No need to construct an error return value if the procedure was not found because procedural_db_execute() already does this. Removed all other plug_in_push,pop(). Added more checks to plug-in message handlers and kill the plug-in if it misbehaves. Cleanup. * app/plug-in/plug-in-progress.c (plug_in_progress_cancel): if the plug-in runs synchronously, provide a GIMP_PDB_CANCEL return value so we don't see error messages about the "failed" procedure. * app/plug-in/plug-in-run.c: removed plug_in_push,pop() stuff. Set the new plug_in->starting_ext boolean while starting an extension so the extension_ack handler knows that it wasn't called from a buggy plug-in. Cleanup. * app/plug-in/plug-ins.c: Cleanup.
2003-02-03 21:21:31 +08:00
}
}
static void
Made an object out of the plug-in struct. Also change refcounting 2006-05-03 Michael Natterer <mitch@gimp.org> Made an object out of the plug-in struct. Also change refcounting considerably: - gimp_plug_in_open() adds a reference that is only dropped by gimp_plug_in_close(). - temporarily ref the plug-in while handling messages. - remporarily ref the plug-in while a recursive main loop is running. - each caller of gimp_plug_in_new() also unrefs the plug-in before returning, the only reference that persists across functions (that keeps the plug-in alive) is the one added by open(). * app/plug-in/plug-in.[ch] * app/plug-in/plug-in-context.[ch] * app/plug-in/plug-in-message.[ch] * app/plug-in/plug-in-progress.[ch]: removed these files... * app/plug-in/gimpplugin.[ch] * app/plug-in/gimpplugin-context.[ch] * app/plug-in/gimpplugin-message.[ch] * app/plug-in/gimpplugin-progress.[ch]: ...and added here as GObject. * app/plug-in/plug-in-proc-frame.[ch]: removed... * app/plug-in/gimppluginprocframe.[ch]: ...and added with a namespace. * app/plug-in/Makefile.am * app/plug-in/plug-in-types.h * app/plug-in/gimppluginmanager-call.c * app/plug-in/gimppluginmanager-file.c * app/plug-in/gimppluginmanager.[ch] * app/pdb/gimppluginprocedure.c * app/pdb/gimptemporaryprocedure.c * app/pdb/gimptemporaryprocedure.h * tools/pdbgen/pdb/context.pdb * tools/pdbgen/pdb/drawable.pdb * tools/pdbgen/pdb/help.pdb * tools/pdbgen/pdb/message.pdb * tools/pdbgen/pdb/plug_in.pdb * tools/pdbgen/pdb/progress.pdb * tools/pdbgen/pdb/undo.pdb: changed accordingly. * app/pdb/context_cmds.c * app/pdb/drawable_cmds.c * app/pdb/help_cmds.c * app/pdb/message_cmds.c * app/pdb/plug_in_cmds.c * app/pdb/progress_cmds.c * app/pdb/undo_cmds.c: regenerated.
2006-05-04 02:05:06 +08:00
gimp_plug_in_handle_has_init (GimpPlugIn *plug_in)
{
if (plug_in->call_mode == GIMP_PLUG_IN_CALL_QUERY)
removed gimp_main_loop() and gimp_main_loop_quit() because they were a 2003-02-03 Michael Natterer <mitch@gimp.org> * app/core/gimp.[ch]: removed gimp_main_loop() and gimp_main_loop_quit() because they were a temp_hack until plug-ins have their own main loops. Added gimp_threads_enter() and gimp_threads_leave() instead. * app/gui/gui.c: ditto: removed the main loop stuff and added functions which call GDK_THREADS_ENTER() and GDK_THREADS_LEAVE() instead. * app/app_procs.c: create the main GMainLoop here and use gimp_threads_enter,leave(). * app/plug-in/plug-in.[ch]: added a ref_count per plug-in so the plug-in is not destroyed under our feet while running a recursive main loop. Added plug_in_ref(). Changed plug_in_destroy() to plug_in_unref(). Don't destroy the plug-in if plug_in_open() fails. Call gimp_threads_enter,leave() around g_main_loop_run(). Changed the way plug_in_push,pop() are used: "current_plug_in" is no longer the plug-in which currently uses the wire, but the plug-in which currently preforms a PDB call (the former meaning was needed when wire callbacks had no plug-in context but needed to get the plug-in from the global "current_plug_in" variable). Removed all calls to plug_in_push,pop() from this file. * app/plug-in/plug-in-message.c (plug_in_handle_proc_run): added plug_in_push,pop() around procedural_db_execute(). No need to construct an error return value if the procedure was not found because procedural_db_execute() already does this. Removed all other plug_in_push,pop(). Added more checks to plug-in message handlers and kill the plug-in if it misbehaves. Cleanup. * app/plug-in/plug-in-progress.c (plug_in_progress_cancel): if the plug-in runs synchronously, provide a GIMP_PDB_CANCEL return value so we don't see error messages about the "failed" procedure. * app/plug-in/plug-in-run.c: removed plug_in_push,pop() stuff. Set the new plug_in->starting_ext boolean while starting an extension so the extension_ack handler knows that it wasn't called from a buggy plug-in. Cleanup. * app/plug-in/plug-ins.c: Cleanup.
2003-02-03 21:21:31 +08:00
{
gimp_plug_in_def_set_has_init (plug_in->plug_in_def, TRUE);
removed gimp_main_loop() and gimp_main_loop_quit() because they were a 2003-02-03 Michael Natterer <mitch@gimp.org> * app/core/gimp.[ch]: removed gimp_main_loop() and gimp_main_loop_quit() because they were a temp_hack until plug-ins have their own main loops. Added gimp_threads_enter() and gimp_threads_leave() instead. * app/gui/gui.c: ditto: removed the main loop stuff and added functions which call GDK_THREADS_ENTER() and GDK_THREADS_LEAVE() instead. * app/app_procs.c: create the main GMainLoop here and use gimp_threads_enter,leave(). * app/plug-in/plug-in.[ch]: added a ref_count per plug-in so the plug-in is not destroyed under our feet while running a recursive main loop. Added plug_in_ref(). Changed plug_in_destroy() to plug_in_unref(). Don't destroy the plug-in if plug_in_open() fails. Call gimp_threads_enter,leave() around g_main_loop_run(). Changed the way plug_in_push,pop() are used: "current_plug_in" is no longer the plug-in which currently uses the wire, but the plug-in which currently preforms a PDB call (the former meaning was needed when wire callbacks had no plug-in context but needed to get the plug-in from the global "current_plug_in" variable). Removed all calls to plug_in_push,pop() from this file. * app/plug-in/plug-in-message.c (plug_in_handle_proc_run): added plug_in_push,pop() around procedural_db_execute(). No need to construct an error return value if the procedure was not found because procedural_db_execute() already does this. Removed all other plug_in_push,pop(). Added more checks to plug-in message handlers and kill the plug-in if it misbehaves. Cleanup. * app/plug-in/plug-in-progress.c (plug_in_progress_cancel): if the plug-in runs synchronously, provide a GIMP_PDB_CANCEL return value so we don't see error messages about the "failed" procedure. * app/plug-in/plug-in-run.c: removed plug_in_push,pop() stuff. Set the new plug_in->starting_ext boolean while starting an extension so the extension_ack handler knows that it wasn't called from a buggy plug-in. Cleanup. * app/plug-in/plug-ins.c: Cleanup.
2003-02-03 21:21:31 +08:00
}
else
{
app/actions/data-commands.c app/actions/documents-commands.c 2006-10-09 Michael Natterer <mitch@gimp.org> * app/actions/data-commands.c * app/actions/documents-commands.c * app/actions/drawable-commands.c * app/actions/gradients-commands.c * app/actions/image-commands.c * app/actions/layers-commands.c * app/actions/palettes-commands.c * app/actions/select-commands.c * app/actions/vectors-commands.c * app/core/gimp-contexts.c * app/core/gimp-documents.c * app/core/gimp-edit.c * app/core/gimp-modules.c * app/core/gimp-parasites.c * app/core/gimp-templates.c * app/core/gimp-units.c * app/core/gimpchannel.c * app/core/gimpdatafactory.[ch] * app/core/gimpdrawable-bucket-fill.c * app/core/gimpimage-merge.c * app/core/gimpimagefile.c * app/core/gimplayer-floating-sel.c * app/core/gimppdbprogress.c * app/core/gimpselection.c * app/dialogs/palette-import-dialog.c * app/display/gimpdisplayshell-dnd.c * app/gui/session.c * app/gui/themes.c * app/pdb/gimpprocedure.c * app/plug-in/gimpplugin-message.c * app/plug-in/gimpplugin.c * app/plug-in/gimppluginmanager-file.c * app/plug-in/gimppluginmanager.c * app/text/gimptextlayer-xcf.c * app/text/gimptextlayer.c * app/widgets/gimpcontrollers.c * app/widgets/gimpdataeditor.c * app/widgets/gimpdevices.c * app/widgets/gimpdnd-xds.c * app/widgets/gimplayertreeview.c * app/widgets/gimptoolbox-dnd.c * app/widgets/gimptoolbox.c * app/widgets/gimpuimanager.c * app/widgets/gimpvectorstreeview.c * tools/pdbgen/pdb/brush.pdb * tools/pdbgen/pdb/gradient.pdb * tools/pdbgen/pdb/palette.pdb: convert lots of g_message() to gimp_message(). Make sure we never pass unknown strings (like error->message) to printf-like functions directly; run them thorugh "%s" instead. Don't translate some messages which should never happen. * app/pdb/brush_cmds.c * app/pdb/gradient_cmds.c * app/pdb/palette_cmds.c: regenerated.
2006-10-10 02:49:15 +08:00
gimp_message (plug_in->manager->gimp, NULL, GIMP_MESSAGE_ERROR,
"Plug-In \"%s\"\n(%s)\n\n"
"sent an HAS_INIT message while not in query(). "
"This should not happen.",
gimp_object_get_name (GIMP_OBJECT (plug_in)),
gimp_filename_to_utf8 (plug_in->prog));
Made an object out of the plug-in struct. Also change refcounting 2006-05-03 Michael Natterer <mitch@gimp.org> Made an object out of the plug-in struct. Also change refcounting considerably: - gimp_plug_in_open() adds a reference that is only dropped by gimp_plug_in_close(). - temporarily ref the plug-in while handling messages. - remporarily ref the plug-in while a recursive main loop is running. - each caller of gimp_plug_in_new() also unrefs the plug-in before returning, the only reference that persists across functions (that keeps the plug-in alive) is the one added by open(). * app/plug-in/plug-in.[ch] * app/plug-in/plug-in-context.[ch] * app/plug-in/plug-in-message.[ch] * app/plug-in/plug-in-progress.[ch]: removed these files... * app/plug-in/gimpplugin.[ch] * app/plug-in/gimpplugin-context.[ch] * app/plug-in/gimpplugin-message.[ch] * app/plug-in/gimpplugin-progress.[ch]: ...and added here as GObject. * app/plug-in/plug-in-proc-frame.[ch]: removed... * app/plug-in/gimppluginprocframe.[ch]: ...and added with a namespace. * app/plug-in/Makefile.am * app/plug-in/plug-in-types.h * app/plug-in/gimppluginmanager-call.c * app/plug-in/gimppluginmanager-file.c * app/plug-in/gimppluginmanager.[ch] * app/pdb/gimppluginprocedure.c * app/pdb/gimptemporaryprocedure.c * app/pdb/gimptemporaryprocedure.h * tools/pdbgen/pdb/context.pdb * tools/pdbgen/pdb/drawable.pdb * tools/pdbgen/pdb/help.pdb * tools/pdbgen/pdb/message.pdb * tools/pdbgen/pdb/plug_in.pdb * tools/pdbgen/pdb/progress.pdb * tools/pdbgen/pdb/undo.pdb: changed accordingly. * app/pdb/context_cmds.c * app/pdb/drawable_cmds.c * app/pdb/help_cmds.c * app/pdb/message_cmds.c * app/pdb/plug_in_cmds.c * app/pdb/progress_cmds.c * app/pdb/undo_cmds.c: regenerated.
2006-05-04 02:05:06 +08:00
gimp_plug_in_close (plug_in, TRUE);
removed gimp_main_loop() and gimp_main_loop_quit() because they were a 2003-02-03 Michael Natterer <mitch@gimp.org> * app/core/gimp.[ch]: removed gimp_main_loop() and gimp_main_loop_quit() because they were a temp_hack until plug-ins have their own main loops. Added gimp_threads_enter() and gimp_threads_leave() instead. * app/gui/gui.c: ditto: removed the main loop stuff and added functions which call GDK_THREADS_ENTER() and GDK_THREADS_LEAVE() instead. * app/app_procs.c: create the main GMainLoop here and use gimp_threads_enter,leave(). * app/plug-in/plug-in.[ch]: added a ref_count per plug-in so the plug-in is not destroyed under our feet while running a recursive main loop. Added plug_in_ref(). Changed plug_in_destroy() to plug_in_unref(). Don't destroy the plug-in if plug_in_open() fails. Call gimp_threads_enter,leave() around g_main_loop_run(). Changed the way plug_in_push,pop() are used: "current_plug_in" is no longer the plug-in which currently uses the wire, but the plug-in which currently preforms a PDB call (the former meaning was needed when wire callbacks had no plug-in context but needed to get the plug-in from the global "current_plug_in" variable). Removed all calls to plug_in_push,pop() from this file. * app/plug-in/plug-in-message.c (plug_in_handle_proc_run): added plug_in_push,pop() around procedural_db_execute(). No need to construct an error return value if the procedure was not found because procedural_db_execute() already does this. Removed all other plug_in_push,pop(). Added more checks to plug-in message handlers and kill the plug-in if it misbehaves. Cleanup. * app/plug-in/plug-in-progress.c (plug_in_progress_cancel): if the plug-in runs synchronously, provide a GIMP_PDB_CANCEL return value so we don't see error messages about the "failed" procedure. * app/plug-in/plug-in-run.c: removed plug_in_push,pop() stuff. Set the new plug_in->starting_ext boolean while starting an extension so the extension_ack handler knows that it wasn't called from a buggy plug-in. Cleanup. * app/plug-in/plug-ins.c: Cleanup.
2003-02-03 21:21:31 +08:00
}
}