Commit Graph

76 Commits

Author SHA1 Message Date
a88c0ffb93 Change the license URL from http://www.gnu.org/licenses/ to https:// 2018-07-11 23:47:19 +02:00
Ell
d9ec9386ce app: allow gimp_stroke_transform() to result in multiple strokes
The next commit is going to perform clipping when transforming
Bezier strokes.  When parts of the stroke get clipped, the result
consists of multiple strokes.

Adapt gimp_stroke_transform() in preparation, to allow for the
transformation to result in multiple strokes, by adding a GQueue*
parameter that receives the transformed strokes.

For convenience, we allow passing NULL as the argument, in which
case the current behavior is maintained.  However, NULL should only
be passed when clipping is known to be unnecessary.

Adapt the rest of the code for the change.

Note that this technically affects public API: existing stroke
object IDs now become invalid after transforming their containing
vectors object.  However, this is unlikely to affect code in
practice.
2018-02-03 05:58:43 -05:00
28e1a379e6 app: remove const qualifiers from all object parameters
They are unreliable because every type checking cast discards them,
they are useless anyway, visual clutter, added inconsistently, and
generally suck. Wanted to do this a long time ago, it was a bad idea
in the first place.
2016-05-19 23:54:14 +02:00
1e47343b04 Bug 735810- performance shrinkage of Paths tool
Apply revised version of Mitchs patch that
changes the anchor list to a GQueue.
2016-01-29 01:00:03 +01:00
980ba7f85a app: move memsize functions into their own files gimp-memsize.[ch] 2014-08-12 13:57:57 +02:00
7610e299ae Use GimpValueArray and GimpParamSpecValueArray
instead of the deprecated stuff from GLib.
2012-05-04 00:51:50 +02:00
5a7b7d9a4b app: add gimp_gegl_buffer_get_tile_manager()
and ust it in some get_memsize() functions instead of having a
FIXME. So many files changed because they need to inlcude <gegl.h>
now.
2012-05-02 17:46:07 +02:00
58252b23d3 app (vectors): Remove redundant assignment 2011-10-08 18:28:00 +05:30
fcfb7cf160 Use the new g_[s]list_free_full() instead of foreach() and free() 2011-03-07 17:11:28 +01:00
957cf2cfa9 app: Always use gimp_object_get_name()
Begin to consider GimpObject::name as private and always use
gimp_object_get_name(). Change gimp_object_get_name() to take an
untyped pointer so we don't have to do so awfully many casts. There is
a runtime check for the type inside the function anyway.
2009-08-29 12:41:29 +02:00
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
80039486aa app/vectors/gimpvectors.[ch] app/vectors/gimpstroke.[ch] Implement
2008-05-12  Simon Budig  <simon@gimp.org>

	* app/vectors/gimpvectors.[ch]
	* app/vectors/gimpstroke.[ch]
	* app/vectors/gimpbezierstroke.c: Implement functionality to
	get a bezier description a la moveto/curveto/closepath.

	* app/vectors/vectors-types.h: implement an evil hack to avoid
	the inclusion of cairo.h in most C files...

	* app/vectors/Makefile.am: link against cairo

	* app/widgets/gimpviewrenderervectors.c: use the new functionality
	for preview rendering.


svn path=/trunk/; revision=25645
2008-05-12 21:47:07 +00:00
0708ffea76 Fixes for some Sparse reported issues in app/
2008-03-28  Mukund Sivaraman  <muks@mukund.org>

        Fixes for some Sparse reported issues in app/

        * app/core/gimpdrawable-operation.c: Added prototype for            
        gegl_node_add_child().

        * app/core/gimpcurve.c: Remove C99 code       
                                
        * app/tools/gimpcurvestool.c 
        * app/tools/gimpperspectiveclonetool.c 
        * app/vectors/gimpstroke.c: Mark functions as static.

        * app/base/siox.c: state is a pointer.

        * app/plug-in/gimppluginprocframe.c: values is a pointer.

        * app/plug-in/plug-in-rc.c: plug_in_rc_parse() returns a pointer.

        * app/plug-in/gimpinterpreterdb.c: Check program[0] for '\0'
        instead of the pointer program itself.


