Add property "color-tag" of type enum GimpColorTag to GimpItem so all
layers, channels and paths can be tagged with a color.
For interoperability, use the color list from Krita which is a
superset of Photoshop's colors.
Features a "Color Tag" submenu in the layers, channels and paths
menus, a row of color radio buttons in the properties dialogs,
undo and PDB API.
As a side effect, some common code is now factores out into
items-actions.[ch] and items-commands.[ch] which adds visible, linked
and lock actions for layers and channels.
Don't skip the first 10 bytes. That code was there to skip the magic
"GIMP_XMP_1" of the old "gimp-metadata" parasite. Instead, properly
check for that magic in xcf_load_image() and pass only the actual XMP
to gimp_metadata_set_from_xmp(). Also remove the +10 hack in file-exr.
"exif-data" parasite
To migrate old "exif-data" parasites to GimpMetadata
an exif-only jpeg file is generated in memory, but its
APP1 marker length was 2 bytes short resulting in a
CRITICAL warning:
** (gimp-2.9:9): CRITICAL **: Directory Photo: IFD exceeds data buffer, cannot read next pointer.
Properly terminating the jpeg with an EOI marker also
gets rid of the WARNING:
** (gimp-2.9:9): WARNING **: JPEG format error, rc = 5
Since we have many themes now, this new name better indicates that it
is meant to follow your desktop theme settings.
Also it will likely not remain the default theme.
Add GIMP_DESATURATE_LUMINANCE to enum GimpDesaturateMode and rename
GIMP_DESATURATE_LUMINOSITY to GIMP_DESATURATE_LUMA.
Keep GIMP_DESATURATE_LUMINOSITY as deprecated compat value and add it
to the script-fo and pygimp compat constants.
Change GimpOperationDesaturate to process GIMP_DESATURATE_LUMINANCE
with linear "RGBA float".
Change the logic in gimp_metadata_get_colorspace() to be like in the
respective KExiv2 function, which looks pretty well done. No guarantee
of correctness, this just looks more logical than before :)
Some refactoring: add gimp_metadata_get,set_colorspace() and a new
enum GimpMetadataColorspace which so far can be one of { UNSPECIFIED,
UNCALIBRATED, SRGB, ADOBERGB }. The setter is untested and I don't
know if it's doing the right thing, please review. Use the getter in
gimp_image_metadata_load_finish(), so complex metadata logic and
profile creation/setting are separated.
Add flag GIMP_METADATA_LOAD_COLORSPACE which defaults to TRUE, and in
gimp_image_metadata_load_finish(), assign AdobeRGB to the image if
Exif.Iop.InteroperabilityIndex says "R03". This is most likely very
incomplete because there are quite some other colorspace tags in
various parts of the image metadata.
because it confuses gtk-doc and breaks some links. Also change the
"Index of new symbols in GIMP 2.x" sections to be what seems to be the
modern standard (looked at the GLib and GTK+ docs), and update some
other stuff.
gimp_param_unit_value_validate() set a value to itself to not
change the value, which was strange though not particularly wrong.
Found by Coverity Scan.
Add gimp_file_show_in_file_manager() to libgimpbase and a menu item
in app which shows the image's file (if any) in the file manager.
Implemented calling the org.freedesktop.FileManager1 interface
and dropped snippets found on stackoverflow for somebody to
turn into working code for OSX and Windows.
gimp_directory_file(), gimp_data_directory_file() etc. The new
functions take a variable list of path elements to the file,
the list has to be NULL-terminated. Remove the newly added
gimp_personal_rc_gfile(). Start using the new functions in app/.
Which works like gimp_filename_to_utf8() and returns a displayable
UTF-8 encoded name of a GFile that does not need to be freed, which
makes a lot of code more readable and compact.
It makes little sense to keep them in one header and parse them with a
pile of perl, just to generate them in another header. Simply keep
them in a place everybody depends on.
and keep GIMP_ICON_TYPE_STOCK_ID as a deprecated alias. Change all
plug-ins accordingly and increase the pluginrc file version number so
it gets regenerated with "icon-name" instead of "stock-id".
GIMP_ADD_foo_MASK -> GIMP_ADD_MASK_foo
GIMP_foo_MODE -> GIMP_BLEND_foo
GIMP_foo_CLONE -> GIMP_CLONE_foo
GIMP_foo -> GIMP_DODGE_BURN_TYPE_foo
GIMP_foo -> GIMP_TRANSFER_foo
Add compat values for the old names and compat code to script-fu
and pygimp.
Check in gimp_parasite_new() and fail GValue validation for parasites
with empty name. So far we only disallowed NULL names, this change
forbids the empty string "" too.
The foo_DEPENDENCIES rule replaces the default dependencies, where
EXTRA_foo_DEPENDENCIES just appends to it. This was causing libgimp
and libgimpui to build out of order.
...the whole metadata loading
Don't drop non-utf8 values from gexiv2 when serializing to XML,
instead, base64 encode them. This should be robust against whatever
garbage data is in tags.
Rationals have integers as nominator and denominator, so we can't set
something like "300.5/1". Instead, multiply the nominator and
denominator of non-integer ppi values until the error is smaller than
0.01, or the denomiator reaches 100 ("300.5/1" becomes "601/2").
...the whole metadata loading
Don't serialize a value that does not UTF-8-validate to XML. This is
not a real fix, but no matter what we do here in the future, UTF-8
validation should always be part of the serialization, in order to
avoid passing broken data into the core.
start with flags = ALL (which now includes all possible current and
future flags), and optionally *remove* individual flags instead of
adding them. This way the plug-ins default to TRUE for future flags.
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
- don't include <gdk-pixbuf/gdk-pixbuf.h> in headers in app/
- instead, include it in many .c files instead of <glib-object.h>,
finally acknowledging the fact that app/ depends on gdk-pixbuf almost
globally
- fix up includes as if libgimpbase depended in GIO, which it soon will
which currently returns TRUE if the unit has a factor that matches mm,
cm, dm or m. Incomplete, but at least now extendable in one place,
just need to use the new function everywhere.
by removing all but the toplevel prefix getter from gimpreloc.c It was
1) confusing 2) sometimes trying to subsitute the runtime prefix twice
and 3) sometimes ignoring configure-given directories within the
configure-prefix. This should all be fixed now, and done in one less
place.
I used SHGetFolderLocation, deprecated, which I thought was a better idea than
SHGetSpecialFolderLocation, deprecated as well, but also unsupported. But it
apparently won't compile on XP. Reverts back to glib exact copy.
New configuration directory scheme, consistent across platforms, and
following standards.
UNIX platforms (except OSX): $XDG_CONFIG_HOME/GIMP/{GIMP_APP_VERSION}
Windows: %APPDATA%/GIMP/{GIMP_APP_VERSION}
OSX: NSApplicationSupportDirectory/GIMP/{GIMP_APP_VERSION}
gimp_tile_put(): make sure we don't free libgimp's tile data twice in
the non-SHM case. I could never reproduce the bug, but I'm pretty sure
this fixes it. The change in gimpprotocol.c is just cleanup.
gimpdir goes to ~/Library/Gimp/x.y
thumbnails go to ~/Library/Caches/org.freedesktop.thumbnails
The thumbnail location is not standardized yet, but is the only
location that makes sense. Also fix user install to search old
gimpdirs to migrate in both Library and the classic location.
Remove the obsolete CABON_CFLAGS from all makefiles.
This only helps to maintain proper includes in app/ and shouldn't
affect plug-ins at all, because these are supposed to only include the
main headers from libgimp/ since the beginning of time.
The gimpfootypes.h files do not have these guards, so we can continue
to maintain app/'s include policy that is very likely to error out if
wrong things are included.
The item groups has all the duplicated functionality from drawable
and vectors (name, visible, linked etc).
Hijack the unused GIMP_PDB_REGION and turn it into GIMP_PDB_ITEM;
change all protocol aware files accordingly and bump the protocol
version number. Change script-fu to handle the new type.
Disable gimp_wire_read() warning, most of the time it just gives this
confusing error message when the GIMP core crashes:
(script-fu:28495): LibGimpBase-WARNING **: script-fu: gimp_wire_read(): error
In order to be able to change GIMP2_DIRECTORY during run-time, check
for changes to GIMP2_DIRECTORY in gimp_directory().
This is typically useful in test case where you could read from one
GIMP2_DIRECTORY at start-up and then write to a different
GIMP2_DIRECTORY at shut down.
The documentation for this function does not suggest that the value is
cached and thus the old behavior can be considered a bug. It is hard
to imagine why anyone would change GIMP2_DIRECTORY at run-time in a
script for example and *not* expect gimp_directory() to return the
updated gimp_dir.
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
2008-11-06 Sven Neumann <sven@gimp.org>
* tools/gimp-mkenums: use NC_() to mark enum values for
translation.
Use a lower-case short form of the type name as translation
context.
* libgimp/libgimp-intl.h: define the NC_() macro as noop.
* libgimpbase/gimpbasetypes.[ch]
* libgimpbase/gimpbase.def: added new functions to set and
get a translation context on an enum type.
* app/base/Makefile.am
* app/core/Makefile.am
* app/display/Makefile.am
* app/paint/Makefile.am
* app/plug-in/Makefile.am
* app/text/Makefile.am
* app/tools/Makefile.am
* app/widgets/Makefile.am
* libgimp/Makefile.am
* libgimpbase/Makefile.am:
* libgimpconfig/Makefile.am
* libgimpthumb/Makefile.am
* libgimpwidgets/Makefile.am: register the translation context
with the enum types.
* app/display/display-enums.h
* libgimpbase/gimpbaseenums.h
* libgimpconfig/gimpcolorconfig-enums.h: removed old-style
explicit
translation context.
* app/base/base-enums.c
* app/core/core-enums.c
* app/display/display-enums.c
* app/paint/paint-enums.c
* app/plug-in/plug-in-enums.c
* app/text/text-enums.c
* app/tools/tools-enums.c
* app/widgets/widgets-enums.c
* libgimpbase/gimpbaseenums.c
* libgimpconfig/gimpcolorconfig-enums.c
* libgimpwidgets/gimpwidgetsenums.c: regenerated.
svn path=/trunk/; revision=27562
2008-10-27 Sven Neumann <sven@gimp.org>
* libgimpbase/gimpbaseenums.[ch]: added new enum
GimpTextHintStyle.
* libgimp/gimpenums.c.tail
* tools/pdbgen/enums.pl: regenerated.
* app/text/gimptext.[ch]: added new property "hint-style".
Removed
"autohint" property and mapped the boolean property "hinting" to
the new enum property "hint-style".
* app/text/gimptextlayout-render.c
(gimp_text_layout_render_flags):
use "hint-style".
* app/tools/gimptextoptions.[ch]: changed tool options
accordingly.
* tools/pdbgen/pdb/text_layer.pdb: deprecated the "hinting" API
and introduced getters and setters for "hint-style".
* app/pdb/text-layer-cmds.c
* app/pdb/internal-procs.c
* libgimp/gimptextlayer_pdb.[ch]: regenerated.
svn path=/trunk/; revision=27432
2008-09-04 Michael Natterer <mitch@gimp.org>
* libgimpbase/gimpreloc.c (set_gerror): made the error_message
variable const.
svn path=/trunk/; revision=26856
2008-09-04 Michael Natterer <mitch@gimp.org>
* libgimpbase/gimpbasetypes.h
(struct GimpEnumDesc)
(struct GimpFlagsDesc): made the value_desc and value_help members
const, just as the corresponding GEnumValue and GFlagsValue
members. This is technically an API change but shouldn't hurt
since it totally reflects how they are used.
svn path=/trunk/; revision=26855
2008-08-19 Sven Neumann <sven@gimp.org>
Complements the fix for bug #344818:
* libgimpbase/gimpbaseenums.[ch]: added new enum
GimpPDBErrorHandler.
* tools/pdbgen/enums.pl: regenerated.
* app/plug-in/gimpplugin.[ch]: added error_handler to
GimpPlugIn.
* app/plug-in/gimpplugin-message.c
(gimp_plug_in_handle_proc_run):
only display an error message for a failed procedure call if the
plug-in's error-handler is set to
GIMP_PDB_ERROR_HANDLER_INTERNAL.
* tools/pdbgen/pdb/plug_in.pdb: added PDB getter and setter for
the plug-in's error-handler.
* app/pdb/plug-in-cmds.c
* app/pdb/internal-procs.c
* libgimp/gimpenums.c.tail
* libgimp/gimpplugin_pdb.[ch]: regenerated.
* plug-ins/common/file-compressor.c
* plug-ins/file-uri/uri.c: set the error-handler to
GIMP_PDB_ERROR_HANDLER_PLUGIN as these plug-ins are forwarding
the
error with their return values.
svn path=/trunk/; revision=26656
2008-07-14 Sven Neumann <sven@gimp.org>
Add new PDB data type PDB_COLORARRAY for using arrays of GimpRGB
colors as argument or return value.
* libgimpbase/gimpbaseenums.[ch] (enum GimpPDBArgType): replaced
the unused GIMP_PDB_BOUNDARY with GIMP_PDB_COLORARRAY.
* libgimpbase/gimpprotocol.h: increased GIMP_PROTOCOL_VERSION.
(struct _GPParam): added d_colorarray entry to the union.
* libgimpbase/gimpprotocol.c
* libgimp/gimp.[ch]
* app/pdb/gimp-pdb-compat.c
* app/plug-in/plug-in-params.c
* app/plug-in/gimpplugin-message.c
* tools/pdbgen/pdb.pl: deal with the new data type.
* tools/pdbgen/enums.pl: regenerated.
* plug-ins/pygimp/pygimp-pdb.c
* plug-ins/script-fu/scheme-wrapper.c: handle the new data type.
svn path=/trunk/; revision=26189
2008-04-14 Michael Natterer <mitch@gimp.org>
* libgimpbase/gimpmemsize.c: #undef GIMP_DISABLE_DEPRECATED so
gimp_memsize_to_string() sees its own prototype.
svn path=/trunk/; revision=25483
2008-03-31 Sven Neumann <sven@gimp.org>
* app/text/text-enums.[ch]
* libgimpbase/gimpbaseenums.[ch]: as a first step towards a new
text PDB API, moved GimpTextDirection and GimpTextJustification
enums to libgimpbase.
* libgimpbase/gimpbase.def: updated.
svn path=/trunk/; revision=25325
2008-03-27 Sven Neumann <sven@gimp.org>
Properly pass the focus from the core to plug-in dialogs:
* libgimpbase/gimpprotocol.[ch]: added a user_time member to the
GimpConfig struct. Bumped the protocol version to 0x0012.
* app/core/gimp-gui.[ch]
* app/gui/gui-vtable.c: added gimp_get_user_time() to get the
timestamp of the last user interaction.
* app/plug-in/gimppluginmanager-call.c
(gimp_plug_in_manager_call_run): pass the timestamp to in the
GimpConfig message.
* libgimp/gimp.[ch]:
* libgimp/gimp.def: added method to access the timestamp as set
in the config message.
* libgimp/gimpui.c (gimp_ui_init): construct a fake startup ID and
set the DESKTOP_STARTUP_ID environment variable.
svn path=/trunk/; revision=25263
2007-12-12 Tor Lillqvist <tml@novell.com>
* libgimpbase/gimpenv.c (gimp_locale_directory) [Win32]: Use
g_win32_locale_filename_from_utf8() instead of duplicating its
code.
svn path=/trunk/; revision=24345
2007-12-12 Tor Lillqvist <tml@novell.com>
* libgimpbase/gimpenv.c (gimp_toplevel_directory) [Win32]: Use the
location of the libgimpbase DLL and not that of the main
executable (which will be the Python interpreter in the case of
python-fu) to determine the top-level GIMP installation
folder. (#502506)
(gimp_locale_directory) [Win32]: Guard against the possibility
that we can't get the system codepage form of the locale
directory, in case the installation folder contains characters not
in the system codepage. In that case use the short name instead.
svn path=/trunk/; revision=24333
2007-12-11 Sven Neumann <sven@gimp.org>
* libgimpbase/gimpprotocol.c: made the code more robust against
errors on the wire protocol level.
* app/plug-in/gimpplugin-message.c: added sanity checks to message
handlers. This doesn't keep us from crashing on invalid input, but
we will at least get some warnings before that happens.
svn path=/trunk/; revision=24317
2007-12-11 Sven Neumann <sven@gimp.org>
* libgimpbase/gimpwire.c (_gimp_wire_read_string): use g_try_new()
so a plug-in can't easily crash the core by sending an invalid
string message.
svn path=/trunk/; revision=24316
2007-12-11 Sven Neumann <sven@gimp.org>
* libgimpbase/gimpwire.c (_gimp_read_read_string):
NULL-terminate
all strings coming in over the wire protocol. Should help with
bug
#498207.
svn path=/trunk/; revision=24312
2007-10-27 Sven Neumann <sven@gimp.org>
* libgimpbase/gimpmemsize.c (string_to_memsize): don't just
crash
right away if the impossible happens.
svn path=/trunk/; revision=23977
2007-10-27 Tor Lillqvist <tml@novell.com>
* libgimpbase/gimpenv.c (gimp_toplevel_directory): Drop the Win9x
code path here, too.
* libgimpbase/gimpenv.c (gimp_locale_directory): On Windows return
the pathname in system codepage and not UTF-8.
svn path=/trunk/; revision=23962
2007-09-14 Michael Natterer <mitch@gimp.org>
* libgimpbase/gimpdatafiles.c: move private functions to the end
of the file. Added function is_hidden() and use it in
gimp_datafiles_read_directories(). Moved variables to local
scopes.
svn path=/trunk/; revision=23547
2007-08-28 Michael Natterer <mitch@gimp.org>
* libgimpbase/gimpdatafiles.c (gimp_datafiles_read_directories):
skip files starting with '.' so we don't try to parse .DS_Store
and other metadata storage files. Also moved variables to local
scopes.
svn path=/trunk/; revision=23388
2007-08-28 Tor Lillqvist <tml@novell.com>
* libgimpbase/gimpenv.c: Update doc comments about filename
encoding on Windows. It is now always UTF-8, like in
GLib. (#471033) Change "Win32" to "Windows" in doc comments.
svn path=/trunk/; revision=23387
2007-08-11 Michael Natterer <mitch@gimp.org>
* libgimpbase/gimpbaseenums.[ch]
* libgimpbase/gimpenv.[ch]: changed enum GimpUserDirectory and API
of gimp_user_directory() so that g_get_user_special_dir() can be
used instead as soon as we depend on GLib 2.14.
* tools/pdbgen/enums.pl: regenerated.
* app/widgets/gimpfiledialog.c
* plug-ins/pygimp/gimpmodule.c: changed accordingly.
svn path=/trunk/; revision=23212
2007-07-06 Sven Neumann <sven@gimp.org>
* app/xcf/xcf-load.c (xcf_load_image): marked two error messages
as translatable strings.
* libgimpbase/gimputils.c (gimp_any_to_utf8): insert a blank
before the text that marks the string as invalid.
svn path=/trunk/; revision=22887
2007-06-25 Sven Neumann <sven@gimp.org>
* configure.in: removed extra check for gthread and fold it into
the GLIB and GTK checks.
* */Makefile.am: changed accordingly.
* app/main.c (main): always call g_thread_init().
svn path=/trunk/; revision=22832
2007-06-25 Sven Neumann <sven@gimp.org>
* libgimpbase/gimpwire.c: if the wire protocol is used without
prior initialization, abort with g_error() instead of crashing.
svn path=/trunk/; revision=22831
2007-05-14 Tor Lillqvist <tml@novell.com>
* libgimpbase/gimpenv.c: Undef DATADIR before including <shlobj.h>
to avoid collision with DATADIR enum in objidl.h. Define
CSIDL_MYDOCUMENTS, CSIDL_MYMUSIC and CSIDL_MYVIDEO in case missing
from shlobj.h.
* libgimpbase/Makefile.am: Link with -lole32 on Win32 for
CoTaskMemFree().
svn path=/trunk/; revision=22483
2007-05-13 Sven Neumann <sven@gimp.org>
* app/file/Makefile.am
* app/file/xdg-user-dir.c[ch]: removed here ...
* libgimpbase/Makefile.am
* libgimpbase/xdg-user-dir.[ch]: ... and moved to libgimpbase.
* libgimpbase/gimpbaseenums.[ch]: added GimpUserDirectory enum.
* libgimpbase/gimpenv.[ch]: added new function to identify
special
user folders. Added Win32 specific code and use
xdg_user_dir_lookup()
on other platforms.
* libgimpbase/gimpbase.def: regenerated.
svn path=/trunk/; revision=22475
2007-04-12 Sven Neumann <sven@gimp.org>
* libgimpbase/gimpprotocol.[ch] (struct _GPParam): don't redefine
the GimpParasite struct, just use it.
* libgimp/gimp.c: include gimpparasite.h.
* libgimp/gimpitemcombobox.c (gimp_item_combo_box_new): initialize
combo_box_type to suppress a compiler warning.
* libgimpwidgets/gimpmemsizeentry.c (gimp_memsize_entry_new):
avoid dereferencing a type-punned pointer.
svn path=/trunk/; revision=22237
2007-03-19 Sven Neumann <sven@gimp.org>
* libgimpbase/gimpbaseenums.[ch]: changed labels for
GimpTransformDirection to make the corrective transform feature
more obvious.
svn path=/trunk/; revision=22146
2007-02-19 Sven Neumann <sven@gimp.org>
* libgimpbase/gimpbaseenums.[ch]: changed description for
GIMP_INTERPOLATION_LANCZOS to "Sinc (Lanczos3)". More correct
and
more in sync with the other terms.
svn path=/trunk/; revision=21949
2006-11-30 Michael Natterer <mitch@gimp.org>
* libgimp/gimp.def
* libgimpbase/gimpbase.def: move around version number symbols
here too. Fixes bug #380658.
2006-11-28 Michael Natterer <mitch@gimp.org>
* libgimp/gimp.[ch]: removed gimp_foo_version variables.
* libgimpbase/gimpenv.[ch]: added them here.
* app/sanity.c: added sanity_check_gimp() and abort if the libgimp
version gimp is compiled with is not exactly the same we encounter
at runtime.
2006-08-29 Sven Neumann <sven@gimp.org>
* libgimpbase/Makefile.am
* libgimpbase/gimpbase.h
* libgimpbase/gimprectangle.[ch]: added new files that hold
gimp_rectangle_intersect(), factored out of the core.
* libgimpbase/gimpbase.def: updated.
* app/core/gimp-edit.c
* app/core/gimp-utils.c
* app/core/gimp-utils.h
* app/core/gimpchannel-combine.c
* app/core/gimpdrawable-foreground-extract.c
* app/core/gimpdrawable-transform.c
* app/core/gimpdrawable.c
* app/core/gimpimage-preview.c
* app/core/gimplayer.c
* app/core/gimpscanconvert.c
* app/display/gimpdisplayshell-draw.c: changed includes accordingly.
* libgimp/gimpdrawablepreview.c: don't duplicate
gimp_rectangle_intersect() here, use the function in libgimpbase.
* app/base/siox.c: use gimp_rectangle_intersect() to reduce the
working area to the region of interest. Fixes bug #340422.
2006-08-22 Sven Neumann <sven@gimp.org>
* libgimpbase/gimpwire.h
* libgimpbase/gimpreloc.h
* libgimp/gimpdrawablepreview.h
* libgimp/gimptile.h
* libgimp/gimpunitcache.h
* libgimpthumb/gimpthumb-utils.h
* libgimpwidgets/gimpcolorarea.h
* libgimpwidgets/gimphelpui.h: moved G_GNUC_INTERNAL before the
return value (bug #352268).
* tools/pdbgen/lib.pl : changed code generation rules to place
G_GNUC_INTERNAL before the return value.
* libgimp/*_pdb.h: regenerated.
2006-08-15 Hans Breuer <hans@breuer.org>
* **/makefile.msc app/gimpcore.def : updated
* app/xcf/xcf-save.c(1464) : error C2036: 'void *' : unknown size
pointer arithmetics on void a pointer looks like a GCC extension
* app/tools/gimpbrightnesscontrasttool.c
app/tools/gimpcolorbalancetool.c
app/tools/gimphuesaturationtool.c
app/tools/gimpcolorizetool.c : #include "core/gimp.h" for gimp_message
* app/tools/gimpiscissorstool.c : use RINT() rather than rint()
* app/widgets/gimpcontrollerlist.c : #include "gimpwidgets-utils.h"
for gimp_show_message_dialog
* app/core/gimpprogress.c(229) : 'gimp_progress_message' must
return a value
2006-08-06 Michael Natterer <mitch@gimp.org>
* libgimpbase/gimputils.c (gimp_strip_uline): restore unescaping
of "__"-escaped underlines which was broken since the addition of
"(_X)"-stripping.
2006-07-05 Sven Neumann <sven@gimp.org>
* libgimpbase/gimpenv.h
* libgimpbase/gimpmemsize.h
* libgimpbase/gimpparasiteio.[ch]
* libgimpbase/gimputils.h
* libgimpconfig/gimpconfig-path.[ch]
* libgimpthumb/gimpthumb-utils.[ch]: marked some function with
G_GNUC_MALLOC.
* plug-ins/common/dicom.c: use g_date_set_time_t() instead of the
deprecated g_date_set_time().
2006-06-27 Sven Neumann <sven@gimp.org>
* modules/cdisplay_proof.c: use the GimpColorRenderingIntent
enum
from libgimpconfig instead of duplicating it.
2006-06-16 Manish Singh <yosh@gimp.org>
* app/errors.c
* app/main.c
* app/file/gimprecentlist.c
* libgimpbase/gimpsignal.c
* libgimp/gimp.c
* modules/controller_midi.c
* plug-ins/common/gqbist.c: use _GNU_SOURCE instead of the other
_FOO_SOURCE variables to support -ansi -pedantic on glibc systems,
since anything else breaks compilation of otherwise working code.
Fixes bug #344203.
2006-06-02 Sven Neumann <sven@gimp.org>
* libgimpbase/gimpparasite.[ch]: hide the GimpParamSpecParasite
struct like we do with other custom param specs.
2006-06-02 Sven Neumann <sven@gimp.org>
Moved the CPU detection code to libgimpbase (see bug #342860):
* app/base/Makefile.am
* app/base/cpu-accel.[ch]
* app/base/test-cpu-accel.c: removed here...
* libgimpbase/Makefile.am
* libgimpbase/gimpbase.h
* libgimpbase/gimpcpuaccel.[ch]
* libgimpbase/test-cpu-accel.c: ... and added here again with
some API changes.
* app/composite/Makefile.am
* app/composite/make-installer.py: changed accordingly.
* app/composite/gimp-composite-*-installer.c: regenerated.
* libgimp/gimp.c (gimp_main): call gimp_set_use_cpu_accel().
2006-06-01 Sven Neumann <sven@gimp.org>
Added basic framework for plug-ins to access the use_cpu_accel
configuration (bug #342860):
* app/composite/gimp-composite.[ch]: added new function
gimp_composite_use_cpu_accel().
* libgimpbase/gimpprotocol.[ch]: added use_cpu_accel to the config
message.
* app/plug-in/gimppluginmanager-call.c: pass the return value of
gimp_composite_use_cpu_accel() for config.use_cpu_accel.
* libgimp/gimp.[ch]: make the config value accessible by means of
a new function gimp_use_cpu_accel().
* libgimp/gimp.def: updated.
2006-05-20 Manish Singh <yosh@gimp.org>
Fixes to address -ansi -pedantic compilation (bug #342390).
Thanks goes to Daniel Richard G. for noticing and suggesting
fixes.
* libgimpbase/gimpsignal.c: #include "config.h" and define
__POSIX_SOURCE for sigaction stuff.
* app/base/tile-swap.c (tile_swap_test): use more portable
S_IRUSR and S_IWUSR, instead of S_IREAD and S_IWRITE.
* plug-ins/common/ripple.c
* plug-ins/imagemap/imap_main.c: use C89 comments.
* plug-ins/Lighting/lighting_preview.h: don't define spin widget
variables here...
* plug-ins/Lighting/lighting_ui.[ch]: ... and instead take care
of them here.
2006-05-14 Michael Natterer <mitch@gimp.org>
Allow to initialize a new layer mask with any of the image's
channels. Fixes bug #310207.
* libgimpbase/gimpbaseenums.h (enum GimpAddMaskType): added
value GIMP_ADD_CHANNEL_MASK.
* libgimpbase/gimpbaseenums.c
* tools/pdbgen/enums.pl: regenerated.
* app/core/gimplayer.[ch] (gimp_layer_create_mask): added
GimpChannel* parameter. Hacked the GIMP_ADD_SELECTION_MASK code a
bit so it can handle GIMP_ADD_CHANNEL_MASK too. Cleaned up the
function a bit.
* app/dialogs/layer-add-mask-dialog.[ch]: added a menu of the
image's channels.
* app/actions/layers-commands.c (layers_add_mask_response): pass
the channel selected in the menu to gimp_layer_create_mask().
* tools/pdbgen/pdb/layer.pdb (layer_create_mask): use the image's
active channel when GIMP_ADD_CHANNEL_MASK is passed. Fail if there
is no active channel.
* app/pdb/layer_cmds.c: regenerated.
M ChangeLog
M app/paint/gimpconvolve.c
M app/paint-funcs/paint-funcs.c
M app/paint-funcs/paint-funcs.h
M app/tools/gimpiscissorstool.c
M libgimpbase/gimputils.c
M modules/colorsel_cmyk.c
M regexrepl/regex.c
2006-04-02 Michael Natterer <mitch@gimp.org>
* app/core/gimpparamspecs.[ch]: removed GIMP_TYPE_PARASITE,
GIMP_TYPE_PARAM_PARASITE and the GimpRGB utility functions. Some
fixes/cleanup in the new array and string array code.
* libgimpbase/gimpbase.def
* libgimpbase/gimpparasite.[ch]
* libgimpcolor/gimpcolor.def
* libgimpcolor/gimprgb.[ch]: added the parasite and rgb stuff here.
* app/pdb/gimpargument.c: #include "libgimpbase/gimpbase.h"
* app/pdb/procedural_db.c: removed unused variable.
2006-03-30 Sven Neumann <sven@gimp.org>
* libgimpbase/gimpwire.c (gimp_wire_read, gimp_wire_write):
sprinkled a few G_UNLIKELY() macros to help the compiler.
2006-03-10 Sven Neumann <ven@gimp.org>
* app/widgets/gimpaction.c: factored out some code to a utility
function.
* app/config/gimpguiconfig.[ch]
* app/config/gimprc-blurbs.h
* app/dialogs/preferences-dialog.c
* app/gui/gui.c
* app/plug-in/plug-in-run.c
* libgimp/gimp.c
* libgimpbase/gimpprotocol.[ch]: renamed tool_tips to tooltips in
variables and in the gimprc.
* app/config/gimpbaseconfig.[ch]: removed stingy_memory_use from
the GimpBaseConfig struct.
2006-02-23 Sven Neumann <sven@gimp.org>
* libgimpbase/gimpwire.[ch]: added utility functions to send
GimpRGB values over the wire.
* libgimpbase/gimpprotocol.c: use the functions.
2005-12-29 Michael Natterer <mitch@gimp.org>
* libgimpbase/gimpbaseenums.[ch] (enum GimpPDBArgType): renamed
GIMP_PDB_PATH to GIMP_PDB_VECTORS and add the former as an alias
for the latter.
* libgimp/gimp.h (union _GimpParamData): added back d_path member
to maintian source compatibility.
* tools/pdbgen/pdb.pl
* libgimp/gimp.c
* app/pdb/procedural_db.c
* app/plug-in/plug-in-params.c
* libgimpbase/gimpprotocol.[ch]
* plug-ins/pygimp/pygimp-pdb.c
* plug-ins/script-fu/siod-wrapper.c: s/GIMP_PDB_PATH/GIMP_PDB_VECTORS/
* app/pdb/image_cmds.c
* app/pdb/procedural_db_cmds.c
* app/pdb/vectors_cmds.c
* libgimp/gimpimage_pdb.c
* libgimp/gimpvectors_pdb.c
* tools/pdbgen/enums.pl: regenerated.
2005-12-14 Sven Neumann <sven@gimp.org>
* libgimpbase/Makefile.am
* libgimpbase/libgimpbase-docs.sgml
* libgimpbase/libgimpbase-sections.txt: do not generate API docs
for the private wire protocol API.
* libgimp/libgimp-sections.txt: added new path API.
* libgimpbase/tmpl/gimpprotocol.sgml
* libgimpbase/tmpl/gimpwire.sgml: removed from CVS.
* libgimp/tmpl/gimppaths.sgml
* libgimpbase/tmpl/gimpenv.sgml: regenerated.
2005-12-13 Sven Neumann <sven@gimp.org>
* libgimpbase/gimpwire.[ch]: let the private wire methods live in
the GIMP namespace. Declare internal functions as such and prefix
them with an underscore.
* libgimp/gimp.c
* libgimp/gimptile.c
* libgimpbase/gimpbase.def
* libgimpbase/gimpprotocol.c
* app/plug-in/plug-in-message.[ch]
* app/plug-in/plug-in-run.c
* app/plug-in/plug-in.c: changed accordingly.
2005-11-06 Sven Neumann <sven@gimp.org>
Added support for binary relocation by means of binreloc, largely
based on a patch by Hongli Lai:
* m4macros/Makefile.am
* m4macros/binreloc.m4: new file providing a macro to check for
binreloc support.
* acinclude.m4
* configure.in: use the macro.
* libgimpbase/Makefile.am
* libgimpbase/gimpreloc.[ch]: new files providing binreloc support
on Linux.
* libgimpbase/gimpenv.[ch]: use binreloc, provide a function to
initialize the environment machinery.
* libgimpbase/gimpbase.def: updated.
* app/Makefile.am: fiddle with the LDFLAGS for binreloc.
* app/main.c (main): gimp_env_init(FALSE).
* libgimp/gimp.c (gimp_main): gimp_env_init(TRUE).
2005-09-28 Sven Neumann <sven@gimp.org>
* libgimpwidgets/gimppreview.[ch]: renamed newly added function to
gimp_preview_get_controls(). Increased row padding for controls.
* libgimpwidgets/gimpwidgets.def
* libgimp/gimpzoompreview.c: changed accordingly.
* libgimpbase/gimputils.c (gimp_enum_get_value): ref the enum
class instead of only peeking at it.
* libgimpwidgets/gimpzoommodel.c (gimp_zoom_button_new): set a
tooltip on zoom buttons that only show an icon.
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-09 Tor Lillqvist <tml@novell.com>
* libgimpbase/gimpdatafiles.c (is_script): Practice what I preach
and use g_ascii_strcasecmp() instead of g_strcasecmp().
2005-08-25 Sven Neumann <sven@gimp.org>
* libgimpbase/gimputils.h (gimp_canonicalize_identifier): sync
parameter name with implementation to please gtk-doc.
2005-08-24 Tor Lillqvist <tml@novell.com>
Make GIMP work on Win32 even if installed in a path containing
random non-ASCII characters.
* libgimpbase/gimpenv.c (gimp_toplevel_directory): [Win32] Use
wide-char API on NT-based Windowses. Keep the toplevel directory
name in UTF-8. The rest of GIMP assumes it is UTF-8 anyway, and
for instance passes file names constructed from it to g_open().
* app/plug-in/plug-in.c (plug_in_open): On Win32, if compiled
against GLib < 2.8.2, convert the pathname arguments passed to
g_spawn_async() to locale charset (system codepage). The
g_spawn*() functions in GLib < 2.8.2 take system codepage
arguments and not UTF-8.
2005-08-03 Michael Natterer <mitch@gimp.org>
Changed naming scheme for PDB procedure names from
random_crap_that_traditionally_has_underscores to
enforced-canonical-identifiers. I'm pretty sure some things are
broken after this commit. More changes to come...
* libgimpbase/gimpbase.def
* libgimpbase/gimputils.[ch]: added gimp_canonicalize_identifier().
* app/pdb/procedural_db.[ch] (struct ProcRecord): added
"gchar *original_name" to keep a procedure's original name as
reigstered by plug-ins (compat cruft).
(procedural_db_init_procs): canonicalized list of deprecated
procedures.
* app/plug-in/plug-in-proc-def.c (plug_in_proc_def_free): free
original_name.
* app/plug-in/plug-in-message.c: canonicalize procedure names
which are received over the wire.
* app/plug-in/plug-in-rc.c: serialize the original_name and create
the canonicalized name on-the-fly when deserializing.
* app/plug-in/plug-in-run.c: pass the original_name to plug-ins
when running them because they strcmp() the passed procedure name.
* app/plug-in/plug-ins.c (plug_ins_add_to_db): pass
canonical procedure names to procedural_db_execute().
(plug_ins_file_proc_compare): special-case "gimp-xcf", not "gimp_xcf".
* app/xcf/xcf.c: changed static XCF procedures accordingly.
* tools/pdbgen/app.pl
* tools/pdbgen/lib.pl: do some trivial substitutions to generate
canonicalized names in app/, and C identifiers with underscores in
libgimp/.
* tools/pdbgen/pdb/brushes.pdb
* tools/pdbgen/pdb/fileops.pdb
* tools/pdbgen/pdb/gradients.pdb
* tools/pdbgen/pdb/image.pdb
* tools/pdbgen/pdb/palettes.pdb
* tools/pdbgen/pdb/patterns.pdb
* tools/pdbgen/pdb/plug_in.pdb
* tools/pdbgen/pdb/procedural_db.pdb
* tools/pdbgen/pdb/text_tool.pdb
* tools/pdbgen/pdb/transform_tools.pdb: canonicaloized procedure
names in calls to std_pdb_deprecated() and in procedure names in
generated C code.
* app/pdb/*_cmds.c
* libgimp/*_pdb.c: regenerated.
2005-07-29 Sven Neumann <sven@gimp.org>
* libgimpbase/gimpbaseenums.[ch]: added GimpForegroundExtractMode
in preparation for other implementations to be added in the future.
* libgimp/gimpenums.c.tail
* tools/pdbgen/enums.pl: regenerated.
* app/core/gimpdrawable-foreground-extract.[ch]
* app/tools/gimpforegroundselecttool.c
* tools/pdbgen/pdb/drawable.pdb: added the mode parameter.
* app/pdb/drawable_cmds.c
* libgimp/gimpdrawable_pdb.[ch]: regenerated.
2005-05-14 Michael Natterer <mitch@gimp.org>
* libgimpbase/gimpbaseenums.[ch]: register descriptions for the
GimpPDBProcType enum.
* plug-ins/dbbrowser/gimpprocview.c
* tools/pdbgen/pdb/procedural_db.pdb: get rid of all selfmade
enum->string mapping. Get the strings from the GType system instead.
* app/pdb/procedural_db_cmds.c
* libgimp/gimpproceduraldb_pdb.c: regenerated.
2005-04-22 Sven Neumann <sven@gimp.org>
* libgimpbase/gimpbaseenums.h (GimpTransformDirection): removed
(traditional) and (corrective) from the enum descriptions.