Commit Graph

30 Commits

Author SHA1 Message Date
Sven Neumann 304ac0fd54 fixed inline documentation.
2003-09-15  Sven Neumann  <sven@gimp.org>

	* app/config/gimpxmlparser.c: fixed inline documentation.

	* app/vectors/gimpstroke.h: added a missing newline.

2003-09-15  Sven Neumann  <sven@gimp.org>

	* app/app-docs.sgml
	* app/app-sections.txt: updated.
2003-09-15 16:02:59 +00:00
Sven Neumann 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
Simon Budig 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
Dave Neary 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
Michael Natterer 47ba171afd app/display/display-types.h app/tools/tools-types.h
2003-09-07  Michael Natterer  <mitch@gimp.org>

	* app/display/display-types.h
	* app/tools/tools-types.h
	* app/vectors/vectors-types.h
	* app/widgets/widgets-types.h: removed some forgotten cruft.

	* app/vectors/gimpbezierstroke.h
	* app/vectors/gimpstroke.h
	* app/vectors/gimpvectors.h: added class struct typedefs here.
2003-09-07 10:29:10 +00:00
Sven Neumann 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
Dave Neary 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
Dave Neary 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
Simon Budig 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
Simon Budig 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
Simon Budig 009766a881 app/vectors/gimpstroke.[ch] Implemented direct moving of the curve. Whee!
2003-08-26  Simon Budig  <simon@gimp.org>

	* app/vectors/gimpstroke.[ch]
	* app/vectors/gimpbezierstroke.c: Implemented direct moving of the
	curve. Whee!  :-)

	* app/tools/gimpvectortool.[ch]: Use it.
2003-08-26 00:27:03 +00:00
Simon Budig 32499a849d app/vectors/gimpstroke.[ch] added gimp_(bezier_)stroke_open that opens up
2003-08-22  Simon Budig  <simon@gimp.org>

	* app/vectors/gimpstroke.[ch]
	* app/vectors/gimpbezierstroke.c: added
	gimp_(bezier_)stroke_open that opens up a stroke (possibly
	returns a new one if it falls apart).

	* app/tools/gimpvectortool.[ch]: make it possible to break
	up a stroke by deleting (CTRL-Clicking in Insert/Delete mode)
	the curve between two anchors.
2003-08-22 01:12:26 +00:00
Simon Budig 044ea72c69 added _is_empty () that checks if a stroke is empty.
2003-08-21  Simon Budig  <simon@gimp.org>

	* app/vectors/gimpstroke.[ch]: added _is_empty () that checks
	if a stroke is empty.

	* app/vectors/gimpbezierstroke.c: Implemented _anchor_delete ()

	* app/vectors/gimpvectors.[ch]: added _stroke_remove ()

	* app/tools/gimpvectortool.[ch]: implemented the deletion of
	anchors. CTRL-Click on the anchor in Insert/Delete mode does
	the trick. Also did some renaming to the Vector tool
	(now Path tool) and set the Tooltip to something sane.

	Folks, I think the new path tool is no longer a regression
	against the 1.2 bezier select tool!
2003-08-21 17:47:12 +00:00
Simon Budig 52a16ff5a4 Add hooks for insertion of points (and testing if insertion is possible)
2003-08-20  Simon Budig  <simon@gimp.org>

        * app/vectors/gimpstroke.[ch]: Add hooks for insertion of points
        (and testing if insertion is possible)

        * app/vectors/gimpbezierstroke.c: Implement it for BezierStrokes

        * app/tools/gimpvectoroptions.c: Adjusted Options-GUI.

        * app/tools/gimpvectortool.[ch]: Detect if the pointer is over
        the curve. Make it possible to insert points in the curve.
        Select the "Insert/Delete Nodes" mode in the tool options and
        click on the curve.
2003-08-20 17:29:13 +00:00
Simon Budig 5ccd61bcb5 app/vectors/gimpvectors.h removed temp_anchor stuff. I don't think that
2003-08-19  Simon Budig  <simon@gimp.org>

        * app/vectors/gimpvectors.h
        * app/vectors/gimpstroke.[ch]: removed temp_anchor stuff. I don't
        think that this is needed. Added virtual function to determine the
        closest point on the curve to a given target point.

        * app/vectors/gimpbezierstroke.c: implemented
        gimp_bezier_stroke_nearest_point_get () - up to now untested and
        unused.
2003-08-19 01:05:48 +00:00
Simon Budig 86e4d32a44 app/vectors/gimpstroke.[ch] Virtualized gimp_bezier_stroke_extend, added
2003-08-17  Simon Budig  <simon@gimp.org>

	* app/vectors/gimpstroke.[ch]
	* app/vectors/gimpbezierstroke.[ch]: Virtualized
	gimp_bezier_stroke_extend, added gimp_stroke_is_extendable.

	* app/text/gimptext-vectors.c: changed accordingly.

	* app/vectors/gimpvectors.[ch]: added gimp_vectors_anchor_select.

	* app/tools/gimpvectoroptions.[ch]: dummy switch for future
	extensions

	* app/tools/gimpvectortool.[ch]: Major overhaul. Made use of
	gimp_vector_tool_oper_update, cleaned up
	gimp_vector_tool_button_press a lot and finally have a
	working cursor_update. Still buggy, but I wanted to have it
	in CVS.
