Commit graph

1303 commits

Author SHA1 Message Date
Sven Neumann 555038debf app/composite/gimp-composite-generic.c app/composite/gimp-composite-mmx.c
2003-09-16  Sven Neumann  <sven@gimp.org>

	* app/composite/gimp-composite-generic.c
	* app/composite/gimp-composite-mmx.c
	* app/composite/gimp-composite-sse.c
	* app/composite/gimp-composite-sse2.c
	* app/config/gimpconfig-deserialize.c
	* app/config/gimpconfig-path.c
	* app/config/gimpconfig-serialize.c
	* app/core/cpercep.c
	* app/core/gimpunit.c
	* app/gui/palette-import-dialog.c
	* app/gui/plug-in-menus.c
	* app/paint-funcs/paint-funcs-generic.h
	* app/paint-funcs/paint-funcs.c
	* app/pdb/procedural_db.c
	* app/text/gimptextlayout-render.c
	* app/tools/gimpfuzzyselecttool.c
	* app/widgets/gimpcursor.c: some trivial code cleanups: avoid
	casts that discard const qualifiers and avoid useless comparisons
	on unsigned variables. Also reordered qualifiers in function
	declarations (static comes before const).
2003-09-16 13:12:50 +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
Sven Neumann 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
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 3f437bb73b removed all calls to gimp_tool_control_set_preserve() so the tool doesn't
2003-09-12  Michael Natterer  <mitch@gimp.org>

	* app/tools/gimpvectortool.c: removed all calls to
	gimp_tool_control_set_preserve() so the tool doesn't get
	confused by the image being dirtied.

	Made it aware of visible vectors:

	(gimp_vector_tool_draw): don't draw the stroke itself if the
	current vectors is visible.

	(gimp_vector_tool_vectors_visible): new callback which just draws
	the stroke itself when the vectors changes visibility.

	(gimp_vector_tool_set_vectors): connect the new callback.
2003-09-12 00:00:23 +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 6f1a0df89f app/display/Makefile.am app/gui/Makefile.am app/paint/Makefile.am
2003-09-07  Sven Neumann  <sven@gimp.org>

	* app/display/Makefile.am
	* app/gui/Makefile.am
	* app/paint/Makefile.am
	* app/pdb/Makefile.am
	* app/text/Makefile.am
	* app/tools/Makefile.am
	* app/widgets/Makefile.am
	* app/xcf/Makefile.am (INCLUDES): removed $(LIBART_CFLAGS) again.
2003-09-07 19:35:10 +00:00
Michael Natterer 8df1badccd removed the last traces of xinput_airbrush.
2003-09-07  Michael Natterer  <mitch@gimp.org>

	* app/tools/airbrush_blob.[ch]: removed the last traces of
	xinput_airbrush.
2003-09-07 15:34:49 +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
Michael Natterer 7a5f914866 To optimize duplicate and/or wrong image updates away, introduced new
2003-09-06  Michael Natterer  <mitch@gimp.org>

	To optimize duplicate and/or wrong image updates away, introduced
	new policy that a child object must never explicitly update or
	invalidate its parent object (just like the GUI is not updated
	explicitly by the core):

	* app/core/gimpdrawable.[ch]: added new signal
	GimpDrawable::update(). Never update or invalidate the image when
	the drawable is updated or invalidated.

	(gimp_drawable_set_visible): don't gimp_drawable_update() the
	drawable since its pixels have not changed.

	* app/core/gimpimage.[ch]: connect to the "add" and "remove"
	signals of the layers and channels containers. Also connect to the
	"update" and "visibility_changed" signals of all drawables in
	these containers (optimizes away updates issued by drawables which
	are not yet added to the image and updates of the selection
	mask). Also, don't propagate updates to the image if the emitting
	drawable is invisible (optimizes away updates issued by invisible
	drawables).

	(gimp_image_add_layer,channel)
	(gimp_image_remove_layer,channel): don't update the image since
	that's done by our "add" and "remove" handlers now.

	(gimp_image_position_layer,channel): update just the image, not
	the drawable since its pixels have not changed.

	(gimp_image_real_colormap_changed)
	(gimp_image_set_component_visible): always call
	gimp_image_update() *and* gimp_viewable_invalidate_preview() to
	get everything updated, since update and invalidate of images are
	not connected.

	* app/core/gimpimage-undo-push.c (undo_pop_layer,channel): don't
	update the drawable since (a) its pixels don't change and (b) the
	image updates itself upon adding/removing now.

	(undo_pop_layer_mod): replaced gimp_image_update() by
	gimp_drawable_update() (just for consistency with other similar
	functions).

	* app/core/gimplayer.c: connect to "update" of the layer mask and
	issue updates on the layer if the mask update has any effect on
	the projection.
	(gimp_layer_create_mask): don't set the mask's offsets here since
	they may be different when we later add the mask to the layer.

	* app/core/gimplayermask.c (gimp_layer_mask_set_layer): set the
	mask offsets here instead.

	* app/core/gimpchannel.c (gimp_channel_translate): update the
	channel even if push_undo == FALSE.

	* app/paint/gimppaintcore.c (gimp_paint_core_finish)
	* app/tools/gimpinktool.c (ink_finish): invalidate both the
	drawable and the image preview since invalidating the drawable
	doesn't invalidate the image any more.

	* app/text/gimptextlayer.c (gimp_text_layer_render_now): also
	update the new extents of the text layer, not only the old one.

	(gimp_text_layer_render_layout): don't update the drawable since
	gimp_drawable_fill() already updated it.
