Commit Graph

32 Commits

Author SHA1 Message Date
Alx Sa 443947c6aa plug-ins: Remove n_drawables parameter
Port all plug-ins to retrieve the layers
directly from the image rather than
having them passed in. This resolves some
issues with introspection and sets the
foundation for future API work.
2024-05-03 15:22:39 +00:00
Alx Sa bb3c28689a libgimp, plug-ins: Remove GIMP_EXPORT_CANCEL
Per Jehan, as of 0dc9ff7c we can't
cancel gimp_export_image, so we can
safely remove this enum.
2024-05-03 15:22:39 +00:00
Alx Sa e678a20951 core: Initial non-destructive editing implementation
This patch implements an initial form of
non-destructive editing. Filters now stay active
instead of being immediately merged down.
A new column is added to the layer tree view, which
can be clicked to show a pop-over menu.
Filters can currently be hidden/shown, edited, reordered,
deleted, and merged down from this pop-over menu.

Currently, this works on layers and layer selections only.
Plenty of room for improvement!
2024-01-23 15:39:09 +00:00
Ell 4c8ee413eb libgimp: add GIMP_EXPORT_NEEDS_CROP export capability
Add a new GIMP_EXPORT_NEEDS_CROP export capability, which causes
gimp_export_image() to crop the exported image content to the image
bounds; this is useful for formats that support layers, but have no
concept of global image bounds, hence cropping is the only way to
enforce the image bounds.

When showing the export dialog, give an option to either crop the
layers to the image bounds, or to resize the image to fit the
layers.
2020-06-25 18:20:47 +03:00
Jehan d3139e0f7c app: support saving/exporting with multi-selection.
This commit just changes our saving API (i.e. the GimpSaveProcedure
class) to take an array of drawables as argument instead of a single
drawable.

