Commit Graph

20 Commits

Author SHA1 Message Date
Michael Natterer a60b2c2f02 the Tool structure is now allocated by a common constructor which sets
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-07-02 17:40:10 +00:00
Michael Natterer c456ba93ba app/[all tool related files] app/commands.c app/disp_callbacks.c
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-26 11:16:47 +00:00
Michael Natterer f1b5e1ae47 namespace cleanups.
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-06-21 22:12:07 +00:00
Sven Neumann d342563d60 Moved from toggle_key_func to modifier_key_func.
--Sven
1999-04-27 21:06:00 +00:00
Sven Neumann 8b46a4f9f5 Toggable tools!
I hope I haven't broken too much ;-)


--Sven
1999-04-27 02:09:03 +00:00
Michael Natterer 8dbd5f9b65 app/airbrush.c app/bezier_select.c app/blend.c app/brightness_contrast.c
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-12 17:55:06 +00:00
Michael Natterer f1b0a8835c app/airbrush.c app/bezier_select.c app/blend.c app/brightness_contrast.c
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.
1999-04-08 22:25:54 +00:00
BST 1999 Andy Thomas 67dbf49bf2 Changed:-
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.
1999-04-05 23:33:50 +00:00
GMT 1999 Adam D. Moss cc8d71c037 Happy-fun opaque layer moves.
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.
1999-03-21 15:38:11 +00:00
Manish Singh d2ea549d27 stuff from patches/i18n by Daniel Egger
* app/*: stuff from patches/i18n by Daniel Egger

* app/channels_dialog.c: fixes minor buglets in the channels dialog

-Yosh
1998-12-16 00:37:09 +00:00
Lauri Alanko 6a02cda396 Started gimpset, a generic class for handling collections of
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.
1998-07-01 23:06:49 +00:00
Lauri Alanko 5c5c73f3f5 Misc cleaning up here and there. Note that since the ids were used
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.
1998-06-30 01:14:36 +00:00
Lauri Alanko faeaa7cc23 Removed most of the image id system. They're still used with pdb.
At quick glance, nothing seems to be broken, but if things weird
	out, blame me.

	Now just the same for layers, channels and displays...
1998-06-29 00:24:44 +00:00
Manish Singh 84abd5d700 Have fun recompiling gimp everyone. It's the great FSF address change!
-Yosh
1998-04-13 05:44:11 +00:00
EST 1998 Matthew Wilson 7dcd8e85ab app/gimage.c app/tools.c Added a field in the Tools struct, preserve.
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
1998-03-31 07:23:50 +00:00
Adrian Likins 9132cbb666 appied most of gimp-hpux-980316-0.patch from ???? Mostly added static's
* blend.c brightness_contrast.c brush_select.c brushes.c
          bucket_fill.c by_color_select.c channels_dialog.c
          color_balance.c convolve.c crop.c curves.c eraser.c fileops.c
          frac.c gradient.c histogram_tool.c hue_saturation.c
          image_render.c indexed_palette.c layers_dialog.c levels.c
          move.c paintbrush.c pattern_select.c pencil.c
          perspective_tool.c posterize.c rect_select.c scale_tool.c
          threshold.c tips_dialog.c:
                 appied most of gimp-hpux-980316-0.patch
        from ???? Mostly added static's here and there
         and casting stuff.

        * app/indexed_palette.c: made dialog non-resizeable

-adrian
1998-03-18 22:35:31 +00:00
CST 1998 Larry Ewing d5cfeb6643 Reworked the guide drawing and picking code to remove all known guide
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.
1998-03-16 11:13:24 +00:00
Manish Singh 89b600d2bc removed all usage of linked.[ch] and switched to GSLists
-Yosh
1998-01-29 08:03:27 +00:00
scott c267c55bbe Rewrite to make drawables (layers, channels, layer masks) into GtkObjects.
--sg
1998-01-22 07:02:57 +00:00
Elliot Lee 32cefec8f7 Initial revision 1997-11-24 22:05:25 +00:00