2003-09-06 20:06:53 +00:00
Michael Natterer b28c23611b app/display/Makefile.am app/gui/Makefile.am app/paint/Makefile.am
2003-09-06  Michael Natterer  <mitch@gimp.org>

	* app/display/Makefile.am
	* app/gui/Makefile.am
	* app/paint/Makefile.am
	* app/pdb/Makefile.am
	* app/text/Makefile.am
	* app/tools/Makefile.am
	* app/widgets/Makefile.am
	* app/xcf/Makefile.am (INCLUDES): add $(LIBART_CFLAGS) here too.
2003-09-06 17:20:02 +00:00
Michael Natterer a33f06e7e5 removed the _push_undo() and _invalidate() wrappers.
2003-09-04  Michael Natterer  <mitch@gimp.org>

	* app/core/gimpimage-mask.[ch]: removed the _push_undo() and
	_invalidate() wrappers.

	* app/core/gimpimage-mask-select.c
	* app/core/gimpimage-undo-push.c
	* app/core/gimplayer-floating-sel.c
	* app/tools/gimptransformtool.c: changed accordingly.
2003-09-04 11:44:57 +00:00
Simon Budig 36941635a2 Cleanup. Properly freeze/thaw the vectors.
2003-09-04  Simon Budig  <simon@gimp.org>

	* app/tools/gimpvectortool.c: Cleanup. Properly freeze/thaw
	the vectors.
2003-09-03 23:00:47 +00:00
Simon Budig 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
Simon Budig 2dec640c62 properly keep track of the active anchor and retrieve that information
2003-09-03  Simon Budig  <simon@gimp.org>

	* app/tools/gimpvectortool.[ch]: properly keep track of the
	active anchor and retrieve that information after a _thaw () so
	that proper editing is possible after an undo. Now the
	vector_tool->cur_* variables are constantly updated in
	_oper_update () so that we don't need to determine them in
	_button_press () again.

	On request by Jimmac and Joao connecting two stroke-ends now
	works by activating one endpoint and clicking on the other
	endpoint in Insert/Delete Mode.
2003-09-03 19:52:46 +00:00
Michael Natterer 008e3e208c removed the _bounds() and _boundary() wrappers.
2003-09-03  Michael Natterer  <mitch@gimp.org>

	* app/core/gimpimage-mask.[ch]: removed the _bounds() and
	_boundary() wrappers.

	* app/core/gimpdrawable.c
	* app/display/gimpdisplayshell-selection.c
	* app/gui/image-commands.c
	* app/gui/layers-commands.c
	* app/tools/gimpcroptool.c
	* app/tools/gimpeditselectiontool.c
	* app/tools/gimptransformtool.c
	* app/xcf/xcf-save.c: changed accordingly.
2003-09-03 17:17:18 +00:00
Sven Neumann 157dc58571 Ctrl only sets the clone source when Shift isn't pressed at the same time
2003-09-03  Sven Neumann  <sven@gimp.org>

	* app/tools/gimpclonetool.c: Ctrl only sets the clone source when
	Shift isn't pressed at the same time (fixes bug #121324).
