Commit Graph

74 Commits

Author SHA1 Message Date
Michael Natterer d88a348c18 app: add public API for the "guide-style" and "sample-point-style" properties
of the guide and sample point canvas items. They are too obscure to
additionally hide them, and these items are used rarely enough to
justify the additional parameter to the new() functions.
2010-10-03 22:14:40 +02:00
Michael Natterer f3450431a3 app: add a pen canvas item class and use it in the foreground select tool
Remove gimp_display_shell_draw_pen().
2010-10-03 02:26:40 +02:00
Michael Natterer 33ab94517f app: add gimp_draw_tool_add_stroke_group() and add_fill_group()
and use it in all tools which have groups.
2010-10-01 14:24:46 +02:00
Michael Natterer 2ced18cc87 app: add gimp_draw_tool_add_sample_point()
and use it in the color tool. Also rename
gimp_draw_tool_add_guide_line() to gimp_draw_tool_add_guide().
2010-09-30 02:03:16 +02:00
Michael Natterer 7edfa2ca54 app: start an infrastructure where the shell keeps around its canvas items
- Invalidate the proper area when an item gets added or removed.
- Draw the kept canvas items instead of calling a draw tool function.
- The draw tool now sets its item on the shell.
2010-09-29 22:12:01 +02:00
Michael Natterer b173707c84 app: add gimp_draw_tool_remove_item() 2010-09-26 14:15:47 +02:00
Michael Natterer b3af235e79 app: rename all gimp_draw_tool_draw_foo() functions
to gimp_draw_tool_add_foo() because that's what they do now.
2010-09-25 19:02:22 +02:00
Michael Natterer 5089b9a706 app: remove gimp_draw_tool_in_radius()
It was used only once and that code is not less readable when using
gimp_draw_tool_calc_distance_square().
2010-09-25 18:24:38 +02:00
Michael Natterer dfd5a265eb app: remove gimp_draw_tool_draw_dashed_line()
Instead, draw a normal line and set the "highlight" property on the
returned canvas item.
2010-09-25 18:04:40 +02:00
Michael Natterer e91dce5f9f app: remove gimp_draw_tool_draw_arc_by_anchor()
Instead, draw a circular handle and set the angles on the returned
canvas item.
2010-09-25 17:59:56 +02:00
Michael Natterer 5cda4393d0 app: return the created item from gimp_draw_tool_draw_foo() 2010-09-25 17:52:56 +02:00
Michael Natterer 02924e1e70 app: change the unit of angles in the draw tool's draw_arc() functions
from the weird X 1/64 of a degree to radian.
2010-09-25 17:35:40 +02:00
Michael Natterer df44ced093 app: keep the draw tool's items around in a GimpCanvasGroup
which reduces the number of invalidations on the canvas to one.
2010-09-25 17:20:08 +02:00
Michael Natterer cbaf997ae2 app: undraw the old canvas items only before drawing new ones
or when the draw tool is really stopped. This seems to get rid of any
remaining flickering and also reduces expose events. Also get rid of
the "is_drawn" state and API because they make no sense any longer.
2010-09-24 23:25:19 +02:00
Michael Natterer 313f8bee1e app: remove "gboolean use_cairo" from the draw tool again
It's always TRUE now.
2010-09-24 21:14:49 +02:00
Michael Natterer 4d0c750327 app: get rid of "gboolean use_offsets" in the draw tool
and always pass image coordinates. Transform the coords manually in
the very few places which passed TRUE.
2010-09-23 19:23:27 +02:00
Michael Natterer 683e097d89 app: add cairo drawing support in GimpDrawTool
- add boolean "use_cairo" toggle to enable it per tool
- split draw() in draw() and undraw() and add cairo variants of drawing
- create canvas items in draw_line(), draw_handle() and draw_rectangle()
- some related changes
2010-09-22 22:19:28 +02:00
Michael Natterer 5722345cc7 app: remove prototype for non-existing gimp_draw_tool_set_transform() 2010-09-22 21:02:38 +02:00
Michael Natterer 24654e0df3 app: remove the draw timeout from GimpDrawTool
This slows down painting again, but it's in the way of refactoring so
the slowdown is temporary.
2010-09-22 15:31:17 +02:00
Michael Natterer 69da253e51 app: move enum GimpHandleType to display-enums.h 2010-09-20 19:26:34 +02:00
Michael Natterer 0c1073460c app: get rid of some public draw tool API
and use gimp_draw_tool_draw_handle() instead which does exactly the
same for these cases.
2010-09-20 00:13:32 +02:00
Michael Natterer 7e28f52dd7 app: remove unused clipping functions in GimpDrawTool and GimpCanvas 2010-09-19 18:58:23 +02:00
Sven Neumann 5ab83e72ac app: don't let the vectors tool draw the active vectors
Let the display shell deal with drawing the vectors. The vectors
tool only draws the handles on the active vectors object.
2010-09-16 21:13:08 +02:00
Michael Natterer 08193e8b56 Limit the draw tool's redraw framerate to about 29 FPS using a timeout 2010-03-19 21:08:41 +01:00
Michael Natterer 2e5de8f6ab app: pass the cursor's PangoRectangle to gimp_draw_tool_draw_text_cursor()
and let the drawing function decide everything instead of doing some
cursor extents fiddling in the text tool.
2010-03-07 01:15:04 +01:00
Michael Natterer 1a2136408e Implement overwrite-mode in the text tool
* app/widgets/gimptextproxy.c: also swallow the "toggle-overwrite"
signal.

