2005-09-09 Michael Natterer <mitch@gimp.org>
Added parent window API to the GimpProgress interface and to
the libgimp progress stuff. Might look strange, but does
the right thing in almost all cases (image window, file dialog,
script-fu dialog etc). Fixes bug #62988.
* app/core/gimpprogress.[ch]: added GimpProgress::get_window()
which should return a toplevel window ID if the progress is in a
window that wants to be the transient parent of plug-in dialogs.
* app/widgets/gimpwidgets-utils.[ch] (gimp_window_get_native): new
function which returns the window handle of a GtkWindow's GdkWindow.
* app/widgets/gimpfiledialog.c: implement ::get_window().
* app/display/gimpdisplay.[ch]: ditto. Removed window handle API.
* app/gui/gui-vtable.c: changed accordingly.
* libgimpbase/gimpbaseenums.[ch] (enum GimpProgressCommand):
added GIMP_PROGRESS_COMMAND_GET_WINDOW.
* app/plug-in/plug-in-progress.[ch] (plug_in_progress_get_window):
new function. Also renamed some functions to match the
GimpProgress interface, and not the legacy PDB procedure names.
* tools/pdbgen/pdb/progress.pdb
* app/core/gimppdbprogress.c: implement get_window() on both
sides of the wire, keeping backward compatibility (hopefully).
* libgimp/gimpprogress.[ch]: deprecated gimp_progress_install()
and added gimp_progress_install_vtable() which takes a vtable with
padding to be extensible. Added get_window() vtable entry and
dispatch it accordingly. Also added pulse() which was implemented
in a hackish way before. Everything is of course backward
compatible.
* libgimp/gimpprogressbar.c: inmplement the get_window() stuff
so a plug-in dialog containing a progress can be the transient
parent of another dialog in another plug-in.
* libgimp/gimpui.[ch] (gimp_ui_get_progress_window): new function
which returns a foreign GdkWindow of this plug-ins progress
window.
Renamed gimp_window_set_transient_for_default_display() to
gimp_window_set_transient() and make it use the progress' window
handle instead of the display's (which is the right thing to do in
almost all cases).
* libgimp/gimp.def
* libgimp/gimpui.def: add the new functions.
* tools/pdbgen/enums.pl
* app/pdb/internal_procs.c
* app/pdb/progress_cmds.c
* libgimp/gimpprogress_pdb.[ch]: regenerated.
* libgimp/gimpexport.c
* plug-ins/*/*.c: follow API change.
2005-09-05 Sven Neumann <sven@gimp.org>
* plug-ins: Call gimp_window_set_transient_for_default_display()
for most plug-in dialogs. Not yet done are load and save dialogs
and dialogs created from language bindings.
2005-02-08 Sven Neumann <sven@gimp.org>
Applied a patch from Patrice Tremblay that makes (almost) all
dialogs obey the "gtk-alternative-button-order" setting
(bug #166678). Changes too many files to list them all...
2004-10-12 Michael Natterer <mitch@gimp.org>
* plug-ins/*/*.c: all plug-ins except script-fu: removed the
translation marks from the menu paths passed to
gimp_plugin_menu_register(). All default menu branches used by
included plug-ins are created and translated by the core now.
2004-05-07 Michael Natterer <mitch@gimp.org>
Changed plug-in menu registration again to allow passing just the
menu item's label (not the full path) in gimp_install_procedure()
and only the path (excluding the item's label) in
gimp_plugin_menu_register(). Matches the internal action system
better and makes translating the menu paths much easier.
(Of yourse it's still possible to use the old syntax for backward
compatibility).
* app/plug-in/plug-in-proc.[ch]: added "gchar *menu_label".
* app/plug-in/plug-in-params.[ch]: added new functions
plug_in_param_defs_check() and plug_in_proc_args_check() which
check if a procedure's parameters match its menu location
(e.g. <Image> needs RUN-MODE, IMAGE, DRAWABLE).
* app/plug-in/plug-in-message.c (plug_in_handle_proc_install): if
registering an old-style (full) menu_path, use
plug_in_param_defs_check(), set proc_def->menu_label otherwise.
* tools/pdbgen/pdb/plug_in.pdb (plugin_menu_register): use
plug_in_proc_args_check() on the passed menu_path and make sugre
old and new style menu registration are not mixed.
* app/pdb/plug_in_cmds.c: regenerated.
* app/plug-in/plug-in-rc.c: save/restore "menu_label".
* app/actions/file-dialog-actions.c
* app/actions/plug-in-actions.c
* app/menus/plug-in-menus.c: changed action/menu creation
accordingly. Some hacks needed to allow both old and new style
menu_label/menu_paths.
* app/plug-in/plug-in.c
* app/widgets/gimpfiledialog.c
* app/xcf/xcf.c: changed accordingly.
* plug-ins/common/align_layers.c
* plug-ins/common/animationplay.c
* plug-ins/common/animoptimize.c
* plug-ins/common/apply_lens.c
* plug-ins/common/autocrop.c
* plug-ins/common/autostretch_hsv.c
* plug-ins/common/blinds.c
* plug-ins/common/blur.c
* plug-ins/common/borderaverage.c
* plug-ins/common/bumpmap.c
* plug-ins/common/c_astretch.c
* plug-ins/common/ccanalyze.c
* plug-ins/common/channel_mixer.c
* plug-ins/common/checkerboard.c
* plug-ins/common/color_enhance.c
* plug-ins/common/colorify.c
* plug-ins/common/colortoalpha.c
* plug-ins/common/compose.c
* plug-ins/common/convmatrix.c
* plug-ins/common/cubism.c
* plug-ins/common/curve_bend.c
* plug-ins/common/decompose.c
* plug-ins/common/deinterlace.c
* plug-ins/common/depthmerge.c
* plug-ins/common/destripe.c
* plug-ins/common/diffraction.c
* plug-ins/common/displace.c
* plug-ins/common/edge.c
* plug-ins/common/emboss.c
* plug-ins/common/engrave.c
* plug-ins/common/exchange.c
* plug-ins/common/film.c
* plug-ins/common/flarefx.c
* plug-ins/common/fractaltrace.c
* plug-ins/common/screenshot.c: ported the first few plug-ins
to the new registration scheme.
2004-01-20 Michael Natterer <mitch@gimp.org>
* app/widgets/gimphelp-ids.h: added help IDs for the libgimp
export and unit dialogs.
* libgimp/gimpexport.c
* libgimpwidgets/gimpunitmenu.c: replaced html links by the new
help IDs.
* plug-ins/*/*.c: replaced all html help links by help IDs. A
plug-in's help ID is its procedure name with '_' relaced by '-'.
(e.g. file_tiff_save's help ID is file-tiff-save)
Did some random indentation and whitespace cleanup.
2003-11-14 Manish Singh <yosh@gimp.org>
* libgimpwidgets/gimpwidgets.[ch]: implementedgimp_int_option_menu_new
and gimp_int_radio_group_new, which are the same as
gimp_option_menu_new2 and gimp_radio_group_new2, but they take
integers as values to map instead of gpointers, which avoids casts
in pretty much all uses of it in the tree.
* app/gui/image-commands.c
* app/gui/offset-dialog.c
* app/widgets/gimppropwidgets.c
* app/widgets/gimpwidgets-constructors.c
* libgimpwidgets/gimpmemsizeentry.c
* modules/cdisplay_colorblind.c
* plug-ins/FractalExplorer/Dialogs.c
* plug-ins/Lighting/lighting_ui.c
* plug-ins/MapObject/mapobject_ui.c
* plug-ins/common/AlienMap.c
* plug-ins/common/AlienMap2.c
* plug-ins/common/CML_explorer.c
* plug-ins/common/align_layers.c
* plug-ins/common/blinds.c
* plug-ins/common/borderaverage.c
* plug-ins/common/bumpmap.c
* plug-ins/common/curve_bend.c
* plug-ins/common/deinterlace.c
* plug-ins/common/edge.c
* plug-ins/common/emboss.c
* plug-ins/common/fractaltrace.c
* plug-ins/common/gif.c
* plug-ins/common/hot.c
* plug-ins/common/iwarp.c
* plug-ins/common/jigsaw.c
* plug-ins/common/jpeg.c
* plug-ins/common/lic.c
* plug-ins/common/mail.c
* plug-ins/common/max_rgb.c
* plug-ins/common/mblur.c
* plug-ins/common/mng.c
* plug-ins/common/mosaic.c
* plug-ins/common/nlfilt.c
* plug-ins/common/papertile.c
* plug-ins/common/pnm.c
* plug-ins/common/ps.c
* plug-ins/common/psp.c
* plug-ins/common/ripple.c
* plug-ins/common/shift.c
* plug-ins/common/sinus.c
* plug-ins/common/sparkle.c
* plug-ins/common/struc.c
* plug-ins/common/sunras.c
* plug-ins/common/tiff.c
* plug-ins/common/waves.c
* plug-ins/common/wind.c
* plug-ins/fits/fits.c
* plug-ins/flame/flame.c
* plug-ins/gfig/gfig.c
* plug-ins/gimpressionist/color.c
* plug-ins/gimpressionist/orientmap.c
* plug-ins/gimpressionist/placement.c
* plug-ins/maze/maze_face.c
* plug-ins/sgi/sgi.c: Use gimp_int_option_menu_new and
gimp_int_radio_group_new.
* plug-ins/common/CML_explorer.c: make function_graph_new take a
gpointer *data instead of a gpointer data, and properly pass an
int through it.
* plug-ins/common/mng.c: mark menu strings for translation.
* plug-ins/rcm/rcm.c: remove initialization for Success member
in RcmParams, since it's gone now.
2003-11-11 Michael Natterer <mitch@gimp.org>
* libgimpwidgets/gimpdialog.[ch] (gimp_dialog_run): new function
which does the same as gtk_dialog_run() except it does not make
the dialog modal.
* app/gui/resolution-calibrate-dialog.c
* libgimp/gimpexport.c
* plug-ins/*/*.c: use gimp_dialog_run() instead of gtk_dialog_run().
* plug-ins/common/grid.c: set update_continuous to TRUE for
the GimpColorButtons so this feature gets some testing.
2003-03-25 Sven Neumann <sven@gimp.org>
* Makefile.am
* gimpintl.h: removed this header file.
* gimpmiscui.c: include libgimp-intl.h.
* gimp.c (gimp_main): call setlocale() and bind to the libgimp
textdomain so that plug-ins don't need to do that explicitely.
* libgimp/stdplugins-intl.h: added the functionality that used to
live in gimpintl.h and removed the libgimp related stuff. Got rid
of the INIT_I18N_UI() macro.
* plug-ins/*/*.c: removed all occurances of INIT_I18N_UI().
Plug-ins simply call INIT_I18N() once in their run() function.
* plug-ins/script-fu/script-fu-intl.h: added the functionality
that used to live in gimpintl.h and removed the libgimp related
stuff.
* app/Makefile.am
* app/gimp-intl.h: new file that defines the gettext macros for
the GIMP core.
* app/*/*.c: include gimp-intl.h instead of libgimp/gimpintl.h.
* plug-ins/script-fu/scripts/test-sphere.scm: fixed typos.
2003-03-17 Sven Neumann <sven@gimp.org>
Applied patches from David Necas <yeti@physics.muni.cz> that fix
incorrect RGBA resampling in a number of plug-ins:
* plug-ins/common/fractaltrace.c: fixes bug #72873.
* plug-ins/common/tiler.c: fixes bug #72875.
* plug-ins/common/waves.c: fixes bug #72870.
* plug-ins/common/whirlpinch.c: fixes bug #72871.
2001-11-29 Sven Neumann <sven@gimp.org>
* m4macros/gimp-1.4.m4: use gimptool-1.3.
* app/display/gimpdisplayshell.c
* app/gui/gui.c: cosmetic changes from Guillermo S. Romero.
* plug-ins/common/*.c
* plug-ins/script-fu/script-fu-scripts.c: applied patches from
Guillermo S. Romero that change the button ordering. I had to redo
some of the changes by hand since the patches didn't apply cleanly.
Hopefully got it all right...
2001-06-14 Michael Natterer <mitch@gimp.org>
* app/gdisplay.c: fixed a FIXME: set the sensitivity of the
color tools' menu entries again.
* libgimp/gimpcolorselector.h
* libgimp/gimpdrawable.h
* libgimp/gimpmenu.h: removed the usage of "id" from the public
interface because it's a reserved keyword of Objective C.
* libgimp/gimpdrawable.c
* libgimp/gimptile.c
* plug-ins/[lotsa plugins].c: changed accordingly.
2000-05-22 Michael Natterer <mitch@gimp.org>
* plug-ins/*: s/gimp_plugin_help_func/gimp_standard_help_func/
Coincidentially, my script also removed empty lines from the end
of _all_ *.c file (not only from those which contained
gimp_plugin_help_func).
2000-04-30 Michael Natterer <mitch@gimp.org>
* plug-ins/common/[a-g]*.c: use gimp_ui_init(). Minor cleanups like
reordering includes consistently and removing trailing commas from
enums and param defs.
2000-02-05 Michael Natterer <mitch@gimp.org>
* gimprc.in
* user_install
* user_install.bat: renamed the "gflares" dir to "gflare" in all
places because this seems to be the naming convention of all the
other plug-in dirs.
* libgimp/gimpwidgets.[ch]:
- gimp_random_seed_new(): return the spinbutton and the time
toggle as pointers.
- gimp_scale_entry_new(): allow the spinbutton to have a larger
range of possible values than the scale.
* plugins/[all calls to the above two functions]: changed the
calls accordingly.
Did some more ui updates in some of these plugins (Frames saying
"Parameter Settings", spacing etc.)
* plug-ins/gflare/Makefile.am
* plug-ins/gflare/gflare.c: hacked it to match the plugin ui
standards. Didn't get rid of the gradient menus.
2000-01-25 Michael Natterer <mitch@gimp.org>
* app/appenv.h: removed BOUNDS, MINIMUM and MAXIMUM. No need to
include both <glib.h> and <gtk/gtk.h>.
* app/*
* tools/pdbgen/pdb/text_tool.pdb: s/BOUNDS/CLAMP/,
same for MIN and MAX.
* app/preferences_dialog.c: the "Check Size" widget was connected
to the transparency_type variable.
* plug-ins/common/sobel.c: removed definitions of MIN and ROUND.
* libgimp/gimp.h: #include "gimplimits.h" and "gimpcolorspace.h".
* plug-ins/*: don't include the two files.
2000-01-25 Michael Natterer <mitch@gimp.org>
* configure.in
* po-plug-ins/POTFILES.in
* plug-ins/common/Makefile.am
* plug-ins/common/plugin-defs.pl
* plug-ins/megawidget/*: removed. (There were only 3 functions
left which were used by ~5 plugins, so I moved the resp. functions
to the plugins). More preview stuff to come...
* app/airbrush_blob.c
* modules/colorsel_triangle.c
* modules/colorsel_water.c: use G_PI instead of M_PI.
* app/procedural_db.h
* libgimp/gimpenums.h
* plug-ins/script-fu/script-fu-constants.c
* tools/pdbgen/enums.pl: new PDB return value STATUS_CANCEL which
indicates that "Cancel" was pressed in a plugin dialog. (Useful
only for file load/save plugins).
* app/fileops.[ch]
* app/menus.c: changes to handle STATUS_CANCEL correctly. Did some
code cleanup in fileops.[ch]. Pop up a warning if File->Save
failed.
* app/plug_in.c: return_val[0] is of type PDB_STATUS, not
PDB_INT32.
* libgimp/gimpmath.h: new constant G_MAXRAND which equals to
RAND_MAX if it exists or to G_MAXINT otherwise.
* libgimp/gimpwidgets.[ch]: new function gimp_random_seed_new()
which creates a spinbutton and a "Time" toggle.
Call the function which does the "set_sensitive" magic from the
radio button callback.
* plug-ins/[75 plugins]:
- Return STATUS_CANCEL in all file load/save dialogs if "Cancel"
was pressed.
- Standardized the file plugins' "run" functions.
- Use G_PI and G_MAXRAND everywhere.
- Added tons of scales and spinbuttons instead of text entries.
- Applied uniform packing/spacings all over the place.
- Reorganized some UIs (stuff like moving the preview to the top
left corner of the dialog).
- Removed many ui helper functions and callbacks and use the stuff
from libgimp instead.
- I tried not to restrict the range of possible values when I
replaced entries with spinbuttons/scales but may have failed,
though in some cases. Please test ;-)
- #include <libgimp/gimpmath.h> where appropriate and use it's
constants.
- Indentation, s/int/gint/ et.al., code cleanup.
RFC: The plugins are definitely not useable with GIMP 1.0 any
more, so shouldn't we remove all the remaining compatibility
stuff ??? (like "#ifdef GIMP_HAVE_PARASITES")
2000-01-07 Michael Natterer <mitch@gimp.org>
* libgimp/gimphelpui.c: make sure that the help signals are
created for all widget classes where we need them.
* plug-ins/common/Makefile.am
* plug-ins/common/edge.c
* plug-ins/common/emboss.c
* plug-ins/common/engrave.c
* plug-ins/common/exchange.c
* plug-ins/common/film.c
* plug-ins/common/flarefx.c
* plug-ins/common/fractaltrace.c
* plug-ins/common/gauss_iir.c
* plug-ins/common/gauss_rle.c
* plug-ins/common/gbr.c
* plug-ins/common/gee.c
* plug-ins/common/gicon.c
* plug-ins/common/gif.c
* plug-ins/common/glasstile.c
* plug-ins/common/gpb.c
* plug-ins/common/gqbist.c
* plug-ins/common/grid.c
* plug-ins/common/gtm.c: more plugins which use the dialog
constructor. Did some code formating and indentation.
* applied gimp-lecorfec-99041[02]-0, changes follow
* plug-ins/FractalExplorer/Dialogs.h (make_color_map):
replaced free with g_free to fix segfault.
* plug-ins/Lighting/lighting_preview.c (compute_preview):
allocate xpostab and ypostab only when needed (it could also be
allocated on stack with a compilation-fixed size like MapObject).
It avoids to lose some Kb on each preview :)
Also reindented (unfortunate C-c C-q) some other lines.
* plug-ins/Lighting/lighting_main.c (run):
release allocated postabs.
* plug-ins/Lighting/lighting_ui.c:
callbacks now have only one argument because gck widget use
gtk_signal_connect_object. Caused segfault for scale widget.
* plug-ins/autocrop/autocrop.c (doit):
return if image has only background (thus fixing a segfault).
* plug-ins/emboss/emboss.c (pluginCore, emboss_do_preview):
replaced malloc/free with g_malloc/g_free (unneeded, but
shouldn't everyone use glib calls ? :)
* plug-ins/flame/flame.c :
replaced a segfaulting free, and several harmless malloc/free pairs.
* plug-ins/flame/megawidget.c (mw_preview_build):
replaced harmless malloc/free pair.
Note : mwp->bits is malloc'ed but seems to be never freed.
* plug-ins/fractaltrace/fractaltrace.c (pixels_free):
replaced a bunch of segfaulting free.
(pixels_get, dialog_show): replaced gtk_signal_connect_object
with gtk_signal_connect to accomodate callbacks (caused STRANGE
dialog behaviour, coz you destroyed buttons one by one).
* plug-ins/illusion/illusion.c (dialog):
same gtk_signal_connect_object replacement for same reasons.
* plug-ins/libgck/gck/gckcolor.c :
changed all gck_rgb_to_color* functions to use a static GdkColor
instead of a malloc'ed area. Provided reentrant functions with
the old behaviour (gck_rgb_to_color*_r). Made some private functions
static, too.
gck_rgb_to_gdkcolor now use the new functions while
gck_rgb_to_gdkcolor_r is the reentrant version.
Also affected by this change: gck_gc_set_foreground and
gck_gc_set_background (no more free(color)).
* plug-ins/libgck/gck/gckcolor.h :
added the gck_rgb_to_gdkcolor_r proto.
* plug-ins/lic/lic.c (ok_button_clicked, cancel_button_clicked) :
segfault on gtk_widget_destroy, now calls gtk_main_quit.
(dialog_destroy) : segfault on window closure when called by
"destroy" event. Now called by "delete_event".
* plug-ins/megawidget/megawidget.c (mw_preview_build):
replaced harmless malloc/free pair.
Note : mwp->bits is malloc'ed but seems to be never freed.
* plug-ins/png/png.c (load_image):
replaced 2 segfaulting free.
* plug-ins/print/print-ps.c (ps_print):
replaced a segfaulting free (called many times :).
* plug-ins/sgi/sgi.c (load_image, save_image):
replaced a bunch of segfaulting free, and did some harmless
inits to avoid a few gcc warnings.
* plug-ins/wind/wind.c (render_wind):
replaced a segfaulting free.
(render_blast): replaced harmless malloc/free pair.
* plug-ins/bmp/bmpread.c (ReadImage):
yet another free()/g_free() problem fixed.
* plug-ins/exchange/exchange.c (real_exchange):
ditto.
* plug-ins/fp/fp.h: added Frames_Check_Button_In_A_Box proto.
* plug-ins/fp/fp_gtk.c: closing subdialogs via window manager
wasn't handled, thus leading to errors and crashes.
Now delete_event signals the dialog control button
to close a dialog with the good way.
* plug-ins/ifscompose/ifscompose.c (value_pair_create):
tried to set events mask on scale widget (a NO_WINDOW widget).
* plug-ins/png/png.c (save_image):
Replaced 2 free() with g_free() for g_malloc'ed memory.
Mysteriously I corrected the loading bug but not the saving one :)
-Yosh
1999-01-15 Federico Mena Quintero <federico@nuclecu.unam.mx>
* Updated gtk_toggle_button_set_state() to
gtk_toggle_button_set_active() in all the files.
* app/disp_callbacks.h: add declaration to get interface.c to compile
* autogen.sh: make sure we know about ACLOCAL_FLAGS
* I went on a compiler warning pogrom
-Yosh