2003-08-17 02:49:24 +00:00
Simon Budig 8d048a513c app/vectors/gimpstroke.[ch] Moved transformations code to gimpstroke, so
2003-08-07  Simon Budig  <simon@gimp.org>

        * app/vectors/gimpstroke.[ch]
        * app/vectors/gimpvectors.c: Moved transformations code to
        gimpstroke, so that the gimpvector no longer fiddles in
        the stroke internals.
2003-08-07 17:05:14 +00:00
Simon Budig 10cb43d2fb implemented gimp_stroke_close.
2003-08-02  Simon Budig  <simon@gimp.org>

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

        * app/vectors/gimpbezierstroke.c: only extend a stroke if
        it is not closed.

        * app/tools/gimpvectortool.c: ALT-Click on an anchor now
        closes the stroke. Will evolve to the ability to connect
        two strokes.
2003-08-03 01:26:05 +00:00
Simon Budig 0174bb6d6a Implemented closed paths. Not yet available in a sane manner via the UI.
2003-05-19  Simon Budig  <simon@gimp.org>

	* app/vectors/gimpbezierstroke.[ch]: Implemented closed paths. Not
	yet available in a sane manner via the UI. Added the last missing
	line from gimp_bezier_stroke_interpolate ().

	* app/tools/gimpvectortool.c: Changed accordingly

	* app/vectors/gimpstroke.[ch]
	* app/vectors/gimpvectors.[ch]: removed Tabs.
2003-05-18 23:08:01 +00:00
Michael Natterer 0c67310555 app/vectors/gimpbezierstroke.[ch] app/vectors/gimpstroke.[ch]
2003-05-16  Michael Natterer  <mitch@gimp.org>

	* app/vectors/gimpbezierstroke.[ch]
	* app/vectors/gimpstroke.[ch]
	* app/vectors/gimpvectors-preview.c
	* app/vectors/gimpvectors.[ch]: massive cleanup / code review:
	Made default implementations real ones. Don't add "const" to
	call-by-value parameters. Iterate lists using for() loops. Moved
	variables to local scopes. Removed tabs. Indentation. Stuff...

	* app/vectors/gimpstroke.[ch]: added unused "gboolean closed"
	member.
2003-05-16 16:49:04 +00:00
Simon Budig 740983b06f app/vectors/gimpstroke.[ch] Changed vectors->strokes to a GList and
2003-04-14  Simon Budig  <simon@gimp.org>

        * app/vectors/gimpstroke.[ch]
        * app/vectors/gimpvectors.[ch]: Changed vectors->strokes to a
        GList and removed stroke->next. Implemented stuff for duplicating
        strokes. Duplicating a vector works now.

        * app/tools/gimpvectortool.c: added not-yet-used function to
        determine where a click has been. Refcounting stuff changed.

        * app/core/gimpimage-mask-select.c
        * app/paint/gimppaintcore-stroke.c: Changed accordingly.
2003-04-14 00:37:04 +00:00
Simon Budig 6a29d4773e app/tools/gimpvectortool.[ch] app/vectors/gimpbezierstroke.c
2003-03-29  Simon Budig  <simon@gimp.org>

        * app/tools/gimpvectortool.[ch]
        * app/vectors/gimpbezierstroke.c
        * app/vectors/gimpstroke.[ch]
        * app/vectors/vectors-types.h: More vector tool stuff. Control
        handles start to behave...
2003-03-29 04:47:44 +00:00
Michael Natterer 794885e297 added gimp_item_configure() and gimp_item_copy().
2003-01-31  Michael Natterer  <mitch@gimp.org>

	* app/core/gimpitem.[ch]: added gimp_item_configure() and
	gimp_item_copy().

	* app/core/gimpdrawable.c (gimp_drawable_configure,copy): use them.

	* app/vectors/gimpvectors.[ch]: added gimp_vectors_new(),
	gimp_vectors_copy() and gimp_vectors_copy_points(). Use the new
	GimpItem functions just as GimpDrawable does. Added a
	get_memsize() implementation.

	* app/vectors/gimpstroke.[ch]: made it a GimpObject and added
	a get_memsize() implementation.

	* app/undo.c: implemented vectors undo as if the new GimpVectors
	functions above worked.

	* app/gui/dialogs-constructors.c
	* app/gui/vectors-commands.c
	* app/tools/gimpvectortool.c: use gimp_vectors_new,copy().
2003-01-31 18:08:32 +00:00
Simon Budig 62b61811b3 New Type: GimpVectorExtendMode
2002-12-31  Simon Budig  <simon@gimp.org>

        * app/vectors/vectors-types.h: New Type: GimpVectorExtendMode

        * app/tools/gimpvectortool.c
        * app/vectors/gimpstroke.[ch]
        * app/vectors/gimpbezierstroke.[ch]: More stuff on the path
        (pun intended) to a better path tool...

        Thanks to Sven for being my host in Berlin!