2003-09-03 16:41:30 +00:00
Michael Natterer e837849934 removed the _value() and _is_empty() wrappers.
2003-09-03  Michael Natterer  <mitch@gimp.org>

	* app/core/gimpimage-mask.[ch]: removed the _value() and
	_is_empty() wrappers.

	* app/display/gimpdisplayshell.[ch]: removed
	gimp_display_shell_mask_value() since it is not used.

	* app/core/gimpdrawable-blend.c
	* app/core/gimpdrawable-transform.c
	* app/core/gimpedit.c
	* app/core/gimpimage.c
	* app/core/gimplayer.c
	* app/gui/image-menu.c
	* app/gui/vectors-menu.c
	* app/tools/gimpclonetool.c
	* app/tools/gimpfliptool.c
	* app/tools/gimpinktool.c
	* app/tools/gimpmovetool.c
	* app/tools/gimpselectiontool.c
	* app/tools/gimptransformtool.c
	* tools/pdbgen/pdb/misc_tools.pdb: changed accordingly.

	* app/pdb/misc_tools_cmds.c: regenerated.
2003-09-03 15:13:19 +00:00
Michael Natterer 1c04c3f601 removed the _clear() wrapper.
2003-09-03  Michael Natterer  <mitch@gimp.org>

	* app/core/gimpimage-mask-select.[ch]: removed the _clear() wrapper.

	* app/core/gimpimage-mask.[ch]: changed accordingly. Added
	"const gchar *undo desc" parameter to
	gimp_image_mask_select_vectors().

	* app/core/gimpimage-qmask.c
	* app/gui/vectors-commands.c
	* app/text/gimptext-compat.c
	* app/tools/gimpbucketfilltool.c
	* app/tools/gimpfreeselecttool.c
	* app/tools/gimpfuzzyselecttool.c
	* app/tools/gimprectselecttool.c
	* app/widgets/gimpvectorstreeview.c
	* tools/pdbgen/pdb/paths.pdb
	* tools/pdbgen/pdb/selection.pdb: changed accordingly. Also
	replaced some wrappers which still exist.

	* tools/pdbgen/pdb/paths.pdb: stroke using gimp_item_stroke().

	* app/pdb/paths_cmds.c
	* app/pdb/selection_cmds.c: regenerated.
2003-09-03 14:22:38 +00:00
Michael Natterer f47b758f32 removed the _translate() and _stroke() wrappers.
2003-09-03  Michael Natterer  <mitch@gimp.org>

	* app/core/gimpimage-mask.[ch]: removed the _translate()
	and _stroke() wrappers.

	* app/gui/edit-commands.c
	* app/tools/gimpeditselectiontool.c
	* app/widgets/gimpselectioneditor.c
	* tools/pdbgen/pdb/edit.pdb
	* tools/pdbgen/pdb/selection.pdb: changed accordingly.

	* app/pdb/edit_cmds.c
	* app/pdb/selection_cmds.c: regenerated.

	* app/core/gimpselection.c: implement GimpItem::scale(), resize(),
	flip() and rotate().

	* app/core/gimpimage-crop.c
	* app/core/gimpimage-flip.c
	* app/core/gimpimage-resize.c
	* app/core/gimpimage-rotate.c
	* app/core/gimpimage-scale.c: no need to call
	gimp_image_mask_invalidate() and/or gimp_image_mask_changed()
	manually after scale, resize, flip and rotate, since GimpSelection
	updates itself correctly.
2003-09-03 10:19:47 +00:00
Michael Natterer 420d17d286 made all functions which push an undo step virtual and added them all as
2003-09-03  Michael Natterer  <mitch@gimp.org>

	* app/core/gimpchannel.[ch]: made all functions which push an
	undo step virtual and added them all as default implementations.

	* app/core/Makefile.am
	* app/core/core-types.h
	* app/core/gimpselection.[ch]: new object which is a GimpChannel
	subclass and implements all of its virtual functions, pushes
	an image_mask undo and chains up with "push_undo = FALSE".

	* app/core/gimpimage-mask.[ch]: made most functions simple
	wrappers like gimp_channel_invert(gimp_image_get_mask(gimage));
	so the API stays the same for now.

	* app/core/gimpimage.[ch]: create a GimpSelection object
	as gimage->selection_mask. Removed "gboolean mask_stroking"
	since it is in GimpSelection now.

	* app/xcf/xcf-load.c (xcf_load_channel_props): added an evil hack
	which turns a GimpChannel into a GimpSelection once we figured the
	loaded channel is the selection.

	* app/core/gimplayer.c (gimp_layer_create_mask):
	gimp_channel_clear() takes an additional "const gchar *undo_desc"
	parameter now.

	* app/core/gimpscanconvert.c (gimp_scan_convert_to_channel): set
	mask->bounds_known to FALSE before returning the new channel

	* app/tools/gimpiscissorstool.c (iscissors_convert): no need to
	call gimp_channel_invalidate_boundary() on the channel returned by
	the above function.

	* app/core/gimpchannel.[ch]: removed
	gimp_channel_invalidate_boundary() since it is no longer needed.
