Commit graph

82 commits

Author SHA1 Message Date
Michael Natterer 83d3a750d4 include "libgimpmath/gimpmathtypes.h" instead of "libgimpmath/gimpmath.h".
2007-03-09  Michael Natterer  <mitch@gimp.org>

	* app/core/core-types.h: include "libgimpmath/gimpmathtypes.h"
	instead of "libgimpmath/gimpmath.h".

	* app/core/gimpbrush.h
	* app/paint/gimppaintcore.h
	* app/paint/gimpperspectiveclone.h
	* app/text/gimptext.h
	* app/tools/gimptransformtool.h: include gimpvector.h and
	gimpmatrix.h explicitely where they are needed in public structs.

	* app/*/*.c
	* tools/pdbgen/pdb/paths.pdb: include "libgimpmath/gimpmath.h"
	where needed.

	* app/pdb/paths_cmds.c: regenerated.


svn path=/trunk/; revision=22084
2007-03-09 13:00:01 +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 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 f29b6c5027 use the new transform functions.
2006-08-09  Sven Neumann  <sven@gimp.org>

	* app/display/gimpdisplayshell-draw.c (gimp_display_shell_draw_pen)
	(gimp_display_shell_draw_vector): use the new transform functions.

	* app/tools/gimpdrawtool.c  (gimp_draw_tool_draw_lines)
	(gimp_draw_tool_draw_strokes): bail out early if num_points == 0.
2006-08-09 13:40:21 +00:00
Sven Neumann 1c33f14bcf renamed transform_coords() to transform_coordinate(); same for the
2006-08-09  Sven Neumann  <sven@gimp.org>

	* app/display/gimpdisplayshell-transform.[ch]: renamed
	transform_coords() to transform_coordinate(); same for the
	untransform variant. Added new functions transform_points() and
	transform_coords() that work on arrays.

	* app/display/gimpdisplayshell-autoscroll.c
	* app/display/gimpdisplayshell-callbacks.c: changed accordingly.

	* app/tools/gimpdrawtool.c (gimp_draw_tool_draw_lines)
	(gimp_draw_tool_draw_strokes): use the new transform functions.
2006-08-09 13:15:49 +00:00
Sven Neumann 615ad68d78 documentation based on a patch from Tom Lechner (bug #346959).
2006-07-10  Sven Neumann  <sven@gimp.org>

	* app/tools/gimpdrawtool.c: documentation based on a patch from
	Tom Lechner (bug #346959).
2006-07-10 07:21:09 +00:00
Michael Natterer ff1d2973ac added virtual functions GimpTool::has_display(), which returns whether any
2006-06-18  Michael Natterer  <mitch@gimp.org>

	* app/tools/gimptool.[ch]: added virtual functions
	GimpTool::has_display(), which returns whether any tool subclass
	keeps a pointer to the passed display; and GimpTool::has_image()
	which returns a display based on a passed image, or NULL if no
	display matches. Added default implementation of
	GimpTool::control() which sets tool->display to NULL on HALT.

	* app/tools/gimpclonetool.c
	* app/tools/gimpdrawtool.c: implement both functions.

	* app/tools/gimpclonetool.c: removed weak pointer hacks that are
	no longer needed now (and were incomplete anyway).

	* app/tools/tool_manager.c (tool_manager_select_tool)
	(tool_manager_control_active)
	(tool_manager_image_clean_dirty): use the new functions instead of
	peeking around in tool subclasses (and forgetting tools that may
	have display pointers, like the clone tool)

	* app/display/gimpdisplay.c (gimp_display_delete): removed
	fiddling with tool internals here too, control(HALT) on the tool
	is now sufficient to remove any reference to the closed display.
2006-06-18 19:58:49 +00:00
Michael Natterer 64032cbaca subtract 1 from outlined width/height instead of adding 1 to filled.
2006-06-05  Michael Natterer  <mitch@gimp.org>

	* app/tools/gimpdrawtool.c
	(gimp_draw_tool_draw_rectangle_by_anchor)
	(gimp_draw_tool_draw_arc_by_anchor): subtract 1 from outlined
	width/height instead of adding 1 to filled.
2006-06-05 21:39:23 +00:00
Michael Natterer b3c20ed2a5 prefix with GIMP_TOOL_ACTION_
2006-05-21  Michael Natterer  <mitch@gimp.org>

	* app/tools/tools-enums.h (enum GimpToolAction): prefix with
	GIMP_TOOL_ACTION_

	* app/display/gimpdisplay.c
	* app/display/gimpdisplayshell.c
	* app/tools/gimpaligntool.c
	* app/tools/gimpcolorpickertool.c
	* app/tools/gimpcolortool.c
	* app/tools/gimpcroptool.c
	* app/tools/gimpdrawtool.c
	* app/tools/gimpforegroundselecttool.c
	* app/tools/gimpfreeselecttool.c
	* app/tools/gimpimagemaptool.c
	* app/tools/gimpiscissorstool.c
	* app/tools/gimpmeasuretool.c
	* app/tools/gimpmovetool.c
	* app/tools/gimpnewrectselecttool.c
	* app/tools/gimppainttool.c
	* app/tools/gimpselectiontool.c
	* app/tools/gimptexttool.c
	* app/tools/gimptool.c
	* app/tools/gimptransformtool.c
	* app/tools/gimpvectortool.c
	* app/tools/tool_manager.c: changed accordingly. Introduce a
	common style for GimpTool::control()'s switch() block. Some
	minor cleanups.
2006-05-21 21:12:01 +00:00
Sven Neumann 6ebcf700d1 removed erroneous semicolon after G_DEFINE_TYPE macros.
2006-05-15  Sven Neumann  <sven@gimp.org>

	* app/*/*.c:
	* lib*/*.c: removed erroneous semicolon after G_DEFINE_TYPE macros.
2006-05-15 09:46:31 +00:00
Sven Neumann 049872b361 app/*.[ch] converted tabs to spaces.
2006-04-12  Sven Neumann  <sven@gimp.org>

	* app/*.[ch]
	* app/*/*.[ch]: converted tabs to spaces.