* app/tools/gimpdrawtool. [ch] (gimp_draw_tool_draw_text_cursor): add
"gboolean overwrite" which causes the cursor to be drawn as block.

* app/tools/gimptexttool.[ch]: implement overwriting, toggling it,
and changing the text cursor accordingly.
2009-06-25 13:22:25 +02:00
Michael Natterer d9b5207aa2 Change licence to GPLv3 (and to LGPLv3 for libgimp).
2009-01-17  Michael Natterer  <mitch@gimp.org>

	* all files with a GPL header and all COPYING files:

	Change licence to GPLv3 (and to LGPLv3 for libgimp).

	Cleaned up some copyright headers and regenerated the parsers in
	the ImageMap plugin.


svn path=/trunk/; revision=27913
2009-01-17 22:28:01 +00:00
Sven Neumann 8d11c0c3e0 removed unused methods gimp_draw_tool_set_vectors() and
2008-11-21  Sven Neumann  <sven@gimp.org>

	* app/tools/gimpdrawtool.[ch]: removed unused methods
	gimp_draw_tool_set_vectors() and gimp_draw_tool_set_transform()
	and related infrastructure.


svn path=/trunk/; revision=27704
2008-11-21 21:43:43 +00:00
Sven Neumann cdb30fb4e1 reordered functions to keep those that actually draw together.
2008-11-21  Sven Neumann  <sven@gimp.org>

	* app/tools/gimpdrawtool.[ch]: reordered functions to keep those
	that actually draw together.


svn path=/trunk/; revision=27698
2008-11-21 19:01:58 +00:00
Michael Natterer f971d31ff1 add gimp_draw_tool_draw_text_cursor() which draws a properly transformed
2008-10-31  Michael Natterer  <mitch@gimp.org>

	* app/tools/gimpdrawtool.[ch]: add gimp_draw_tool_draw_text_cursor()
	which draws a properly transformed cursor that always has the same
	line width.

	* app/tools/gimptexttool.c (gimp_text_tool_draw): use it instead
	of drawing a cursor here that is broken at anything but 1:1 zoom.


svn path=/trunk/; revision=27497
2008-10-31 16:48:29 +00:00
Michael Natterer cd0885518b add gimp_draw_tool_set_clip_rect() which transforms the passed in
2008-10-27  Michael Natterer  <mitch@gimp.org>

	* app/tools/gimpdrawtool.[ch]: add gimp_draw_tool_set_clip_rect()
	which transforms the passed in GdkRectangle before setting it
	on the canvas.

	* app/tools/gimptexttool.c (gimp_text_tool_draw): use it instead
	of gimp_canvas_set_clip_rect().


svn path=/trunk/; revision=27431
2008-10-27 00:10:13 +00:00
Sven Neumann b8ce815e54 draw the guide all across the canvas, not limiting it to the image.
2008-08-05  Sven Neumann  <sven@gimp.org>

	* app/display/gimpdisplayshell-draw.c 
(gimp_display_shell_draw_guide):
	draw the guide all across the canvas, not limiting it to the 
image.

	* app/tools/gimpdrawtool.[ch]: added new function
	gimp_draw_tool_draw_guide_line().

	* app/tools/gimpmovetool.c (gimp_move_tool_draw): use it.


svn path=/trunk/; revision=26375
2008-08-05 10:11:07 +00:00
Michael Natterer a384cca5f3 app/display/gimpdisplayshell-transform.[ch]
2008-02-26  Michael Natterer  <mitch@gimp.org>

	* app/display/gimpdisplayshell-transform.[ch]
	(gimp_display_shell_transform_points)
	* app/tools/gimpdrawtool.[ch] (gimp_draw_tool_draw_lines): take
	arrays of GimpVector2 instead of arrays of gdouble to represent
	the input points.

	* app/display/gimpdisplayshell-draw.c
	* app/tools/gimppolygonselecttool.c
	* app/tools/gimpfreeselecttool.c: don't cast the GimpVector2 arrays
	to double arrays when passing them to above functions.

	* app/tools/gimpiscissorstool.c: create a temporary GimpVector2
	array instead of a temporary gdouble array.


