2002-02-26 Michael Natterer <mitch@gimp.org>
* app/core/gimpimage-mask-select.[ch]: implemented
gimp_image_mask_select_vectors() as simple wrapper around
gimp_image_mask_select_polygon().
* app/gui/vectors-commands.c: call it from the "to selection"
callbacks.
* app/gui/channels-commands.c: use gimp_image_mask_select_channel()
instead of doing the same manually.
* app/paint/gimppencil.c: register as "GimpPencil", not
"GimpPencilCore".
* app/widgets/Makefile.am
* app/widgets/widgets-types.h
* app/widgets/gimpvectorslistview.[ch]: new GimpItemListView
subclass featuring a "To Selection" and "Stroke" button.
* app/widgets/gimpitemlistview.c: create GimpVectorsListViews.
2002-02-26 Michael Natterer <mitch@gimp.org>
* app/paint/gimppaintcore-stroke.[ch]: added
gimp_paint_core_stroke_vectors() which strokes the whole vector
using one undo step.
* app/gui/vectors-commands.c: use the new function.
* app/tools/gimpvectortool.c: changed to do evil voodoo in
gimp_vectors_tool_set_vectors() and thus to always find a
display to show the vectors.
2002-02-26 Simon Budig <simon@gimp.org>
* app/gui/vectors-commands.c
* app/tools/gimpvectortool.c
* app/tools/gimpvectortool.h: fixed a name of a function
and corrected gimp_vector_tool_set_vectors.
2002-02-26 Michael Natterer <mitch@gimp.org>
Added some kind of paint core registry. It's ugly and will change...
* app/core/gimp.c: call paint_init() and paint_exit().
* app/core/gimptoolinfo.[ch]: added "gchar *paint_core_name" to
the GimpToolInfo structure and the contstructor.
* app/tools/tool_manager.c: pass the class names of the
GimpPaintCore subclasses to gimp_tool_info_new().
* app/paint/Makefile.am
* app/paint/paint.[ch]: new files. Simlply ref/unref all paint
core classes so we can find them using g_type_from_name().
* app/paint/gimppaintcore-stroke.[ch]: changed to take an array
of GimpCoords, not just gdouble.
* tools/pdbgen/pdb/paint_tools.pdb: convert the stroke array here.
* app/gui/vectors-commands.c: ad-hoc implementation of vectors
stroking. Double click now sets the active vectors in the vectors
tool.
* app/pdb/paint_tools_cmds.c: regenerated.
2002-02-26 Simon Budig <simon@gimp.org>
* app/tools/gimpdrawtool.c
* app/tools/gimpdrawtool.h: Added function gimp_draw_tool_draw_strokes
to be able to draw lines from a GimpCoords array.
* app/vectors/gimpanchor.h: removed "active", since this should
be a GUI thing.
* app/vectors/gimpstroke.c
* app/vectors/gimpstroke.h
* app/vectors/gimpbezierstroke.c
* app/vectors/gimpbezierstroke.h: Implemented (and fixed API) for
interpolation.
* app/tools/gimpvectortool.c
* app/tools/gimpvectortool.h: Changed accordingly, we can actually
draw polylines now.
2002-02-26 Michael Natterer <mitch@gimp.org>
* app/undo.[ch]: renamed undo_push_layer_rename() to
undo_push_item_rename(), so channel/vectors renaming is undoable.
Use "gsize" for all undo size variables. Cleanup.
* app/undo_types.h: s/LAYER_RENAME_UNDO/ITEM_RENAME_UNDO/.
* app/core/core-types.h: added LAYER_PROPERTIES_UNDO_GROUP.
* app/core/gimpimage.c: s/Vectors/Path/ in all user-visible strings.
* app/core/gimpitem.[ch]: cleanup.
* app/gui/menus.c: s/"New Path"/"New Path..."/, pass
"vectors_menu_update" to gimp_item_factory_new().
* app/gui/layers-commands.c: renaming the floating layer
transforms it into an ordinary layer. Push an undo group around
around both the "fs_to_layer" and the renaming.
* app/gui/channels-commands.c
* app/gui/vectors-commands.c: made renaming undoable, cleanup.
* app/widgets/gimpitemlistview.c: added an EEKY hack so "Delete"
is not broken any more for floating selections. Need a better
solution...
2002-02-25 Sven Neumann <sven@gimp.org>
* tools/pdbgen/pdb/fileops.pdb: changed dot to underscore in
implementation of gimp_temp_name(). Fixes bug #72324.
* app/pdb/fileops_cmds.c: regenerated.
2002-02-25 Sven Neumann <sven@gimp.org>
* tools/pdbgen/pdb/fileops.pdb: changed dot to underscore in
implementation of gimp_temp_name(). Fixes bug #72324.
* app/pdb/fileops_cmds.c: regenerated.
* Makefile.am
* tips/update.sh: added a script to update po files.
2002-02-25 Sven Neumann <sven@gimp.org>
* app/gui/tips-dialog.c
* app/gui/tips-parser.c: added proper error handling. This completes
the new XML-based tips system that closes bug #68846.
2002-02-25 Michael Natterer <mitch@gimp.org>
* app/widgets/Makefile.am
* app/widgets/widgets-types.h
* app/widgets/gimpitemlistitem.[ch]: new GimpListItem subclass
which handles DND reordering of GimpItems.
* app/widgets/gimpdrawablelistitem.[ch]: derive from GimpItemListItem
and removed the reordering code.
* app/widgets/gimplistitem.c: create a GimpItemListItem if the
passed viewable is a GimpItem.
2002-02-25 Sven Neumann <sven@gimp.org>
* README.i18n: updated
* app/gui/tips-dialog.c
* app/gui/tips-parser.[ch]: dropped the locale matching magic since
it would never work for all cases. Instead introduced a special
message so translators can specify the exact tips locale.
2002-02-25 Simon Budig <simon@gimp.org>
* app/vectors/gimpbezierstroke.c
* app/tools/gimpvectortool.[ch]
* app/vectors/gimpstroke.[ch]
* app/vectors/gimpvectors.[ch]: Fixed various bugs, *including*
the nasty one from this morning (thanks Mitch).
2002-02-25 Sven Neumann <sven@gimp.org>
* app/gui/tips-parser.[ch]: strip newlines, tabs and adjacent spaces
from string values. Added a naive locale match algorithm. We'll see
how well it works in real life...
* app/gui/tips-dialog.c: call gimp_tips_from_file() with current
locale. Let GTK+ do the line breaks, assorted cosmetic changes.
* tips/de.po: stripped newlines from translation.
2002-02-25 Sven Neumann <sven@gimp.org>
* po-libgimp/Makefile.in.in
* po-plug-ins/Makefile.in.in
* po-script-fu/Makefile.in.in: updated, they used to refer to
po/po2tbl.sed which is no longer existant.
2002-02-25 Simon Budig <simon@gimp.org>
* app/vectors/gimpvectors.c
* app/vectors/gimpvectors.h: Changed to a container of
GimpStrokes. This will enable it to contain different
Stroke-types in one Vectors-Object (think Entry in path
dialog)
* app/vectors/gimpstroke.c
* app/vectors/gimpstroke.h
* app/vectors/gimpbezierstroke.c
* app/vectors/gimpbezierstroke.h: New Objects: A connected
component in a vector.
* app/vectors/gimpbezier.c
* app/vectors/gimpbezier.h: Removed, obsoleted by gimpstroke
and gimpbezierstroke.
* app/tools/gimpvectortool.c
* app/vectors/Makefile.am
* app/vectors/vectors-types.h
* app/vectors/gimpanchor.h: Changed accordingly.
There is a nasty bug I am yet unable to find in the tool.
Don't use it. For some reason a wrong function instead of
gimp_stroke_real_anchor_get_next gets called. I have *no*
idea, whats wrong here. I stared at the code for hours.
If somebody has an idea I'd appreciate a hint.
2002-02-25 Sven Neumann <sven@gimp.org>
* app/gui/Makefile.am
* app/gui/tips-parser.[ch]: new files. A simple XML parser for the
gimp-tips.xml file.
* app/gui/tips-dialog.c: Removed old gimp_tips.txt parsing code and
switched to use gimp-tips.xml with the new parser. This needs some
more work ...
2002-02-24 Sven Neumann <sven@gimp.org>
* HACKING
* autogen.sh: fixed intltool version number, we need intltool 0.15.
* tips/Makefile.am
* tips/POTFILES.in
* tips/de.po
* tips/gimp-tips.xml.in: translation framework for new XML-ized tips
file. Thanks to Carol for converting the tips to XML.
2002-02-24 Michael Natterer <mitch@gimp.org>
* app/undo.[ch]
* app/undo_types.h: added undo stuff for GimpVectors.
* app/core/gimimage.c: use the new undo functions. Still unused
and untested.
2002-02-24 Michael Natterer <mitch@gimp.org>
* app/core/core-types.h: added parasite undo groups.
* app/undo.c: added assertions to make undo_push_group_start()
accept only "UndoType" values and undo_push() only "UndoImplType".
* app/core/gimpdrawable.c: use the new undo group and don't
include "undo_types.h".
2002-02-23 Michael Natterer <mitch@gimp.org>
* app/undo_types.h
* app/undo.[ch]: added new undo type IMAGE_TYPE_UNDO along with
undo_push_image_type(), removed undoing the base_type from
IMAGE_SIZE_UNDO. Hacked the undo_names a bit.
* app/core/gimpimage-convert.c: call undo_push_image_type().
This removes lots of unneeded invalidations on type/size undo.
2002-02-23 Michael Natterer <mitch@gimp.org>
General undo cleanup:
* app/undo.[ch]: made all undo structs private. Changed all
undo_push_foo() functions to take useful parameters instead of
"gpointer foo_ptr" and create the undo structs internally.
Renamed lots of functions so they are more self-explanatory
(like undo_push_gimage_mod -> undo_push_image_size). Added some
undo functions (channel reordering is undoable now). Never pass
in a UndoType, as they are reseved for groups now (see below).
Lots of cleanup and stuff...
* app/undo_types.h: is a private header now which defines "enum
UndoImplType" which is reserved for actual undo operations.
All enum values are named "FOO_UNDO".
* app/core/core-types.h: added the "UndoType" enum here and don't
include "undo_types.h" any more. The UndoType values are all
named "FOO_UNDO_GROUP" and are reserved for undo groups.
The ID space of actual undo operations and undo groups
is now strictly disjunct.
* app/core/gimpchannel.h
* app/core/gimpimage.h
* app/core/gimplayer.h
* app/core/gimplayermask.h
* app/paint/gimppaintcore.h
* app/tools/gimptransformtool.h: removed undo stuct definitions.
* app/undo_history.c
* app/path_transform.h
* app/core/gimpchannel.c
* app/core/gimpdrawable-transform.c
* app/core/gimpedit.c
* app/core/gimpimage-convert.c
* app/core/gimpimage-crop.c
* app/core/gimpimage-mask.c
* app/core/gimpimage-merge.c
* app/core/gimpimage-qmask.c
* app/core/gimpimage-resize.c
* app/core/gimpimage-scale.c
* app/core/gimpimage.c
* app/core/gimplayer-floating-sel.c
* app/core/gimplayer.c
* app/display/gimpdisplayshell-dnd.c
* app/gui/channels-commands.c
* app/gui/image-commands.c
* app/gui/layers-commands.c
* app/gui/paths-dialog.c
* app/paint/gimppaintcore.c
* app/tools/gimpbezierselecttool.c
* app/tools/gimpeditselectiontool.c
* app/tools/gimpmeasuretool.c
* app/tools/gimpmovetool.c
* app/tools/gimptexttool.c
* app/tools/gimptransformtool.c
* tools/pdbgen/pdb/guides.pdb
* tools/pdbgen/pdb/layer.pdb
* tools/pdbgen/pdb/undo.pdb: changed accordingly.
* app/pdb/guides_cmds.c
* app/pdb/layer_cmds.c
* app/pdb/undo_cmds.c: regenerated.
* app/core/gimpimage.[ch]: added infrastructure for holding a
GimpList of GimpVectors objects. The API is the same as for layers
and channels. Not used yet.
2002-02-22 Sven Neumann <sven@gimp.org>
* HACKING
* Makefile.am
* autogen.sh
* configure.in: depend on intltool for handling i18n stuff. This
means that you need intltool to compile The GIMP from CVS. Grab
it from ftp://ftp.gnome.org/pub/GNOME/stable/sources/intltool/
or out of gnomecvs module intltool. You shouldn't need it if you
compile The GIMP from tarball.
* data/misc/Makefile.am
* data/misc/gimp.desktop.in.in: merge translations into the desktop
file.
2002-02-22 Sven Neumann <sven@gimp.org>
* INSTALL
* configure.in: cleaned up --with-sendmail, --enable-threads and
--enable-mp options. Added --with-gnome-desktop=PATH option.
* data/misc/Makefile.am
* data/misc/gimp.desktop.in.in: install a GNOME desktop file for
The GIMP and create a link so GNOME-2.0 should be able to find it.
Use --with-gnome-desktop=PATH to override the link location.
* data/images/Makefile.am
* data/images/wilber-icon.png: new file to serve as application icon.
* plug-ins/script-fu/script-fu-scripts.c: register script-fu
SF_ADJUSTMENT parameters as GIMP_PDB_FLOAT (spotted by Masahiro
Sakai <zvm01052@nifty.ne.jp>).
2002-02-22 Simon Budig <simon@gimp.org>
* app/vectors/Makefile
* app/vectors/Makefile.am
* app/vectors/Makefile.in
* app/vectors/gimpanchor.h
* app/vectors/gimpbezier.c
* app/vectors/gimpbezier.h
* app/vectors/gimpvectors.c
* app/vectors/gimpvectors.h
* app/vectors/vectors-types.h: new files, the beginning
of a new vector infrastructure for gimp.
* configure.in
* app/Makefile.am
* app/core/core-types.h: changed accordingly.
* app/tools/Makefile.am
* app/tools/gimpvectortool.c
* app/tools/gimpvectortool.h
* app/tools/tools.c: New tool without practical use (yet),
using the new infrastructure.
to be continued...
2002-02-21 Michael Natterer <mitch@gimp.org>
Made the paint tool PDB wrappers work again (a bit at least...)
* app/Makefile.am: changed linking order. libtool sucks.
* app/undo.c: check if active_tool is a GimpPaintTool before
casting it.
* app/paint/Makefile.am
* app/paint/paint-types.h: added new files/types.
* app/paint/gimppaintoptions.[ch]: new files cut out of
tools/paint_options.h. Prefixed everything with "Gimp". There is
still GtkWidget* cruft hanging around in the structs...
* app/paint/gimppaintcore-stroke.[ch]: utility function
which paints a stroke array. Needed for the PDB wrappers.
* app/paint/gimpairbrush.[ch]
* app/paint/gimpclone.[ch]
* app/paint/gimpconvolve.[ch]
* app/paint/gimpdodgeburn.[ch]
* app/paint/gimperaser.[ch]
* app/paint/gimppaintbrush.c
* app/paint/gimppaintcore.[ch]
* app/paint/gimppencil.c
* app/paint/gimpsmudge.[ch]: added *_options_new() functions which
create correctly initialized options structures without widgets.
* app/tools/paint_options.[ch]: removed the options struct
definitions and value initialisations.
* app/tools/gimpairbrushtool.c
* app/tools/gimpblendtool.c
* app/tools/gimpbucketfilltool.c
* app/tools/gimpclonetool.c
* app/tools/gimpconvolvetool.c
* app/tools/gimpdodgeburntool.c
* app/tools/gimperasertool.c
* app/tools/gimpinktool.c
* app/tools/gimppaintbrushtool.c
* app/tools/gimppainttool.c
* app/tools/gimppenciltool.c
* app/tools/gimpsmudgetool.c: changed all paint_options functions
accordingly, s/PaintOptions/GimpPaintOptions/g etc., removed all
#if 0'ed non_gui functions.
* tools/pdbgen/pdb/paint_tools.pdb: use gimp_paint_core_stroke().
We currently leak all paint_options structs created by the PDB
wrappers, more stuff to come...
* app/pdb/paint_tools_cmds.c: regenerated.
2002-02-21 Sven Neumann <sven@gimp.org>
* plug-ins/common/glasstile.c: code cleanup based on a patch from
Maurits Rijk <lpeek.mrijk@consunet.nl> (#72051).
2002-02-21 Michael Natterer <mitch@gimp.org>
* app/tools/gimpdrawtool.c: return the corrent value in
g_retuen_val_if_fail().
* app/tools/gimppainttool.c: removed some more painting logic...
* app/paint/gimppaintcore.[ch]: ...and added it here so the PDB
wrappers can use it too. Added "gboolean use_pressure" which needs
to be set by GimpPaintTool so we don't need access to GdkDevices.
2002-02-20 Sven Neumann <sven@gimp.org>
* plug-ins/common/colortoalpha.c: optimization and cleanup based
on a patch from Maurits Rijk <lpeek.mrijk@consunet.nl> (#72044).
2002-02-20 Michael Natterer <mitch@gimp.org>
Implemented #7100 (initialize layer mask with a copy of the image)
* app/core/core-types.h: added ADD_COPY_MASK and ADD_INV_COPY_MASK
enum values.
* app/pdb/layer_cmds.c
* libgimp/gimpenums.h
* plug-ins/script-fu/script-fu-constants.c
* tools/pdbgen/enums.pl: regenerated.
* app/core/gimplayer.c (gimp_layer_create_mask): implement
the new layer mask add modes.
* app/gui/layers-commands.c (layers_add_mask_query): added radio
buttons for the new modes.
* app/paint-funcs/paint-funcs.c (flatten_region): this function
was never needed so nobody noticed that it never worked. Fixed now.
* app/undo.c
* app/core/gimplayermask.h
* app/core/gimpimage.c: the "mode" field of LayerMaskUndo is
obsolete since some earlier 1.3 layer mask change. Removed it.
(Makes mask undos work again)
2002-02-20 Michael Natterer <mitch@gimp.org>
Implemented #10125 ("quick" colour picker does not honour
"sample merged")
* app/tools/gimpcolorpickertool.[ch]: made definition of
GimpColorPickerToolOptions public.
* app/tools/gimppainttool.c: get the color picker's tool_options
and pick colors accordingly. Also draw a rectangle for
"sample_average".
2002-02-20 Michael Natterer <mitch@gimp.org>
Oops, yesterday's "fix" for #10466 made it even worse :)
* app/core/gimpdrawable-transform.c: need the 0.5 offset to
the pixel's center only for INTERPOLATION_NONE, as the LINEAR
and CUBIC algorithms already know about their errors.
* app/tools/gimpperspectivetool.c
* app/tools/gimpscaletool.c
* app/tools/gimpsheartool.c: some more s/gint/gdouble/ so the
tools can detect pointer motions again...
2002-02-19 Sven Neumann <sven@gimp.org>
* plug-ins/common/vinvert.c: applied a patch with some optimizations
from Maurits Rijk <lpeek.mrijk@consunet.nl> (#71955).
2002-02-19 Michael Natterer <mitch@gimp.org>
Fixed#10466 (disappearing pixels when rotating by 90 deg):
* app/core/gimpdrawable-transform.c: when transforming backwards
to find the destination line's sub-pixel source coordinates, we
need to transform the pixels _center_, not it's upper left corner.
* app/core/gimpdrawable-transform-utils.[ch]: added
gimp_drawable_transform_matrix_rotate_center() which takes double
center coordinates instead of an integer pixel bounding box.
* app/tools/gimptransformtool.[ch]: use double instead of int for
all coordinates except the original bounding box.
* app/tools/gimprotatetool.c: use double whenever touching the
"center" value, so it can be sub-pixel positioned.
2002-02-19 Sven Neumann <sven@gimp.org>
* plug-ins/pagecurl/pagecurl.c: code cleanup based on a patch from
Maurits Rijk <lpeek.mrijk@consunet.nl> (#71866).
2002-02-18 Sven Neumann <sven@gimp.org>
* libgimp/gimpintl.h: removed INIT_LOCALE() macro. Error out if
config.h wasn't included before.
* app/main.c: directly call the appropriate functions to set up I18N.
* libgimp/libgimp-intl.h: error out if config.h wasn't included.
* plug-ins/script-fu/script-fu-intl.h: set codeset to UTF-8.
2002-02-18 Michael Natterer <mitch@gimp.org>
* app/tools/tools-types.h
* app/tools/*.[ch]: chain up unconditionally in control(),
s/ToolAction/GimpToolAction/g, s/ToolState/GimpToolState/g.
* app/tools/gimpbezierselecttool.c
* app/tools/gimpinktool.c
* app/tools/gimppainttool.c: don't touch tool->paused_count
(setting it to 0 was a hack which should no longer be needed).
* app/tools/gimpdrawtool.c: check if the draw tool has actually
been started (draw_tool->gdisp != NULL) before calling it's
draw() function.
* app/tools/tool_manager.c: simplified tool_manager_control_active():
simply call gimp_tool_control() if gdisp == tool->gdisp.
* app/tools/gimptool.[ch]: gimp_tool_control(): do all the PAUSE,
RESUME and HALT voodoo here.
* app/tools/gimppainttool.c: implemented #9902 (Drawing straight
lines does not work between different views). It's an evil hack,
but clearly marked in the source.