2001-02-14 Michael Natterer <mitch@gimp.org>
* HACKING: added a note about apptype.h and about not including
headers in headers.
* app/apptypes.h: added GimpTool and BitmapCursor.
* app/cursorutil.h
* app/devices.h
* app/draw_core.h
* app/tools/color_picker.h
* app/tools/tool.h
* app/tools/tool_options.h
* app/gimpcontext.h: removed includes of "tools/tool.h"
* app/gimprc.[ch]: indentadion cleanup, added
"module_db_load_inhibit".
* app/module_db.c: removed the above variable here.
* app/gimpdata.[ch]: added a vitrual "duplicate" method.
* app/gimpbrush.[ch]
* app/gimpbrushgenerated.[ch]
* app/gimpbrushpipe.[ch]
* app/gimpgradient.[ch]
* app/gimppalette.[ch]
* app/gimppattern.[ch]: all "load", "new" and "get_standard"
functions return a GimpData pointer now.
* app/gimpdatafactory.[ch]: made some stuff const.
* app/gimpdatafactoryview.c: activate the "duplicate" button and
set the initial button sensitivity correctly.
* app/brush_select.c
* app/gradient_select.c
* app/pattern_select.c: use the new GimpDataFactoryView.
* libgimp/Makefile.am: grouped the file to sort out what _may_
go to subdirs or separate libs.
* libgimp/gimpenv.[ch]: added many "const".
* app/app_procs.c
* app/brush_edit.c
* app/gimpcontext.c
* app/gimpdnd.c
* app/gradient_editor.c
* app/palette.c
* app/palette_import.c
* app/user_install.c: many related changes.
* libgimpmath/gimpmathtypes.h
* libgimpmath/gimpvector.[ch]: minor cleanups.
* plug-ins/script-fu/script-fu.c: gimp_data_directory() is const now.
2000-12-29 Michael Natterer <mitch@gimp.org>
* app/Makefile.am
* app/channel_pvt.h
* app/drawable_pvt.h
* app/gdisplayF.h
* app/gimpdrawableP.h
* app/gimpimageP.h
* app/layer_pvt.h
* app/toolsF.h: removed these files.
* app/apptypes.h
* tools/pdbgen/enums.pl: added tons of opaque typedefs and enums.
* tools/pdbgen/pdb/brush_select.pdb
* tools/pdbgen/pdb/brushes.pdb
* tools/pdbgen/pdb/channel.pdb
* tools/pdbgen/pdb/color.pdb
* tools/pdbgen/pdb/convert.pdb
* tools/pdbgen/pdb/display.pdb
* tools/pdbgen/pdb/drawable.pdb
* tools/pdbgen/pdb/fileops.pdb
* tools/pdbgen/pdb/gradient_select.pdb
* tools/pdbgen/pdb/gradients.pdb
* tools/pdbgen/pdb/help.pdb
* tools/pdbgen/pdb/image.pdb
* tools/pdbgen/pdb/layer.pdb
* tools/pdbgen/pdb/pattern_select.pdb
* tools/pdbgen/pdb/patterns.pdb
* tools/pdbgen/pdb/selection.pdb
* tools/pdbgen/pdb/tools.pdb
* app/*: chainsaw #include cleanup:
- Never (never!!) include stuff in header files except where we
need access to structures' contents (like derived objects).
- Added prototypes and proper formating in many files.
- The #include order in *all* *.c files is as follows:
#include "config.h"
#include <system stuff>
#include <gtk/gtk.h>
#include "apptypes.h"
#include "gimp stuff"
#include "libgimp stuff"
#include "libgimp/gimpintl.h"
By following this scheme we can easily see a file's dependencies
from it's #include's and can grep for the inclusion to find out
where a file is used.
* tools/pdbgen/app.pl: changed to follow the include scheme above.
* libgimp/Makefile.am
* libgimp/gimpuitypes.h: new file, included from libgimp/gimpui.h
and from app/apptypes.h.
* libgimp/gimpcolorbutton.[ch]
* libgimp/gimpdialog.[ch]
* libgimp/gimphelpui.[ch]
* libgimp/gimpparasite.[ch]
* libgimp/gimppatheditor.[ch]
* libgimp/gimpprotocol.c
* libgimp/gimpquerybox.[ch]
* libgimp/gimpsizeentry.[ch]
* libgimp/gimptypes.h
* libgimp/gimpui.h
* libgimp/gimpunit.h
* libgimp/gimpunitmenu.[ch]
* libgimp/gimpwidgets.[ch]: changed accordingly.
* plug-ins/FractalExplorer/Dialogs.c
* plug-ins/gdyntext/message_window.c
* plug-ins/imagemap/imap_default_dialog.c
* plug-ins/imagemap/imap_file.c: these files used to include
"libgimp/gimpui.h" without including "libgimp/gimp.h". This is
no longer possible because the libgimpui headers don't inlcude
"libgimp/gimpunit.h" any more.
2000-07-29 Michael Natterer <mitch@gimp.org>
* cursors/background.xbm
* cursors/background_mask.xbm
* cursors/foreground.xbm
* cursors/foreground_mask.xbm
* cursors/pattern.xbm
* cursors/pattern_mask.xbm: new files.
* cursors/gimp-tool-cursors.xcf
* app/cursorutil.[ch]: new cursor modifiers for bucket_fill.
* app/bucket_fill.c: use the new modifiers. Closes#17871.
* app/convolve.c
* app/dodgeburn.c: added cursor_update functions which update the
tools' "toggled" state before they call the cursor_update "method"
of the paint_core "class" -- eek -- I-want-real-objects!
Closes#17872 and #17873.
* app/tools.h: added SELECTION_ANCHOR to the SelectOps enum.
* app/free_select.c
* app/rect_select.c: use the new enum value in the "oper_update"
and "cursor_update" functions. In the "motion" function, set the
tool's operation type back to SELECTION_REPLACE if the tool is
active and call the "cursor_update" function explicitly.
Closes#17870.
* app/by_color_select.c: fixed warning caused by the new enum value.
2000-06-14 Michael Natterer <mitch@gimp.org>
* Makefile.am
* cursors/gimp-tool-cursors.xcf
* cursors/anchor.xbm
* cursors/anchor_mask.xbm: new cursor modifier for the move tool.
* app/cursorutil.[ch]
* app/move.c: use the new modifier for anchoring floating selections.
2000-06-14 Michael Natterer <mitch@gimp.org>
* Makefile.am
* app/cursorutil.[ch]
* app/tools.c
* cursors/*: added lots of new cursors and removed old ones.
* app/gdisplay.[ch]: enabled the cursor setting parameters in
gdisplay_install_tool_cursor().
* app/bezier_select.c
* app/blend.c
* app/bucket_fill.c
* app/by_color_select.c
* app/clone.c
* app/color_picker.c
* app/crop.c
* app/disp_callbacks.c
* app/edit_selection.c
* app/eraser.c
* app/flip_tool.c
* app/ink.c
* app/iscissors.c
* app/magnify.c
* app/measure.c
* app/move.c
* app/paint_core.c
* app/rect_select.c
* app/text_tool.c
* app/transform_core.c: use the new cursors. Only the transform
tools are still using old cursors.
* app/layers_dialog.c: a tooltip for "Keep Trans."
* app/user_install.c: set the ctree's selection mode to BROWSE.
2000-06-09 Michael Natterer <mitch@gimp.org>
Cursor patch II:
This is only the logic inside the cursor system and not yet used.
* app/cursorutil.[ch]: [gimp]_change_win_cursor() take lots of
parameters now and compose cursors from up to three cursor
bitmaps/masks.
* app/gdisplay.[ch]: As a test, create a hardcoded example cursor
if "Cursor Mode" is set to "Tool Icon with Crosshair" in prefs.
* app/curves.c
* app/dialog_handler.c
* app/scroll.c: changed the calls to the win_cursor function.
* app/tools.[ch]: added a cursor and a toggle cursor to the ToolInfo
structure of all tools.
* app/toolsF.h: new ToolType TOOL_TYPE_NONE.
* app/gimpdnd.c
* app/interface.c: check for silly filenames in the file dnd
callback. Closes#13733.
* Makefile.am
* cursors/bucket_fill_small.xbm
* cursors/bucket_fill_small_mask.xbm
* cursors/crop_small.xbm
* cursors/crop_small_mask.xbm
* cursors/crosshair_small.xbm
* cursors/crosshair_small_mask.xbm
* cursors/ellipse_select_small.xbm
* cursors/ellipse_select_small_mask.xbm
* cursors/eraser_small.xbm
* cursors/eraser_small_mask.xbm
* cursors/free_select_small.xbm
* cursors/free_select_small_mask.xbm
* cursors/fuzzy_select_small.xbm
* cursors/fuzzy_select_small_mask.xbm
* cursors/intersect.xbm
* cursors/intersect_mask.xbm
* cursors/minus.xbm
* cursors/minus_mask.xbm
* cursors/move.xbm
* cursors/move_mask.xbm
* cursors/paintbrush_small.xbm
* cursors/paintbrush_small_mask.xbm
* cursors/pencil_small.xbm
* cursors/pencil_small_mask.xbm
* cursors/plus.xbm
* cursors/plus_mask.xbm
* cursors/rect_select_small.xbm
* cursors/rect_select_small_mask.xbm
* cursors/resize_small.xbm
* cursors/resize_small_mask.xbm
* cursors/zoom.xbm
* cursors/zoom_mask.xbm
* cursors/zoom_small.xbm
* cursors/zoom_small_mask.xbm: new files extracted from Tigert's
gimp-tool-cursors.xcf created at GimpCon.
Tigert, I'll commit the xcf as soon as I've added empty layers
with the names of the cursors that are missing.
* cursors/mouse.xbm
* cursors/mouse_mask.xbm: made it 32x32 to allow for cursor
composition.
2000-06-06 Michael Natterer <mitch@gimp.org>
* Makefile.am
* cursors/crosshair.xbm
* cursors/crosshair_mask.xbm: new files.
* app/cursorutil.[ch]
* app/gdisplay.[ch]
* app/gimprc.[ch]
* app/preferences_dialog.c: Started to add the new set of
consistent tool cursors. The crosshair one is the easy part
but I wanted to see a result :) The other two options in
the pref's cursor menu are still dummys.
2000-03-25 Michael Natterer <mitch@gimp.org>
* app/cursorutil.[ch]: new global variable "gimp_busy" which gets
set/unset whenever busy cursors are added/removed.
* app/info_dialog.c: register the info dialogs with the dialog
handler.
* app/fuzzy_select.[ch]: cleanups.
Here starts the ugly workaround which simulates something like
locking. If it works, it will close lots of bugs, if not, it's
easy to remove again.
So far, I didn't find strange side effects but Gimp is told to be
a complex program :-) Please test this.
* app/context_manager.c: don't allow tool changes if gimp_busy
is TRUE.
* app/disp_callbacks.c: don't allow mouse and key events in the
display_canvas if gimp_busy is TRUE.
(except if the current tool is FUZZY_SELECT and it is ACTIVE,
which is very ugly)
Also block other stuff like dropping colors/patterns etc.
* app/gdisplay_ops.c: don't close any display while Gimp is
busy. This is not really what we want but at least it prevents
crashes.
2000-03-04 Michael Natterer <mitch@gimp.org>
* Makefile.am
* cursors/selection_move.xbm
* cursors/selection_move_mask.xbm
* app/cursorutil.[ch]: new cursor for moving the selection
mask. Looks imho nicer than the ugly GDK_DIAMOND_CROSS.
* app/move.c
* app/rect_select.c: use the new cursor.
* app/paint_core.c: check for the statusbar's context_id in the
cursor_update function. Fixes gdk_criticals with the line preview
(which doesn't need a mouse click). Minor cleanups.
* app/tool_options.c: put the paint_pressure options in a
GtkHWrapBox instead of a GtkHBox. Makes the size of the dialog a
bit less locale-dependent.
* plug-ins/common/xbm.c: use accessor functions instead of using
the parasite's fields directly.
2000-03-01 Michael Natterer <mitch@gimp.org>
* Makefile.am
* cursors/*: a proper naming scheme for all cursor files. Added
zoom_in and zoom_out cursors.
* app/bezier_select.c
* app/by_color_select.c
* app/cursorutil.[ch]
* app/rect_select.c
* app/scale.[ch]: changed according to the new cursor names. Some
minor fixes.
* app/magnify.[ch]: made the zoom_in/zoom_out toggle a proper
tool_toggle and show cursors for the two modes.
* plug-ins/print/print-util.c: patch from Robert Kravitz which
fixes printing layers with alpha.
Mon Feb 28 19:11:39 GMT 2000 Adam D. Moss <adam@gimp.org>
* app/cursorutil.c app/cursorutil.h:
added gtkutil_compress_motion() utility function to seek and
destroy outstanding pointer motion events from the gdk event queue
for a given widget.
* app/edit_selection.c:305: Use gtkutil_compress_motion() to
do a more thorough job of tracking motion (something recently
started interleaving our motion events with others, largely
nullifying the effectiveness of GDK_POINTER_MOTION_HINT_MASK).
* app/edit_selection.c:704: Yikes, the key-press snooping code
was turning part of the event queue back-to-front with each
compressed key-press. (Still looks a bit bogus overall; looks
as though it could transplant a whole chunk of the start of
the event queue right onto the end. I'll probably disable it
unless someone points out that I'm a doofus.)
1999-10-25 Tor Lillqvist <tml@iki.fi>
* app/cursorutil.h: Uncomment the inclusion of gdkcursor.h that
should happen only with GTk+ 1.3, anyway? Why was it commented
out?
* app/tile_swap.c: Close before unlinking on Win32, too.
* libgimp/gimp.def: Updates, sorted.
* plug-ins/makefile.{cygwin,msc}: Add the gap and imagemap
plug-ins. Remove palette plug-in (what happened to it?).
Portability fixes from Hans Breuer:
* plug-ins/FractalExplorer/Dialogs.c
* plug-ins/gap/*.c:
* plug-ins/gimpressionist/gimpressionist.c:
* plug-ins/common/spheredesigner.c: Ifdefify system-dependent includes.
* plug-ins/common/psp.c: Remove an unused variable.
* plug-ins/imagemap/{imap_csim.y,imap_csim_parse.c}: Use
<string.h>, not <strings.h>.
* plug-ins/imagemap/imap_rectangle.c (rectangle_near_sash): Use
the & operator for function names to return pointers to them.
* plug-ins/winsnap/winsnap.c (sendBMPToGimp):
gimp_drawable_flush() should be called before resizing the layer
and image. Now the snapshot of a window is returned the correct
size, it's not padded in width to a multiple of four pixels.
1999-10-03 Tor Lillqvist <tml@iki.fi>
* app/cursorutil.h app/session.c app/text_tool.c: Change the
GDK_WINDOWING_* stuff to be buildable with current CVS gtk+ (not
recommended for X11, but necessary for Win32).
* libgimp/gimp.c: Undef RGB from <windows.h> on Win32.
* app/makefile.{cygwin,msc} libgimp/makefile.{cygwin,msc} *
plug-ins/makefile.{cygwin,msc}: Add new files. Small changes for
current gtk+.
* plug-ins/common/animationplay.c: Win32 kludges.
* app/clone.c: more cursor support.
* app/cursorutil.[ch], cursors/{bad,badmsk}: new cursor
* app/paint_core.c: fix that rounding error the right way this time.
* app/pixel_processor.c, app/pixel_region.c: Lock the tiles while
they are being processed. Only create new threads if the region
being processed is large enough to warrant it.
* cursors/{mouse1_u,mouse1_umsk}: new mouse cursor for intersection
operations.
* app/cursorutil.[ch], app/rect_select.c: use the new cursor.
* app/gimpimage.c: Applied layer removal bug fix from
David Le Corfec, <lecorfec@etudiant.univ-mlv.fr>
* plug-ins/gdyntext/{font_selection.c, gdyntext.c, gdyntext_ui.c}:
replaced snprintf with g_snprintf.
* plug-ins/jpeg/jpeg.c: updated to work with the double precision
resolutions.
Thu May 13 22:41:26 BST 1999 Andy Thomas <alt@gimp.org>
Changed:-
* app/bezier_select.c
* app/bezier_selectP.h
* app/cursorutil.c
* app/cursorutil.h
* app/curves.c
* app/paths_dialog.c
New:-
* cursor/mouse1_ap
* cursor/mouse1_apmsk
* cursor/mouse1_cp
* cursor/mouse1_cpmsk
* cursor/mouse1_mm
* cursor/mouse1_mmmsk
* cursor/mouse1_sel
* cursor/mouse1_selm
* cursor/mouse1_selmmsk
* cursor/mouse1_selmsk
* cursor/mouse1_selp
* cursor/mouse1_selpmsk
Paths changes:-
Implemented multi-part paths.
(Import the path (RMB in paths dialog brings menu up)
http://www.picnic.demon.co.uk/tmp/gimp.path
into a 600x256 (WxH) for an example).
Can copy/paste paths.
Fully custom cursors when using the Bezier tool. A number of bug
fixes re boundary problems also fixed.
Note that heavy use is made of the modifier keys in the bezier tool.
MB1 inside a closed curve converts it to a selection. The modifiers
change how the selection interacts with any current selection (in
much the same way as the selection tool does).
MB1 + ALT on control point will move a curve, if shift modifier active
then single curve is moved.
Curves:-
In curves dialog you can now press MB1 + shift will add point to
curves dialog corresponding to the current position in
the currently selected channel. MB1 + CNTRL will add the point
to all channels. (Thanks to Carey Bunks for the initial idea).
* app/paint_core.[ch]: set the fg or bg color if ctrl or alt is
held. use the new dropper cursor.
* app/cursorutil.[ch], app/gdisplay.[ch], app/rect_select.c: Use
GimpCursorType enum values > GDK_CURSOR_LAST instead of seperate
functions to choose between cursor types.
* app/color_picker.c: use the new dropper cursor.
* app/paintbrush.c, app/airbrush.c, app/paintbrush.c: use the new
color picking feature of paint_core.
* cursors/dropper, cursors/droppermsk: new cursor for the color
picker tool. (this cursor is REALLY ugly, someone should fix it)
* pixmaps/mouse1*: new bitmap files containing the new mouse cursors.
* app/parasitelist.c: use g_str_equal instead of parasite_compare_func.
* app/paint_core.c: interpret perfectmouse right way round.
* app/rect_select{P,}.[ch]: set custom cursors when the operation type
changes. Centralize the calculation of op based on the modifier
keys being held.
* app/fuzzy_select.c, app/free_select.c: allow the rect_select
functions calculate the operation type.
* app/ellipse_select.c: use the SelectionOps typedefs.
* app/edit_selection.c: convert MaskToLayerTranslate into
FloatingSelTranslate if there is already a floating selection in
init_edit_selection.
* app/disp_callbacks.c: fixed the calculation of state.
* app/gdisplay.[ch], app/cursorutil.[ch]: new functions to allow
the loading of customized cursors.
* app/paint_funcs.[ch], app/channel.c: border_region now accepts
seperate xradius and yradius arguments.
Sun Jan 17 16:56:25 GMT 1999 Adam D. Moss <adam@gimp.org>
* app/blend.c app/bucket_fill.c app/convert.c app/crop.c
app/cursorutil.c app/cursorutil.h app/dialog_handler.c
app/dialog_handler.h app/fuzzy_select.c app/gdisplay.c
app/gimage_cmds.c app/gimpimage.c app/scroll.c
app/transform_core.c app/xcf.c
Hourglasses also apply to all registered dialogs. Hourglasses
added in a couple more important places. New hack lets
hourglasses be added and automagically removed again when
gimp/gtk re-enters the idle loop.
Sun Jan 10 23:31:45 GMT 1999 Adam D. Moss <adam@gimp.org>
* app/blend.c app/bucket_fill.c app/convert.c app/crop.c
app/cursorutil.c app/cursorutil.h app/fuzzy_select.c
app/gdisplay.c app/gdisplay.h app/gimage_cmds.c
app/gimpimage.c app/transform_core.c app/xcf.c:
Most lengthy UI-blocking operations now put up an
hourglass so the user can see that GIMP is working.
Let me know if there are other vital cases.