svn path=/trunk/; revision=24979
2008-02-26 17:30:33 +00:00
Martin Nordholts c902d7bc74 Put GimpRectangleTool handles on the outside of the rectangle when it has
2007-11-04  Martin Nordholts  <martinn@svn.gnome.org>

	Put GimpRectangleTool handles on the outside of the rectangle when
	it has a small width or height. Some polishing left to do but the
	base functionality works nicely.

	* app/tools/gimpdrawtool.[ch] (gimp_draw_tool_draw_corner): Add a
	put_outside boolean parameter that if true draws the handles on
	the outside of the rectangle.

	* app/tools/gimprectangletool.c
	(gimp_rectangle_tool_update_handle_sizes)
	(gimp_rectangle_tool_coord_on_handle)
	(gimp_rectangle_tool_draw): Take into account if the rectangle is
	in narrow-mode or not.

svn path=/trunk/; revision=24053
2007-11-04 14:10:56 +00:00
Sven Neumann e2b83b288c app/tools/gimpdrawtool.[ch] app/tools/gimpperspectiveclonetool.c compare
2007-03-30  Sven Neumann  <sven@gimp.org>

	* app/tools/gimpdrawtool.[ch]
	* app/tools/gimpperspectiveclonetool.c
	* app/tools/gimptransformtool.c: compare squared distances.