2006-04-12 12:49:29 +00:00
Michael Natterer 4d4873a581 Silence compiler warnings about...
2006-04-02  Michael Natterer  <mitch@gimp.org>

	Silence compiler warnings about...

	* app/config/gimprc-unknown.c: ...unused return value of
	g_slist_concat().

	* app/tools/gimpdrawtool.c: ...uninitialized variabe.

	* app/xcf/xcf-save.c: ...pointer signedness.
2006-04-02 18:19:48 +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 905fdfcbed did a global gimage -> image substitution.
2006-03-28  Sven Neumann  <sven@gimp.org>

	* app/*: did a global gimage -> image substitution.
2006-03-28 17:08:36 +00:00
Michael Natterer 8b8c784a5b port to G_DEFINE_TYPE() and friends. Some related cleanup.
2005-12-13  Michael Natterer  <mitch@gimp.org>

	* app/tools/*.c: port to G_DEFINE_TYPE() and friends. Some related
	cleanup.
2005-12-13 09:13:50 +00:00
Akkana Peck c938072948 Fix the parameter check at the beginning of gimp_draw_tool_draw_boundary,
* app/tools/gimpdrawtool.c: Fix the parameter check at the
beginning of gimp_draw_tool_draw_boundary, to fix the crash
described in bug 313922.
2005-08-20 04:01:13 +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
Tor Lillqvist 8cf79496a2 Store the GimpBrushCore::brush_bound_segs as sorted (the result of
2005-06-26  Tor Lillqvist  <tml@novell.com>

	* app/tools/gimppainttool.c (gimp_paint_tool_draw): Store the
	GimpBrushCore::brush_bound_segs as sorted (the result of
	sort_boundary), as the only place where it is used
	(gimp_draw_tool_draw_boundary()) would sort it each time it is
	called anyway.

	* app/tools/gimpdrawtool.c (gimp_draw_tool_draw_boundary):
	Correspondingly we now don't have to sort the boundary here.
2005-06-26 16:51:13 +00:00
Tor Lillqvist de642dd10f Add new GimpCanvasStyle value, GIMP_CANVAS_STYLE_XOR_DOTTED.
2005-06-24  Tor Lillqvist  <tml@novell.com>

	* app/display/gimpcanvas.h: Add new GimpCanvasStyle value,
	GIMP_CANVAS_STYLE_XOR_DOTTED.

	* app/display/gimpcanvas.c (gimp_canvas_gc_new): Implement it like
	GIMP_CANVAS_STYLE_XOR_DASHED, except that we set the dash pattern
	to a single-pixel on-off one.

	* app/tools/gimpdrawtool.c (gimp_draw_tool_draw_boundary): Sort
	the boundary so that we can draw each connected group of segments
	using gimp_canvas_draw_lines(). (Even if we would still use
	gimp_canvas_draw_segments(), the boundary would have to be sorted
	so that the XOR drawing and GDK_CAP_NOT_LAST cooperate properly.)

	Use GIMP_CANVAS_STYLE_XOR_DOTTED so the outline doesn't look too
	heavy.

	Remove the dubious code snippet that offset some segments by one
	pixel. It didn't do what the comment claimed, and why one would
	need to do what the comment said, or what it actually did, is
	unclear.

	Now brush outlines shouldn't have gaps any longer. (#308710)
2005-06-24 23:28:38 +00:00
Manish Singh 5d01581069 Fix a bunch of warnings from Sparse:
2004-11-13  Manish Singh  <yosh@gimp.org>

        Fix a bunch of warnings from Sparse:

        * app/actions/dockable-commands.c
        * app/actions/layers-actions.c
        * app/actions/view-commands.c
        * app/base/pixel-surround.c
        * app/config/gimpconfig-utils.c
        * app/config/gimpscanner.c
        * app/core/gimpbrushgenerated.c
        * app/core/gimpcontainer.c
        * app/core/gimpimage.c
        * app/dialogs/palette-import-dialog.c
        * app/file/gimprecentlist.c
        * app/plug-in/plug-in-params.c
        * app/text/gimptext-compat.c
        * app/text/gimptext-parasite.c
        * app/vectors/gimpbezierstroke.c
        * app/vectors/gimpstroke.c
        * app/widgets/gimpcellrendereraccel.c
        * app/widgets/gimpselectiondata.c
        * app/xcf/xcf.c
        * libgimp/gimp.c
        * libgimpthumb/gimpthumb-utils.c
        * libgimpthumb/gimpthumbnail.c
        * modules/cdisplay_proof.c
        * plug-ins/Lighting/lighting_ui.c
        * plug-ins/common/csource.c
        * plug-ins/common/glasstile.c
        * plug-ins/common/nova.c
        * plug-ins/common/pcx.c
        * plug-ins/common/pnm.c
        * plug-ins/common/randomize.c
        * plug-ins/common/screenshot.c
        * plug-ins/common/sel_gauss.c
        * plug-ins/common/spheredesigner.c
        * plug-ins/common/wind.c
        * plug-ins/gfig/gfig-dialog.c
        * plug-ins/gfig/gfig-dobject.c
        * plug-ins/gimpressionist/gimpressionist.c
        * plug-ins/ifscompose/ifscompose.c
        * plug-ins/print/gimp_main_window.c
        * plug-ins/print/print.c: Cleanup integer vs. pointer confusion.

        * app/base/temp-buf.c
        * app/dialogs/about-dialog.c
        * plug-ins/common/bumpmap.c
        * plug-ins/common/jigsaw.c
        * plug-ins/gfig/gfig-dobject.c: Cosmetic cleanups.

        * app/config/gimpconfig-deserialize.c
        * app/config/gimpconfig-path.c
        * app/config/gimpconfigwriter.c
        * app/core/gimpgradient.c
        * app/tools/gimpdrawtool.c
        * plug-ins/common/nlfilt.c
        * plug-ins/common/unsharp.c
        * plug-ins/common/zealouscrop.c: Define inline functions before they
        are used.

        * app/core/gimpdrawable-blend.c: PixelRegion definition was changed
        some time ago, but the initialization here didn't change. Fix it.

        * app/plug-in/plug-in-rc.c (plug_in_extra_deserialize): No need to
        assign token twice in a row.

        * libgimpbase/gimpdatafiles.c (gimp_datafiles_read_directories): No
        need to initialize file_data, since the code fills out all the fields.

        * plug-ins/common/CML_explorer.c
        * plug-ins/common/vpropagate.c: Declare function pointers fully.

        * plug-ins/common/grid.c (pix_composite): G_INLINE_FUNC isn't needed,
        we assume we can use the "inline" keyword always.

        * plug-ins/common/psd_save.c
        * plug-ins/common/vinvert.c
        * plug-ins/gfig/gfig-arc.c
        * plug-ins/gfig/gfig-bezier.c
        * plug-ins/gfig/gfig-circle.c
        * plug-ins/gfig/gfig-dialog.c
        * plug-ins/gfig/gfig-dobject.c
        * plug-ins/gfig/gfig-ellipse.c
        * plug-ins/gfig/gfig-line.c
        * plug-ins/gfig/gfig-poly.c
        * plug-ins/gfig/gfig-spiral.c
        * plug-ins/gfig/gfig-star.c
        * plug-ins/gfig/gfig.c
        * plug-ins/gimpressionist/orientmap.c
        * plug-ins/gimpressionist/placement.c
        * plug-ins/gimpressionist/sizemap.c
        * plug-ins/imagemap/imap_grid.c
        * plug-ins/imagemap/imap_main.c
        * plug-ins/imagemap/imap_preferences.c
        * plug-ins/imagemap/imap_settings.c
        * plug-ins/maze/maze.c
        * plug-ins/sel2path/curve.c
        * plug-ins/sel2path/fit.c
        * plug-ins/sel2path/pxl-outline.c
        * plug-ins/sel2path/spline.c
        * plug-ins/xjt/xjt.c: Functions with no args should be declared
        with (void).

        * plug-ins/common/retinex.c (MSRCR): Initialize max_preview to quiet
        the compiler.
2004-11-14 02:50:33 +00:00
Michael Natterer de7a940501 app/config/gimpconfig-deserialize.c app/config/gimpscanner.c
2004-05-12  Michael Natterer  <mitch@gimp.org>

	* app/config/gimpconfig-deserialize.c
	* app/config/gimpscanner.c
	* app/core/gimp-edit.c
	* app/core/gimpchannel-combine.c
	* app/core/gimpcontainer.c
	* app/core/gimpdrawable-bucket-fill.c
	* app/core/gimpdrawable-combine.c
	* app/core/gimpdrawable.c
	* app/core/gimpgradient.c
	* app/core/gimpimage-flip.c
	* app/core/gimpimage-merge.c
	* app/core/gimpimage-projection.c
	* app/core/gimpimage.c
	* app/display/gimpdisplay-handlers.c
	* app/display/gimpdisplayshell-callbacks.c
	* app/display/gimpprogress.c
	* app/gui/info-dialog.c
	* app/gui/module-browser.c
	* app/gui/offset-dialog.c
	* app/plug-in/plug-in.c
	* app/tools/gimpdrawtool.c
	* app/tools/tool_manager.c
	* app/widgets/gimpactiongroup.c
	* app/widgets/gimpdialogfactory.c
	* app/widgets/gimpgradienteditor.c
	* app/widgets/gimpitemfactory.c
	* app/widgets/gimppropwidgets.c
	* app/widgets/gimpwidgets-utils.c
	* app/xcf/xcf-save.c
	* libgimp/gimpexport.c
	* libgimpwidgets/gimphelpui.c
	* libgimpwidgets/gimppixmap.c
	* libgimpwidgets/gimpunitmenu.c: replaced G_GNUC_FUNCTION,
	G_GNUC_PRETTY_FUNCTION, G_STRLOC and hardcoded function names in
	g_warning()s by G_STRFUNC.
2004-05-12 08:13:33 +00:00
Pedro Gimeno 9127a54dec Fixed several off-by-one problems in display:
2004-03-20  Pedro Gimeno  <pggimeno@wanadoo.es>

	Fixed several off-by-one problems in display:

	* app/display/gimpdisplayshell.h (PROJ_ROUND): New macro to apply
	to a float the same rounding method as the one used when rendering.
	(SCALEX, SCALEY): Use PROJ_ROUND instead of truncating.

	* app/display/gimpdisplayshell-transform.c
	(gimp_display_shell_transform_xy): Accept gdouble image coordinates
	even if the returned screen coordinates are integer. Use PROJ_ROUND
	instead of (gint) to apply proper rounding. Fixes bug #137566.

	* app/display/gimpdisplayshell-transform.h
	(gimp_display_shell_transform_xy): changed accordingly.

	* app/display/gimpdisplayshell-draw.c
	* app/tools/gimpdrawtool.c: make sure everywhere that PROJ_ROUND
	is used either directly or through gimp_display_shell_transform_xy,
	instead of using arbitrary rounding methods.
2004-03-20 21:59:41 +00:00
Michael Natterer 79e13a1ca0 app/tools/gimpdrawtool.c app/tools/gimpselectiontool.c
2004-03-10  Michael Natterer  <mitch@gimp.org>

	* app/tools/gimpdrawtool.c
	* app/tools/gimpselectiontool.c
	* app/tools/gimptool.c
	* app/tools/gimptransformtool.c: minor cleanup.
2004-03-10 12:45:11 +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 eb489c44c4 Made these widgets show a preview of the vectors object. Does not work
2003-09-29  Simon Budig  <simon@gimp.org>

	* app/widgets/gimppreviewrenderervectors.c: Made these widgets
	show a preview of the vectors object. Does not work everywhere
	right now, also most probably has scaling issues for non-square
	images.

	* app/tools/gimpdrawtool.c: Fixed Svens fix.
2003-09-29 11:48:15 +00:00
Sven Neumann 30a4f72166 plugged memleaks and added some sanity checks.
2003-09-28  Sven Neumann  <sven@gimp.org>

	* app/core/gimpscanconvert.c (gimp_scan_convert_free)
	(gimp_scan_convert_finish): plugged memleaks and added some sanity
	checks.

	* app/base/pixel-region.c
	* app/core/gimpdrawable-preview.c: removed trailing whitespace.

	* app/tools/gimpdrawtool.c (gimp_draw_tool_on_vectors_curve):
	gimp_stroke_nearest_point_get() doesn't set cur_pos when there are
	no strokes; don't use the uninitialized variable.
2003-09-28 20:13:59 +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
Simon Budig 0e407cba35 fixed bogus gimp_item_set_image (GIMP_ITEM (vectors), NULL);
2003-09-15  Simon Budig  <simon@gimp.org>

	* app/core/gimpimage.c: fixed bogus
	gimp_item_set_image (GIMP_ITEM (vectors), NULL);

	* app/tools/gimpdrawtool.[ch]: added gimp_draw_tool_on_vectors:
	checks if the given coordinate is on any vectors object of the image.

	* app/tools/gimpvectortool.[ch]: Changed the tool modes.
	VECTORS_SELECT_VECTORS now is active when the tool does not
	have a current vectors object or the gdisplay is different
	than the one the tool is drawing on. Also the Move mode now
	uses it, when clicking outside the current vectors object.

	Factored out the sanity check of the internal state
	(gimp_vector_tool_verify_state).
2003-09-15 21:12:10 +00:00
Michael Natterer 5b33524acf added new functions gimp_draw_tool_on_vectors_handle() and
2003-09-12  Michael Natterer  <mitch@gimp.org>

	* app/tools/gimpdrawtool.[ch]: added new functions
	gimp_draw_tool_on_vectors_handle() and _on_vectors_curve()
	so they can be used by all GimpDrawTool subclasses.

	* app/tools/gimpvectortool.[ch]: removed the _on_handle() and
	_on_curve() functions here. Connect to "active_vectors_changed" of
	the active_vector's image, so once it has been avtivated, the tool
	follows the path which is selected in the paths dialog.
2003-09-12 16:44:10 +00:00
Michael Natterer 9c13b724d4 app/core/gimpimage-mask-select.c (gimp_image_mask_select_vectors)
2003-09-12  Michael Natterer  <mitch@gimp.org>

	* app/core/gimpimage-mask-select.c (gimp_image_mask_select_vectors)
	* app/paint/gimppaintcore-stroke.c (gimp_paint_core_stroke_vectors)
	* app/display/gimpdisplayshell.c (gimp_display_shell_draw_vector)
	* app/tools/gimpdrawtool.c (gimp_draw_tool_real_draw)
	* app/tools/gimptransformtool.c (gimp_transform_tool_draw)
	* app/tools/gimpvectortool.c (gimp_vector_tool_vectors_visible)
	(gimp_vector_tool_draw): all callers of gimp_stroke_interpolate():
	don't leak the returned GimpCoords array and don't crash if it's
	NULL.

	* app/tools/gimpvectortool.[ch]: added VECTORS_SELECT_VECTOR state
	which enables activating any visible GimpVectors on any display.

	(gimp_vector_tool_on_handle)
	(gimp_vector_tool_on_curve): added a GimpVectors parameter so we
	can check for vectors which are not vector_tool->vectors.

	(gimp_vector_tool_oper_update): iterate gdisp->gimage->vectors
	to figure if we are hovering any visible vectors and set
	VECTORS_SELECT_VECTOR.

	(gimp_vector_tool_button_press): catch VECTORS_SELECT_VECTOR and
	start editing the selected vectors. Also make it the image's
	active_vectors.

	(gimp_vector_tool_button_release): removed unneeded call to
	gimp_viewable_invalidate_preview(vectors).

	Random cleanup all over the place.
2003-09-12 10:04:37 +00:00
Michael Natterer c7414c12a0 made gimp_item_linked_get_list() and the GimpItemLinkedMask enum public.
2003-09-11  Michael Natterer  <mitch@gimp.org>

	* app/core/gimpitem-linked.[ch]: made gimp_item_linked_get_list()
	and the GimpItemLinkedMask enum public. Hiding them just causes
	code duplication.

	* app/tools/gimpdrawtool.[ch]: added a GList of GimpVectors and a
	GimpMatrix3 transformation matrix for them. Just set them with
	gimp_draw_tool_set_vectors() and gimp_draw_tool_set_transform()
	and chain up in your tools's GimpdrawTool::draw() implementation
	to get the vectors drawn.

	* app/tools/gimpeditselectiontool.c: use
	gimp_item_linked_get_list() instead of traversing image->layers,
	->channels and ->vectors manually to find the linked items.
	Use gimp_draw_tool_set_vectors() and _set_transform() to show
	the linked vectors while moving.

	(gimp_edit_selection_tool_arrow_key): transform all linked items,
	not just the linked layers.
2003-09-11 18:02:39 +00:00
Sven Neumann 138bab295b added new function gimp_draw_tool_draw_dashed_line().
2003-09-02  Sven Neumann  <sven@gimp.org>

	* app/tools/gimpdrawtool.[ch]: added new function
	gimp_draw_tool_draw_dashed_line().
2003-09-02 16:13:48 +00:00
Michael Natterer 2da93d692f app/core/gimpchannel.[ch] (gimp_channel_boundary)
2003-08-30  Michael Natterer  <mitch@gimp.org>

	* app/core/gimpchannel.[ch] (gimp_channel_boundary)
	* app/core/gimpimage-mask.[ch] (gimp_image_mask_boundary)
	* app/core/gimplayer-floating-sel.[ch] (floating_sel_boundary):
	return const BoundSeg arrays because they are cached and not newly
	allocated.

	* app/base/boundary.[ch] (sort_boundary)
	* app/tools/gimpdrawtool.[ch] (gimp_draw_tool_draw_boundary):
	take const BoundSeg arrays.

	* app/core/gimpimage-mask.c (gimp_image_mask_stroke)
	* app/display/gimpdisplayshell-selection.c
	* app/tools/gimpeditselectiontool.c (init_edit_selection):
	changed accordingly.
2003-08-30 14:25:05 +00:00
Michael Natterer 30e041cd79 add a small EPSILON to the brush coordinates before rounding them (fixes
2003-07-16  Michael Natterer  <mitch@gimp.org>

	* app/tools/gimppainttool.c (gimp_paint_tool_draw): add a small
	EPSILON to the brush coordinates before rounding them (fixes
	off-by-one floating point rounding fnord for "hard edge" painting
	where e.g. (5.0 - (3.0 / 2.0)) was rounded to 3.0 instead of 4.0).

	* app/tools/gimpdrawtool.c (gimp_draw_tool_draw_boundary): use
	RINT() instead of floor() to round the transformed boundary to
	GdkSegments.
2003-07-16 16:19:16 +00:00
Michael Natterer 78262ef745 removed "gboolean hard" member/property...
2003-07-14  Michael Natterer  <mitch@gimp.org>

	* app/paint/gimperaseroptions.[ch]: removed "gboolean hard"
	member/property...

	* app/paint/gimppaintoptions.[ch]: ...and added it here. Added
	gimp_paint_options_get_brush_mode() utility function.

	* app/paint/gimpairbrush.c
	* app/paint/gimpclone.c
	* app/paint/gimpconvolve.c
	* app/paint/gimpdodgeburn.c
	* app/paint/gimperaser.c
	* app/paint/gimppaintbrush.c
	* app/paint/gimppaintcore.h
	* app/paint/gimppencil.c
	* app/paint/gimpsmudge.c: use the new utility funtion where
	appropriate. Removed trailing whitespace.

	* app/tools/gimpdrawtool.[ch] (gimp_paint_tool_draw_boundary):
	changed offset parameters from gint to gdouble so we can show the
	brush preview at sub-pixel positions.

	* app/tools/gimppainttool.c: use sub-pixel coordinates for the
	brush preview if paint_options->hard is FALSE (doesn't work for
	the pencil yet).

	The new brush preview unveiled that the positioning of even-sized
	brushes if off by 0.5 for soft brush application mode and off by
	1.0 for hard application mode:

	* app/paint/gimppaintcore.[ch] (gimp_paint_core_subsample_mask):
	offset painting by 0.5 pixels on the brushes' even sized axes by
	shuffling the subsample matrices around.

	Added "subsampling" for HARD brush application mode since a pixel
	of an even sized brush can snap to up to four different image
	pixels depending on the sub-pixel coordinates of the stroke.
2003-07-14 14:50:41 +00:00
Michael Natterer 84e73fa4d1 removed gimp_display_shell_transform_boundary() again...
2003-07-10  Michael Natterer  <mitch@gimp.org>

	* app/display/gimpdisplayshell-transform.[ch]: removed
	gimp_display_shell_transform_boundary() again...

	* app/tools/gimpdrawtool.[ch]: ...and added as
	gimp_draw_tool_draw_boundary(). Removed the GimpDrawToolState enum
	and the "draw_state" member since they were redundant. Cleanup.

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

	* app/tools/gimppainttool.[ch]: added a brush preview so we
	finally see where we will paint. Fixes bug #32498. Cleanup.

	* app/tools/tool_manager.c: also look at draw_tool->gdisp, not
	only at tool->gdisp when deciding whether the active tool has to
	be suspended/resumed/halted. Fixes a couple of fnords with the
	line preview and the new brush preview.

	* app/tools/gimpcolortool.c: minor cleanup.
2003-07-10 16:01:45 +00:00
Sven Neumann e78601452c app/gui/edit-commands.c added "Fill with Pattern" menu entry as suggested
2003-07-02  Sven Neumann  <sven@gimp.org>

	* app/gui/edit-commands.c
	* app/gui/image-menu.c: added "Fill with Pattern" menu entry as
	suggested in bug #116365.

	* app/base/temp-buf.c
	* app/base/tile-swap.c
	* app/config/gimpbaseconfig.c
	* app/config/gimpconfig-types.c
	* app/display/gimpdisplayshell-filter-dialog.c
	* app/display/gimpdisplayshell.c
	* app/file/file-utils.c
	* app/paint-funcs/paint-funcs-types.h
	* app/tools/gimpdrawtool.c
	* app/tools/gimpinktool.c
	* app/tools/gimpiscissorstool.h
	* app/tools/gimptextoptions.c
	* app/paint-funcs/paint-funcs-types.h
	* app/vectors/gimpbezierstroke.c
	* app/vectors/gimpstroke.c
	* app/vectors/gimpvectors.c
	* app/vectors/vectors-types.h
	* libgimp/gimpbrushmenu.c
	* libgimp/gimpmisc.h
	* libgimpmodule/gimpmodule.c: fixed some minor issues found
	compiling with -pedantic.

	* app/pdb/misc_tools_cmds.c
	* tools/pdbgen/pdb/misc_tools.pdb: adapt to the changed order of
	arguments for gimp_image_pick_color().
2003-07-02 18:01:19 +00:00
Michael Natterer d2e66f2aac new function which returns (draw_tool->gdisp != NULL).
2003-06-27  Michael Natterer  <mitch@gimp.org>

	* app/tools/gimpdrawtool.[ch] (gimp_draw_tool_is_active): new
	function which returns (draw_tool->gdisp != NULL).
2003-06-27 16:05:05 +00:00
Pedro Gimeno 2f31d12f86 Fix off-by-one when dragging the selection. Fixes the last pending issue
2003-05-26  Pedro Gimeno  <pggimeno@wanadoo.es>

	* app/tools/gimpeditselectiontool.c (selection_transform_segs):
	Fix off-by-one when dragging the selection. Fixes the last pending
	issue of bug #17904. Use temporary variables for clamp values.

	* app/display/gimpdisplayshell-selection.c
	(selection_transform_segs): Perform the clamping that fixes
	bug #110014 here instead of in the callers. Solves a rare case
	that was not properly handled before.
	(selection_render_points, selection_generate_segs): Remove the
	clamping code from here.

	* app/tools/gimpdrawtool.c (gimp_draw_tool_draw_rectangle): More
	clampings to avoid overflow of 16-bit coordinates.
2003-05-25 23:23:34 +00:00
Pedro Gimeno 9e7d814ac8 Cleanups. (gradient_calc_linear_factor): Apply the gradient to both sides
2003-05-05  Pedro Gimeno  <pggimeno@wanadoo.es>

	* app/core/gimpdrawable-blend.c: Cleanups.
	(gradient_calc_linear_factor): Apply the gradient to both sides
	when Repeat is set to Sawtooth Wave. Fixes bug #112106.

	* app/core/gimpdrawable-transform.c
	(gimp_drawable_transform_tiles_affine): Fix copy'n'paste slip in
	coordinates calculation for supersampling code. Transform the
	pixel centers properly. Fixes bug #10466.

	* app/tools/gimpdrawtool.c (gimp_draw_tool_draw_rectangle,
	gimp_draw_tool_draw_arc): Ported the fix for bug #17904 from the
	STABLE branch (off-by-one when drawing the rectangle/ellipse
	previews).

	* app/tools/gimpeditselectiontool.c: Renamed
	gimp_edit_selection_tool_snap to
	gimp_edit_selection_tool_calc_coords, as it is no longer used for
	snapping.
	(gimp_edit_selection_tool_calc_coords): Use floor instead of
	rounding. Callers changed to remove rounding, as it deals with
	gdoubles directly. Thanks to Mitch for the help refining this
	one. Fixes bug #17906.
2003-05-05 18:45:58 +00:00