Commit Graph

28 Commits

Author SHA1 Message Date
cfd30ec62a libgimp: s/gimp_image_new_by_id()/gimp_image_get_by_id()/
This means that images' ownership is not given to caller in particular.
libgimp will now keep a reference of all GimpImage-s it creates and
return this same reference if called again. It also means that you can
now compare images by pointer comparison (as 2 GimpImage objects
representing the same image ID will be equal).
Obviously as a side effect, gimp_image_list() is changed to (transfer
container) as you must only free the container now, not the elements.
Also various other functions creating new images are now (transfer none)
too.

Long-time plug-ins will have to be taken in consideration in a further
step (we currently never free GimpImage for destroyed images in
particular).
2019-08-22 15:54:36 +02:00
75f8a3804d libgimp: nicer API for functions returning a list.
I.e.: gimp_image_get_(layers|channels|vectors)(), gimp_image_list() and
gimp_item_get_children().
Instead of returning an array of IDs, these will now return a GList with
the right objects ready to use.
2019-08-22 15:54:36 +02:00
09f0530dab libgimp: update non-generated API to allow old and new API.
Same as previous commit: by default the new API will be used. But if a
plug-in builds with GIMP_DEPRECATED_REPLACE_NEW_API macro, then the same
function names will call the old API with ids.
2019-08-22 15:54:36 +02:00
688c3230d0 libgimp: create and use gimp_image_new_by_id().
Simpler than using g_object_new() in a bunch of places.
2019-08-22 15:54:36 +02:00
bb72504ea9 libgimp: change all non-generated API to use GimpImage.
We shouldn't pass as parameter nor return gint32 anymore.
2019-08-22 15:54:36 +02:00
4db8cda24e app, pdb, libgimp: add a new GimpImage class for plug-ins.
This means that all functions which were returning or taking as
parameter an image id (as gint32) are now taking a GimpImage object
instead.
The PDB is still passing around an id only over the wire. But we create
an object for plug-ins to work on.

This is quite a huge API break, but is probably the best bet for the
future quality. It will make nicer API instrospection (and nicer API in
binding), will fix the issues with pspec on GimpImageID in Python
bindings (which makes the current Python API unusable as soon as we need
to work on images, which is most of our plug-ins!), etc.
Also it will allow to use signals on images, which will be a great asset
when we will finally have bi-directionnal communications (i.e. plug-ins
would be able to connect to image changes, destructions, and whatnot).
2019-08-22 15:54:36 +02:00
b2582e80f6 libimp: merge public gimppixbuf functions into gimplayer and gimpdrawable
and remove gimppuxbuf.h from the public API. Keep the files privately
for _gimp_pixbuf_from_data().
2019-08-07 22:26:05 +02:00
5f700549e7 Change the license URL from http://www.gnu.org/licenses/ to https:// 2018-07-11 23:29:46 +02:00
9525c646e1 libgimp: remove tons of deprecated cruft 2018-05-20 21:06:29 +02:00
21bed1e2fb Completely rewrite metadata handling using gexiv2
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
2013-10-27 01:02:17 +02:00
0d481702c7 libgimp*: add GIMP_DEPRECATED macros using G_DEPRECATED
and start using them instead of GIMP_DISABLE_DEPRECATED where possible.
2012-05-03 00:54:21 +02:00
856c89a845 libgimp: add guards that #error out if individual files are included 2011-04-28 19:59:52 +02:00
87646e9ace libgimp: deprecate and rename the image parasite functions
in exactly the way the drawable functios were turned into item ones.
2011-03-08 13:19:21 +01:00
92b6d70448 libgimp: remove the layer/channel/vectors raise/lower/position procedures
and add them to the list of compat_procs instead.
2011-02-13 18:29:08 +01:00
611877783c libgimp: deprecate gimp_image_attach_new_parasite()
and port all its users to gimp_image_parasite_attach().
2010-07-09 14:15:55 +02:00
d9b5207aa2 Change licence to GPLv3 (and to LGPLv3 for libgimp).
2009-01-17  Michael Natterer  <mitch@gimp.org>

	* all files with a GPL header and all COPYING files:

	Change licence to GPLv3 (and to LGPLv3 for libgimp).

	Cleaned up some copyright headers and regenerated the parsers in
	the ImageMap plugin.