2002-12-31 03:18:49 +00:00
Simon Budig b7e1bb247b app/vectors/gimpanchor.h Anchors now have an enum as type and have the
2002-12-30  Simon Budig  <simon@gimp.org>

        * app/vectors/gimpanchor.h
        * app/vectors/vectors-types.h: Anchors now have an enum as type and
        have the "selected" property.

        * app/vectors/gimpstroke.[ch]
        * app/vectors/gimpbezierstroke.c
        * app/vectors/gimpvectors-preview.c: Additional functions to get
        information about the graphical representation of the stroke and be
        able to select anchors.

        * app/tools/gimpvectortool.c: semi-usable interface, better graphical
        representation of what is going on. Also make use of the "selected"
        property of the anhors to just display a subset of the control
        handles.
2002-12-30 16:36:01 +00:00
Simon Budig d3e9fc6405 app/core/gimpimage-mask-select.c app/paint/gimppaintcore-stroke.c
2002-12-29  Simon Budig  <simon@gimp.org>

        * app/core/gimpimage-mask-select.c
        * app/paint/gimppaintcore-stroke.c
        * app/tools/gimpvectortool.c
        * app/vectors/gimpbezierstroke.[ch]
        * app/vectors/gimpstroke.[ch]
        * app/vectors/gimpvectors-preview.c: some more stuff for the
        vectors tool: bezier interpolation is available, we have preview
        generation. Usage is still weird.
2002-12-28 23:52:29 +00:00
Simon Budig 8e64f969a2 fixed the default spacing, so that lines actually look like 1 pixel
2002-09-30  Simon Budig  <simon@gimp.org>

        * data/brushes/1circle.gbr: fixed the default spacing, so that
        lines actually look like 1 pixel lines...

        * themes/Default/images/tools/.cvsignore: Added some files.

        * app/vectors/gimpanchor.h
        * app/vectors/gimpbezierstroke.[ch]
        * app/vectors/gimpstroke.h
        * app/vectors/gimpvectors.h: Added some stuff, mostly unused
        code that otherwise would just rot on my harddisk. Mitch: I
        need to discuss the data structures with you...
2002-09-30 00:06:30 +00:00
Simon Budig 7f706974e8 app/tools/gimpdrawtool.c Added function gimp_draw_tool_draw_strokes to be
2002-02-26  Simon Budig  <simon@gimp.org>

        * app/tools/gimpdrawtool.c
        * app/tools/gimpdrawtool.h: Added function gimp_draw_tool_draw_strokes
        to be able to draw lines from a GimpCoords array.

        * app/vectors/gimpanchor.h: removed "active", since this should
        be a GUI thing.

        * app/vectors/gimpstroke.c
        * app/vectors/gimpstroke.h
        * app/vectors/gimpbezierstroke.c
        * app/vectors/gimpbezierstroke.h: Implemented (and fixed API) for
        interpolation.

        * app/tools/gimpvectortool.c
        * app/tools/gimpvectortool.h: Changed accordingly, we can actually
        draw polylines now.
2002-02-26 00:58:04 +00:00
Simon Budig 7112b2068f app/vectors/gimpbezierstroke.c app/tools/gimpvectortool.[ch]
2002-02-25  Simon Budig  <simon@gimp.org>

        * app/vectors/gimpbezierstroke.c
        * app/tools/gimpvectortool.[ch]
        * app/vectors/gimpstroke.[ch]
        * app/vectors/gimpvectors.[ch]: Fixed various bugs, *including*
        the nasty one from this morning (thanks Mitch).
2002-02-25 16:57:19 +00:00
Simon Budig 29b8063356 app/vectors/gimpvectors.c Changed to a container of GimpStrokes. This will
2002-02-25  Simon Budig  <simon@gimp.org>

        * app/vectors/gimpvectors.c
        * app/vectors/gimpvectors.h: Changed to a container of
        GimpStrokes. This will enable it to contain different
        Stroke-types in one Vectors-Object (think Entry in path
        dialog)

        * app/vectors/gimpstroke.c
        * app/vectors/gimpstroke.h
        * app/vectors/gimpbezierstroke.c
        * app/vectors/gimpbezierstroke.h: New Objects: A connected
        component in a vector.

        * app/vectors/gimpbezier.c
        * app/vectors/gimpbezier.h: Removed, obsoleted by gimpstroke
        and gimpbezierstroke.

        * app/tools/gimpvectortool.c
        * app/vectors/Makefile.am
        * app/vectors/vectors-types.h
        * app/vectors/gimpanchor.h: Changed accordingly.

        There is a nasty bug I am yet unable to find in the tool.
        Don't use it. For some reason a wrong function instead of
        gimp_stroke_real_anchor_get_next gets called. I have *no*
        idea, whats wrong here. I stared at the code for hours.

        If somebody has an idea I'd appreciate a hint.
2002-02-25 03:16:41 +00:00