Commit Graph

81 Commits

Author SHA1 Message Date
Michael Natterer 0d7ccd8f56 read the "operation" member of GimpSelectionOptions directly.
2007-03-31  Michael Natterer  <mitch@gimp.org>

	* app/tools/gimprectangleselecttool.c: read the "operation" member
	of GimpSelectionOptions directly.

	* app/tools/gimpellipseselecttool.c (gimp_ellipse_select_tool_draw):
	chain up instead of calling gimp_rectangle_tool_draw() directly,
	don't #include "gimprectantletool.h".


svn path=/trunk/; revision=22208
2007-03-31 16:22:57 +00:00
Michael Natterer 974a74004f remove useless includes. Some minor cleanup.
2007-03-09  Michael Natterer  <mitch@gimp.org>

	* app/tools/*.c: remove useless includes. Some minor cleanup.


svn path=/trunk/; revision=22083
2007-03-09 11:10:40 +00:00
Michael Natterer d741af2656 if the user clicks inside an existing selection, initialize the rectangle
2007-03-05  Michael Natterer  <mitch@gimp.org>

	* app/tools/gimprectangleselecttool.c
	(gimp_rect_select_tool_execute): if the user clicks inside an
	existing selection, initialize the rectangle tool to the entire
	selection, not just to the part of it that is within the active
	drawable. Also removed some dead code.


svn path=/trunk/; revision=22049
2007-03-05 21:03:02 +00:00
Sven Neumann 0af9507ab8 don't change the selection while the tool is active. Fixes bug #398185.
2007-02-28  Sven Neumann  <sven@gimp.org>

	* app/tools/gimprectangleselecttool.c
	(gimp_rect_select_tool_rectangle_changed): don't change the
	selection while the tool is active. Fixes bug #398185. Thanks to
	Martin Nordholts for investigating this problem.

	* app/tools/gimprectangletool.c: minor cleanup.


svn path=/trunk/; revision=22025
2007-02-28 13:08:09 +00:00
Michael Natterer 83eb96db21 added "gboolean wants_click" member and getters/setters.
2007-02-27  Michael Natterer  <mitch@gimp.org>

	* app/tools/gimptoolcontrol.[ch]: added "gboolean wants_click"
	member and getters/setters.

	* app/tools/gimptool.[ch] (struct GimpTool): added members
	in_click_distance, press_coords and press_time.

	(gimp_tool_button_press): if the tool wants click events, record
	press_coords and press_time.

	(gimp_tool_motion): check if we are still in click distance.

	(gimp_tool_button_release): ditto. If we are still in click
	distance, synthesize a motion event back to the recorded
	press_coords and send the tool release_type = CLICK.

	(gimp_tool_check_click_distance): utility function which checks
	the current coords and time against the recorded ones, using
	gtk-double-click-time and gtk-double-click-distance as thresholds.

	* app/tools/gimpcroptool.c
	* app/tools/gimprectangleselecttool.c: request click events
	and handle them.

	* app/tools/gimprectangletool.[ch]: handle click events. Removed
	gimp_rectangle_tool_no_movement().


svn path=/trunk/; revision=22016
2007-02-27 21:11:35 +00:00
Michael Natterer d7ed63948c Step one towards enabling tool cancellation by other means than mouse
2007-02-27  Michael Natterer  <mitch@gimp.org>

	Step one towards enabling tool cancellation by other means than
	mouse button 3 and towards proper "clicked" semantics.

	* app/tools/tools-enums.[ch]: added enum GimpButtonReleaseType
	which can be one of { NORMAL, CANCEL, CLICK } (click is curently
	unused).

	* app/tools/gimptool.[ch] (GimpTool::button_release): added
	"release_type" parameter.

	(gimp_tool_button_release): if the state contains
	GDK_BUTTON3_MASK, call the tool's button_release() with CANCEL,
	use NORMAL otherwise.

	* app/tools/gimpaligntool.c
	* app/tools/gimpblendtool.c
	* app/tools/gimpbrightnesscontrasttool.c
	* app/tools/gimpbucketfilltool.c
	* app/tools/gimpcolortool.c
	* app/tools/gimpcroptool.c
	* app/tools/gimpcurvestool.c
	* app/tools/gimpeditselectiontool.c
	* app/tools/gimpforegroundselecttool.c
	* app/tools/gimpfreeselecttool.c
	* app/tools/gimpiscissorstool.c
	* app/tools/gimpmagnifytool.c
	* app/tools/gimpmeasuretool.c
	* app/tools/gimpmovetool.c
	* app/tools/gimppainttool.c
	* app/tools/gimprectangleselecttool.c
	* app/tools/gimprectangletool.[ch]
	* app/tools/gimpregionselecttool.c
	* app/tools/gimptransformtool.c
	* app/tools/gimpvectortool.c (button_release): added
	"release_type" parameters and get rid of own checks for
	GDK_BUTTON3_MASK.


svn path=/trunk/; revision=22015
2007-02-27 18:55:12 +00:00
Michael Natterer f7bfea19d9 Unbreak rectangle select tool undo handling a bit:
2007-02-08  Michael Natterer  <mitch@gimp.org>

	Unbreak rectangle select tool undo handling a bit:

	* app/tools/gimprectangleselecttool.c (gimp_rect_select_tool_select):
	add boolean return value indicating if something was actually selected.

	(gimp_rect_select_tool_rectangle_changed): peek the newly pushed
	undo only if we selected something.


svn path=/trunk/; revision=21866
2007-02-08 09:54:09 +00:00
Sven Neumann 41237259c9 In all files, changed the standard copyright notice to say "GIMP - The GNU
2006-12-09  Sven Neumann  <sven@gimp.org>

        * In all files, changed the standard copyright notice to say
        "GIMP - The GNU Image Manipulation Program".
2006-12-09 21:33:38 +00:00
Sven Neumann c4b8cda67d app/tools/gimprectangletool.[ch] removed function from the properties.
2006-11-15  Sven Neumann  <sven@gimp.org>

	* app/tools/gimprectangletool.[ch]
	* app/tools/gimprectangleselecttool.c: removed function from the
	properties. Added getter and setter functions instead. Redraw
the
	tool whenever the function changes.
2006-11-15 20:45:43 +00:00
Michael Natterer f8edfbd1a5 app/tools/gimpcroptool.c app/tools/gimprectangleselecttool.c moved stuff
2006-11-05  Michael Natterer  <mitch@gimp.org>

	* app/tools/gimpcroptool.c
	* app/tools/gimprectangleselecttool.c
	* app/tools/gimprectangletool.[ch]: moved stuff from
	GimpTool::initialize() to GObject::constructor() and removed all
	initialize functions entirely. initialize() only needs to be
	implemented if the tool has a dialog or if initialization() can
	fail. Also moved some type-checking casts after the
	g_return_if_fail()s
2006-11-05 14:11:34 +00:00
Michael Natterer 2a64b58c97 cache the round-corners and corner-radius properties in the
2006-11-05  Michael Natterer  <mitch@gimp.org>

	* app/tools/gimprectangleselecttool.[ch]: cache the round-corners
	and corner-radius properties in the GimpRectSelectTool struct,
	connect to "notify" of GimpRectSelectOptions and update display
	drawing when the options change.

	* app/tools/gimpcroptool.c
	* app/tools/gimprectangleoptions.c: whitespace stuff.
2006-11-05 13:45:04 +00:00
Michael Natterer 94182f1439 app/tools/gimpcroptool.[ch] app/tools/gimpellipseselecttool.c
2006-11-05  Michael Natterer  <mitch@gimp.org>

	* app/tools/gimpcroptool.[ch]
	* app/tools/gimpellipseselecttool.c
	* app/tools/gimprectangleselecttool.[ch]
	* app/tools/gimprectangletool.[ch]: removed dispose() and
	finalize() implementations. The finalize() ones did nothing and
	dispose() was only redundantly disconnecting from signals that
	were connected using connect_object() anyway. Some cosmetic
	cleanups all over the place.
2006-11-05 12:35:59 +00:00
Michael Natterer 1ee6516d52 Applied modified patch from Martin Nordholts which adds a "Rounded
2006-10-18  Michael Natterer  <mitch@gimp.org>

	Applied modified patch from Martin Nordholts which adds a "Rounded
	Corners" option to the rectangle select tool. Fixes bug #86279.

	* app/core/gimpchannel-combine.[ch]: added
	gimp_channel_combine_ellipse_rect(). Use it from
	gimp_channel_combine_ellipse().

	* app/core/gimpchannel-select.[ch]: added
	gimp_channel_select_round_rect()

	* app/tools/gimprectangleselectoptions.[ch]: added properties
	"round-corners" and "corner-radius" and GUI for the new propeties.

	* app/tools/gimprectangleselecttool.h: added macro
	GIMP_RECT_SELECT_TOOL_GET_OPTIONS().

	* app/tools/gimprectangleselecttool.c (gimp_rect_select_tool_draw):
	draw round corners if enabled.

	(gimp_rect_select_tool_real_select): use
	gimp_channel_select_round_rect() if enabled.

	* app/tools/gimpselectionoptions.[ch]: added "antialias_toggle"
	to the GimpSelectionOptions struct so the rect select options
	can set its sensitivity.

	Unrelated:

	* app/tools/gimpellipseselecttool.c (gimp_ellipse_select_tool_draw):
	use 360 * 64 instead of 23040.
2006-10-18 18:54:28 +00:00
Michael Natterer 068b6b09c4 app/tools/gimprectangleselecttool.[ch] use enum GimpChannelOps instead of
2006-10-17  Michael Natterer  <mitch@gimp.org>

	* app/tools/gimprectangleselecttool.[ch]
	* app/tools/gimpellipseselecttool.c: use enum GimpChannelOps
	instead of SelectOps.
2006-10-17 21:53:22 +00:00
Michael Natterer a21bb4ac8f flush the image after clearing the selection and after anchoring a
2006-10-14  Michael Natterer  <mitch@gimp.org>

	* app/tools/gimprectangleselecttool.c (gimp_rect_select_tool_execute):
	flush the image after clearing the selection and after anchoring
	a floating layer. Fixes bug #362096.
2006-10-14 08:59:25 +00:00
William Skaggs 0b005ffe99 Bill Skaggs <weskaggs@primate.ucdavis.edu>
* app/tools/gimpcroptool.c
	* app/tools/gimprectangleselecttool.c
	* app/tools/gimprectangletool.[ch]: put back code for responding
	to modifiers pressed after mouse1-down, at mitch's request.
2006-09-23 22:32:35 +00:00
William Skaggs 977952caff Bill Skaggs <weskaggs@primate.ucdavis.edu>
* app/tools/gimprectangleselecttool.c
	* app/tools/gimprectangletool.[ch]:simplify code by
	removing unneeded properties and getters/setters.
2006-09-23 21:22:33 +00:00
William Skaggs 60611ebb54 Bill Skaggs <weskaggs@primate.ucdavis.edu>
* app/tools/gimprectangleoptions.[ch]
	* app/tools/gimprectangleselecttool.c
	* app/tools/gimprectangletool.c
	* app/tools/gimpselectionoptions.c: move "auto-shrink"
	and "shrink-merged" from selection options to
	rectangle options where they belong; now shown
	for crop tool as well as rect select.
2006-09-23 20:45:06 +00:00
William Skaggs 2c07e922a2 Bill Skaggs <weskaggs@primate.ucdavis.edu>
* app/actions/tools-actions.c
	* app/actions/tools-commands.[ch]: add new actions for
	toggling "fixed-aspect" and "fixed-center" options of
	rectangle tools.

	* app/tools/gimprectangletool.[ch]
	* app/tools/gimprectangleselecttool.c
	* app/tools/gimpcroptool.c: rely on new actions for
	keyboard control, not on modifiers pressed after
	mouse1-down.
2006-09-23 19:38:26 +00:00
William Skaggs 73a25c2a61 Bill Skaggs <weskaggs@primate.ucdavis.edu>
* app/tools/gimpairbrushtool.c
	* app/tools/gimpaligntool.c
	* app/tools/gimpblendtool.c
	* app/tools/gimpbrightnesscontrasttool.c
	* app/tools/gimpbucketfilltool.c
	* app/tools/gimpbycolorselecttool.c
	* app/tools/gimpclonetool.c
	* app/tools/gimpcolorbalancetool.c
	* app/tools/gimpcolorizetool.c
	* app/tools/gimpcolorpickertool.c
	* app/tools/gimpconvolvetool.c
	* app/tools/gimpcroptool.c
	* app/tools/gimpcurvestool.c
	* app/tools/gimpdodgeburntool.c
	* app/tools/gimpellipseselecttool.c
	* app/tools/gimperasertool.c
	* app/tools/gimpfliptool.c
	* app/tools/gimpforegroundselecttool.c
	* app/tools/gimpfreeselecttool.c
	* app/tools/gimpfuzzyselecttool.c
	* app/tools/gimphealtool.c
	* app/tools/gimphuesaturationtool.c
	* app/tools/gimpinktool.c
	* app/tools/gimpiscissorstool.c
	* app/tools/gimplevelstool.c
	* app/tools/gimpmagnifytool.c
	* app/tools/gimpmeasuretool.c
	* app/tools/gimpmovetool.c
	* app/tools/gimppaintbrushtool.c
	* app/tools/gimppenciltool.c
	* app/tools/gimpperspectiveclonetool.c
	* app/tools/gimpperspectivetool.c
	* app/tools/gimpposterizetool.c
	* app/tools/gimprectangleselecttool.c
	* app/tools/gimprectangletool.c
	* app/tools/gimprotatetool.c
	* app/tools/gimpscaletool.c
	* app/tools/gimpsheartool.c
	* app/tools/gimpsmudgetool.c
	* app/tools/gimptexttool.c
	* app/tools/gimpthresholdtool.c
	* app/tools/gimpvectortool.c:  Apply patch from J. Baker,
	with some modifications, to improve tooltips and tool
	names.  Almost fixes bug #356137.
2006-09-18 18:00:22 +00:00
Michael Natterer 868b8afbff Added new tool API for modifier key events while the tool is active and
2006-09-12  Michael Natterer  <mitch@gimp.org>

	Added new tool API for modifier key events while the tool
	is active and implement it in the rect select and crop tools.
	Fixes bug #316156 and bug #355302.

	* app/tools/gimptool.[ch]: added GimpTool::active_modifier_key()
	and public function gimp_tool_set_active_motifier_state(). Remember
	the active_state at button_press and reset it on button_release.
	Ignore releases of modifiers that were pressed at button_press (but
	only ignore them once).

	* app/tools/tool_manager.[ch]: added wrapper
	tool_manager_active_modifier_state_active().

	* app/display/gimpdisplayshell-callbacks.c
	(gimp_display_shell_events): return FALSE for all modifiers even
	when mouse button 1 is pressed.

	(gimp_display_shell_canvas_tool_events): when bouse button 1 is
	pressed *and* the tool is active, dispatch the new active_modifier
	events to tools.

	* app/tools/gimpcroptool.c
	* app/tools/gimprectangleselecttool.c
	* app/tools/gimprectangletool.[ch]: implement active_modifier_key()
	instead of modifier_key().
2006-09-12 18:41:09 +00:00
William Skaggs 5e9dc3c0d8 Bill Skaggs <weskaggs@primate.ucdavis.edu>
* app/tools/tools-enums.[ch]: add GimpRectangleConstraint
	enum.

	* app/tools/gimprectangletool.[ch]: replace "constrain"
	boolean with "constraint" enum property.  Implement
	constraints in motion handler -- the implementation
	is rather elegant but pretty tricky.

	* app/tools/gimpcroptool.c: constrain to image bounds,
	or to active drawable bounds if "current layer only"
	option is checked.

	* app/tools/gimpellipseselecttool.c
	* app/tools/gimprectangleselecttool.c: no constraint.

	This addresses bug #353936 -- I would say fixes it, but it
	probably needs some fine-tuning.  Also perhaps fixes
	bug #329817 a bit better than before.
2006-09-06 22:51:54 +00:00
Michael Natterer 6c7f0c6830 added gimp_tool_get_options() so tools don't need to incude
2006-09-05  Michael Natterer  <mitch@gimp.org>

	* app/tools/gimptool.[ch]: added gimp_tool_get_options() so tools
	don't need to incude "core/gimptoolinfo.h" just to get to
	their options.

	* app/tools/gimp*tool.h: added macros GIMP_FOO_TOOL_GET_OPTIONS()
	which return specific tool options types and do all casting
	themselves.

	* app/tools/*.c: use the new macros and don't include
	"core/gimptoolinfo.h" in most files.

	* app/tools/gimpcolorpickertool.c (gimp_color_picker_tool_register):
	make it use the parent context's FG and BG.

	* app/tools/gimpcolortool.c (gimp_color_tool_real_picked): set the
	color on the tool's options, not on the user context.
2006-09-05 18:25:31 +00:00
William Skaggs 1d03a22c3f Bill Skaggs <weskaggs@primate.ucdavis.edu>
* app/core/gimpchannel-select.[ch]: add push_undo arguments
	to several gimp_channel_select_foo functions.

	* app/actions/vectors-commands.c
	* app/core/gimpchannel-select.c
	* app/core/gimpchannel-select.h
	* app/pdb/paths_cmds.c
	* app/pdb/selection_tools_cmds.c
	* app/pdb/vectors_cmds.c
	* app/tools/gimpellipseselecttool.c
	* app/tools/gimpfreeselecttool.c
	* app/tools/gimprectangleselecttool.c
	* app/tools/gimpvectortool.c
	* tools/pdbgen/pdb/paths.pdb
	* tools/pdbgen/pdb/selection_tools.pdb
	* tools/pdbgen/pdb/vectors.pdb:  add push_undo argument
	to function calls where needed.
2006-08-25 17:19:36 +00:00
William Skaggs d4f2171301 Bill Skaggs <weskaggs@primate.ucdavis.edu>
* app/display/gimpdisplayshell-callbacks.c: allow modifier key events
	for Shift and Control to be propagated even if button1 is down.

	* app/tools/gimpclonetool.c
	* app/tools/gimpcroptool.c
	* app/tools/gimpforegroundselecttool.c
	* app/tools/gimpmovetool.c
	* app/tools/gimppainttool.c
	* app/tools/gimpvectortool.c: change  modifier_key method
	to prevent any bad consequences.

	* app/tools/gimprectangletool.[ch]:  add modifier_key handler, and use it
	to toggle "make-square" if Shift is pressed while button1 is down, and
	"fixed-center" if Control is pressed while button1 is down.

	* app/tools/gimprectangleselecttool.c (gimp_rectangle_tool_modifier_key):
	call rectangle tool modifer_key method after chaining up.
2006-08-21 17:10:29 +00:00
William Skaggs d5cfa53e83 Bill Skaggs <weskaggs@primate.ucdavis.edu>
* app/tools/gimprectangleselecttool.[ch]: if the user is
	modifying a rectangle and the mode is REPLACE, don't
	show the marching ants for the previous selection, because
	it confuses users.  Should fix bug #347945.
2006-08-10 19:03:46 +00:00
William Skaggs 018618d31e Bill Skaggs <weskaggs@primate.ucdavis.edu>
* app/tools/gimprectangleselecttool.c: Always use crosshair cursor
	if shift or ctrl are down; fixes bug #345551.
2006-06-21 20:55:06 +00:00
William Skaggs c646d2eee5 Bill Skaggs <weskaggs@primate.ucdavis.edu>
* app/tools/gimprectangleselecttool.c: if there is a floating selection
	and mouse is clicked outside it without movement, anchor it.

	* app/tools/gimprectangletool.c: corner handle area was scaling
	improperly when image was zoomed.
2006-06-21 15:25:10 +00:00
William Skaggs 27be3ce242 Bill Skaggs <weskaggs@primate.ucdavis.edu>
* app/tools/gimprectangleselecttool.c: Fix sporadic crash
	resulting from previous change.
2006-06-14 20:19:49 +00:00
William Skaggs a26b124251 Bill Skaggs <weskaggs@primate.ucdavis.edu>
* app/tools/gimprectangleselecttool.c: As suggested by Joao,
	halt tool on changes to selection or image size.
2006-06-14 16:25:19 +00:00
William Skaggs 354d247c67 Bill Skaggs <weskaggs@primate.ucdavis.edu>
* app/tools/gimprectangleselecttool.c: don't autoshrink when
	there is no display; fixes crash reported by Carol.
2006-06-12 22:17:52 +00:00
William Skaggs 131aad120c Bill Skaggs <weskaggs@primate.ucdavis.edu>
* app/tools/gimprectangleselecttool.c
	* app/tools/gimprectangletool.c: fix three issues identified by
	jimmac: (1) when shift or ctrl are pressed, should start a new
	rect regardless of pointer loc; (2) zoom was incorrectly affecting
	width of sensitive areas; (3) must emit "rectangle-changed" after
	keyboard-driven rectangle movement.
2006-06-12 21:15:22 +00:00
William Skaggs 77c4b0541e Bill Skaggs <weskaggs@primate.ucdavis.edu>
* app/tools/gimprectangleselecttool.c: handle situations
	where the user "flips" the rectangle while modifying it.
	This solution is not perfect, but better than before.

	* app/tools/gimprectangletool.c: remove unneeded variable.
2006-06-11 23:59:33 +00:00
William Skaggs 990e475d77 Bill Skaggs <weskaggs@primate.ucdavis.edu>
* app/tools/gimprectangleselecttool.c
	* app/tools/gimprectangletool.c: make auto-shrink work.  Does
	the wrong thing for ellipse-select, though.
2006-06-11 18:52:42 +00:00
William Skaggs ca059c11d6 Bill Skaggs <weskaggs@primate.ucdavis.edu>
Following up on previous commit, with assist from yosh.

	* app/tools/gimpnewrectselectoptions.[ch]
	* app/tools/gimpnewrectselecttool.[ch]: removed

	* app/tools/gimprectangleselectoptions.[ch]: magic-moved
	from gimpnewrectselectoptions.[ch]

	* app/tools/gimprectangleselecttool.[ch]: magic-moved
	from gimpnewrectselecttool.[ch]

	* app/tools/Makefile.am
	* app/tools/gimp-tools.c
	* app/tools/gimpellipseselecttool.c
	* app/tools/gimpellipseselecttool.h
	* app/tools/gimpselectionoptions.c: change file names to
	refer to moved files.
2006-06-10 21:34:12 +00:00
William Skaggs 36ee184375 Bill Skaggs <weskaggs@primate.ucdavis.edu>
Here is the big change-over, finally.

	* app/tools/gimprectselecttool.[ch]: removed.

	* app/tools/Makefile.am
	* app/tools/gimp-tools.c
	* app/tools/gimpellipseselecttool.c
	* app/tools/gimpellipseselecttool.h
	* app/tools/gimpnewrectselectoptions.c
	* app/tools/gimpnewrectselectoptions.h
	* app/tools/gimpnewrectselecttool.c
	* app/tools/gimpnewrectselecttool.h
	* app/tools/gimpselectionoptions.c
	* app/widgets/gimptoolbox.c
	* menus/image-menu.xml.in: get rid of the "new" in everything
	referring to the new rect select tool, except filenames.  This
	will wait for yosh to perform cvs-magic-foo.

	* app/tools/gimprectangleoptions.[ch]
	* app/tools/gimprectangletool.[ch]: fix a couple of minor
	problems that popped up during testing.
2006-06-10 18:24:58 +00:00
William Skaggs 4742424b78 Bill Skaggs <weskaggs@primate.ucdavis.edu>
* app/tools/gimpcroptool.c
	* app/tools/gimpellipseselecttool.c
	* app/tools/gimprectangletool.[ch]: code cleanups

	* app/tools/gimpnewrectselecttool.[ch]: try to do what
	the user intuitively expects when deciding which selection
	operation to perform.  When modifying an existing rectangle,
	always use the operation with which it was created.
2006-06-10 16:49:07 +00:00
William Skaggs c4ffc27293 Bill Skaggs <weskaggs@primate.ucdavis.edu>
* app/tools/gimpcropoptions.c: clean up code.

	* app/tools/gimpnewrectselecttool.c: really remove some
	commented-out code.

	* app/tools/gimprectangleoptions.[ch]: add "aspect-square"
	and "controls-expanded" properties.  Show "Make square" and
	"Expand from center" in options so that we don't need modifier
	keys to do this.  Place numerical entries inside an expander
	and hide them by default.
2006-06-10 01:39:10 +00:00
Sven Neumann 8ad41a0f1a removed extra semicolon to fix build on Solaris (bug #344203).
2006-06-07  Sven Neumann  <sven@gimp.org>

	* app/tools/gimpnewrectselecttool.c: removed extra semicolon to
	fix build on Solaris (bug #344203).
2006-06-07 20:07:54 +00:00
Michael Natterer b18a520b3f flush the image after changing it.
2006-06-06  Michael Natterer  <mitch@gimp.org>

	* app/tools/gimpnewrectselecttool.c
	(gimp_new_rect_select_tool_cancel)
	(gimp_new_rect_select_tool_rectangle_changed): flush the image
	after changing it.

	* app/tools/gimprectangletool.c (gimp_rectangle_tool_halt): don't
	flush it here.
2006-06-06 08:04:49 +00:00
Michael Natterer d2911f6aee removed enum GimpRectangleMode.
2006-06-05  Michael Natterer  <mitch@gimp.org>

	* app/tools/tools-enums.[ch]: removed enum GimpRectangleMode.

	* app/tools/gimprectangletool.[ch]: added virtual function
	GimpRectangleTool::cancel(). Added public wrapper for it. Removed
	coordinates paramaters from gimp_rectangle_tool_execute(). Removed
	gimp_rectangle_tool_response(), need to call either execute() or
	cancel() now. Added gimp_rectangle_tool_halt() which disconnects
	the tool from the display without canceling it.

	* app/tools/gimpcroptool.c: changed accordingly.

	* app/tools/gimpnewrectselecttool.c: moved the rectangle creating
	code from the execute() implementation to the new function
	gimp_new_rect_select_tool_rect_select(). Added cancel()
	implementation which pops the remembered undo step if
	appropriate. Call the new rect_select() wrapper from
	rectangle_changed() so we don't create the rectangle on both
	button_release *and* execute(), breaking modifiers and stuff.
2006-06-05 17:14:16 +00:00
William Skaggs 26db965dd5 Bill Skaggs <weskaggs@primate.ucdavis.edu>
* app/tools/gimprectangletool.c:
	* app/tools/gimpnewrectselecttool.c: enable canceling of
	current action by holding down mouse button 3.
2006-06-04 20:34:46 +00:00
William Skaggs e9e265309d Bill Skaggs <weskaggs@primate.ucdavis.edu>
* app/tools/gimprectangletool.c (gimp_rectangle_tool_draw):
	draw anchors in corners; clean up code a bit.

	* app/tools/gimpnewrectselecttool.c: actually remove some code
	previously commented out.
2006-06-04 18:21:56 +00:00
William Skaggs 3e4d8075c7 Bill Skaggs <weskaggs@primate.ucdavis.edu>
* app/tools/gimprectangletool.[ch]: add new signal
	"rectangle-changed" and method rectangle_changed.
	Emit them on button release and when dimensions are
	changed in controls.

	* app/tools/gimpnewrectselecttool.c: use rectangle_changed
	method to change selection, undoing previous change if
	necessary.
2006-06-04 17:08:26 +00:00
Michael Natterer f3a271b13c check for function == INACTIVE, not CREATING || EXECUTING when checking
2006-06-03  Michael Natterer  <mitch@gimp.org>

	* app/tools/gimpnewrectselecttool.c
	(gimp_new_rect_select_tool_button_press): check for function ==
	INACTIVE, not CREATING || EXECUTING when checking whether to start
	moving.

	* app/tools/gimpselectiontool.c (gimp_selection_tool_oper_update):
	changed modifiers so alt+ctrl does cut+float+move and alt+shift
	does copy+float+move.
2006-06-03 08:47:43 +00:00
William Skaggs ff94c83f0e Bill Skaggs <weskaggs@primate.ucdavis.edu>
* app/tools/gimpnewrectselecttool.[ch]: use RECT_INACTIVE state,
	(but doesn't seem to do anything).  More importantly, change
	logic so that button_release executes the tool, and button
	release undo's if appropriate.
2006-06-02 19:39:28 +00:00
William Skaggs 7c90b66c36 Bill Skaggs <weskaggs@primate.ucdavis.edu>
* app/tools/gimprectangletool.c (gimp_rectangle_tool_button_press):
	if function is RECT_CREATING, start a new rectangle.

	* app/tools/gimpnewrectselecttool.c: remove g_printerr statement that
	mitch added for debugging.
2006-06-02 16:12:31 +00:00
Michael Natterer d1a76d93f7 cursors/Makefile.am cursors/cursor-corner-bottom-left.png
2006-06-02  Michael Natterer  <mitch@gimp.org>

	* cursors/Makefile.am
	* cursors/cursor-corner-bottom-left.png
	* cursors/cursor-corner-bottom-right.png
	* cursors/cursor-corner-top-left.png
	* cursors/cursor-corner-top-right.png
	* cursors/cursor-side-bottom.png
	* cursors/cursor-side-left.png
	* cursors/cursor-side-right.png
	* cursors/cursor-side-top.png
	* cursors/xbm/cursor-corner-bottom-left-mask.xbm
	* cursors/xbm/cursor-corner-bottom-left.xbm
	* cursors/xbm/cursor-corner-bottom-right-mask.xbm
	* cursors/xbm/cursor-corner-bottom-right.xbm
	* cursors/xbm/cursor-corner-top-left-mask.xbm
	* cursors/xbm/cursor-corner-top-left.xbm
	* cursors/xbm/cursor-corner-top-right-mask.xbm
	* cursors/xbm/cursor-corner-top-right.xbm
	* cursors/xbm/cursor-side-bottom-mask.xbm
	* cursors/xbm/cursor-side-bottom.xbm
	* cursors/xbm/cursor-side-left-mask.xbm
	* cursors/xbm/cursor-side-left.xbm
	* cursors/xbm/cursor-side-right-mask.xbm
	* cursors/xbm/cursor-side-right.xbm
	* cursors/xbm/cursor-side-top-mask.xbm
	* cursors/xbm/cursor-side-top.xbm: new cursors for edge and corner
	resizing. They perfectly align with the small crosshair and can be
	used together with tool cursors and cursor modifiers.

	* cursors/gimp-tool-cursors.xcf: add them here too.

	* app/widgets/widgets-enums.h: add them to the GimpCursorType enum.

	* app/widgets/gimpcursor.c: add them here too.

	* app/display/gimpdisplayshell-cursor.c: treat them like the small
	crosshair (don't replace them by the small crosshair but use them
	as-is). Also allow the bad modifier with the large crosshair.

	* app/tools/gimprectangletool.c
	(gimp_rectangle_tool_cursor_update): use the new cursors. Don't
	call gimp_tool_set_cursor() here.

	(gimp_rectangle_tool_response): reset "function" to RECT_CREATING
	when resetting the tool.

	* app/tools/gimpselectiontool.[ch] (struct GimpSelectionTool):
	added boolean member "allow_move" which defalts to TRUE.

	(gimp_selection_tool_oper_update): don't move masks, floating
	selections or anything when "allow_move" is FALSE. Changed
	behavior of click inside a selection to simply create a new
	selection, need to press alt+shift now to drag-float the
	selection. Please test this, it's apretty fundamental change!

	(gimp_selection_tool_cursor_update): use the tool's configured
	cursor instead of always GIMP_CURSOR_MOUSE, so this function can
	be called after gimp_rectangle_tool_cursor_update() to add the
	plus, minus etc. modifiers.

	* app/tools/gimpnewrectselecttool.c: implement
	GimpTool::cursor_update() and call
	gimp_rectangle_tool_cursor_update() from there. Chain up to get
	the plus, minus etc. modifiers added.

	Re-enble selection moving:

	(gimp_new_rect_select_tool_oper_update): set GimpSelectionTool's
	"allow_move" to FALSE unless the rectangle tool is in an idle
	state.

	(gimp_new_rect_select_tool_button_press): allow a selection moving
	to be started if the rectangle tool is idle. Fall back to starting
	a rect select if gimp_selection_tool_start_edit() returned FALSE.
2006-06-02 15:23:47 +00:00
William Skaggs 8387dd98a4 Bill Skaggs <weskaggs@primate.ucdavis.edu>
* app/tools/gimprectangletool.[ch]: add "constrain" property
	to specify whether to clip at image bounds when computing
	dimensions.

	* app/tools/gimpcroptool.c
	* app/tools/gimpnewrectselecttool.c: set "constrain" to TRUE.

	* app/tools/gimpellipseselecttool.c: set "constrain" to FALSE.

	Hopefully fixes bug #329817.
2006-05-31 19:45:38 +00:00
Karine Delvare 1ce44a4555 app/core/gimpcontext.c app/tools/gimp-tools.c
2006-05-23  Karine Delvare  <edhel@gimp.org>

	* app/core/gimpcontext.c
	* app/tools/gimp-tools.c
	* app/tools/gimpnewrectselecttool.c
	* app/tools/gimprectselecttool.c
	* app/widgets/gimptoolbox.c
	* menus/image-menu.xml.in: replace old rect select by new in the
	toolbox.
2006-05-23 18:14:51 +00:00