svn path=/trunk/; revision=27913
2009-01-17 22:28:01 +00:00
f2df31a50e converted tabs to spaces.
2006-04-12  Sven Neumann  <sven@gimp.org>

	* libgimp*/gimp*.[ch]: converted tabs to spaces.
2006-04-12 10:53:28 +00:00
92d6b9272d libgimp/gimp.[ch] libgimp/gimpdrawable.[ch] changed attach_new_parasite
2005-03-02  Manish Singh  <yosh@gimp.org>

        * libgimp/gimp.[ch]
        * libgimp/gimpdrawable.[ch]
        * libgimp/gimpimage.[ch]: changed attach_new_parasite variants
        to return success or failure.
2005-03-02 23:26:16 +00:00
e85b1480dd one more s/cmap/colormap/.
2004-11-02  Michael Natterer  <mitch@gimp.org>

	* libgimp/gimpimage.h: one more s/cmap/colormap/.
2004-11-02 13:54:56 +00:00
998c895a67 More final API cleanup:
2004-11-02  Michael Natterer  <mitch@gimp.org>

	More final API cleanup:

	* tools/pdbgen/pdb/image.pdb: added gimp_image_set,get_colormap()
	and deprecated set,get_cmap().

	* libgimpwidgets/gimppreviewarea.[ch]: renamed
	gimp_preview_area_set_cmap() to set_colormap().

	* libgimp/gimp.def
	* libgimp/gimpdrawablepreview.c
	* libgimp/gimpexport.c
	* libgimp/gimpimage.[ch]
	* libgimpwidgets/gimpwidgets.def: changed accordingly.

	* app/pdb/image_cmds.c
	* app/pdb/internal_procs.c
	* libgimp/gimpimage_pdb.[ch]: regenerated.

	(undeprecation of plug-ins will follow...)
2004-11-02 11:30:49 +00:00
6af5072c6b renamed gimp_convert_*() functions to gimp_image_convert_*().
2003-12-04  Michael Natterer  <mitch@gimp.org>

	* tools/pdbgen/pdb/convert.pdb: renamed gimp_convert_*() functions
	to gimp_image_convert_*().

	* libgimp/gimpimage.[ch]: removed gimp_image_convert_* #defines.

	* libgimp/gimpcompat.h: added old stuff.

	* app/pdb/convert_cmds.c
	* libgimp/gimpconvert_pdb.[ch]: regenerated.

	* plug-ins/common/gifload.c
	* plug-ins/common/gih.c
	* plug-ins/common/sample_colorize.c
	* plug-ins/common/winclipboard.c
	* plug-ins/script-fu/scripts/burn-in-anim.scm
	* plug-ins/script-fu/scripts/chrome-it.scm
	* plug-ins/script-fu/scripts/crystal-logo.scm
	* plug-ins/script-fu/scripts/fuzzyborder.scm
	* plug-ins/script-fu/scripts/gimp-headers.scm
	* plug-ins/script-fu/scripts/gimp-labels.scm
	* plug-ins/script-fu/scripts/sota-chrome-logo.scm
	* plug-ins/script-fu/scripts/spinning-globe.scm: changed accordingly.

2003-12-04  Michael Natterer  <mitch@gimp>

	* libgimp/libgimp-sections.txt
	* libgimp/tmpl/gimpconvert.sgml
	* libgimp/tmpl/gimpimage.sgml: follow gimp_image_convert_*() change.
2003-12-04 14:52:24 +00:00
4d61cc563d libgimp/gimp.[ch] libgimp/gimpchannel.[ch] libgimp/gimpdrawable.[ch]
2003-07-01  Sven Neumann  <sven@gimp.org>

	* libgimp/gimp.[ch]
	* libgimp/gimpchannel.[ch]
	* libgimp/gimpdrawable.[ch]
	* libgimp/gimpimage.[ch]
	* libgimp/gimplayer.[ch]
	* libgimp/gimpmisc.[ch]
	* libgimp/gimpmiscui.[ch]
	* libgimp/gimppixelrgn.[ch]
	* libgimp/gimpproceduraldb.[ch]: added const qualifiers to the
	libgimp API. Will cause lots of compiler warnings until the
	generated PDB code has been constified as well.

	* libgimpbase/gimpparasite.[ch]: use gconstpointer, not const
	gpointer.
