1999-07-02 Michael Natterer <mitschel@cs.tu-berlin.de>
* app/[all tools]: the Tool structure is now allocated by a common
constructor which sets default values and provides default tool
action functions. To get rid of much code duplication there should
be a object hierarchy of tools.
* app/context_manager.c
* app/tools.[ch]: create and destroy private contexts for the
paint tools on startup and exit. They are not used yet.
* app/interface.c
* app/menus.c
* app/tools.h: num_tools is now exported in tools.h
* app/commands.c
* app/gdisplay.c
* app/menus.c: made "Toggle Selection" a toggleable menu item.
1999-06-26 Michael Natterer <mitschel@cs.tu-berlin.de>
* app/[all tool related files]
* app/commands.c
* app/disp_callbacks.c
* app/gdisplay.c
* app/gimage.c
* app/interface.c: hopefully fixed the bugs that appeared with my
last fix. And some more changes...
- Slightly changed the conditions which cause the tools to be
re-initialized on button_press events and the global
initialisation functions.
- The dialog tools now explicitly set tool->gdisp_ptr so they can
be properly hidden on display deletion.
- Create the crop info dialog only once and avoid ugly redraw bugs
by blocking the sizeentries' signal when initializing them.
- Standardized the tools_new_<tool>() functions. They are
scheduled to be moved to a common constructor in tools.c
- Various stuff...
1999-06-21 Michael Natterer <mitschel@cs.tu-berlin.de>
* app/context_manager.c: namespace cleanups.
* app/commands.[ch]
* app/menus.c: moved the "Toggle Selection" menu entry to "View",
sprinkled some separators and made the layers/channels/paths popup
menus consistent with Tigert's last ops buttons change.
* app/fileops.c
* app/plug_in.c: check for gdisplay_active() returning NULL in
some more places.
* app/[all tool related files]:
- Turned the ToolAction and ToolState #define's into typedef'ed
enums, so the compiler can do some more sanity checking.
- Removed one more unused global variable "active_tool_layer".
- Removed some #include's from tools.c.
- Standardized the individual tools' structure names.
- Moved showing/hiding the tool options to separate functions.
- Stuff...
* app/commands.c
* app/disp_callbacks.c
* app/gdisplay.c
* app/tools.c: fixed the segfaults which happened when the image
of one of the tools which have dialogs (levels/posterize/...) was
deleted. My approach was to do stricter sanity checking and to set
some gdisplay pointers correctly where appropriate, so I can't
tell exactly where the bug was.
The curves tool now(??) updates on every _second_ display change
only, which is really obscure.
Finding/changing the display to operate on should definitely be
done by connecting to the user context's "display_changed"
signal.
* app/gimpset.c: emit the "remove" signal _after_ removing the
pointer from the set. If this was not a bug but a feature, please
let me know, we'll need two signals then.
1999-04-12 Michael Natterer <mitschel@cs.tu-berlin.de>
* app/airbrush.c
* app/bezier_select.c
* app/blend.c
* app/brightness_contrast.c
* app/bucket_fill.c
* app/by_color_select.c
* app/clone.c
* app/color_balance.c
* app/color_picker.c
* app/convolve.c
* app/crop.c
* app/curves.c
* app/ellipse_select.c
* app/eraser.c
* app/flip_tool.c
* app/free_select.c
* app/fuzzy_select.c
* app/histogram_tool.c
* app/hue_saturation.c
* app/ink.c
* app/iscissors.c
* app/levels.c
* app/magnify.c
* app/move.c
* app/paintbrush.c
* app/pencil.c
* app/posterize.c
* app/rect_select.[ch]
* app/text_tool.c
* app/threshold.c
* app/transform_tool.c
* app/tools.[ch]
* app/toolsF.h: again: all tools :(
* app/Makefile.am
* app/tool_options.[ch]
* app/selection_options.h
* app/tool_options_ui.h: new files.
Ok, this time it's general enough for future extensions:
- The tool options structures are organized like the gtk object
system to allow derived tool options.
- Renamed all create and reset functions to *_options_new() and
*_options_reset() to reflect this.
- Changed tools_register() again. Now it takes just a pointer to a
ToolOptions structure.
- Moved almost the entire tool options gui code to tool_options.c.
- Visually separated the common selection options from the
tool-specific ones. I'd like to do the same with opacity/paint
mode in all paint tool options but I think this needs some more
discussion.
* app/histogram_tool.c: changed packing boxes, label alignments.
* app/paintbrush.c: some more sensitive settings. The gradient
feature can now be toggled with a button. Hopefully didn't break
anything.
1999-04-08 Michael Natterer <mitschel@cs.tu-berlin.de>
* app/airbrush.c
* app/bezier_select.c
* app/blend.c
* app/brightness_contrast.c
* app/bucket_fill.c
* app/by_color_select.c
* app/clone.c
* app/color_balance.c
* app/color_picker.c
* app/convolve.c
* app/crop.[ch]
* app/curves.c
* app/ellipse_select.c
* app/eraser.c
* app/flip_tool.c
* app/free_select.c
* app/fuzzy_select.c
* app/histogram_tool.c
* app/hue_saturation.c
* app/ink.c
* app/iscissors.c
* app/levels.c
* app/magnify.c
* app/move.c
* app/paintbrush.c
* app/pencil.c
* app/posterize.c
* app/rect_select.[ch]
* app/text_tool.[ch]
* app/threshold.c
* app/transform_tool.c
* app/tools.[ch]
* app/toolsF.h: in other words: all tools
Implemented the "reset tool options" feature.
- All tools register with a title string and a reset function now.
- The tool options' variables have two related <var>_d (default)
and <var>_w (widget) variables to restore the default values.
"Standardized" the tool options UI:
- Put the stuff info a frame to give a hint that the dialog's
contents will change.
- table layout, sensitive setting, spacings, borders, ...
As I had them all in my emacs simultaneously, I couldn't resist to
standardize the tools' *.c files declaration parts ;) Ansi stuff.
Mon Apr 5 22:24:30 BST 1999 Andy Thomas <alt@gimp.org>
Changed:-
* app/bezier_select.c
* app/bezier_selectP.h
* app/paths_cmds.c
* app/pathsP.h
* app/paths_dialog.c
* app/xcf.c
* tools/pdbgen/pdb/paths.pdb
New PDB functions.
gimp_path_get_point_at_dist (gets the x,y of a point a given distance
along the curve & the normal at the point).
gimp_path_get_tattoo
gimp_get_path_by_tattoo
Paths now have tattoos (similar to the layer and image tattoos).
* app/move.c
* app/scroll.c
Try to fix the problem where mouse events from the rulers get
mixed up with those from the canvas causing guides & image dragging
to "jump" around when the mouse enters the ruler areas.
Sun Mar 21 15:29:38 GMT 1999 Adam D. Moss <adam@gimp.org>
* app/disp_callbacks.c app/edit_selection.c app/move.c:
Happy-fun opaque layer moves.
* app/edit_selection.c: I doubt that using button3 to abort
a layer move has worked for a long time. I rewrote some
stuff and moved the 'abort' button to button2. Hold it down
when you release button1, to abort the current move. It
doesn't actually abort, it just automatically does an undo.
objects. (And to automatically manage their signals, not implemented
yet)
Moved drawable_apply_image to drawable.c
Created a global context object (image_context) to handle the
collection of images that the app manages.
to detect if an image still exists, some things may, for now,
access freed images and break. This will be fixed once proper
destroy handlers are added.
Tue Mar 31 02:21:15 EST 1998 Matthew Wilson <msw@gimp.org>
* app/gimage.c
* app/tools.c
* app/tools.h: Added a field in the Tools struct, preserve.
During gimage_dirty, if this flag is not set the tool will be
reset. This is good for tools that keep a copy of the image
in cache for local manipulation like transform_core.
* app/bezier_select.c
* app/blend.c
* app/brightness_contrast.c
* app/bucket_fill.c
* app/color_balance.c
* app/color_picker.c
* app/crop.c
* app/curves.c
* app/ellipse_select.c
* app/free_select.c
* app/histogram_tool.c
* app/hue_saturation.c
* app/levels.c
* app/move.c
* app/paint_core.c
* app/posterize.c
* app/rect_select.c
* app/text_tool.c
* app/transform_core.c: Set the preserve flag to the correct
values in the new functions and wrapped calls to functions that
dirty the gimage to prevent tool restarts.
* app/disp_callbacks.c
* app/menus.c: Removed Nether's tool patch.
--phew. Matt
Mon Mar 16 05:12:00 CST 1998 Larry Ewing <lewing@gimp.org>
* app/move.c:
* app/gdisplay.c:
* app/gimage.c: Reworked the guide drawing and picking code to
remove all known guide artifacts.