...in both the core and libgimp.
Images now know what the default mode for new layers is:
- NORMAL for empty images
- NORMAL for images with any non-legacy layer
- NORMAL_LEGAVY for images with only legacy layers
This changes behavior when layers are created from the UI, but *also*
when created by plug-ins (yes there is a compat issue here):
- Most (all?) single-layer file importers now create NORMAL layers
- Screenshot, Webpage etc also create NORMAL layers
Scripts that create images from scratch (logos etc) should not be
affected because they usually have NORMAL_LEGACY hardcoded.
3rd party plug-ins and scripts will also behave old-style unless they
get ported to gimp_image_get_default_new_layer_mode().
with proper value names. Mark most values as _BROKEN because they use
weird alpha compositing that has to die. Move GimpLayerModeEffects to
libgimpbase, deprecate it, and set it as compat enum for GimpLayerMode.
Add the GimpLayerModeEffects values as compat constants to script-fu
and pygimp.
- Add all missing decompositions needed for compat
- There are still some noticeable differences with the old plugin
(YCbCr mainly)
- decomposition of alpha is not coherent with gimp's current behaviour.
It still needs to be discussed.
- clamping is only here for compat, but it's probably not really needed.
- Others decompositions can now easily be added.
- compose.c remains unported
I'm sure some plug-ins need to add their items *not* at the toplevel,
but since making plug-ins really tree-aware is a lot more work than
just fixing insert positions, I went for passing -1 as parent in
almost all cases. And because of laziness...
The CMYK Decompose/Recompose plugin used its own (faulty) algorithm
for RGB<->CMYK conversions. This fix changes the plugin to use the
conversion routines provided by libgimpcolorspace.
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
2007-10-24 Manish Singh <yosh@gimp.org>
* plug-ins/common/compose.c
* plug-ins/common/decompose.c: generate PDB docs from the same
source as the UI.
svn path=/trunk/; revision=23940
2007-09-25 Sven Neumann <sven@gimp.org>
* plug-ins/common/decompose.c: reverted "fix" for bug #477008.
* tools/pdbgen/pdb/display.pdb
* app/pdb/display_cmds.c: flush the image before creating a new
display for it. Fixes bug #477008 also for other plug-ins like
Screenshot.
svn path=/trunk/; revision=23650
2007-09-17 Simon Budig <simon@gimp.org>
* plug-ins/common/decompose.c: flush the displays at the end.
Fixes bug #477008.
svn path=/trunk/; revision=23570
2007-01-12 Sven Neumann <sven@gimp.org>
* plug-ins/common/compose.c
* plug-ins/common/decompose.c: applied patch from Robert Krawitz
that adds HSL support (bug #395928).
svn path=/trunk/; revision=21700
2006-06-06 Sven Neumann <sven@gimp.org>
* plug-ins/common/decompose.c: applied a modified patch from
Clarence Risher that adds support for a registration color
(bug #338049).
2005-09-30 Michael Natterer <mitch@gimp.org>
* plug-ins/*/*.c: removed '...' from progress messages. They are
redundant because we are already in a progress. Ported some more
g_strdup_printf()/gimp_progress_init() to
gimp_progress_init_printf(). Core will follow...
2005-09-27 Sven Neumann <sven@gimp.org>
* libgimpwidgets/gimpintcombobox.c: document how to construct an
empty GimpIntComboBox using g_object_new().
* plug-ins/common/aa.c
* plug-ins/common/channel_mixer.c
* plug-ins/common/compose.c
* plug-ins/common/decompose.c
* plug-ins/common/newsprint.c
* plug-ins/common/spheredesigner.c
* plug-ins/gflare/gflare.c
* plug-ins/pagecurl/pagecurl.c: use g_object_new() to construct an
empty GimpIntComboBox. The old way of doing it caused warnings.
2005-09-24 Michael Natterer <mitch@gimp.org>
* plug-ins/common/compose.c: fixed some brokenness caused by my
last "cleanup". Should work as before now.
* plug-ins/common/decompose.c: cleaned up GUI and code.
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.