2003-07-01 18:11:18 +00:00
757017a8e2 bumped version number to 1.3.1. Require Glib/GTK+-1.3.11 and Pango-0.22.
2001-11-23  Sven Neumann  <sven@gimp.org>

	* configure.in: bumped version number to 1.3.1.
	Require Glib/GTK+-1.3.11 and Pango-0.22. Removed GDK_DISABLE_COMPAT_H
	and GTK_DISABLE_COMPAT_H from our default CFLAGS since they don't
	exist any longer.

	* RELEASE-TO-CVS.patch: removed since the glib/gtk+ API is supposed to
	be frozen now.

	* HACKING: removed reference to RELEASE-TO-CVS.patch

	* app/gui/menus.c
	* app/tools/gimptexttool.c: applied RELEASE-TO-CVS.patch to conform
	to the new GTK+/Pango API.

	* app/core/Makefile.am: generate marshallers with gimp_marshal prefix.

	* app/core/gimpmarshal.list: added all marshallers we use.

	* app/core/gimpmarshal.[ch]: regenerated.

	* app/[lots of .c files]: use gimp_marshal_* for all marshallers.

	* data/images/
	* app/app_procs.c
	* app/gui/splash.c:

	* libgimpbase/Makefile.am
	* libgimpbase/gimpbase.h
	* libgimpbase/gimputils.[ch]: removed since they are no longer needed.

	* app/gimprc.c
	* plug-ins/common/ps.c
	* plug-ins/gdyntext/gdyntext.c
	* plug-ins/gdyntext/gdyntextcompat.c
	* plug-ins/gfig/gfig.c
	* plug-ins/gflare/gflare.c
	* plug-ins/script-fu/script-fu-scripts.c: use glib functions instead
	of gimp_strescape() and gimpstrcompress().

	* cleaned up all header files: use G_BEGIN_DECLS/G_END_DECLS, declared
	all _get_type function as G_GNUC_CONST.

	* tools/pdbgen/enumcode.pl
	* tools/pdbgen/lib.pl: make them generate header files using
	G_BEGIN_DECLS/G_END_DECLS.

	* pixmaps/Makefile.am
	* pixmaps/wilber3.xpm: removed ...
	* data/images/tips_wilber.png: ... and added here as PNG

	* app/gui/tips-dialog.c: load the Wilber on demand using GdkPixbuf.

	* data/images/gimp_splash.ppm: removed ...
	* data/images/gimp_splash.png: ... and added as PNG

	* app/app_procs.c
	* app/gui/splash.[ch]: load the splash image using GdkPixbuf.

	* app/gui/about-dialog.c: sink the GtkPreview.
2001-11-22 23:46:13 +00:00
7d1375e949 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 13:58:46 +00:00
8de3fb6452 renamed ChannelOffsetType to GimpOffsetType.
2001-04-18  Michael Natterer  <mitch@gimp.org>

	* app/gimpdrawable-offset.[ch]: renamed ChannelOffsetType to
	GimpOffsetType.

	* app/pdb/channel_ops_cmds.c
	* libgimp/gimpchannelops_pdb.[ch]
	* tools/pdbgen/pdb/channel_ops.pdb: removed.

	* tools/pdbgen/pdb/drawable.pdb
	* tools/pdbgen/pdb/image.pdb: put the "offset" and "duplicate"
	functions where they belong.

	* app/gui/offset-dialog.c
	* app/pdb/Makefile.am
	* app/pdb/drawable_cmds.c
	* app/pdb/image_cmds.c
	* app/pdb/internal_procs.c
	* libgimp/Makefile.am
	* libgimp/gimp_pdb.h
	* libgimp/gimpdrawable_pdb.[ch]
	* libgimp/gimpenums.h
	* libgimp/gimpimage.h
	* libgimp/gimpimage_pdb.[ch]
	* tools/pdbgen/Makefile.am
	* tools/pdbgen/enumcode.pl
	* tools/pdbgen/enums.pl
	* tools/pdbgen/groups.pl
	* plug-ins/common/guillotine.c
	* plug-ins/print/print.c
	* plug-ins/script-fu/script-fu-constants.c: changed accordingly.