2003-09-02 23:07:40 +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
Sven Neumann b20358c07f removed a superfluous call to g_object_ref().
2003-09-02  Sven Neumann  <sven@gimp.org>

	* app/tools/gimpeditselectiontool.c (init_edit_selection): removed
	a superfluous call to g_object_ref().

	* app/vectors/gimpvectors.c (gimp_vectors_copy_strokes): free the
	old list of strokes.
2003-09-02 14:00:38 +00:00
Simon Budig a6647f2d00 added simplistic undo, needs polishing.
2003-09-01  Simon Budig  <simon@gimp.org>

	* app/tools/gimpvectortool.c: added simplistic undo, needs polishing.
2003-09-01 17:10:55 +00:00
Michael Natterer c049f82e59 made "tool-info" a G_PARAM_CONSTRUCT_ONLY property.
2003-08-30  Michael Natterer  <mitch@gimp.org>

	* app/tools/gimptool.c: made "tool-info" a G_PARAM_CONSTRUCT_ONLY
	property.

	* app/tools/tool_manager.c (tool_manager_tool_changed): pass it to
	g_object_new() instead of setting it after tool creation.

	* app/tools/gimppainttool.[ch]
	* app/tools/gimptransformtool.[ch]: removed ugly
	"gboolean notify_connected" hacks and connect to the signals in
	GObject::constructor().

	* app/tools/gimppainttool.c (gimp_paint_tool_contstructor): create
	paint_tool->core here from tool->tool_info->paint_info->paint_type.

	* app/tools/gimpairbrushtool.c
	* app/tools/gimpclonetool.c
	* app/tools/gimpconvolvetool.c
	* app/tools/gimpdodgeburntool.c
	* app/tools/gimperasertool.c
	* app/tools/gimppaintbrushtool.c
	* app/tools/gimppenciltool.c
	* app/tools/gimpsmudgetool.c: changed accordingly. Removed lots of
	useless class_init functions. Converted tabs to spaces. Cleanup.
2003-08-30 16:41:35 +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 c42641fe89 Fixed & cleaned up paint function registration to work without GUI.
2003-08-30  Michael Natterer  <mitch@gimp.org>

	Fixed & cleaned up paint function registration to work without
	GUI. Finishes core/GUI separation for the paint tools:

	* app/core/gimppaintinfo.[ch]: removed "gchar *pdb_string" all over
	the place since we don't stroke using the PDB any more.
	(gimp_paint_info_new): create paint_info->paint_options here so
	the paint system is fully initialized when there is no GUI.

	* app/paint/paint.c: removed pdb_string stuff here, too.

	* app/core/gimptoolinfo.[ch]: create tool_info->tool_options
	only if tool_info->tool_options_type is not the same type
	as paint_info->paint_options_type (if we are no paint tool).

	* app/core/gimptooloptions.c: removed G_PARAM_CONSTRUCT_ONLY from
	the "tool-info" property. Instead, changed
	gimp_tool_options_set_property to ensure that it is only set once.

	* app/core/gimp.c (gimp_initialize): moved paint_init() after
	data_factory creation (was in gimp_init()), since GimpPaintInfo
	now creates the GimpPaintOptions, which are GimpContexts, which
	need gimp->*_factory to be constructed.

	* app/tools/tool_manager.c: don't create tool_info->tool_options
	here (it's not the job of the tool_manager to set up the core
	paint system correctly, it must be already initialized before any
	tool_manager function is called).

	Made "Stroke Selection" and "Stroke Path" work the same way:

	* app/paint/gimppaintcore-stroke.[ch]: added new function
	gimp_paint_core_stroke_boundary() which strokes without using
	the PDB.

	* app/core/gimpimage-mask.c (gimp_image_mask_stroke): use it
	instead of using the PDB. Enables all available paint options for
	stroke operations. Fixes bug #119411.

	* app/gui/vectors-commands.c (vectors_stroke_vectors)
	* app/core/gimpimage-mask.c (gimp_image_mask_stroke): removed all
	code which tries to figure how to stroke and simply look at the
	active tool's tool_info->paint_info, since it is always set up
	correctly now.