svn path=/trunk/; revision=22198
2007-03-30 09:41:18 +00:00
Michael Natterer 8398ed8735 maintain an is_drawn boolean which indicates whether the drawn stuff is
2007-01-21  Michael Natterer  <mitch@gimp.org>

	* app/tools/gimpdrawtool.[ch]: maintain an is_drawn boolean which
	indicates whether the drawn stuff is currently visible. Added
	gimp_draw_tool_is_drawn() to obtain it.

	* app/tools/gimpbrushtool.c (gimp_brush_tool_draw): don't create
	the brush outline segments for the purpose of undrawing (if we
	don't have the segments, we can hardly have drawn them before).
	Fixes artifacts when the brush is being scaled or changed.

	* app/core/gimpbrush.c: don't call brush_scale_mask() and
	brush_scale_pixmap() with zero width or height. Fixes warnings
	from these functions.


svn path=/trunk/; revision=21749
2007-01-21 19:54:57 +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 b41bc68023 improved highlighting. (gimp_draw_tool_draw_arc_by_anchor): take width and
2006-11-07  Sven Neumann  <sven@gimp.org>

	* app/tools/gimpdrawtool.[ch] (gimp_draw_tool_draw_corner):
	improved highlighting.
	(gimp_draw_tool_draw_arc_by_anchor): take width and height
	arguments instead of radius_x and radius_y.

	* app/tools/gimpiscissorstool.c
	* app/tools/gimpvectortool.c: slightly increased handle sizes.

	* app/tools/gimpmeasuretool.c: increased size of the end points.

	* app/tools/gimpperspectiveclonetool.c: increased handle size.

	* app/tools/gimprectangletool.c: renamed variables.

	* app/tools/gimpsourcetool.c: use a single define for the target
size.

	* app/tools/gimptransformtool.[ch]: increased handle size. Made
	the area that can be grabbed identical to the displayed handle.
	Replaced filled circle with a circle outline and a cross.

	* app/tools/gimptransformtool-undo.c: follow renaming of define
in
	gimptransformtool.h.
2006-11-07 11:09:51 +00:00
Sven Neumann 6577834f1f app/tools/gimpdrawtool.[ch] (gimp_draw_tool_draw_corner) highlight the
2006-11-06  Sven Neumann  <sven@gimp.org>

	* app/tools/gimpdrawtool.[ch] (gimp_draw_tool_draw_corner)
	* app/tools/gimprectangletool.c (gimp_rectangle_tool_draw):
	highlight the handles on mouse-over.
2006-11-06 17:09:07 +00:00
Sven Neumann e192b27f6d let gimp_draw_tool_draw_corner() also handle north, south, east and west
2006-11-06  Sven Neumann  <sven@gimp.org>

	* app/tools/gimpdrawtool.[ch]: let gimp_draw_tool_draw_corner()
	also handle north, south, east and west corners and allow for
	filled corners.

	* app/tools/gimprectangletool.c (gimp_rectangle_tool_draw): simplified.
2006-11-06 16:31:11 +00:00
Sven Neumann 194f268f89 app/tools/gimpdrawtool.[ch] changed the way that the handles are drawn.
2006-11-05  Sven Neumann  <sven@gimp.org>

	* app/tools/gimpdrawtool.[ch]
	* app/tools/gimprectangletool.c: changed the way that the
handles
	are drawn. This is still work in progress.
2006-11-06 08:16:31 +00:00
William Skaggs 7903feff20 Bill Skaggs <weskaggs@primate.ucdavis.edu>
* app/display/gimpcanvas.[ch]
	* app/tools/gimpdrawtool.[ch]: remove recently added code relating
	to stippled xor drawing -- not handled well by some display
	drivers.

	* app/tools/gimprectangletool.c: improve drawing of handles.
2006-09-20 20:23:49 +00:00
William Skaggs 3c2c165b9c Bill Skaggs <weskaggs@primate.ucdavis.edu>
Trying to implement some usability recommendations from
	Peter Sikking: bigger handles, more feedback to user.

	* app/display/gimpcanvas.[ch]: add
	GIMP_CANVAS_STYLE_XOR_STIPPLED to set of styles.

	* app/tools/gimpdrawtool.[ch]
	(gimp_draw_tool_draw_rectangle_stippled): new function.
	Needs a better stipple pattern, though.

	* app/tools/gimprectangletool.c: bigger handles in corners,
	and highlight thing that user is currently moving.
2006-09-15 00:01:59 +00:00
Sven Neumann 5439aa4995 did a global gdisp -> display substitution.
2006-03-28  Sven Neumann  <sven@gimp.org>

	* app/*: did a global gdisp -> display substitution.
2006-03-28 17:55:52 +00:00
Sven Neumann 97075bf406 added some const qualifiers.
2005-07-31  Sven Neumann  <sven@gimp.org>

	* app/tools/gimpdrawtool.[ch]: added some const qualifiers.
2005-07-31 16:05:06 +00:00
Simon Budig 331f982322 added "use_offsets" parameter to gimp_draw_tool_draw_boundary() for
2004-02-21  Simon Budig  <simon@gimp.org>

	* app/tools/gimpdrawtool.[ch]: added "use_offsets" parameter
	to gimp_draw_tool_draw_boundary() for consistency.

	* app/tools/gimpeditselectiontool.c: Changed accordingly.

	* app/tools/gimppainttool.c: when drawing straight lines draw
	the brush preview at the end of the line.
2004-02-21 16:06:56 +00:00
Sven Neumann 058764f4ba app/display/gimpcanvas.[ch] moved GC from the the draw tool to GimpCanvas.
2003-11-10  Sven Neumann  <sven@gimp.org>

	* app/display/gimpcanvas.[ch]
	* app/tools/gimpdrawtool.[ch]: moved GC from the the draw tool to
	GimpCanvas. Added wrappers around GDK drawing functions and do all
	canvas drawing by means of these new functions.

	* app/display/gimpdisplayshell-appearance.c
	* app/display/gimpdisplayshell-render.c
	* app/display/gimpdisplayshell.c
	* app/tools/gimpcroptool.c
	* app/tools/gimpfuzzyselecttool.c: draw using the new GimpCanvas
	functions.
2003-11-10 19:35:56 +00:00
Simon Budig 3b1c873724 app/vectors/gimpstroke.[ch] added the endpoint of the segment to the list
2003-09-18  Simon Budig  <simon@gimp.org>

	* app/vectors/gimpstroke.[ch]
	* app/vectors/gimpbezierstroke.c: (gimp_stroke_nearest_point_get)
	added the endpoint of the segment to the list of returned values.

	* app/tools/gimpdrawtool.[ch]: (gimp_draw_tool_on_vectors_curve)
	return the endpoint also.

	* app/tools/gimpvectortool.[ch]: Use that to activate the
	to-be-changed anchors when dragging on the curve directly.

	* app/tools/gimpmovetool.[ch]: changed accordingly.
2003-09-18 13:20:40 +00:00
Simon Budig 66cc2b98b5 app/vectors/gimpstroke.[ch] Changed gimp_*_anchor_select to accept the
2003-09-17  Simon Budig  <simon@gimp.org>

	* app/vectors/gimpstroke.[ch]
	* app/vectors/gimpvectors.[ch]: Changed gimp_*_anchor_select to
	accept the selection state as an argument.

	* app/tools/gimpdrawtool.[ch]: Added "exclusive" boolean parameter
	to gimp_draw_tool_on_vectors_handle(), so that you can specify
	that you just get exactly the type of anchor you want to have.

	* app/tools/gimpvectortool.[ch]: Handling of multiple selected
	anchors: Shift-Clicking in Extend mode selects them, you can
	move them together.
2003-09-17 21:49:45 +00:00
Simon Budig e899c701ba Implemented an (unused/untested) gimp_vectors_bounds () that returns the
2003-09-16  Simon Budig  <simon@gimp.org>

	* app/vectors/gimpvectors.[ch]: Implemented an (unused/untested)
	gimp_vectors_bounds () that returns the bounding box of an vectors
	object.

	* app/tools/gimpdrawtool.[ch]: made gimp_draw_tool_on_vectors()
	ignore handles/anchors, since they are not visible when that
	function gets used.
2003-09-15 22:41:25 +00:00