2004-04-15 Michael Natterer <mitch@gimp.org>
Context cleanup continued:
* app/core/gimpitem.[ch]: added context parameter to
GimpItem::stroke().
* app/core/gimpchannel.c (gimp_channel_stroke)
* app/vectors/gimpvectors.c (gimp_vectors_stroke): use it to get
default values from instead of gimp_get_user_context().
* app/core/gimpselection.c
* app/gui/stroke-dialog.c
* tools/pdbgen/pdb/edit.pdb
* tools/pdbgen/pdb/paths.pdb: changed accordingly.
* app/pdb/edit_cmds.c
* app/pdb/paths_cmds.c: regenerated.
* app/plug-in/plug-in.[ch]: added GimpContext member to the PlugIn
struct. Added context parameter to plug_in_new(),
plug_in_call_query() and plug_in_call_init().
* app/plug-in/plug-in-run.[ch]: added context parameters to
plug_in_run() and plug_in_repeat().
* app/gui/plug-in-commands.c
* app/gui/vectors-commands.c
* app/pdb/procedural_db.c
* app/widgets/gimphelp.c: pass a context to plug_in_run() and
plug_in_repeat().
* app/plug-in/plug-in-message.c (plug_in_handle_proc_run): call
procedures with the plug-in's context.
* app/plug-in/plug-ins.c: use a temporary context for running the
plug-ins' query() and init() functions. Use the same context for
running automatic extensions. This temporarily separates the main
Script-Fu extension from the user context (i.e. scripts have no
way of setting/getting the global FG, BG, brush etc.).
2004-01-20 Michael Natterer <mitch@gimp.org>
* app/plug-in/plug-in.[ch]: changed member
"ProcRec *current_temp_proc" to "GList *temp_proc_recs", a stack
of temporary procedures, just as the "temp_main_loops" member is
supposed to be the stack of main loops for waiting for the
temp_procs' return values.
* app/plug-in/plug-in-run.c (plug_in_temp_run): changed accordingly.
* app/plug-in/plug-in-message.c
* app/plug-in/plug-in-run.c
* libgimp/gimp.c: added #define ENABLE_TEMP_RETURN 1.
Enables return values for temporary procedures. On the libgimp
side, this just enables the code which returns the values, on the
app side it enables per-plug-in stacks of proc_recs and main_loops
and a message handler for the GP_TEMP_PROC_RETURN message.
A temp_proc's caller now blocks until the proc is finished.
Fixes bug #50649.
Left the #ifdefs there so it can be easily disabled if things
break. Please play with Script-Fu and test this.
2003-06-23 Michael Natterer <mitch@gimp.org>
* app/plug-in/plug-in.[ch]: added separate GMainLoops for waiting
for extension_ack and for procedure_run's return value. The stack
of main loops is currently unused, it will be used for temp_proc
return values (which are currently disabled for no good reason).
Removed the boolean "recurse" and "starting_ext" states because
they are redundant now (we check for the presence of the dedicated
main loops instead).
* app/plug-in/plug-in-message.c
* app/plug-in/plug-in-progress.c
* app/plug-in/plug-in-run.c: changed accordingly.
2003-02-18 Michael Natterer <mitch@gimp.org>
* app/plug-in/plug-ins.[ch]: added plug_ins_proc_def_find() which
takes a ProcRecord and returns the corresponding PlugInProcDef.
* app/plug-in/plug-in.[ch]: added a ProcRecord pointer to the
PlugIn struct so we know which procedure the plug-in is
executing. Replaced "gboolean in_temp_proc" by
"ProcRecord *current_temp_proc". Added plug_in_get_undo_desc()
which uses the new ProcRecord members and plug_ins_proc_def_find()
to return a human readable string.
* app/plug-in/plug-in-run.c: pass the ProcRecord to plug_in_new().
Set plug_in->current_temp_proc while executing a temp_proc.
(The latter won't work since we don't run temp_procs recursively
at the moment).
* app/gui/plug-in-menus.c: translate the plug-in's menu_path
before chopping it for the "Repeat" and "Reshow" menu items.
* tools/pdbgen/pdb/drawable.pdb
* tools/pdbgen/pdb/undo.pdb: use plug_in_get_undo_desc() when
pushing plug-in undos.
* app/pdb/drawable_cmds.c
* app/pdb/undo_cmds.c: regenerated.
2003-02-10 Manish Singh <yosh@gimp.org>
* app/plug-in/plug-in.[ch]: added hooks for running plug-ins under
a memory debugger. Also, removed the args array from the PlugIn
structure, replacing with simply a variable for the path to the
plug-in (and one for a precalculated basename).
* app/plug-in/plug-in-debug.[ch]: helper routines for the above
* app/plug-in/plug-in-message.c
* app/plug-in/plug-in-proc.c
* app/plug-in/plug-in-progress.c: reflect new and renamed args members
* app/plug-in/Makefile.am: added plug-in-debug.[ch]
* app/core/core-types.h: added forward declaration for GimpPlugInDebug
* app/core/gimp.[ch]: added structure member for GimpPlugInDebug
* devel-docs/debug-plug-ins.txt: documented new feature
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-01-30 Michael Natterer <mitch@gimp.org>
* app/plug-in/plug-in.[ch]: renamed plug_in->busy to
plug_in->in_temp_proc. Added a stack of GMainLoops to each
plug-in. Added the "current_return_vals" to the PlugIn
struct. Renamed plug_in_kill() to plug_in_exit(). Removed
the stuff added below. Cleanup.
* app/plug-in/Makefile.am
* app/plug-in/plug-in-message.[ch]
* app/plug-in/plug-in-run.[ch]
* app/plug-in/plug-in-shm.[ch]: new files taking out functionality
from the overloaded plug-in.c. Added the code back in that implements
temp proc return messages (inside an #ifdef) because i don't
really get why it was removed on Sep 19 1998.
* app/plug-in/plug-ins.c: changed accordingly.
* app/plug-in/plug-in-def.c
* app/plug-in/plug-in-params.c: removed inclusion of <gtk/gtk.h>.
* app/gui/file-save-dialog.c
* app/gui/paths-dialog.c
* app/gui/plug-in-commands.c
* app/gui/plug-in-menus.c
* app/pdb/procedural_db.c
* app/widgets/gimphelp.c: changed plug-in includes accordingly.
* app/gui/plug-in-commands.c: don't use "the_gimp" from
"app_procs.h" but get it from the GimpItemFactory that invoked the
plug-in callback.
2003-01-20 Michael Natterer <mitch@gimp.org>
* app/plug-in/plug-in-progress.[ch]: renamed plug_in_progress_init()
to plug_in_progress_start() so it matches plug_in_progress_end().
Added g_return_if_fail() to all functions.
* app/plug-in/plug-in.[ch]: plug_in_new(): require the passed
path to be absolute. Removed plug_in_search_in_path(). Replaced
some if(plug_in){...} by g_return_if_fail(plug_in!=NULL). Cleanup.
* app/plug-in/plug-ins.c: plug_ins_def_add_from_rc(): refuse to
add plug_in_defs with non-absolute paths (should never happen).
Misc cleanup all over the place like s/GSList *tmp/GSList *list/.
* app/plug-in/plug-in-params.c: cleanup.
* tools/pdbgen/pdb/plug_in.pdb: changed accordingly.
* app/pdb/plug_in_cmds.c: regenerated.
* app/gui/brush-select.c
* app/gui/gradient-select.c
* app/gui/palette-select.c
* app/gui/pattern-select.c: some code review & cleanup.
2003-01-17 Michael Natterer <mitch@gimp.org>
One more Plug-In cleanup, it's still a mess...
* app/plug-in/plug-in-def.[ch]: renamed "gboolean query" field
to "needs_query". Added setters for all values. Added
g_return_if_fail() stuff to all functions.
* app/plug-in/plug-in-proc.[ch]: added plug_in_proc_def_new().
Removed the "gboolean data_only" parameter from
plug_in_proc_def_destroy() and renamed it to
plug_in_proc_def_free(). Added plug_in_proc_def_get_progname()
which handles GIMP_TEMPORARY procedures correctly.
* app/plug-in/plug-in-rc.c: use the new stuff above.
* app/plug-in/plug-in.[ch]: renamed field "user_data" to
"plug_in_def" and added a comment that it is valid only during
query() and init(). Use the new APIs above. Pass meaningful
locale_domains and help_paths when adding temporary procedures
(fixes Scrip-Fu menu translation the right way (TM)). Cleanup.
* app/plug-in/plug-ins.[ch]: renamed plug_ins_def_add() to
plug_ins_def_add_from_rc(). Renamed plug_ins_proc_def_[add|remove]()
to plug_ins_temp_proc_def_[add|remove](). Added "Gimp" parameters
to plug_ins_help_path() and plug_ins_locale_domain(). Removed
unused pre-1.2 cruft "gimprc_prof_defs" and plug_ins_image_types().
Reverse gimp->load_procs and gimp->save_procs after all procedures
are registered. Removed Script-Fu translation hack. Reordered stuff.
* app/gui/plug-in-menus.[ch]: changed accordingly. Named all
public functions plug_in_menus_*(). Fixed Script-Fu menu translation
by using plug_in_proc_def_get_progname(). Cleanup.
* app/gui/file-open-menu.c
* app/gui/file-save-menu.c: don't g_slist_reverse() gimp->load_procs
and gimp->save_procs here.
* app/gui/toolbox-menu.c
* app/gui/image-menu.c
* tools/pdbgen/pdb/help.pdb
* tools/pdbgen/pdb/plug_in.pdb: changed accordingly.
* app/pdb/help_cmds.c
* app/pdb/plug_in_cmds.c: regenerated.
Unrelated:
* app/gui/image-menu.c
* app/widgets/gimpitemfactory.c: s/"tearoff1"/"tearoff"/g. I don't
get why the "1" was there. Minor cleanup.
2002-12-10 Michael Natterer <mitch@gimp.org>
The unbelievable happened: a menu bar per display (optionally)
* app/widgets/gimpitemfactory.[ch]: Added the possibility to have
more than one item factory per <Prefix>. Added
gimp_item_factories_set_foobar() variants of all functions which
set menu item properties (label, sensitive, ...). Removed
the #ifndef ENABLE_NLS code since that's no longer possible.
* app/widgets/gimptoolbox.c: made it robust againt the <Image>
factory not existing at the time of toolbox creation.
* app/config/gimpconfig-blurbs.h
* app/config/gimpdisplayconfig.[ch]: added boolean
"menu_bar_per_display" property.
* app/gui/preferences-dialog.c: added a toggle for the new option.
* app/gui/menus.[ch]: added menus_get_new_image_factory() as
temporary solution. Will add a GimpMenuFactory which creates the
item factories soon.
* app/display/gimpdisplayshell.c: add the menu bar if requested.
Changed widget packing slightly for the menu bar case.
* app/display/gimpdisplayshell-callbacks.c: changed accordingly.
Currently there is no right-click popup menu when we have a menu
bar. This will change soon.
* app/gui/file-dialog-utils.c
* app/gui/gui.c: use gimp_item_factories_set_foo().
* app/gui/channels-commands.c
* app/gui/dialogs-commands.c
* app/gui/dialogs-constructors.c
* app/gui/drawable-commands.c
* app/gui/edit-commands.c
* app/gui/file-commands.c
* app/gui/image-commands.c
* app/gui/layers-commands.c
* app/gui/plug-in-commands.c
* app/gui/select-commands.c
* app/gui/tools-commands.c
* app/gui/vectors-commands.c
* app/gui/view-commands.c: per-display item factories pass the
GimpDisplay as user_data to callbacks, not a Gimp. Changed all
return_if_no_foo() macros to handle both cases.
Cleaned up the plug-in menu stuff:
* app/plug-in/plug-in-types.h: removed PlugInMenuEntry type.
* app/plug-in/plug-ins.[ch]: added plug_ins_proc_def_add() as
counterpart to plug_ins_proc_def_remove(). Added
plug_ins_locale_domain() as counterpart to plug_ins_help_path().
Remember the locale domains just as the help paths. Changed
plug-in initialization so that their menus can be created multiple
times.
* app/plug-in/plug-in.[ch]: use plug_ins_proc_def_add() instead of
doing it manually.
* app/gui/plug-in-menus.[ch]: added plug_in_menus_init() which
just registers the locale domains. Changed plug_in_make_menu() to
take a list of proc_defs, not plug_ins_defs so it can be used
after plug-in query.
2002-11-16 Manish Sing <yosh@gimp.org>
* app/plug-in/plug-in.c: use g_spawn_async now. If the OS/2 port
is still being maintained, there needs to be work done Glib side.
If not, we should probably drop the other support code.
* app/plug-in/plug-in.h: remove unused Win32 only structure members
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.
* app/plug-in/plug-in-rc.c: implement a new pluginrc flag,
"has-init", so that only plug-ins with init functions are
initialized.
* app/plug-in/plug-in.ch
* libgimp/gimp.c
* libgimpbase/gimpprotocol.ch: send a new gimpwire message,
GP_HAS_INIT during the query stage if the plug-in needs to be
initialized. Only invoke the plug-in in init mode if the plug-in
has an init function.
2001-12-28 Sven Neumann <sven@gimp.org>
* app/plug-in/Makefile.am
* app/plug-in/plug-in-rc.[ch]: new files that parse pluginrc using a
GScanner.
* app/plug-in/plug-in.[ch]: made PlugInDef public again so we can use
it from the pluginrc parser.
* tools/pdbgen/pdb/procedural_db.pdb: made regex string matching
robust against NULL pointers.
* app/pdb/procedural_db_cmds.c: regenerated.
* app/gimprc.c: removed old pluginrc parser.
2001-12-14 Michael Natterer <mitch@gimp.org>
* app/core/gimpimage.[ch]: added
GIMP_IMAGE_TYPE_IS_[RGB|GRAY|INDEXED]() and
GIMP_IMAGE_TYPE_BASE_TYPE() macros.
* app/plug-in/plug-in.[ch]: new enum PlugInImageType instead of
multiple #defines.
* app/gui/file-dialog-utils.[ch]: file_dialog_update_menus(): take
a GimpImageType instead of the PlugInImageType.
* app/core/gimpdrawable-preview.c
* app/core/gimpdrawable-transform.c
* app/core/gimpdrawable.c
* app/core/gimpimage-contiguous-region.c
* app/core/gimpimage-mask.c
* app/core/gimpimage-merge.c
* app/core/gimplayermask.c
* app/core/gimppalette-import.c
* app/display/gimpdisplay-handlers.c
* app/display/gimpdisplayshell-render.c
* app/gui/file-save-dialog.c
* app/gui/toolbox.c
* app/tools/gimpclonetool.c
* app/tools/gimpcolorpickertool.c
* tools/pdbgen/pdb/convert.pdb
* tools/pdbgen/pdb/image.pdb: use the new macros, cleanups like
storing GimpImageType in GimpImageType variables, not just gint.
* app/pdb/convert_cmds.c
* app/pdb/image_cmds.c: regenerated.
* app/widgets/gimpdialogfactory.c: save the state of the "Auto"
button in sessionrc.
2001-12-08 Sven Neumann <sven@gimp.org>
* app/core/Makefile.am
* app/core/core-enums.h: new file that holds enums that are registered
with the type system and is used to generate core-enums.c.
* app/core/core-types.h: include core-enums.h
* app/base/base-types.h: namespace cleanup. Prefix all enumeration
types with Gimp and their values with GIMP. Moved GimpLayerModeEffects
enum ...
* app/base/base-enums.h: ... here.
* app/image_map.c
* app/base/temp-buf.c
* app/core/gimpcontext.[ch]
* app/core/gimpdrawable-transform.c
* app/core/gimpdrawable.c
* app/core/gimpedit.c
* app/core/gimpimage-mask.c
* app/core/gimpimage-merge.c
* app/core/gimpimage-new.c
* app/core/gimpimage-projection.c
* app/core/gimpimage.[ch]
* app/core/gimplayer.[ch]
* app/display/gimpdisplayshell-dnd.c
* app/display/gimpdisplayshell-render.c
* app/gui/brush-select.c
* app/gui/layers-commands.c
* app/gui/preferences-dialog.c
* app/gui/toolbox.c
* app/paint-funcs/paint-funcs.[ch]
* app/tools/gimpconvolvetool.c
* app/tools/gimperasertool.c
* app/tools/gimpiscissorstool.c
* app/tools/gimppainttool.[ch]
* app/tools/gimptexttool.c
* app/tools/paint_options.c
* app/widgets/gimplayerlistview.c
* app/widgets/gimpwidgets-constructors.[ch]
* app/xcf/xcf-load.c
* tools/pdbgen/pdb/brush_select.pdb
* tools/pdbgen/pdb/brushes.pdb
* tools/pdbgen/pdb/color.pdb
* tools/pdbgen/pdb/layer.pdb
* tools/pdbgen/pdb/tools.pdb: changed accordingly.
* libgimpbase/gimpbasetypes.h: no need to chop GIMP prefix off the
enums any longer.
* app/pdb/brush_select_cmds.c
* app/pdb/brushes_cmds.c
* app/pdb/color_cmds.c
* app/pdb/layer_cmds.c
* app/pdb/message_cmds.c
* app/pdb/procedural_db_cmds.c
* app/pdb/tools_cmds.c
* libgimp/gimpenums.h
* plug-ins/script-fu/script-fu-constants.c
* tools/pdbgen/enums.pl: regenerated.
* app/gimprc.c: removed code to parse for "plug_in" keyword which was
left over from some very early gimp days.
* app/plug-in/plug-in.[ch]: removed now unused function plug_in_add().
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-11-24 Sven Neumann <sven@gimp.org>
* app/gimprc.c
* app/plug_in.[ch]
* app/pdb/plug_in_cmds.c
* tools/pdbgen/pdb/plug_in.pdb: started to clean plug_in code a little.
Still a long way to go...
* app/gui/splash.c: simplified
2001-10-19 Michael Natterer <mitch@gimp.org>
* app/Makefile.am: link the app in a different order as some init
functions are called from core/gimp.c instead of app_procs.c now.
* app/app_procs.[ch]: made app_init_update_status() private and
pass it as callback to various init functions.
* app/plug_in.[ch]: plug_in_init() take "gimp" and "status_callback"
parameters.
* app/undo.c: use "gimage->gimp" instead of "the_gimp", don't
include "app_procs.h".
* app/core/core-types.h: added "GimpInitStatusFunc" typedef.
* app/core/gimp.[ch]: gimp_initialize() and gimp_restore() now
take a "status_callback" as parameter. Don't include "app_procs.h".
* app/core/gimpmodules.c: putting the modules in a strong
container was a bad idea because it may be impossible to finalize
a GimpModuleInfo object belonging to a stalled module.
* app/gui/color-area.c: use G_N_ELEMENTS().
* app/gui/session.c: don't call app_init_update_status() and don't
include "app_procs.h" because this happens after the splash is
hidden.
* tools/pdbgen/app.pl
* app/pdb/internal_procs.[ch]: pass a "status_callback" to
internal_procs_init(), don't include "app_procs.h".
* plug-ins/Makefile.am: build gfig, gimpressionist and imagemap
again.
* plug-ins/MapObject/mapobject_preview.c
* plug-ins/MapObject/mapobject_ui.c: s/gdk_image_unref/g_object_unref/
* plug-ins/gfig/gfig.c
* plug-ins/gimpressionist/brush.c
* plug-ins/gimpressionist/gimpressionist.c
* plug-ins/gimpressionist/ppmtool.[ch]
* plug-ins/gimpressionist/presets.c
* plug-ins/imagemap/imap_browse.[ch]
* plug-ins/imagemap/imap_csim.y
* plug-ins/imagemap/imap_edit_area_info.c
* plug-ins/imagemap/imap_file.c
* plug-ins/imagemap/imap_main.c
* plug-ins/imagemap/imap_menu.c
* plug-ins/imagemap/imap_polygon.c
* plug-ins/imagemap/imap_popup.c
* plug-ins/imagemap/imap_preferences.c
* plug-ins/imagemap/imap_taglist.c
* plug-ins/imagemap/imap_tools.c: ported to current GLib/Gtk+.
* plug-ins/gap/gap_arr_dialog.c
* plug-ins/gap/gap_decode_xanim.c
* plug-ins/gap/gap_filter_foreach.c
* plug-ins/gap/gap_filter_main.c
* plug-ins/gap/gap_frontends_main.c
* plug-ins/gap/gap_lib.c
* plug-ins/gap/gap_main.c
* plug-ins/gap/gap_mod_layer.c
* plug-ins/gap/gap_mov_dialog.c
* plug-ins/gap/gap_navigator_dialog.c
* plug-ins/gap/resize.c: half-way fixed this one too but I'm not
willing to fix tons of duplicated and deprecated app/ code...
2001-10-16 Michael Natterer <mitch@gimp.org>
* app/gimpprogress.[ch]
* app/undo.c: s/GDisplay/GimpDisplay/
* app/plug_in.[ch]: removed unused boolean "destroy" field of
the PlugIn struct.
* app/core/gimpedit.c: don't include "app_procs.h"
* app/display/gimpdisplay-callbacks.c: moved the "grab_abd_scroll"
stuff from gimpdisplay-scroll.* here (less complicated and easier
to cleanup...)
* app/display/gimpdisplay-scroll.[ch]: removed here.
* app/display/gimpdisplay-render.[ch]
* app/display/gimpdisplay-selection.[ch]
* app/display/gimpdisplayshell.c: s/GDisplay/GimpDisplay/g
* app/display/gimpdisplay.[ch]: ditto, removed gdisplay_active()
which was just a wrapper around
"gimp_context_get_display (gimp_get_user_context (the_gimp))"
(which is more to type but makes the use of the global
"the_gimp" variable more obvious).
* app/gui/color-area.h
* app/gui/edit-commands.c
* app/gui/file-commands.c
* app/gui/file-dialog-utils.c
* app/gui/image-commands.c
* app/gui/info-window.h
* app/gui/paths-dialog.h
* app/gui/select-commands.c
* app/gui/tool-options-dialog.c
* app/gui/tools-commands.c
* app/gui/view-commands.c: s/GDisplay/GimpDisplay/, gdisplay_active()
removal, include "app_procs.h" for "the_gimp".
* app/tools/gimpbezierselecttool.h
* app/tools/gimpbrightnesscontrasttool.[ch]
* app/tools/gimpbycolorselecttool.c
* app/tools/gimpcolorbalancetool.[ch]
* app/tools/gimpcurvestool.[ch]
* app/tools/gimpeditselectiontool.h
* app/tools/gimphistogramtool.[ch]
* app/tools/gimphuesaturationtool.[ch]
* app/tools/gimplevelstool.[ch]
* app/tools/gimpmovetool.h
* app/tools/gimpperspectivetool.h
* app/tools/gimpposterizetool.[ch]
* app/tools/gimprotatetool.h
* app/tools/gimpscaletool.h
* app/tools/gimpsheartool.h
* app/tools/gimptexttool.h
* app/tools/gimpthresholdtool.[ch]
* app/tools/gimptool.[ch]
* app/tools/gimptransformtool.h
* app/tools/tool_manager.[ch]: lots of s/GDisplay/GimpDisplay/, made
all *_dialog_hide() functions private, cleanup.
* app/widgets/*: removed GtkType and gtk_type_* stuff entirely and
use GObject functions, removed lots of empty "destroy" methods and
use more type checking class cast macros instead of casting
directly.
* app/widgets/gimpcontainermenu.c: fixed item insert order.
* app/widgets/gimphistogramview.[ch]: cleaned up and renamed all
functions.
* app/widgets/gimpwidgets-utils.[ch]: removed gimp_dialog_hide() as
Gtk+ does the right thing (TM) now.
* tools/pdbgen/pdb/color.pdb: implemented "histogram" without
digging into tools/ and widgets/ (needs to be done for all
color PDB functions).
* tools/pdbgen/pdb/gimprc.pdb: no need to use "the_gimp" in a PDB
function as a "Gimp" pointer is passed to them all.
* tools/pdbgen/pdb/image.pdb: don't include "app_procs.h"
* app/pdb/color_cmds.c
* app/pdb/gimprc_cmds.c
* app/pdb/image_cmds.c: regenerated.
* app/pdb/procedural_db.c: don't include "app_procs.h"
2001-08-17 Michael Natterer <mitch@gimp.org>
* configure.in: added app/display/ and app/plug-in/. Empty for
now except for the types files.
* app/Makefile.am
* app/appenums.h
* app/apptypes.h: removed.
* app/display/Makefile.am
* app/display/display-types.h
* app/plug-in/Makefile.am
* app/plug-in/plug-in-types.h
* app/gui/Makefile.am
* app/gui/gui-types.h
* app/pdb/Makefile.am
* app/pdb/pdb-types.h: new files for typedefs.
* app/appenv.h: added MessageHandlerType and StackTraceMode here.
* app/undo_types.h: moved undo struct typedefs here.
* app/tools/tools-types.h
* app/core/core-types.h: added some enums and Tattoo here
(renamed to GimpTattoo).
* app/gdisplay.h: temp_hack: #include "display/display-types.h"
* app/gimphelp.c: s/gtk_idle_add/g_idle_add/
* app/gimprc.c: don't use "gimprc" in token handlers but the
passed "val1p" and "val2p".
* app/image_map.[ch]: cleanup in preparation of making a GObject
out of it.
* app/base/pixel-region.[ch]: no need to pass the
PixelRegionIterator around as void pointer.
* app/core/gimp.[ch]
* app/core/gimpcontext.[ch]
* app/core/gimptoolinfo.[ch]
* app/tools/tool_manager.c
* app/widgets/gimpdnd.c: added the standard_tool_info to the Gimp
object.
* app/batch.c
* app/file-open.c
* app/file-save.c
* app/file-utils.c
* app/interface.c
* app/main.c
* app/path.[ch]
* app/pathP.h
* app/plug_in.h
* app/core/gimpdrawable.[ch]
* app/core/gimpimage-mask.c
* app/core/gimpimage.[ch]
* app/core/gimplayer.c
* app/gui/color-area.c
* app/gui/color-notebook.c
* app/gui/colormap-dialog.c
* app/gui/dialogs-commands.c
* app/gui/dialogs-constructors.c
* app/gui/error-console-dialog.c
* app/gui/gradient-editor.c
* app/gui/gradient-select.c
* app/gui/indicator-area.c
* app/gui/info-dialog.c
* app/gui/palette-editor.c
* app/gui/palette-select.c
* app/gui/pattern-select.c
* app/gui/session.c
* app/gui/splash.c
* app/gui/view-commands.c
* app/tools/gimpinktool-blob.c
* app/widgets/gimpcolorpanel.c
* app/widgets/gimpdockbook.c
* app/widgets/gimppreview.c
* app/xcf/xcf-load.c
* app/xcf/xcf-save.c
* app/xcf/xcf.c: changed accordingly: s/Tattoo/GimpTattoo/, include
the new types files, include <glib-object.h> instead of >gtk/gtk.h>.
Bad hacks to get rid of SELECTION_OFF and friends in core/ (will
be replaced ba a signal soon).
* tools/pdbgen/Makefile.am: changed list of headers scanned for
enums accordingly.
* app/pdb/procedural_db.c
* tools/pdbgen/app.pl
* tools/pdbgen/pdb/channel.pdb
* tools/pdbgen/pdb/display.pdb
* tools/pdbgen/pdb/gradient_select.pdb
* tools/pdbgen/pdb/image.pdb
* tools/pdbgen/pdb/layer.pdb
* tools/pdbgen/pdb/pattern_select.pdb: same fixes as above, added
hacks to ensure that all foo-types.h files are included before all
other gimp internal includes, include "pdb-types.h" unconditionally.
* tools/pdbgen/enums.pl
* app/pdb/*_cmds.c: regenerated.
2000-12-29 Michael Natterer <mitch@gimp.org>
* app/Makefile.am
* app/channel_pvt.h
* app/drawable_pvt.h
* app/gdisplayF.h
* app/gimpdrawableP.h
* app/gimpimageP.h
* app/layer_pvt.h
* app/toolsF.h: removed these files.
* app/apptypes.h
* tools/pdbgen/enums.pl: added tons of opaque typedefs and enums.
* tools/pdbgen/pdb/brush_select.pdb
* tools/pdbgen/pdb/brushes.pdb
* tools/pdbgen/pdb/channel.pdb
* tools/pdbgen/pdb/color.pdb
* tools/pdbgen/pdb/convert.pdb
* tools/pdbgen/pdb/display.pdb
* tools/pdbgen/pdb/drawable.pdb
* tools/pdbgen/pdb/fileops.pdb
* tools/pdbgen/pdb/gradient_select.pdb
* tools/pdbgen/pdb/gradients.pdb
* tools/pdbgen/pdb/help.pdb
* tools/pdbgen/pdb/image.pdb
* tools/pdbgen/pdb/layer.pdb
* tools/pdbgen/pdb/pattern_select.pdb
* tools/pdbgen/pdb/patterns.pdb
* tools/pdbgen/pdb/selection.pdb
* tools/pdbgen/pdb/tools.pdb
* app/*: chainsaw #include cleanup:
- Never (never!!) include stuff in header files except where we
need access to structures' contents (like derived objects).
- Added prototypes and proper formating in many files.
- The #include order in *all* *.c files is as follows:
#include "config.h"
#include <system stuff>
#include <gtk/gtk.h>
#include "apptypes.h"
#include "gimp stuff"
#include "libgimp stuff"
#include "libgimp/gimpintl.h"
By following this scheme we can easily see a file's dependencies
from it's #include's and can grep for the inclusion to find out
where a file is used.
* tools/pdbgen/app.pl: changed to follow the include scheme above.
* libgimp/Makefile.am
* libgimp/gimpuitypes.h: new file, included from libgimp/gimpui.h
and from app/apptypes.h.
* libgimp/gimpcolorbutton.[ch]
* libgimp/gimpdialog.[ch]
* libgimp/gimphelpui.[ch]
* libgimp/gimpparasite.[ch]
* libgimp/gimppatheditor.[ch]
* libgimp/gimpprotocol.c
* libgimp/gimpquerybox.[ch]
* libgimp/gimpsizeentry.[ch]
* libgimp/gimptypes.h
* libgimp/gimpui.h
* libgimp/gimpunit.h
* libgimp/gimpunitmenu.[ch]
* libgimp/gimpwidgets.[ch]: changed accordingly.
* plug-ins/FractalExplorer/Dialogs.c
* plug-ins/gdyntext/message_window.c
* plug-ins/imagemap/imap_default_dialog.c
* plug-ins/imagemap/imap_file.c: these files used to include
"libgimp/gimpui.h" without including "libgimp/gimp.h". This is
no longer possible because the libgimpui headers don't inlcude
"libgimp/gimpunit.h" any more.
2000-05-21 Michael Natterer <mitch@gimp.org>
These changes enable help support for 3rd party plug-ins which
install their help files outside GIMP's main help dir.
Instead of calling gimp_help(), gimp_plugin_help_func() etc.,
all help callbacks now have to call gimp_standard_help_func()
which has different implementations in the app and in libgimp.
There is a new function gimp_plugin_help_register() which can
be called during plug-in query. plug_in.c keeps a list of
executable_name/help_path pairs. Plug-ins have to pass their
exec. name to gimp_help() which uses the list to find the plug-in's
help directory.
* app/gimphelp.[ch]: gimp_help() now takes a help_path parameter.
help_path == NULL means the standard help directory. Various
changes to pass the help_path to the help browser.
* app/gimprc.c: save the plug-in's help_path in the pluginrc file.
* app/menus.c: ugly hack to enable help_paths in the "F1" callback.
* app/plug_in.[ch]: many help_path related changes. Use g_basename()
instead of strrchr(str,G_DIR_SEPARATOR), cosmetic cleanups.
* app/internal_procs.c
* app/gimphelp_cmds.c
* tools/pdbgen/pdb/gimphelp.pdb: new procedure
gimp_plugin_help_register(). gimp_help() takes a second parameter
which is the executable name (not the help_path).
* app/color_notebook.c
* app/commands.c
* app/lc_dialog.c
* app/preferences_dialog.c
* app/tools.c: call gimp_standard_help_func() instead of gimp_help().
* libgimp/gimp.c: new function gimp_get_progname() which returns
the full path of the plug-in's executable.
* libgimp/gimp.h: export the new function,
removed gimp_plugin_help_func(), gimp_help() takes the executable
name as second parameter.
* libgimp/gimpcompat.h: added gimp_plugin_help_func().
* libgimp/gimphelp.c: a wrapper for gimp_plugin_help_register(),
changed the calls to gimp_help.
* libgimp/gimphelpui.[ch]: call gimp_standard_help_func() instead
of gimp_help().
* plug-ins/helpbrowser/helpbrowser.c: now called with an additional
help_path parameter. Various changes to enable
help_path != gimp_standard_help_path.
Unrelated stuff:
* app/batch.h: added missing GPL header.
* app/gimpunit.c: had a LGPL header, merged some fprintf's into
one call.
* app/procedural_db.[ch]: cosmetic: g* types, s/g_malloc/g_new/,
prototypes, indentation.
* app/resize.c: use less packing widgets. didn't find the "offset"
redraw bug :(
* app/fileops_cmds.c
* tools/pdbgen/pdb/fileops.pdb: don't add an already registered
load|save handler twice to the list. This fixes the problem
that extension were listed twice if a load|save plugin changed.
* app/plug_in.[ch]: code cleanup, indentation
* app/xcf.[ch]: same here, include copyright headers
* plug-ins/common/wmf.c: properly cancel the load if the user
pressed Cancel in the dialog (fixes bug #6500)
--Sven
* app/app_procs.c
* app/gdisplay_color.[ch]
* app/gdisplay_color_ui.c: make the ui usable
* app/gdisplay.c: enable cdisplay support
* modules/Makefile.am
* modules/cdisplay_gamma.c: moved gamma functionality to separate
-Yosh
* app/*.[ch]: Actually use the enum types GimpImageType,
GimpImageBaseType, LayerModeEffects, PaintApplicationMode,
BrushApplicationMode, GimpFillType and ConvertPaletteType, instead
of just int or gint. Hopefully I catched most of the places
where these should be used.
Add an enum ConvolutionType, suffix the too general constants
NORMAL, ABSOLUTE and NEGATIVE with _CONVOL. Use NORMAL_MODE
instead of NORMAL in some places (this was what was intended). Fix
some minor gccisms.
* app/apptypes.h: New file. This file contains the above
enumeration types, and some opaque struct typedefs. It was
necessary to collect these in one header that doesn't include
other headers, because when we started using the above mentioned
types in the headers, all hell broke loose because of the
spaghetti-like cross-inclusion mess between headers.
(An example: Header A includes header B, which includes header C
which includes A. B uses a type defined in A. This is not defined,
because A hasn't defined it yet at the point where it includes B,
and A included from B of course is skipped as we already are
reading A.)
* Makefile.am: listed tools first in SUBDIRS, so xgettext can grab
the autogenned files
* acconfig.h: removed unused HAVE_XSHM_H
* tools/pdbgen/app.pl: added proc invoke method, nicer header
formatting
* tools/pdbgen/pdb/layer.pdb: use layer_mask type for return value
for layer_create_mask
* tools/pdbgen/pdb/misc.pdb: added quit proc
* tools/pdbgen/pdb/tools.pdb: added ink proc, but not added to @procs
since it's incomplete
* tools/pdbgen/pdb/fileops.pdb: new file
* app/Makefile.am: added fileops_cmds.c
* app/app_procs.c
* app/fileops.c
* app/ink.c: removed PDB procs (the one in ink.c was incomplete)
* app/fileops.h: exported load_procs, save_procs, and file_proc_find()
* app/plug_in.h: exported enum, #include <sys/types.h>
* app/brushes_cmds.c
* app/fileops_cmds.c
* app/layer_cmds.c
* app/misc_cmds.c
* app/parasite_cmds.c
* app/patterns_cmds.c
* app/procedural_db_cmds.c
* app/text_tool_cmds.c
* app/internal_procs.c: pdbgen updates
* app/paint_funcs.c: the glibc 2.1 docs say using SVID threadsafe
random functions are preferable to rand_r, so use them instead of
a mutex
-Yosh
Tue Feb 23 00:05:39 GMT 1999 Adam D. Moss <adam@gimp.org>
* app/plug_in.c
app/plug_in.h: Moved the RunModeType enum
into the header so we can use it elsewhere (e.g. fileops)
* plug-ins/gif/gif.c
plug-ins/jpeg/jpeg.c: Don't show progress-bars if we're
running noninteractively. This makes thumbnail updating
look more pleasant. Try to do the same for all file plugins
(and others)!
* app/fileops.c: Reworked the thumbnail display again, fixed
some buglets, file_open_image() is RunMode aware, added some
tweaks, rhubarb rhubarb, merged in some 'cosmetic' tweaks
from Marco.
Sat Jan 30 23:51:04 GMT 1999 Andy Thomas <alt@picnic.demon.co.uk>
Changed:-
* app/dialog_handler.c
* app/dialog_handler.h
* app/gimage.c
* app/gimprc.c
* app/plug_in.c
* app/plug_in.h
Fixed problem with TAB key hiding all dialogs. With some WM
you could hide all the windows with TAB then close the last image
down... opps how do you get back to the main dialog. Main
dialog is now poped up when last image is closed and we had
used TAB key to hide it.
New PDB functions to query plugin info. Plugin to follow...
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).
Wed Oct 21 20:15:14 CEST 1998 Marc Lehmann <pcg@goof.com>
* app/plug_in.h, app/plug_in.c, app/procedural_db.c: Added an "argc"
parameter to plug_in_run and changed all callers so that they only
pass as much arguments as necessary (should be done for
procedural_db_execute as well).
Sun Jun 14 21:16:42 CDT 1998 Shawn T. Amundson <amundson@gimp.org>
* app/gdisplay.c
* app/gdisplay.h
* app/interface.c
* app/plug_in.c
* app/plug_in.h
* libgimp/gimp.c: added statusbar and progressbar, which
the plugins now use if they have a gdisp. Unfortunately
this introduces a resize bug I wasn't able to fix
immediately. ;-(
* Makefile.am: install gimp.m4 too
* libgimp/gimpprotocol.[ch]
* libgimp/gimp.c
* app/plug_in.[ch]
* app/procedural_db.c: exported the gdisplay ID to the plugins, so they can
be smart about hooking on to status bars in the appropriate display shell
* libgimp/Makefile.am
* libgimp/gimp.c: make the plugins aware of $gimpdir for gtkrc parsing
-Yosh