2003-08-30 13:22:20 +00:00
Simon Budig d401ae3b63 fixed stupid int vs. float error that caused rounding errors when moving
2003-08-30  Simon Budig  <simon@gimp.org>

	* app/tools/gimpvectortool.[ch]: fixed stupid int vs. float
	error that caused rounding errors when moving in a zoomed view.
	Fixed drawing artefact when connecting strokes did not succeed.
2003-08-29 22:40:13 +00:00
Simon Budig df8ab68d45 further modifier changes. Mail to gimp-devel will follow.
2003-08-29  Simon Budig  <simon@gimp.org>

	* app/tools/gimpvectortool.[ch]: further modifier changes.
	Mail to gimp-devel will follow.
2003-08-29 19:55:32 +00:00
Simon Budig e7d0cfadc7 Do not modify the selection state of the anchors. When extending
2003-08-29  Simon Budig  <simon@gimp.org>

	* app/vectors/gimpbezierstroke.c: Do not modify the selection
	state of the anchors. When extending EXTEND_EDITABLE return
	the anchor created (not the handle at the end of the list)

	* app/tools/tools-enums.h: Added new mode-enum for the vector tool.
	* app/tools/tools-enums.c: regenerated

	* app/tools/gimpvectortool.[ch]: Implemented moving (Shortcuts
	ALT and ALT+CTRL. The whole assignment of modifiers right now
	gets revised. Right now you have to use the Tool options to
	switch between the modes of operation. Connecting strokes now
	works in Insert/Delete mode by clicking on startpoint and
	dragging to target endpoint.

	I will write a mail to gimp-devel when the shortcuts are
	setteled a bit more. Sorry for the inconvenience.
2003-08-29 15:17:06 +00:00
Sven Neumann 417221b6bf move the mnemonic from the old font selection widget to the new one. The
2003-08-29  Sven Neumann  <sven@gimp.org>

	* app/tools/gimptextoptions.c (gimp_text_options_gui): move the
	mnemonic from the old font selection widget to the new one. The
	old one will die soon. Fixes bug #120963.
2003-08-29 11:19:45 +00:00
Simon Budig d3879afcb9 libappte2003-08-28 Simon Budig <simon@gimp.org>
* app/tools/gimptransformtool.c: Modified the test when to paint
	the grid or not. It now checks for convexity of the bounding
	polygon.
2003-08-28 13:02:50 +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
Sven Neumann ee6dad2eb5 use GIMP_GRADIENT as prefix for the GimpGradientType enum.
2003-08-26  Sven Neumann  <sven@gimp.org>

	* app/core/core-enums.h: use GIMP_GRADIENT as prefix for the
	GimpGradientType enum.

	* app/core/core-enums.c
	* app/pdb/misc_tools_cmds.c
	* libgimp/gimpenums.h
	* plug-ins/pygimp/gimpenums.py
	* plug-ins/script-fu/script-fu-constants.c
	* tools/pdbgen/enums.pl: regenerated.

	* app/core/gimpdrawable-blend.c
	* app/tools/gimpblendoptions.c
	* plug-ins/pygimp/plug-ins/sphere.py
	* plug-ins/script-fu/scripts: changed accordingly.

	* libgimp/gimpcompat.h
	* plug-ins/script-fu/siod-wrapper.c: added compatibility defines
	for the old enum values.
2003-08-26 18:12:42 +00:00
Michael Natterer 17d1fb17f2 it's GIMP_INTERPOLATION_LINEAR, not just GIMP_LINEAR, argh. Fixes part 1
2003-08-26  Michael Natterer  <mitch@gimp.org>

	* app/tools/gimptransformoptions.c
	(gimp_transform_options_class_init): it's GIMP_INTERPOLATION_LINEAR,
	not just GIMP_LINEAR, argh. Fixes part 1 of bug #120424.
2003-08-26 17:33:25 +00:00
Simon Budig 47571782a7 Intruduce casting macro GIMP_ANCHOR.
2003-08-26  Simon Budig  <simon@gimp.org>

	* app/vectors/gimpanchor.h: Intruduce casting macro GIMP_ANCHOR.

	* app/tools/gimpvectortool.c
	* app/vectors/gimpstroke.c
	* app/vectors/gimpbezierstroke.c
	* app/vectors/gimpvectors-compat.c: Use it for code readibility.
2003-08-26 14:29:10 +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
Michael Natterer ba70ce9a10 changed GimpHelpFunc typedef: - renamed "const gchar *help_data" to "const
2003-08-23  Michael Natterer  <mitch@gimp.org>

	* libgimpwidgets/gimpwidgetstypes.h: changed GimpHelpFunc typedef:
	- renamed "const gchar *help_data" to "const gchar *help_id".
	- added "gpointer help_data".

	* libgimpwidgets/gimphelpui.[ch]: added "gpointer help_data" to
	gimp_help_connect(). Removed all fiddling with html links and
	treat all help IDs as opaque identifiers.

	* app/core/gimptoolinfo.[ch]: changed "help_data" member to
	"help_id".

	* app/widgets/gimpitemfactory.[ch]: removed the "help_path"
	parameter from gimp_item_factory_new() since we don't fiddle with
	html file paths any more. Simplifies menu item help a lot.
	Renamed "help_data" member of struct GimpItemFactoryEntry to
	"help_id".

	* app/gui/plug-in-menus.c: changed accordingly. 3rd party
	plug-ins' menu item help IDs are now encoded as
	"help_path:help_id".

	* app/gui/file-open-menu.c
	* app/gui/file-save-menu.c: when constructing the <Load> and
	<Save> menus, take the resp. procedures' locale_domain and
	help_path into account. Fixes translation of 3rd party menu items.
	Also do the right thing for load/save procs which are implemented
	as temporary procedures (they are impossible to implement
	currently but it's nice to do the right thing anyway...).

	* app/widgets/gimphelp-ids.h: added GIMP_HELP_MAIN identifier.

	* libgimpwidgets/gimpdialog.[ch]
	* libgimpwidgets/gimpwidgets.[ch]
	* libgimp/gimpui.c
	* app/display/gimpdisplayshell.c
	* app/gui/gui.c
	* app/gui/about-dialog.c
	* app/gui/color-notebook.c
	* app/gui/dialogs-constructors.c
	* app/gui/file-dialog-utils.[ch]
	* app/gui/gradients-commands.c
	* app/gui/help-commands.c
	* app/gui/image-menu.c
	* app/gui/menus.c
	* app/gui/preferences-dialog.c
	* app/gui/tips-dialog.c
	* app/tools/gimpcolorpickertool.c
	* app/tools/gimpcroptool.c
	* app/tools/gimpcurvestool.c
	* app/tools/gimphistogramtool.c
	* app/tools/gimpimagemaptool.c
	* app/tools/gimplevelstool.c
	* app/tools/gimpmeasuretool.c
	* app/tools/gimptransformtool.c
	* app/widgets/gimperrorconsole.c
	* app/widgets/gimphelp.[ch]
	* app/widgets/gimpmenufactory.[ch]
	* app/widgets/gimptexteditor.c
	* app/widgets/gimptoolbox.c
	* app/widgets/gimpviewabledialog.[ch]
	* plug-ins/common/CEL.c
	* plug-ins/common/CML_explorer.c
	* plug-ins/common/gee.c
	* plug-ins/common/gee_zoom.c
	* plug-ins/common/gqbist.c
	* plug-ins/common/spheredesigner.c
	* plug-ins/flame/flame.c
	* plug-ins/fp/fp_gtk.c
	* plug-ins/helpbrowser/helpbrowser.c
	* plug-ins/ifscompose/ifscompose.c
	* plug-ins/imagemap/imap_main.c: changed accordingly. Removed
	trailing whitespace all over the place.
2003-08-23 19:35:05 +00:00
Simon Budig 14d0ec8b2c app/tools/gimpvectortool.c OK, now valgrind is happy.
2003-08-22  Simon Budig  <simon@gimp.org>

	* app/tools/gimpvectortool.c
	* app/vectors/gimpbezierstroke.c: OK, now valgrind is happy.
2003-08-22 15:20:13 +00:00
Simon Budig d368e27e5a app/vectors/gimpstroke.c app/vectors/gimpvectors-preview.c
2003-08-22  Simon Budig  <simon@gimp.org>

	* app/vectors/gimpstroke.c
	* app/vectors/gimpvectors-preview.c
	* app/tools/gimptransformtool.c
	* app/tools/gimpvectortool.c: Added missing checking for NULL
	return values. Hopefully this fixes the crashes others are
	observing.
2003-08-22 13:00:25 +00:00
Michael Natterer fc20b3ac55 app/display/gimpdisplayshell.c app/gui/brush-select.c
2003-08-22  Michael Natterer  <mitch@gimp.org>

	* app/display/gimpdisplayshell.c
	* app/gui/brush-select.c
	* app/gui/channels-menu.c
	* app/gui/convert-dialog.c
	* app/gui/file-open-menu.c
	* app/gui/file-save-menu.c
	* app/gui/font-select.c
	* app/gui/gradient-select.c
	* app/gui/gui.c
	* app/gui/image-commands.c
	* app/gui/image-menu.c
	* app/gui/layers-menu.c
	* app/gui/menus.c
	* app/gui/palette-import-dialog.c
	* app/gui/palette-select.c
	* app/gui/palettes-commands.c
	* app/gui/pattern-select.c
	* app/gui/preferences-dialog.c
	* app/gui/qmask-commands.c
	* app/gui/qmask-menu.c
	* app/gui/templates-commands.c
	* app/gui/toolbox-menu.c
	* app/gui/vectors-menu.c
	* app/tools/[all tools].c
	* app/widgets/gimperrorconsole.c
	* app/widgets/gimpitemfactory.c
	* app/widgets/gimptoolbox.c
	* app/widgets/gimphelp-ids.h: added, fixed and updated lots of
	help IDs. Still unfinished.
2003-08-22 01:42:57 +00:00
Sven Neumann 37e2d34afe tools/gimpblendtool.c tools/gimpcroptool.c use
2003-08-22  Sven Neumann  <sven@gimp.org>

	* tools/gimpblendtool.c
	* tools/gimpcroptool.c
	* tools/gimpeditselectiontool.c: use gimp_tool_push_status_coords()
	for the initial status in order to reduce work for translators.
2003-08-22 01:24:58 +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
Henrik Brix Andersen 818cbe8279 test gimp_display_shell_get_show_guides() before drawing guide. Fixes
2003-08-21 Henrik Brix Andersen <brix@gimp.org>

* app/tools/gimpmovetool.c (gimp_move_tool_control): test
gimp_display_shell_get_show_guides() before drawing guide. Fixes
guide artefact seen when disabling drawing of guides while a guide
is selected by the move tool.
2003-08-21 17:40:29 +00:00
jaycox 012288a54d paint_core_interpolate now takes care of setting core->last_coords. Don't
* app/paint/gimppaintcore.c: paint_core_interpolate now takes care
	of setting core->last_coords.  Don't reset core->distance in
	paint_core_start (fixes problem with shift-click brush strokes).
	Improved brush placement for stroked selections in
	paint_core_interpolate.
	* app/paint/gimppaintcore-stroke.c: dont need to set
	core->last_coords anymore.
	* app/tools/gimppainttool.c: dont need to set core->last_coords
	anymore.  Set core->distance in gimp_paint_tool_button_press.
2003-08-21 10:44:11 +00:00
Simon Budig 9b5817fc25 Don't allow to create a new stroke when in in Insert/Delete Mode.
2003-08-21  Simon Budig  <simon@gimp.org>

        * app/tools/gimpvectortool.c: Don't allow to create a new stroke
        when in in Insert/Delete Mode.
2003-08-21 00:18:44 +00:00
Simon Budig 2a47fda7f0 Added enum for vector tool operation mode
2003-08-21  Simon Budig  <simon@gimp.org>

        * app/tools/tools-enums.h: Added enum for vector tool operation
        mode

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

        * app/tools/gimpvectoroptions.[ch]: Use new enum.
        Add "Polygonal" Option

        * app/tools/gimpvectortool.c: New Option "Polygonal" that
        places all newly generated handles at the position of their
        anchor, effectively ensuring that only polygons can be created.

        Cleaned up the editing states. It is now possible to move anchors
        in the Insert/Delete mode. Cleaned up the associated cursors.

        Fixed warning when Shift+Ctrl-Clicking on an inactive Anchor.
2003-08-20 22:19:37 +00:00