svn path=/trunk/; revision=25292
2008-03-28 23:18:19 +00:00
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
55b0c9abf0 renamed gimp_anchor_duplicate() to gimp_anchor_copy().
2007-01-12  Michael Natterer  <mitch@gimp.org>

	* app/vectors/gimpanchor.[ch]: renamed gimp_anchor_duplicate()
	to gimp_anchor_copy().

	* app/vectors/gimpstroke.c (gimp_stroke_real_duplicate): changed
	accordingly.


svn path=/trunk/; revision=21699
2007-01-12 20:31:27 +00:00
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
73b1863a28 app/vectors/gimpstroke.[ch] tools/pdbgen/pdb/vectors.pdb Applied patch
2006-11-20  Simon Budig  <simon@gimp.org>

	* app/vectors/gimpstroke.[ch]
	* tools/pdbgen/pdb/vectors.pdb
	* plug-ins/pygimp/pygimp-vectors.c: Applied patch from
	Joao S. O. Bueno Calligaris that adds some missing transformations
	to the PDB-API for strokes. Fixes bug #129598.

	* app/pdb/internal_procs.c
	* app/pdb/vectors_cmds.c
	* libgimp/gimpvectors_pdb.[ch]: regenerated.
2006-11-20 15:34:30 +00:00
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
e1ceed5147 define GIMP_PARAM_STATIC_STRINGS which is G_PARAM_STATIC_NAME|NICK|BLURB.
2006-01-18  Michael Natterer  <mitch@gimp.org>

	* app/config/config-types.c: define GIMP_PARAM_STATIC_STRINGS
	which is G_PARAM_STATIC_NAME|NICK|BLURB. Also define
	GIMP_PARAM_READABLE, _WRITABLE and _READWRITE which include
	GIMP_PARAM_STATIC_STRINGS.

	* app/*/*.c: use them for all object properties so their
	strings are not copied.
2006-01-18 20:29:40 +00:00
14d43a50d2 app/vectors/gimpbezierstroke.c shuffled some g_return*_if_fail around as
2005-12-23  Simon Budig  <simon@gimp.org>

	* app/vectors/gimpbezierstroke.c
	* app/vectors/gimpstroke.c: shuffled some g_return*_if_fail
	around as suggested by mitch.
2005-12-23 00:37:42 +00:00
0d4a10fee4 app/config/*.c app/core/*.c app/display/*.c app/text/*.c port to
2005-12-10  Michael Natterer  <mitch@gimp.org>

	* app/config/*.c
	* app/core/*.c
	* app/display/*.c
	* app/text/*.c
	* app/vectors/*.c: port to G_DEFINE_TYPE() and friends. Some related
	core reordering and cleanup.
2005-12-10 19:24:36 +00:00
3b0594c429 a segment doesn't necessarily have a matching tangent. Check for this when
2005-10-02  Simon Budig  <simon@gimp.org>

	* app/vectors/gimpbezierstroke.c: a segment doesn't necessarily
	have a matching tangent. Check for this when iterating over all
	segments of a path...

	* app/vectors/gimpstroke.c: fix the dispatch of
	_nearest_intersection_get().
2005-10-02 00:25:06 +00:00
3c2e94a2fb Added small utility function for the manhattan metric.
2005-10-01  Simon Budig  <simon@gimp.org>

	* app/core/gimpcoords.[ch]: Added small utility function for the
	manhattan metric.

	* app/vectors/gimpstroke.[ch]: virtualized stubs provided by mitch

	* app/vectors/gimpbezierstroke.c: Reworked some internal functions
	to make it easier to access the parameters for the coordinates of an
	stroke interpolation. Simplified the straight line test. Added an
	implementation of the _nearest_tangent_get () function that does
	not yet seem to work properly. Not sure where the problem is.
2005-10-01 00:49:44 +00:00
3ddaa79b8c a-r-g-h!!! 2005-09-30 17:22:58 +00:00
e74278f524 oops... 2005-09-30 17:08:51 +00:00
8db6b9cfa0 added stubs of two new snapping functions.
2005-09-30  Michael Natterer  <mitch@gimp.org>

	* app/vectors/gimpstroke.[ch]: added stubs of two new snapping
	functions.

	* app/core/gimpimage-snap.c: removed their #defines here.
2005-09-30 17:07:49 +00:00
5658edd077 Started a PDB api for vectors/strokes. Not yet functional, this commit is
2005-04-14  Simon Budig  <simon@gimp.org>

	Started a PDB api for vectors/strokes. Not yet functional, this
	commit is to get the infrastructure up and running.

	* app/vectors/gimpstroke.[ch]
	* app/vectors/gimpvectors.[ch]: Added IDs to the strokes

	* tools/pdbgen/pdb.pl: corrected "vectors" type, deleted "path" type.
	* tools/pdbgen/pdb/image.pdb: added gimp_image_get_vectors()
	* tools/pdbgen/pdb/vectors.pdb: New file for the vectors API
	(just a stub for now)

	* tools/pdbgen/Makefile.am: Added vectors.pdb
	* tools/pdbgen/groups.pl: regenerated.

	* plug-ins/script-fu/siod-wrapper.c: Enable the Path/Vectors type.

	* libgimp/gimpvectors_pdb.[ch]
	* app/pdb/vectors_cmds.c: new autogenerated files.

	* libgimp/Makefile.am
	* app/pdb/Makefile.am: Added new autogenerated file.

	* libgimp/gimp_pdb.h
	* libgimp/gimpimage_pdb.[ch]
	* app/pdb/image_cmds.c
	* app/pdb/internal_procs.c: regenerated.
2005-04-14 02:32:23 +00:00
7323c5a07d Changed the "gradient" parameter to "slope" to make it more clear what the
2004-12-14  Simon Budig  <simon@gimp.org>

	* app/vectors/gimpstroke.[ch]: Changed the "gradient" parameter
	to "slope" to make it more clear what the returned result is (which
	was wrong earlier).
	* tools/pdbgen/pdb/paths.pdb: changed accordingly

	* app/pdb/paths_cmds.c
	* libgimp/gimppaths_pdb.[ch]
	* devel-docs/libgimp/tmpl/gimppaths.sgml: regenerated.

	Fixes bug #161274.
2004-12-14 22:36:40 +00:00
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
2cf661fc16 app/vectors/gimpstroke.[ch] Applied a modified patch from Geert Jordaens
2004-06-30  Simon Budig  <simon@gimp.org>

	* app/vectors/gimpstroke.[ch]
	* tools/pdbgen/pdb/paths.pdb: Applied a modified patch from
	Geert Jordaens that implements the gimp-path-get-point-at-dist
	PDB function (fixes bug #138754).

	* app/pdb/paths_cmds.c: regenerated
2004-06-29 22:45:58 +00:00
d9b7d7ee06 app/vectors/gimpstroke.c use the GIMP_TYPE_FOO macros instead of
2004-01-18  Michael Natterer  <mitch@gimp.org>

	* app/vectors/gimpstroke.c
	* app/xcf/xcf-load.c: use the GIMP_TYPE_FOO macros instead of
	gimp_foo_get_type(). Minor cleanups.
2004-01-18 17:41:29 +00:00
80fbda0540 removed gimp_g_object_get_memsize()...
2003-11-25  Michael Natterer  <mitch@gimp.org>

	* app/core/gimpobject.[ch]: removed gimp_g_object_get_memsize()...

	* app/core/gimp-utils.[ch]: ...and added it here along with
	some other memsize utilities for GHashTables and G(S)Lists.

	* app/core/gimp.c
	* app/core/gimpimage.c
	* app/core/gimpparasitelist.c
	* app/core/gimpviewable.c
	* app/vectors/gimpstroke.c (GimpObject::get_memsize): use the new
	functions.
2003-11-25 12:53:29 +00:00
fd30d5c976 app/config/gimpbaseconfig.h use gint64 for all memsize properties.
2003-11-16  Sven Neumann  <sven@gimp.org>

	* app/config/gimpbaseconfig.h
	* app/config/gimpcoreconfig.h: use gint64 for all memsize properties.

	* app/base/tile-manager.[ch] (tile_manager_get_memsize): since
	tiles can be swapped out, a tilemanager can be larger than gsize
	(on 32bit platforms). Use a gint64 to avoid an overflow.

	* app/core/gimp.c
	* app/core/gimpbrush.c
	* app/core/gimpbrushpipe.c
	* app/core/gimpbuffer.c
	* app/core/gimpchannel.c
	* app/core/gimpcontainer.c
	* app/core/gimpcontext.c
	* app/core/gimpdata.c
	* app/core/gimpdatafactory.c
	* app/core/gimpdrawable.c
	* app/core/gimpgradient.c
	* app/core/gimpimage-undo-push.c
	* app/core/gimpimage-undo.[ch]
	* app/core/gimpimage.c
	* app/core/gimpitem.c
	* app/core/gimpitemundo.[ch]
	* app/core/gimplayer.c
	* app/core/gimplist.c
	* app/core/gimpobject.[ch]
	* app/core/gimppalette.c
	* app/core/gimpparasitelist.c
	* app/core/gimppattern.c
	* app/core/gimpundo.[ch]
	* app/core/gimpundostack.c
	* app/core/gimpviewable.c
	* app/text/gimptext.c
	* app/text/gimptextlayer.c
	* app/vectors/gimpstroke.c
	* app/vectors/gimpvectors.c: use gint64 for gimp_object_get_memsize()
	and all its implementations.

	* app/display/gimpdisplayshell-title.c
	* app/gui/info-window.c: changed accordingly.
2003-11-16 17:51:36 +00:00
b563329c28 accept a list of dialog identifiers and try to raise an existing dockable
2003-09-30  Sven Neumann  <sven@gimp.org>

	* app/gui/dialogs-commands.c (dialogs_create_dockable_cmd_callback):
	accept a list of dialog identifiers and try to raise an existing
	dockable from the list. If that fails, create a new one from the
	first entry.

	* app/gui/image-menu.c
	* app/gui/toolbox-menu.c: specify alternative dialog identifiers
	where appropriate.

	* app/vectors/gimpstroke.c (gimp_stroke_interpolate): use NULL
	instead of 0.
2003-09-30 15:48:14 +00:00
ca07f5ddb2 Dave Neary <bolsh@gimp.org>
2003-09-20  Simon Budig  <simon@gimp.org>
            Dave Neary  <bolsh@gimp.org>

	First steps towards Libart stroking. Right now the code
	crashes and thus is disabled by default. If you want to
	test it, change the #define LIBART_STROKE  in
	app/vectors/gimpvectors.c. Then a click on the stroke button
	in the paths dialog invokes the new code.
	The crash is in gimpdrawable-stroke.c - apparently I did not
	yet get the TileManager stuff correctly.

	* app/core/gimpscanconvert.[ch]: Rewritten to be more clear
	and have an easier API. Now can handle open Paths and
	libart-stroke the (open/closed) polygons defined earlier.

	* app/core/core-enums.h: Added Enums for LineJoin-Type and
	EndCap-Type for stroking.

	* app/core/core-enums.c: regenerated.

	* app/core/gimpimage-mask-select.c: Use the new API of
	GimpScanConvert where appropriate.

	* app/vectors/gimpvectors.c: Added #define to enable the libart
	stroking. Disabled by default because of the crash mentioned
	above...

	* app/vectors/gimpbezierstroke.c
	* app/vectors/gimpstroke.c
	* app/vectors/gimpvectors.[ch]: Removed Libart stuff here.
	Libart usage now lives exclusively in GimpScanConvert.

	* app/core/gimpdrawable-stroke.[ch]: New files for the libart
	stroking (right now just vector objects).
	* app/core/Makefile.am: changed accordingly.

	* app/Makefile.am: Needed to tweak linking.  :-/
2003-09-20 19:58:26 +00:00
c23a2c479f app/vectors/gimpbezierstroke.c made "closed" a construct_only property and
2003-09-19  Sven Neumann  <sven@gimp.org>

	* app/vectors/gimpbezierstroke.c
	* app/vectors/gimpstroke.c: made "closed" a construct_only property
	and make sure that notify is emitted correctly when it is changed.
2003-09-19 19:19:09 +00:00
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
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
b4cc25eb18 removed...
2003-09-15  Sven Neumann  <sven@gimp.org>

	* app/core/gimpdrawable-transform-utils.[ch]: removed...

	* app/core/gimp-transform-utils.[ch]: ...and added under new names
	because these functions are not at all related to GimpDrawable.
	Changed the function names accordingly.

	* app/tools/gimpperspectivetool.c
	* app/tools/gimprotatetool.c
	* app/tools/gimpscaletool.c
	* app/tools/gimpsheartool.c
	* app/vectors/gimpstroke.c
	* app/vectors/gimpvectors.c
	* tools/pdbgen/pdb/transform_tools.pdb: changed accordingly.

	* app/pdb/transform_tools_cmds.c: regenerated.
2003-09-15 17:41:18 +00:00
8bd0ec7685 added new function gimp_drawable_transform_matrix_flip().
2003-09-11  Sven Neumann  <sven@gimp.org>

	* app/core/gimpdrawable-transform-utils.[ch]: added new function
	gimp_drawable_transform_matrix_flip().

	* app/vectors/gimpstroke.[ch]
	* app/vectors/gimpvectors.c: don't push the complex GimpItem
	transformation API down to GimpStroke. Instead setup the matrices
	in GimpVectors and use a simpler API for GimpStroke.

	* app/vectors/gimpvectors-import.c: changed accordingly.

	* app/vectors/gimpvectors-export.c: close the <path> element.
2003-09-11 01:23:58 +00:00
a0cc73de42 Made gimp_vectors_compat_get_points accept more paths gracefully. It now
2003-09-09  Simon Budig  <simon@gimp.org>

	* app/vectors/gimpvectors-compat.[ch]: Made
	gimp_vectors_compat_get_points accept more paths gracefully. It
	now is sufficient if there is up to one open stroke in the
	vectors object - it does not have to be the last one.

	Added function to determine if all vectors can be saved in
	compatibility mode.

	* app/vectors/gimpanchor.[ch]: Made GimpAnchor a boxed type.
	* app/vectors/gimpstroke.[ch]: Add two properties to gimpstroke:
	"closed" and "control-points" (the latter is
	G_PARAM_CONSTRUCT_ONLY). Added functions to get the points that
	determine the shape of the stroke - necessary for proper saving.

	* app/xcf/xcf-private.h: added new PROP_VECTORS and XcfStrokeType.

	* app/xcf/xcf-load.c: Be able to load PROP_VECTORS, make loading
	of PROP_PATHS ignore empty paths.

	* app/xcf/xcf-save.c: Added code for saving PROP_VECTORS,
	disabled by default. Define NEW_SAVE_CODE if you want to test
	it. No guarantees are made about the forward compatibility of
	the format used.
2003-09-09 15:46:59 +00:00
1c0b586e33 app/vectors/gimpvectors.[ch] app/vectors/gimpstroke.[ch] Cleanup - removed
2003-09-07  Dave Neary  <bolsh@gimp.org>

        * app/vectors/gimpvectors.[ch]
        * app/vectors/gimpstroke.[ch]
        * app/vectors/gimpbezierstroke.c: Cleanup - removed libart
        from the included headers in the .h files, don't pass around
        libart objects any more. Still stub code.
2003-09-07 18:09:58 +00:00
99dba1ca01 app/vectors/gimpbezierstroke.c app/vectors/gimpstroke.[ch] removed
2003-09-06  Sven Neumann  <sven@gimp.org>

	* app/vectors/gimpbezierstroke.c
	* app/vectors/gimpstroke.[ch]
	* app/vectors/gimpvectors.[ch]: removed compiler warnings, cleaned
	up coding style issues,
2003-09-06 20:00:38 +00:00
1d4720e560 Ooops! Sorry for the oversight. app/vectors/gimpvectors.[ch]
2003-09-06  Dave Neary  <bolsh@gimp.org>

        Ooops! Sorry for the oversight.
        * app/vectors/gimpvectors.[ch]
        * app/vectors/gimpstroke.[ch]
        * app/vectors/gimpbezierstroke.c: Changed include order
        to conform to the coding standards in devel-docs/includes.txt
        (which should really be integrated into HACKING).
2003-09-06 18:40:48 +00:00
0508bdcc4b Include libart headers app/vectors/gimpvectors.[ch]
2003-09-06  Dave Neary  <bolsh@gimp.org>

	* app/vectors/Makefile.am: Include libart headers
	* app/vectors/gimpvectors.[ch]
	* app/vectors/gimpstroke.[ch]
	* app/vectors/gimpbezierstroke.[ch]: Committing unfinished,
	useless stub code for converting a GimpVectors object to a
	libart vector path. Will pad this out later.
2003-09-06 16:39:08 +00:00
70088acbcd app/vectors/gimpstroke.c Two small hacks to make the editing behave more
2003-09-03  Simon Budig  <simon@gimp.org>

	* app/vectors/gimpstroke.c
	* app/vectors/gimpbezierstroke.c: Two small hacks to make the
	editing behave more symmetric (no more a user visible difference
	between extending to the start or to the end of a stroke).

	* app/tools/gimpvectortool.c: Use dashed lines for the connection
	between the anchor and the handles. Looks great IMHO.
2003-09-03 21:35:24 +00:00
e924a1372b app/text/gimptextlayout-render.c (gimp_text_layout_render)
2003-09-02  Sven Neumann  <sven@gimp.org>

	* app/text/gimptextlayout-render.c (gimp_text_layout_render)
	* app/widgets/gimpfontselection.c (gimp_font_selection_set_fontname)
	* app/widgets/gimptexteditor.c (gimp_text_editor_new)
	* app/gui/file-save-dialog.c (file_save_ok_callback): plugged
	some memleaks found using memprof.

	* app/vectors/gimpvectors.c: implemented the finalize method.

	* app/vectors/gimpstroke.c: minor code cleanup.

	* app/core/gimpdrawable.c (gimp_drawable_finalize)
	* app/core/gimplayer.c (gimp_layer_finalize)
	* app/core/gimpparasitelist.c (gimp_parasite_list_finalize):
	removed useless assertions.
2003-09-02 13:43:26 +00:00
f1b283bdde duplicate the closed property too. fixes Bug #120961.
2003-09-02  Simon Budig  <simon@gimp.org>

	* app/vectors/gimpstroke.c: duplicate the closed property too.
	fixes Bug #120961.
2003-09-02 10:18:49 +00:00
f09f3657d4 Introduced function to compare two gimpcoords
2003-09-01  Simon Budig  <simon@gimp.org>

	* app/vectors/gimpcoordmath.[ch]: Introduced function to compare
	two gimpcoords

	* app/vectors/gimpstroke.[ch]: virtualized gimp_stroke_close.

	* app/vectors/gimpbezierstroke.c: made the _close function check,
	if there is an unneeded segment (CCA-Sequence with all the same
	coordinates) at the gap to be closed. If so, remove it.
2003-09-01 00:39:47 +00:00
08bd7a19b9 app/vectors/gimpstroke.[ch] Implemented function to connect two strokes.
2003-08-27  Simon Budig  <simon@gimp.org>

	* app/vectors/gimpstroke.[ch]
	* app/vectors/gimpbezierstroke.c: Implemented function to
	connect two strokes.

	* app/tools/gimpvectortool.[ch]: Use it. Right now you have
	to click on one endpoint, and then SHIFT+CTRL+ALT-Click on
	the other endpoint.

	Suggestions on how to solve that more sanely are welcome...
2003-08-27 00:31:20 +00:00