So the plug-in has the chance to decide whether it wants to trust the
metadata information (e.g. resolution). Also reorder parameters in
gimp_image_metadata_save_finish(). Change all plug-ins accordingly.
Based on original patches from Hartmut Kuhse and modified
by Michael Natterer. Changes include:
- remove libexif dependency and add a hard dependency on gexiv2
- typedef GExiv2Metadata to GimpMetadata to avoid having to
include gexiv2 globally
- add basic GimpMetadata handling functions to libgimpbase
- add image and image file specific metadata functions to libgimp,
including the exif orientation image rotate dialog
- port plug-ins to use the new APIs
- port file-tiff-save's UI to GtkBuilder
- add new plug-in "metadata" to view the image's metadata
- keep metadata around as GimpImage member in the core
- update the image's metadata on image size, resolution and precision
changes
- obsolete the old metadata parasites
- migrate the old parasites to new GimpMetadata object on XCF load
Add gimp_export_dialog_new() for creating a export dialog and
gimp_export_dialog_get_content_area() for accessing the vbox where
clients can put widgets.
2006-08-17 Sven Neumann <sven@gimp.org>
* libgimp/gimppixbuf.[ch]: added a convenience function to create
a layer from a GdkPixbuf.
* plug-ins/common/poppler.c
* plug-ins/common/screenshot.c
* plug-ins/common/svg.c: use gimp_layer_new_from_pixbuf().
* libgimp/gimpui.def: updated.
2006-08-09 Sven Neumann <sven@gimp.org>
* app/plug-in/gimppluginmanager.c (gimp_plug_in_manager_dispose):
chain up.
* libgimp/gimpzoompreview.[ch]: added API to get a pointer to the
GimpZoomModel used by the preview and added a constructor that
allows to pass a model.
* libgimp/gimpui.def: updated.
* libgimp/gimpzoompreview.[ch]: added a new function:
gimp_zoom_preview_get_factor(), which is a proxy to get the zoom
factor of the zoom model used by the zoom preview.
Also renamed the zoom field of the private data of gimpzoompreview to
model, since it is a gimpzoommodel.
* libgimp/gimpui.def: added gimp_zoom_preview_get_factor.
* plug-ins/common/nova.c: use gimp_zoom_preview_get_factor to
correctly handle the position of the nova at various zoom level.
There still are problems if there is a selection before when running
this plugin.
* libgimp/gimpzoompreview.[ch]: make use of private data instead of struct
members. Added a gimp_zoom_preview_get_drawable so we can still get the
drawable from a preview in plug-ins.
Also changed gimp_zoom_preview_get_data to gimp_zoom_preview_get_source,
to make it more obvious what it returns.
* libgimp/gimpui.def
* plug-ins/common/AlienMap2.c
* plug-ins/common/apply_lens.c
* plug-ins/common/blinds.c
* plug-ins/common/channel_mixer.c
* plug-ins/common/colorify.c
* plug-ins/common/flarefx.c
* plug-ins/common/illusion.c
* plug-ins/common/jigsaw.c
* plug-ins/common/mapcolor.c
* plug-ins/common/max_rgb.c
* plug-ins/common/nova.c
* plug-ins/common/polar.c
* plug-ins/common/retinex.c
* plug-ins/common/waves.c
* plug-ins/common/whirlpinch.c: changed accordingly.
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>
Address bug #307971:
* app/core/gimp-gui.[ch]
* app/display/gimpdisplay.[ch]
* app/gui/gui-vtable.c
* tools/pdbgen/pdb/display.pdb: added PDB function to obtain a
window handle on an image display.
* app/pdb/display_cmds.c
* app/pdb/internal_procs.c
* libgimp/gimpdisplay_pdb.[ch]: regenerated.
* libgimp/gimpui.[ch]: added functions to set a GtkWindow transient
to an image display.
* plug-ins/common/gauss.c: use the new function exemplarily.
* libgimp/gimp.def
* libgimp/gimpui.def: updated.
2004-12-14 Michael Natterer <mitch@gimp.org>
* tools/pdbgen/pdb/drawable.pdb: added gimp_drawable_sub_thumbnail()
to enable plug-ins avoiding #142074-alike bugs if they need to.
* app/pdb/drawable_cmds.c
* app/pdb/internal_procs.c
* libgimp/gimpdrawable_pdb.[ch]: regenerated.
* libgimp/gimpdrawable.[ch]
* libgimp/gimppixbuf.[ch]: wrap it with the same convenience
APIs as gimp_drawable_thumbnail().
* libgimp/gimp.def
* libgimp/gimpui.def: changed accordingly.
2004-09-15 Sven Neumann <sven@gimp.org>
* libgimp/gimpdrawablepreview.[ch]
* libgimp/gimpui.def: renamed gimp_drawable_preview_draw() to
gimp_drawable_preview_draw_buffer() and added a rowstride
parameter. Added new functions gimp_drawable_preview_get_drawable()
and gimp_drawable_preview_draw_region().
* plug-ins/common/mblur.c: added a preview that uses the
shadow tiles as the preview buffer and draws using the new
gimp_drawable_preview_draw_region() API.
* plug-ins/common/photocopy.c
* plug-ins/common/softglow.c: use gimp_drawable_preview_draw_region().
* plug-ins/common/cartoon.c
* plug-ins/common/despeckle.c
* plug-ins/common/edge.c
* plug-ins/common/gauss.c
* plug-ins/common/grid.c
* plug-ins/common/neon.c
* plug-ins/common/noisify.c
* plug-ins/common/sel_gauss.c
* plug-ins/common/sharpen.c
* plug-ins/common/sobel.c
* plug-ins/common/spread.c
* plug-ins/common/struc.c
* plug-ins/common/unsharp.c
* plug-ins/common/wind.c: use gimp_drawable_preview_draw_buffer().
2004-09-02 Michael Schumacher <schumaml@cvs.gnome.org>
* libgimp/gimpui.def
* libgimpbase/gimpbase.def
* libgimpwidgets/gimpwidgets.def: added the preview and progress
related entries
2003-12-12 Hans Breuer <hans@breuer.org>
[
I've postponed my reservations against pangoft2/fontconfig/freetype2
usage, so The Gimp should now build with msvc without patching it.
]
* app/makefile.msc app/text/makefile.msc : use $(PANGOFT2_CFLAGS) etc.
* libgimpthumb/makefile.msc : (new file)
* makefile.msc : added libgimpthumb
* libgimpthumb/gimpthumbnail.c : include gimpwin32-io.h
* libgimpthumb/gimpthumb-utils.c : don't compare size pointer
with GIMP_THUMB_SIZE_FAIL but *size
* plug-ins/makefile.msc : handle libgimpoldpreview
* plug-ins/common/decompose.c : define cbrt() if not __GLIBC__
* plug-ins/common/winclipboard.c : make it compile without gimpcompat.h
* plug-ins/imagemap/imagemap_csim_lex.c : its a generated file
but still win32/msvc has no unistd.h
* plug-ins/pygimp/makefile.msc : (new file) to use the binary you
need to patch glib, see bug #98737
* plug-ins/libgimpoldpreview.c : use <libgimp/gimp.h> instead of "gimp.h"
* **/Makefile.am : added makefile.msc to EXTRA_DIST
2003-07-27 Tor Lillqvist <tml@iki.fi>
* libgimp/gimp.def
* libgimp/gimpui.def: Move gimp_{brush,font,gradient,pattern}_
select_{destroy,new} back to gimp.def (and actually add some of
the _destroy entries). The files where these are defined go in
libgimp, not libgimpui (see Makefile.am). Sort the .def files.
2003-07-26 Hans Breuer <hans@breuer.org>
* libgimp/gimpcompat.h : renamed GimpOrientationType
with Compat postfix to avoid name clashing when using
this header together with libgimp/gimpenums.h
* app/composite/makefile.msc : (new file)
**/makefile.msc : updated
* libgimp/gimp.c : use static defined _tile<widht|height>
in this file instead of function call
* libgimp/gimp.def libgimp/libgimpui.def : moved from former
to latter : gimp_<brush|font|gradient|pattern>_select_<new|destroy>
added to former gimp_<brushes|gradients|patterns>_popup
* app/paint/gimppaintcore.h : removed double semicolon
which gave msvc error C2059: syntax error : ';'
* libgimpbase/gimpwin32-io.h : (new file) compatibilty defines
which were spread over multiple files to make up mostly for
missing unistd.h
* app/base/tile-swap.c app/core/gimpimagefile.c
libgimpbase/gimpdatafiles.c
plug-ins/FractalExplorer/FractalExplorer.c : use new header
* plug-ins/gflare/gflare.c
plug-ins/flame/flame.c
plug-ins/FractalExplorer/Dialogs.c :
removed #ifdef G_OS_WIN32 special casing, not needed anymore
due to g_file_test() usage
* app/text/*.* : changes required for build with PangoWin32,
but not commited ...
2003-07-01 Michael Natterer <mitch@gimp.org>
* libgimp/gimpmenu.[ch]: removed all brush, font, gradient
and pattern related code.
* libgimp/gimpbrushselect.[ch]
* libgimp/gimpfontselect.[ch]
* libgimp/gimpgradientselect.[ch]
* libgimp/gimppatternselect.[ch]: new files containing the
wrappers around their resp. _pdb.[ch] files. Changed function
names to gimp_*_select_new(). Added gimp_*_select_destroy()
functions so we're not forced to leak all wrappers. Cleanup.
* libgimp/gimpbrushmenu.h
* libgimp/gimpfontmenu.h
* libgimp/gimpgradientmenu.h
* libgimp/gimppatternmenu.h: new files. Changed function names
here too.
* libgimp/gimpbrushmenu.c
* libgimp/gimpfontmenu.c
* libgimp/gimpgradientmenu.c
* libgimp/gimppatternmenu.c: changed accordingly. Free the
foo_select wrappers when they are no longer needed (generally,
free everthing instead of leaking everything). Lots of cleanup.
* libgimp/Makefile.am
* libgimp/gimp.def
* libgimp/gimpui.def: changed accordingly.
* libgimp/gimp.h
* libgimp/gimpui.h: include the new headers.
* libgimp/gimpcompat.h: added the old function names here.
* plug-ins/FractalExplorer/Dialogs.c
* plug-ins/common/film.c
* plug-ins/gfig/gfig.c
* plug-ins/script-fu/script-fu-scripts.c: changed accordingly.
2003-07-01 Michael Natterer <mitch@gimp.org>
* libgimp/libgimp-docs.sgml
* libgimp/libgimp-sections.txt: follow libgimp cleanup, moved the
brush, font, gradient and pattern selection stuff to their own
sections.
* libgimp/tmpl/gimpfonts.sgml: removed.
* libgimp/tmpl/gimpbrushmenu.sgml
* libgimp/tmpl/gimpbrushselect.sgml
* libgimp/tmpl/gimpfontmenu.sgml
* libgimp/tmpl/gimpfontselect.sgml
* libgimp/tmpl/gimpgradientmenu.sgml
* libgimp/tmpl/gimpgradientselect.sgml
* libgimp/tmpl/gimppatternmenu.sgml
* libgimp/tmpl/gimppatternselect.sgml: new files.
* libgimp/tmpl/gimpbrushes.sgml
* libgimp/tmpl/gimpgradients.sgml
* libgimp/tmpl/gimpmenu.sgml
* libgimp/tmpl/gimppatterns.sgml: regenerated.
2003-03-03 Hans Breuer <hans@breuer.org>
* app/text/makefile.msc (new file)
*/makefile.msc */*/makefile.msc : updated
* app/core/gimpdata.c : define access() constants
for G_OS_WIN32 case
* app/text/gimptext.c : <stdlib.h> for getenv()
* libgimp/gimp.def libgimp/gimpui.def : updated externals
* libgimpwidgets/libgimp-glue.c : make dynamic_resolve
actually work again for 'my' DLL naming convention
* plug-ins/gap/gap_pdb_calls.c : reflect renaming
of GIMP_VERTICAL to GIMP_ORIENTATION_VERTICAL
2003-01-28 Tor Lillqvist <tml@iki.fi>
* libgimp/gimpui.def: Add missing entry points.
* plug-ins/common/plugin-defs.pl: Mark bz2, mail, screenshot and
url as optional (not built on Win32). Ditto for winclipboard and
winprint (Win32 only).
* plug-ins/common/mkgen.pl: Use -mwindows on Win32.
* plug-ins/common/Makefile.am
* plug-ins/common/.cvsignore: Regenerated.
* configure.in: Correspondingly conditionally define BZ2, MAIL,
SCREENSHOT, URL, WINCLIPBOARD and WINPRINT, and AC_SUBST them.
Set XJT to empty always on Win32 (uses tar, mv and bzip2, which
aren't usually available).
2000-06-07 Tor Lillqvist <tml@iki.fi>
* app/gimphelp.c (gimp_help_netscape): Test for help_path being
non-NULL was wrong way.
* app/preferences_dialog.c (file_pref_cmd_callback): Change
"From X Server" to "From windowing system".
* app/makefile.cygwin: Update according to file name changes.
* libgimp/gimp.def
* libgimp/gimpui.def
* libgimp/makefile.{cygwin,msc}: Update for Mitch's and Sven's
changes.
* plug-ins/libgck/gck/gckcolor.c: Include <glib.h> before
gimpmath.h, so G_PI don't get redefined when glib.h is included
later.
From Hans Breuer, portability fixes for MSVC compilation:
* app/dialog_handler.h: Bypass decalration of exported functions
which are marked with G_MODULE_EXPORT in dialog_handler.c when
compiling that file. Otherwise some compilers will get confused.
* app/dialog_handler.c: Define a test macro for above bypass.
* plug-ins/MapObject/mapobject_apply.c
* plug-ins/MapObject/mapobject_image.c
* plug-ins/MapObject/mapobject_shade.c: Include <string.h>.
* plug-ins/flame/flame.c: Define S_ISREG if needed.
* plug-ins/makefile.{cygwin,msc}: Updates.
* plug-ins/sel2path/global.h: Include <stdlib.h>.
* plug-ins/winsnap/winsnap.c: Include libgimp/gimpui.h.
2000-05-29 Tor Lillqvist <tml@iki.fi>
* gimprc.win32: Update to match Unix version.
* app/gimp.sym: Add dialog_{,un}register.
* app/dialog_handler.c: Include <gmodule.h>, mark above functions
with G_MODULE_EXPORT.
* app/makefile.{msc,cygwin}: Update to match current GLib 1.3.
* libgimp/gimp.def
* libgimp/gimpui.def: Update according to function name changes etc.
* libgimp/makefile.{msc,cygwin}: Update for changed file
names.
* libgimp/makefile.cygwin
* modules/makefile.cygwin: Simplify, use the
../build/win32/make.mingw file.
* plug-ins/common/gz.c (save_image): Somewhat more informative
error message on Win32 when gzip.exe isn't found (most probable
cause of error).
* tips/gimp_tips.txt: Clarify location of personal GIMP directory
on Unix and Windows.
2000-04-23 Tor Lillqvist <tml@iki.fi>
* libgimp/gimpui.def: Add gimp_ui_init.
* libgimp/makefile.{cygwin,msc} (gimpui_OBJECTS): Add gimpui.
* app/makefile.{cygwin,msc}
* plug-ins/makefile.{cygwin,msc}: New installation directory.
* app/datafiles.c (is_script): Must not g_free() value returned by
g_getenv().
* plug-ins/gdyntext/font_selection.c: Don't include gdkx.h with
GTk+ 1.3.
2000-02-24 Tor Lillqvist <tml@iki.fi>
* libgimp/gimp.h (Win32): Include <stdlib.h> for __argc and__argv.
* libgimp/{gimp,gimpui}.def: Add new entry points.
* libgimp/gimpenv.c (Win32): Make compileable, with no geteuid etc.
* app/makefile.{cygwin,msc}
* libgimp/makefile.{cygwin,msc}: Update object file list.
2000-02-15 Tor Lillqvist <tml@iki.fi>
* libgimp/gimp.def
* libgimp/gimpui.def
* libgimp/makefile.{cygwin,msc}
* app/makefile.{cygwin,msc}
* plug-ins/makefile.{cygwin,msc}: Updates.
* app/datafiles.c (is_script): New Win32-only function, which
tests if a file's extension matches one of the extensions in the
PATHEXT environment variable (which the cmd.exe command
interpreter also uses). This is to avoid starting applications
associated with any random data file the user might have dropped
in the plug-ins folder, while still supporting plug-ins written in
scripting languages.
* app/gimpparasite.c (gimp_parasiterc_save): (Win32:) Cannot
rename to an existing file.
* plug-ins/Lighting/lighting_image.c
* plug-ins/Lighting/lighting_share.c
* plug-ins/MapObject/mapobject_preview.c
* plug-ins/MapObject/mapobject_shade.c: Use G_PI.
* plug-ins/common/gz.c: #ifdef G_OS_WIN32 was used before its
potential definition via glib.h.
* plug-ins/common/jpeg.c: Also recognize Exif files, which are
typically produced by digital cameras. The usually have a .jpg
file name extension, and would thus already match this plug-in,
but add the magic string just in case. They are loaded just fine
by libjpeg even if they don't have the JFIF signature.
* plug-ins/common/tiff.c: Set TIFF warning and error handler, so
we get to pass libtiff's messages through the normal channels.
2000-02-05 Tor Lillqvist <tml@iki.fi>
* gimprc.in: user_install creates the gflare directory as
"gflares" (not "gflare"), so use that form here, too.
* gimprc.win32: Update to match the Unix version.
* app/ops_buttons.c: Include gimpintl.h.
* app/preferences_dialog.c (file_pref_cmd_callback): I18n for the
Pixels/%s string. It used to come out as "Pixels/tuuma" in
Finnish, for instance.
* plug-ins/gflare/gflare.c: Portability.
* libgimp/gimpui.def:
* plug-ins/makefile.{cygwin,msc}
* modules/makefile.{cygwin,msc}: Updates.
2000-01-27 Tor Lillqvist <tml@iki.fi>
* app/main.c (on_signal): No need to use an #ifdef for G_OS_WIN32
as the whole function is already bypassed on Win32.
* libgimp/gimp.def
* libgimp/gimpui.def: Updates.
* plug-ins/makefile.cygwin
* plug-ins/makefile.msc: Goodbye to the megawidget library.
* plug-ins/common/papertile.c: MAIN() must be after PLUG_IN_INFO
definition.