It actually doesn't matter much for exporting as the whole API seems
more or less bogus there and all formats plug-ins mostly care only
whether they will merge/flatten all visible layers (the selected ones
don't really matter) or if the format supports layers of some sort. It
may be worth later strengthening a bit this whole logics, and maybe
allow partial exports for instance.

As for saving, it was not even looking at the passed GimpDrawable either
and was simply re-querying the active layer anyway.
Note that I don't implement the multi-selection saving in XCF yet in
this commit. I only updated the API. The reason is that the current
commit won't be backportable to gimp-2-10 because it is an API break. On
the other hand, the code to save multi-selection can still be backported
even though the save() API will only pass a single drawable (as I said
anyway, this argument was mostly bogus until now, hence it doesn't
matter much for 2.10 logics).
2020-05-17 18:32:16 +02:00
Michael Natterer 96c1f754ba libgimp: remove a ton of deprecated API that is unused 2019-08-27 16:32:25 +02:00
Jehan 3f1491e572 libgimp: update non-generated API using GimpItem/GimpDrawable/GimpLayer.
I did the same trick with GIMP_DEPRECATED_REPLACE_NEW_API macro, apart
for some minor widget API to preview drawable, which I will fix right
away in our plug-ins.
2019-08-22 15:54:36 +02:00
Jehan 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
Jehan 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
luz.paz 7e99aa59f5 Add other misc. typo fixes 2019-08-13 11:50:51 -04:00
Michael Natterer aca5f806c4 libgimp*: lots of doc fixes and new docs for structs and enums 2019-07-24 01:18:30 +02:00
Jehan 667b4d71c9 libgimp, plug-ins: get rid of GIMP_EXPORT_NEEDS_OPAQUE_LAYERS capacity.
This new capacity was created just 3 commits ago (9933f46f85).
The point was that the real fix is to remove the implication
HANDLE_LAYERS => HANDLE_ALPHA, but this breaks public API behavior,
which is why I didn't go with it.

Still it just felt wrong to add a NEEP_OPAQUE capability when it should
be the same thing as not setting HANDLE_ALPHA. After discussion on IRC,
we decided that this implication was basically a bug, and since in all
core plug-ins, when HANDLE_LAYERS was set, we were also setting
HANDLE_ALPHA, no core plug-in code even has to be changed. As for
third-party plug-ins, let's assume that none has been relying on this
wrong assumption.
2019-06-29 17:08:06 +02:00
Jehan 9933f46f85 libgimp: add GIMP_EXPORT_NEEDS_OPAQUE_LAYERS export capacity.
Currently capability GIMP_EXPORT_CAN_HANDLE_LAYERS implies
GIMP_EXPORT_CAN_HANDLE_ALPHA. Though in many cases, multi-layer implies
alpha for basic compositing, our export plug-ins sometimes use the
concept of "layer export" for multi-pages or collection files.
Additionally sometimes alpha may not even be supported at all whereas
layers are. This will be the case in the next commit which will make use
of this new capability.
2019-06-29 14:08:41 +02:00
Michael Natterer 5f700549e7 Change the license URL from http://www.gnu.org/licenses/ to https:// 2018-07-11 23:29:46 +02:00
Michael Natterer 856c89a845 libgimp: add guards that #error out if individual files are included 2011-04-28 19:59:52 +02:00
Martin Nordholts 8cd7f148d6 libgimp: Add export dialog API
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.
2009-07-21 16:03:53 +02:00
Michael Natterer 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
Michael Natterer 4ae5d46022 added new export capabilities GIMP_EXPORT_CAN_HANDLE_BITMAP and
2003-11-15  Michael Natterer  <mitch@gimp.org>

	* libgimp/gimpexport.[ch]: added new export capabilities
	GIMP_EXPORT_CAN_HANDLE_BITMAP and _CAN_HANDLE_LAYER_MASKS and
	export the image accordingly. Code cleanup.

	* plug-ins/common/xbm.c (run): replaced _CAN_HANDLE_INDEXED by
	_CAN_HANDLE_BITMAP. Fixes bug #65788.

	* plug-ins/common/psd_save.c (run): added export stuff so
	layer masks are applied before saving. Fixes bug #119732.

	* plug-ins/common/Makefile.am
	* plug-ins/common/plugin-defs.pl: link psd_save against GTK+
	and libgimpui.
2003-11-15 16:51:20 +00:00
Michael Natterer 66c5dd8772 removed our own action_area API and use GtkDialog's one. Create all
2003-11-06  Michael Natterer  <mitch@gimp.org>

	* libgimpwidgets/gimpdialog.[ch]: removed our own action_area API
	and use GtkDialog's one. Create all dialogs without separator.
	Changed almost everything else too. Fixes bug #125143.

	* libgimpwidgets/gimpquerybox.c
	* libgimpwidgets/gimpunitmenu.c: changed accordingly.

	* libgimp/gimpexport.[ch]: ditto. Renamed enum GimpExportReturnType
	to GimpExportReturn.

	* libgimp/gimpcompat.h: added a #define for the old name.

	* themes/Default/gtkrc: increased action_area border to 6 pixels.

	* app/display/gimpdisplayshell-filter-dialog.c
	* app/display/gimpdisplayshell-scale.c
	* app/display/gimpprogress.c
	* app/gui/brush-select.c
	* app/gui/channels-commands.c
	* app/gui/color-notebook.c
	* app/gui/convert-dialog.c
	* app/gui/file-new-dialog.c
	* app/gui/font-select.c
	* app/gui/gradient-editor-commands.c
	* app/gui/gradient-select.c
	* app/gui/grid-dialog.c
	* app/gui/image-commands.c
	* app/gui/info-window.c
	* app/gui/layers-commands.c
	* app/gui/module-browser.c
	* app/gui/offset-dialog.c
	* app/gui/palette-import-dialog.c
	* app/gui/palette-select.c
	* app/gui/pattern-select.c
	* app/gui/preferences-dialog.c
	* app/gui/qmask-commands.c
	* app/gui/resize-dialog.c
	* app/gui/resolution-calibrate-dialog.c
	* app/gui/stroke-dialog.c
	* app/gui/templates-commands.c
	* app/gui/user-install-dialog.c
	* app/gui/vectors-commands.c
	* app/tools/gimpcolorpickertool.c
	* app/tools/gimpcroptool.c
	* app/tools/gimpimagemaptool.c
	* app/tools/gimpmeasuretool.c
	* app/tools/gimptransformtool.c
	* app/widgets/gimptexteditor.c
	* app/widgets/gimptooldialog.[ch]
	* app/widgets/gimpviewabledialog.[ch]
	* app/widgets/gimpwidgets-utils.c: changed accordingly and increased
	the dialogs' outer borders to 6 pixels all over the place.

	* plug-ins/*/*.c: changed accordingly. The plug-ins may be
	arbitrarily broken, I tested none of them.
2003-11-06 15:27:05 +00:00
Sven Neumann 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
Michael Natterer cdd0a5147d app/fileops.c Make sure that we don't try to destroy query_boxes twice or
2000-11-18  Michael Natterer  <mitch@gimp.org>

	* app/fileops.c
	* libgimp/gimpquerybox.[ch]: Make sure that we don't try to destroy
	query_boxes twice or try to disconnect not-any-more connected
	handlers.

	* app/color_notebook.c
	* app/gimpcontext.[ch]
	* app/gimphelp.[ch]
	* app/lc_dialog.[ch]
	* app/menus.h
	* app/preferences_dialog.c
	* app/tools.[ch]
	* libgimp/gimpcolorbutton.[ch]
	* libgimp/gimpdialog.[ch]
	* libgimp/gimpexport.[ch]
	* libgimp/gimpfileselection.[ch]
	* libgimp/gimphelpui.[ch]
	* libgimp/gimppatheditor.[ch]
	* libgimp/gimppixmap.[ch]
	* libgimp/gimpsizeentry.[ch]
	* libgimp/gimpui.[ch]
	* libgimp/gimpunitmenu.[ch]
	* libgimp/gimpwidgets.[ch]: in a coding attack, changed help_data
	and many other strings passed to UI functions to (const gchar *).
	As a consequence, I had to fix lots of warnings ;)

	* plug-ins/common/tga.c
	* plug-ins/imagemap/imap_main.c: fixed warnings.

	Code cleanup and indentation all over the place.
2000-11-18 00:25:42 +00:00
Sven Neumann 7703c4e056 libgimp/gimpcompat.h renamed CAN_HANDLE_INDEXED and friends.
2000-08-24  Sven Neumann  <sven@gimp.org>

	* libgimp/gimpcompat.h
	* libgimp/gimpexport.[ch]: renamed CAN_HANDLE_INDEXED and friends.

	* plugins/bmp/bmp.c
	* plugins/common/aa.c
	* plugins/common/csource.c
	* plugins/common/gbr.c
	* plugins/common/gicon.c
	* plugins/common/gif.c
	* plugins/common/gpb.c
	* plugins/common/header.c
	* plugins/common/hrz.c
	* plugins/common/jpeg.c
	* plugins/common/pat.c
	* plugins/common/pcx.c
	* plugins/common/pix.c
	* plugins/common/png.c
	* plugins/common/pnm.c
	* plugins/common/ps.c
	* plugins/common/psp.c
	* plugins/common/sunras.c
	* plugins/common/tga.c
	* plugins/common/tiff.c
	* plugins/common/xbm.c
	* plugins/common/xpm.c
	* plugins/common/xwd.c
	* plug-ins/fits/fits.c
	* plugins/gfli/gfli.c
	* plugins/sgi/sgi.c: ditto
2000-08-24 14:17:34 +00:00
Michael Natterer 804af727f6 app/gimpunit.c all libgimp headers are included via gimp.h or gimpui.h, so
2000-05-31  Michael Natterer  <mitch@gimp.org>

	* app/gimpunit.c
	* libgimp/*: all libgimp headers are included via gimp.h or
	gimpui.h, so include <gtk/gtk.h> there and in the *.c files.
	Various cleanups.
2000-05-30 23:38:46 +00:00
Sven Neumann 2d578df303 excluded gserialize.[ch] from the build
* libgimp/Makefile.am: excluded gserialize.[ch] from the build

* libgimp/*: header cleanup


--Sven
2000-02-26 03:41:06 +00:00
Sven Neumann cb7da6395d use an enum instead of defines updated
* libgimp/gimpexport.[ch]: use an enum instead of defines
* devel-docs: updated


--Sven
2000-02-06 21:19:10 +00:00
Sven Neumann 83ecdd1d64 documented gimpexport
--Sven
2000-02-04 18:55:32 +00:00
Manish Singh b8e03bd1c7 added spec file to EXTRA_DIST
* Makefile.am: added spec file to EXTRA_DIST

* docs/Makefile.am: added undo.txt to EXTRA_DIST

* app/interface.c: removed the DODGY warning, doesn't look dodgy to me

* libgimp/*.h: missed an s/Library/Lesser/

* tools/pdbgen/*: lots of work on the libgimp portion

-Yosh
1999-12-26 07:54:39 +00:00
Marc Lehmann df8b445be6 *** empty log message *** 1999-11-17 21:13:50 +00:00
Manish Singh 9feac96274 added GIMP_DISABLE_COMPAT_H test, and C++ guards
* libgimp/gimpcompat.h: added GIMP_DISABLE_COMPAT_H test, and C++
guards

* tools/pdbgen/enumcode.pl
* libgimp/gimpenums.h
* libgimp/gimpexport.h: added C++ guards

-Yosh
1999-10-24 22:08:11 +00:00
Sven Neumann 692887db20 more export fiddling and a small change to the undo_history
--Sven
1999-10-09 00:11:50 +00:00
Sven Neumann cdc3f6e779 more export stuff
--Sven
1999-10-03 23:48:33 +00:00
Sven Neumann 6a19448d82 Undestructive File Export(TM)
--Sven

CVS ----------------------------------------------------------------------
1999-10-03 18:54:54 +00:00