2001-04-18 20:41:15 +00:00
78123e8646 libgimp/gimpimage.[ch] pass the return value of the PDB call through the
2000-08-23  Sven Neumann  <sven@gimp.org>

	* libgimp/gimpimage.[ch]
	* libgimp/gimpproceduraldb.[ch]: pass the return value of the
	PDB call through the wrapper functions.
2000-08-23 11:22:08 +00:00
1e8d9383a6 gimp.h gimpchannel.h gimpcompat.h gimpdrawable.h gimpimage.h moved
2000-06-09  Sven Neumann  <sven@gimp.org>

	* gimp.h
	* gimpchannel.h
	* gimpcompat.h
	* gimpdrawable.h
	* gimpimage.h
	* gimplayer.h: moved convenience defines from gimp.h into
	relevant header files so you have a chance to find them.

2000-06-09  Sven Neumann  <sven@gimp.org>

	* libgimp/libgimp-decl.txt
	* libgimp/libgimp-sections.txt
	* tmpl/gimp.sgml
	* tmpl/gimpchannel.sgml
	* tmpl/gimpdrawable.sgml
	* tmpl/gimpimage.sgml
	* tmpl/gimplayer.sgml: relocated defines as happened to
	reflect changes in libgimp
2000-06-09 01:56:34 +00:00
6be23f70fa Sven Neumann <sven@gimp.org>
2000-06-01  Michael Natterer  <mitch@gimp.org>
	    Sven Neumann  <sven@gimp.org>

	Completed the new file structure. Yet only few of the _pdb.[ch]
	files are based upon generated code and nothing is really
	autogenerated...

	* app/Makefile.am
	* app/gdisplay_cmds.c      -> app/display_cmds.c
	* app/gimage_cmds.c        -> app/image_cmds.c
	* app/gimage_mask_cmds.c   -> app/selection_cmds.c
	* app/internal_procs.c: related change

	* libgimp/Makefile.am
	* libgimp/gimp.h
	* libgimp/gimp_pdb.h
	* libgimp/gimpdisplay_pdb.[ch]
	* libgimp/gimpimage_pdb.[ch]
	* libgimp/gimpselection_pdb.[ch]: replaced with code based on files
	generated using pdbgen

	* libgimp/gimpchannelops_pdb.[ch]
	* libgimp/gimpcolor_pdb.[ch]
	* libgimp/gimpedit_pdb.[ch]
	* libgimp/gimpfloatingsel_pdb.[ch]
	* libgimp/gimpgimprc_pdb.[ch]
	* libgimp/gimptexttool_pdb.[ch]
	* libgimp/gimptools_pdb.[ch]
	* libgimp/gimpundo_pdb.[ch]: new files based on generated code

	* libgimp/gimpgradientselect.[ch]
	* libgimp/gimpimage.[ch]
	* libgimp/gimpselection.[ch]: new files wrapping around the
	autogenerated PDB wrappers as found in *_pdb.[ch]. This is necessary
	since the number of parameters or their order is different from the
	PDP calls.

	* plug-ins/common/CEL.c: plugged memleak

	* plug-ins/common/aa.c: removed compiler warning

	* tools/pdbgen/Makefile.am
	* tools/pdbgen/groups.pl
	* tools/pdbgen/pdb/gdisplay.pdb     -> display.pdb
	* tools/pdbgen/pdb/gimage.pdb       -> image.pdb
	* tools/pdbgen/pdb/gimage_mask.pdb  -> selection.pdb

	* tools/pdbgen/pdb/channel_ops.pdb
	* tools/pdbgen/pdb/color.pdb
	* tools/pdbgen/pdb/edit.pdb
	* tools/pdbgen/pdb/floating_sel.pdb
	* tools/pdbgen/pdb/gimprc.pdb
	* tools/pdbgen/pdb/text_tool.pdb
	* tools/pdbgen/pdb/tools.pdb
	* tools/pdbgen/pdb/undo.pdb: made them create libgimp code
2000-06-01 12:20:13 +00:00