Commit Graph

46 Commits

Author SHA1 Message Date
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
Manish Singh 1a44f2126c cleanup, removed unecessary G_OBJECT() casts. Should do the same for
2003-01-05  Manish Singh  <yosh@gimp.org>

        * many files in app, modules and libgimp*: cleanup, removed unecessary
        G_OBJECT() casts. Should do the same for plug-ins, when more of them
        get undeprecated.
2003-01-05 22:07:10 +00:00
Sven Neumann ec6c98656e bumped the version number to 1.3.12.
2003-01-03  Sven Neumann  <sven@gimp.org>

	* configure.in: bumped the version number to 1.3.12.

	* app/display/Makefile.am
	* app/display/gimpdisplayshell-cursor.[ch]
	* app/display/gimpdisplayshell-title.[ch]
	* app/display/gimpdisplayshell-transform.[ch]: new files with code
	that used to live in gimpdisplayshell.c.

	* app/display/gimpdisplay-foreach.c
	* app/display/gimpdisplay.c
	* app/display/gimpdisplayshell-callbacks.c
	* app/display/gimpdisplayshell-handlers.c
	* app/display/gimpdisplayshell-selection.c
	* app/display/gimpdisplayshell.[ch]
	* app/tools/gimpbezierselecttool.c
	* app/tools/gimpcroptool.c
	* app/tools/gimpdrawtool.c
	* app/tools/gimpeditselectiontool.c
	* app/tools/gimpfuzzyselecttool.c
	* app/tools/gimpmovetool.c
	* app/tools/gimptool.c: changed accordingly.
2003-01-03 18:01:30 +00:00
Michael Natterer fa537489d7 removed gdisp->scale, gdisp->dot_for_dot, the scaling marcos and the
2002-06-27  Michael Natterer  <mitch@gimp.org>

	* app/display/gimpdisplay.[ch]: removed gdisp->scale,
	gdisp->dot_for_dot, the scaling marcos and the
	gdisplay_[un]transform[_f]() functions.

	* app/display/gimpdisplayshell.[ch]: added them here. Named the
	transform functions gimp_display_shell_[un]transform_xy[_f]().

	Made the gimp_display_shell_[un]transform_coords() functions copy
	all values of the GimpCoords struct, not just x and y.

	* app/display/gimpstatusbar.[ch]: keep a pointer to
	GimpDisplayShell, not GimpDisplay.

	* app/display/gimpdisplayshell-callbacks.c
	* app/display/gimpdisplayshell-render.c
	* app/display/gimpdisplayshell-scale.c
	* app/display/gimpdisplayshell-scroll.c
	* app/display/gimpdisplayshell-selection.c
	* app/display/gimpnavigationview.c
	* app/gui/image-commands.c
	* app/gui/info-window.c
	* app/gui/select-commands.c
	* app/gui/view-commands.c
	* app/tools/gimpbezierselecttool.c
	* app/tools/gimpcroptool.c
	* app/tools/gimpdrawtool.c
	* app/tools/gimpeditselectiontool.c
	* app/tools/gimpmagnifytool.c
	* app/tools/gimpmeasuretool.c
	* app/tools/gimpmovetool.c
	* app/tools/gimppainttool.c
	* app/tools/gimppathtool.c
	* app/tools/gimprotatetool.c
	* app/tools/gimpscaletool.c
	* app/tools/gimpvectortool.c: changed accordingly.

	* app/gui/layers-commands.c: if(gimage->selection_mask) is always
	TRUE, use if(!gimp_image_mask_is_empty(gimage)) instead.

	* app/tools/gimpfuzzyselecttool.[ch]: moved global variables
	to the object struct.
2002-06-26 22:16:59 +00:00
Michael Natterer a74a8997b4 devel-docs/Makefile.am new file documenting the core's include policy.
2002-05-03  Michael Natterer  <mitch@gimp.org>

	* devel-docs/Makefile.am
	* devel-docs/includes.txt: new file documenting the core's
	include policy.

	* HACKING: mention it here.

	* libgimptool/gimptooltypes.h: removed GimpToolOptions here.

	* app/core/core-types.h: and added it here. This is a temp hack
	needed because GimpToolInfo needs to know the GimpToolOptions
	type.

	* libgimpproxy/gimpproxytypes.h: regenerated.

	* libgimptool/gimptoolmodule.h: don't include gimptooltypes.h here...
	* libgimptool/gimptoolmodule.c: ...but here.

	* app/config/gimpconfig-params.c: include "libgimpbase/gimpbase.h"
	entirely, not single files from it.

	* app/core/gimp.c
	* app/core/gimpcontext.c
	* app/core/gimpcoreconfig.c
	* app/core/gimpdatafactory.c
	* app/core/gimpdocuments.c
	* app/core/gimpdrawable-blend.c
	* app/core/gimpdrawable-bucket-fill.c
	* app/core/gimpdrawable-offset.c
	* app/core/gimpdrawable-transform.c
	* app/core/gimpdrawable.c
	* app/core/gimpedit.c
	* app/core/gimpimage-convert.c
	* app/core/gimpimage-crop.c
	* app/core/gimpimage-duplicate.c
	* app/core/gimpimage-guides.c
	* app/core/gimpimage-mask.c
	* app/core/gimpimage-merge.c
	* app/core/gimpimage-new.c
	* app/core/gimpimage-projection.c
	* app/core/gimpimage-qmask.c
	* app/core/gimpimage-resize.c
	* app/core/gimpimage-scale.c
	* app/core/gimpimage.c
	* app/core/gimpitem.c
	* app/core/gimpmodules.c
	* app/core/gimppaintinfo.c
	* app/core/gimpparasite.c
	* app/core/gimppreviewcache.c
	* app/core/gimptoolinfo.c
	* app/core/gimpunit.c: include "core-types.h" and no other types file.

	* app/display/gimpdisplay.c
	* app/display/gimpdisplayshell-callbacks.c
	* app/display/gimpdisplayshell.c: include "tools/tools-types.h"
	instead of "libgimptool/gimptooltypes.h", warn about inclusion
	on "gui/gui-types.h"

	* app/file/file-open.c
	* app/file/file-save.c: don't include "libgimptool/gimptooltypes.h".

	* app/gui/about-dialog.c
	* app/gui/brush-select.c
	* app/gui/brushes-commands.c
	* app/gui/color-select.c
	* app/gui/data-commands.c
	* app/gui/device-status-dialog.c
	* app/gui/dialogs.c
	* app/gui/gradients-commands.c
	* app/gui/help-commands.c
	* app/gui/info-window.c
	* app/gui/palettes-commands.c
	* app/gui/patterns-commands.c
	* app/gui/resize-dialog.c
	* app/gui/tips-dialog.c
	* app/gui/tool-options-dialog.c: include "gui-types.h" and no
	other types file.

	* 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-stroke.c
	* app/paint/gimppaintcore.c
	* app/paint/gimppaintoptions.c
	* app/paint/gimppencil.c
	* app/paint/gimpsmudge.c
	* app/paint/paint.c: include "paint-types.h" and no other types file.

	* app/pdb/pdb-types.h: don't include "libgimptool/gimptooltypes.h".

	* app/plug-in/plug-in-progress.c: warn about inclusion of
	"display/display-types.h"

	* app/tools/tools-types.h: include "libgimptool/gimptooltypes.h".

	* app/tools/gimpairbrushtool.c
	* app/tools/gimpbezierselecttool.c
	* app/tools/gimpblendtool.c
	* app/tools/gimpbrightnesscontrasttool.c
	* app/tools/gimpbucketfilltool.c
	* app/tools/gimpbycolorselecttool.c
	* app/tools/gimpclonetool.c
	* app/tools/gimpcolorbalancetool.c
	* app/tools/gimpcolorpickertool.c
	* app/tools/gimpconvolvetool.c
	* app/tools/gimpcroptool.c
	* app/tools/gimpcurvestool.c
	* app/tools/gimpdodgeburntool.c
	* app/tools/gimpdrawtool.c
	* app/tools/gimpeditselectiontool.c
	* app/tools/gimpellipseselecttool.c
	* app/tools/gimperasertool.c
	* app/tools/gimpfliptool.c
	* app/tools/gimpfreeselecttool.c
	* app/tools/gimpfuzzyselecttool.c
	* app/tools/gimphistogramtool.c
	* app/tools/gimphuesaturationtool.c
	* app/tools/gimpinktool.c
	* app/tools/gimplevelstool.c
	* app/tools/gimpmagnifytool.c
	* app/tools/gimpmeasuretool.c
	* app/tools/gimpmovetool.c
	* app/tools/gimppaintbrushtool.c
	* app/tools/gimppainttool.c
	* app/tools/gimppathtool.c
	* app/tools/gimppenciltool.c
	* app/tools/gimpperspectivetool.c
	* app/tools/gimpposterizetool.c
	* app/tools/gimprectselecttool.c
	* app/tools/gimprotatetool.c
	* app/tools/gimpscaletool.c
	* app/tools/gimpselectiontool.c
	* app/tools/gimpsheartool.c
	* app/tools/gimpsmudgetool.c
	* app/tools/gimptexttool.c
	* app/tools/gimpthresholdtool.c
	* app/tools/gimptoolcontrol.c
	* app/tools/gimptoolcontrol.h
	* app/tools/gimptransformtool.c
	* app/tools/gimpvectortool.c
	* app/tools/tools.c: include "tools-types.h" and no other types file,
	warn about inclusion of "gui/gui-types.h".

	* app/widgets/gimpcolorpanel.c
	* app/widgets/gimptoolbox-color-area.c: warn about inclusion of
	"gui/gui-types.h".

	* app/xcf/xcf-load.c
	* app/xcf/xcf.c: don't include "libgimptool/gimptooltypes.h".

	Split tool-safe-mode up in two files, one including libgimpproxy,
	one libgimp.

	* plug-ins/tools/Makefile.am
	* plug-ins/tools/tool-safe-mode-plug-in.[ch]: new files including
	libgimp/ stuff only.

	* plug-ins/tools/tool-safe-mode.[ch]: include libgimpproxy/ and
	libgimptool/ but don't include libgimp/ because of conflicting
	declarations.

	Unrelated:

	* app/tools/gimpclonetool.c: create the clone core so we don't crash.

	* app/gui/file-open-dialog.c: changed the way we create previews
	so that only out-of-date previews are created on a click in the
	preview area. Unconditional creation can still be forced by
	<Ctrl>+click. Changed the tooltip to document this.
2002-05-03 12:45:22 +00:00
Nate Summers 69ccb4d370 massive tool plugin changes 2002-03-29 03:50:29 +00:00
Michael Natterer affc31007e changed gimp_image_mask_select_channel() to not take "drawable" and
2002-03-03  Michael Natterer  <mitch@gimp.org>

	* app/core/gimpimage-mask-select.[ch]: changed
	gimp_image_mask_select_channel() to not take "drawable" and
	"sample_merged" parameters (which are silly in some contexts) but
	simply the offsets of the passed channel.

	* app/gui/channels-commands.c
	* app/tools/gimpbezierselecttool.c
	* app/tools/gimpfuzzyselecttool.c
	* app/tools/gimpiscissorstool.c: changed accordingly.

	* app/tools/gimpdrawtool.[ch]: chaged gimp_draw_tool_draw_lines()
	and _draw_strokes() to take an additional "use_offsets" parameter
	like the other drawing functions.

	* app/path_curves.c
	* app/tools/gimpvectortool.c: changed accordingly.

	* app/paint/gimppaintcore.c: removed #if 0'ed code which was
	identical to other functions.

	* app/tools/gimpselectiontool.c: use the GimpEditSelectionTool's
	"arrow_key_func" so it's now possible to keyboad-move the current
	layer and selection with all selection tool. Needs some more
	tweaking...

	* app/tools/gimpiscissorstool.[ch]
	* app/tools/gimpvectortool.[ch]: derive them from GimpSelectionTool
	to make the modifier key <-> tool options interaction work. Ported
	IScissors to the new way the draw_tool works.
2002-03-03 10:38:37 +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
Michael Natterer 5153abafa6 return the corrent value in g_retuen_val_if_fail().
2002-02-21  Michael Natterer  <mitch@gimp.org>

	* app/tools/gimpdrawtool.c: return the corrent value in
	g_retuen_val_if_fail().

	* app/tools/gimppainttool.c: removed some more painting logic...

	* app/paint/gimppaintcore.[ch]: ...and added it here so the PDB
	wrappers can use it too. Added "gboolean use_pressure" which needs
	to be set by GimpPaintTool so we don't need access to GdkDevices.
2002-02-21 11:01:12 +00:00
Michael Natterer bec4c72534 app/tools/tools-types.h chain up unconditionally in control(),
2002-02-18  Michael Natterer  <mitch@gimp.org>

	* app/tools/tools-types.h
	* app/tools/*.[ch]: chain up unconditionally in control(),
	s/ToolAction/GimpToolAction/g, s/ToolState/GimpToolState/g.

	* app/tools/gimpbezierselecttool.c
	* app/tools/gimpinktool.c
	* app/tools/gimppainttool.c: don't touch tool->paused_count
	(setting it to 0 was a hack which should no longer be needed).

	* app/tools/gimpdrawtool.c: check if the draw tool has actually
	been started (draw_tool->gdisp != NULL) before calling it's
	draw() function.

	* app/tools/tool_manager.c: simplified tool_manager_control_active():
	simply call gimp_tool_control() if gdisp == tool->gdisp.

	* app/tools/gimptool.[ch]: gimp_tool_control(): do all the PAUSE,
	RESUME and HALT voodoo here.

	* app/tools/gimppainttool.c: implemented #9902 (Drawing straight
	lines does not work between different views). It's an evil hack,
	but clearly marked in the source.
2002-02-18 17:00:09 +00:00
Michael Natterer 2ccbf2a43d Fixed #34633 (wheel mouse zooming leaves straigth-line helpline on image)
2002-02-17  Michael Natterer  <mitch@gimp.org>

	Fixed #34633 (wheel mouse zooming leaves straigth-line helpline on
	image) and maybe some other stuff caused by the misbehaviour
	described below:

	* app/tools/tools-types.h
	* app/tools/tool_manager.c (tool_manager_control_active):

	Removed the "PAUSED" ToolState.

	The possible state transitions were INACTIVE <-> ACTIVE <-> PAUSED,
	where the ACTIVE <-> PAUSED transition was done only in the
	tool_manager, causing the tools's control() never to be called
	when the tool was INACTIVE.

	The GimpPaintTool however wants to draw on the display when it's
	INACTIVE, and of course wants to be suspended/resumed correctly
	while fiddling with display repainting/scaling/...

	The PAUSED state was also redundant information, since
	(tool->paused_count > 0) is the same information (only more
	correct and independent of tool activity).

	* app/display/gimpdisplayshell-scale.[ch]: suspend/resume the
	active tool around _all_ changes to the display's "scale" and
	"offset" fields.  Added new function
	gimp_display_shell_scale_by_values() which does that and is called
	from all places which need to change these values.

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

	Unrelated stuff:

	* app/paint/gimpairbrush.c: added a #warning FIXME.

	* app/tools/gimpdrawtool.c: made a warning more verbose.

	* app/tools/gimppainttool.c: put one more drawable offset
	calculation in { .. }, will make a utility function out of it...
2002-02-17 11:46:39 +00:00
Michael Natterer 758de05b72 made the gimp_object_get_memsize() debugging output configurable by a
2002-02-06  Michael Natterer  <mitch@gimp.org>

	* app/core/gimpobject.c: made the gimp_object_get_memsize()
	debugging output configurable by a global "gimp_debug_memsize"
	boolean.

	* app/display/gimpdisplay.c: removed duplicated prototype.

	* app/display/gimpdisplayshell.[ch]: renamed the various cursor
	functions to be more consistent and shorter. Compress window title
	updates by adding a "gboolean title_dirty" and updating the title
	in gimp_display_shell_flush().  Added "%m" (memory size) to the
	possible title string substitutions.

	* app/display/gimpdisplay-foreach.c
	* app/display/gimpdisplayshell-handlers.c
	* app/tools/gimpfuzzyselecttool.c
	* app/tools/gimptool.c: changed accordingly.

	* app/display/gimpdisplayshell-callbacks.c: forgot to grab the
	pointer when dragging guides from the rulers. Coincidentially,
	this also fixes the buggy offset between guide and mouse
	pointer...
	Cleaned up the main tool event callback a but more.

	* app/widgets/gimppreview.c
	* app/gui/commands.c: set the new global "gimp_debug_memsize"
	toggle to TRUE while calling gimp_object_get_memsize().

	* app/gui/preferences-dialog.c: added a image title example
	containing the new "%m" feature.

	* docs/gimprc-1.3.5.in: document "%m" in the manpage.

	* app/tools/gimpbezierselecttool.c: reordered some statements.

	* app/tools/gimpdrawtool.[ch]: store the GimpDisplay passed to
	gimp_draw_tool_start() in draw_tool->gdisp and use it for
	coordinate transfomration. This way we can paint on a display
	which is not tool->gdisp.

	* app/tools/gimppainttool.c: changed the gimp_draw_tool_foo()
	calls needed to make the straight_line preview work in a way
	that does not interfere with paint_tool subclasses which want
	to do their own drawing (like the clone tool).

	Also changed the paint_tools PRETRACE_PAINT and POSTTRACE_PAINT
	flags usage in a way that subclasses can use them without major
	hackery: don't simply wrap gimp_display_flush_now() with
	PRETRACE/POSTTRACE calls, but wrap the actual painting calls, so
	subclasses are able to do useful things with paint_tool->*_coords.

	* app/tools/gimpclonetool.c: removed poking around in draw_tool
	internals and simply suspend()/resume() it in
	PRETRACE_PAINT/POSTTRACE_PAINT to get the clone_src indicator
	drawn correctly.
2002-02-07 11:33:01 +00:00
Michael Natterer 0440bbbf5a app/display/Makefile.am app/display/display-types.h new widget derived
2002-02-03  Michael Natterer  <mitch@gimp.org>

	* app/display/Makefile.am
	* app/display/display-types.h
	* app/display/gimpstatusbar.[ch]: new widget derived from
	GtkStatusbar.  Contains the coordinates display, a progress bar
	which is also used for status message display and a cancel button.
	Added a simplified API for pushing/popping messages which takes a
	string as context_id and does the conversion to guint internally
	on each call.

	* app/display/gimpdisplayshell.[ch]: removed the status bar code.

	* app/display/gimpdisplayshell-callbacks.c
	* app/display/gimpdisplayshell-handlers.c
	* app/display/gimpdisplayshell-scale.c
	* app/gui/view-commands.c
	* app/gimpprogress.c: changed accordingly.

	Removed knowledge about GimpDisplayShell from tools:

	* app/tools/gimptool.[ch]: added gimp_tool_push_status() and
	gimp_tool_pop_status() so tools don't need to fiddle with
	display details.

	* app/tools/gimpdrawtool.[ch]: pass a GimpDisplay instead of
	a GdkWindow to gimp_draw_tool_start() (the window passed was
	always gdisp->shell->canvas->window).

	* app/tools/gimpbezierselecttool.c
	* app/tools/gimpblendtool.[ch]
	* app/tools/gimpclonetool.c
	* app/tools/gimpcolorpickertool.c
	* app/tools/gimpcroptool.[ch]
	* app/tools/gimpeditselectiontool.c
	* app/tools/gimpfreeselecttool.c
	* app/tools/gimpfuzzyselecttool.c
	* app/tools/gimpiscissorstool.c
	* app/tools/gimpmagnifytool.c
	* app/tools/gimpmeasuretool.[ch]
	* app/tools/gimpmovetool.c
	* app/tools/gimppainttool.[ch]
	* app/tools/gimppathtool.c
	* app/tools/gimprectselecttool.[ch]
	* app/tools/gimptransformtool.c: changed accordingly:

	- pass GimpDisplay to gimp_draw_tool_start().
	- use GimpTool's new status push/pop functions.
	- removed the statusbar context_id from all tool structs.

	* app/gui/dialogs-constructors.[ch]: a bit cleanup in preparation
	of dockable editor dialogs.
2002-02-03 12:10:23 +00:00
Michael Natterer 80492e66ed added stock *items* (not only icons) for all tools so they can be used as
2001-11-22  Michael Natterer  <mitch@gimp.org>

	* libgimpwidgets/gimpstock.c: added stock *items* (not only icons)
	for all tools so they can be used as action buttons.

	* app/tools/gimptransformtool.[ch]: added
	transform_tool->use_center so subclasses can switch on/off center
	detection/cursor_update . Added an oper_update() implementation
	and figure the current handle out there. Reordered button_press()
	so we don't need to call it recursively.

	* app/tools/gimpperspectivetool.c
	* app/tools/gimprotatetool.c
	* app/tools/gimpscaletool.c
	* app/tools/gimpsheartool.c: use the new stock items instead of
	_("Rotate") etc.

	* app/tools/gimpperspectivetool.c
	* app/tools/gimpscaletool.c: allow the whole thing being dragged
	around by handling the center separately.

	* app/tools/gimpdrawtool.c: gimp_draw_tool_on_handle(): need to
	use the radius, not the diameter to check if being over a
	GIMP_HANDLE_CIRCLE handle.
2001-11-22 14:28:39 +00:00
Michael Natterer a08f3ac001 use "gimp-item-data" instead of "user_data" as data key when attaching
2001-11-22  Michael Natterer  <mitch@gimp.org>

	* libgimpwidgets/gimpwidgets.[ch]: use "gimp-item-data" instead of
	"user_data" as data key when attaching values to radio buttons or
	menu items. (For backward compat, attach "user_data" additionally,
	but don't use it to _get_data()).
	Added gimp_radio_group_set_active() which works like
	gimp_options_menu_set_history() and sets the active item by
	attached "gimp-item-data" value.

	* app/gui/brush-select.c
	* app/gui/file-new-dialog.c
	* app/gui/info-window.c
	* app/gui/preferences-dialog.c
	* app/gui/resolution-calibrate-dialog.c
	* app/tools/gimpbucketfilltool.c
	* app/tools/gimpselectiontool.c
	* app/tools/paint_options.c
	* app/tools/selection_options.c
	* app/widgets/gimplayerlistview.c: removed all kinds of
	"user_data" stuff and evil hacks to find a radio button by the
	value it represents (simply call gimp_radio_group_set_active()).

	* app/tools/gimpdrawtool.c: added a g_return_if_fail().

	* app/tools/gimpfliptool.c: don't set draw_tool_class->draw to NULL,

	* app/tools/gimptransformtool.[ch]: fixed some stuff i broke when
	removing the old "interactive" boolean (there is no
	non-interactive transform tool any more).  Put the info_dialog
	pointer and the old_trans_info array into the GimpTransformTool
	instance. Added gimp_transform_tool_info_dialog_connect(). Don't
	include any subclasses any more.

	* app/tools/gimpperspectivetool.c
	* app/tools/gimprotatetool.c
	* app/tools/gimpscaletool.c
	* app/tools/gimpsheartool.c: use
	gimp_transform_tool_info_dialog_connect() to create and connect
	the info dialogs' action_area.
2001-11-22 13:01:26 +00:00
Michael Natterer 9ceb205cec app/tools/gimpdrawtool.[ch] app/tools/gimppainttool.[ch]
2001-11-20  Michael Natterer  <mitch@gimp.org>

	* app/tools/gimpdrawtool.[ch]
	* app/tools/gimppainttool.[ch]
	* app/tools/gimprectselecttool.[ch]
	* app/tools/gimptool.[ch]
	* app/tools/gimptransformtool.[ch]: use simple virtual functions
	instead of signals for all tools because they are much faster and
	don't need to be signals at all.
2001-11-20 14:20:17 +00:00
Michael Natterer f901b46da6 restructured the new draw utility functions and added
2001-11-15  Michael Natterer  <mitch@gimp.org>

	* app/tools/gimpdrawtool.[ch]: restructured the new draw utility
	functions and added gimp_draw_tool_draw_handle() and
	gimp_draw_tool_on_handle().

	* app/tools/gimpbezierselecttool.c
	* app/tools/gimpblendtool.c
	* app/tools/gimpcroptool.[ch]
	* app/tools/gimpiscissorstool.c
	* app/tools/gimpmeasuretool.c
	* app/tools/gimppainttool.c
	* app/tools/gimppathtool.c
	* app/tools/gimptransformtool.c: use the new functions all over
	the place so handle drawing and mouse_over detection work the same
	for all tools.
2001-11-15 21:17:36 +00:00
Michael Natterer 242b9041a2 use gimp_display_shell_[install|remove]_override_cursor() to set the
2001-11-12  Michael Natterer  <mitch@gimp.org>

	* app/display/gimpdisplayshell-callbacks.c: use
	gimp_display_shell_[install|remove]_override_cursor() to set the
	middle mouse button move cursor so we get the original cursor back
	after scrolling.

	* app/tools/gimpdrawtool.[ch]: added lots of drawing functions
	(gimp_draw_tool_draw_rectangle() etc.) which work in image (or
	active drawable) coordinates.

	* app/tools/gimpblendtool.c
	* app/tools/gimpclonetool.c
	* app/tools/gimpcolorpickertool.c
	* app/tools/gimpeditselectiontool.c
	* app/tools/gimpellipseselecttool.c
	* app/tools/gimpfreeselecttool.c
	* app/tools/gimpiscissorstool.c
	* app/tools/gimpmagnifytool.c
	* app/tools/gimpmeasuretool.c
	* app/tools/gimppainttool.c
	* app/tools/gimppathtool.c
	* app/tools/gimprectselecttool.c
	* app/tools/gimptransformtool.[ch]
	* app/tools/path_tool.[ch]: use the new functions. Removed tons of
	gdk_draw_foo() and gdisplay_transform_foo() calls. Most drawing
	functions look *much* nicer now. Ported some tools to detect
	handle clicks in display coordinates while I was on it, misc
	fixes.

	* app/tools/gimpmovetool.[ch]: derive from GimpDrawTool instead
	of drawing manually.
2001-11-12 14:45:58 +00:00
Michael Natterer 02fde14c95 build display/ before tools/.
2001-11-08  Michael Natterer  <mitch@gimp.org>

	* app/Makefile.am: build display/ before tools/.

	* app/devices.c: devices_check_change(): added all events
	which have a GdkDevice pointer.

	* app/gimpprogress.c: include "display-types.h" instead of
	"core-types.h".

	* app/core/Makefile.am
	* app/core/gimpdrawable-bucket-fill.[ch]: new files: the bucket_fill
	stuff taken from tools/gimpbucketfilltool.[ch].

	* app/core/core-types.h: added "BucketFillMode".

	* app/core/gimpimage-mask-select.[ch]: cleanup.

	* app/core/gimpmarshal.list: added more marshallers for GimpTool's
	new signal signatures.

	* app/core/gimpmarshal.[ch]: regenerated.

	* app/display/Makefile.am
	* app/display/gimpdisplayshell-dnd.[ch]
	* app/display/gimpdisplayshell-layer-select.[ch]: new files: the
	canvas drop callbacks from gimpdisplayshell-callbacks.[ch] and
	the stuff formerly knows as gui/layer-select.[ch].

	* app/display/gimpdisplay.h: don't include "gui/gui-types.h".

	* app/display/gximage.c: include "display-types.h".

	* app/display/gimpdisplay-foreach.c
	* app/display/gimpdisplayshell.[ch]: call gdsplay_delete(), don't
	destroy the shell widget.

	* app/gui/Makefile.am
	* app/gui/layer-select.[ch]: removed.

	* app/gui/gradients-commands.c: fixed "Save as POV" fprintf()s.

	* app/gui/preferences-dialog.c: removed the layer_select stuff
	because it is useless with the new preview system.

	* app/gui/tool-options-dialog.c: send the correct data to the
	close_callback.

	* app/gui/tools-commands.c: changed to follow the new
	gimp_tool_initialize() semantics (see below).

	Tool & canvas event handling chainsawing:

	* app/tools/tools-types.h: new struct GimpCoords which contains
	x, y, pressure, tilt etc.

	* app/display/gimpdisplayshell-callbacks.[ch]: added utility
	functions which transparently retreive the current event's
	GimpCoords or take it from the device directly if the event has
	none. Pass GimpCoords _in_image_coordinates_ to all tool
	functions.

	Most important: don't pass GdkEvents and display coordinates to
	tools any more.

	* app/tools/gimptool.[ch]: changed virtual functions to take
	GimpCoords, time and state separately instead of GdkEvents.

	* app/tools/gimpbezierselecttool.c
	* app/tools/gimpblendtool.c
	* app/tools/gimpbucketfilltool.[ch]
	* app/tools/gimpbycolorselecttool.c
	* app/tools/gimpclonetool.c
	* app/tools/gimpcolorpickertool.c
	* app/tools/gimpconvolvetool.c
	* app/tools/gimpcroptool.[ch]
	* app/tools/gimpcurvestool.c
	* app/tools/gimpdodgeburntool.c
	* app/tools/gimpdrawtool.c
	* app/tools/gimpeditselectiontool.[ch]
	* app/tools/gimperasertool.c
	* app/tools/gimpfliptool.c
	* app/tools/gimpfreeselecttool.[ch]
	* app/tools/gimpfuzzyselecttool.c
	* app/tools/gimpinktool.c
	* app/tools/gimpiscissorstool.c
	* app/tools/gimpmagnifytool.c
	* app/tools/gimpmeasuretool.c
	* app/tools/gimpmovetool.c
	* app/tools/gimppainttool.c
	* app/tools/gimppathtool.[ch]
	* app/tools/gimprectselecttool.c
	* app/tools/gimprotatetool.c
	* app/tools/gimpselectiontool.[ch]
	* app/tools/gimpsmudgetool.c
	* app/tools/gimptexttool.c
	* app/tools/gimptransformtool.[ch]
	* app/tools/path_tool.[ch]
	* app/tools/selection_options.c: tons and tons of changes:

	- changed to use the new virtual function parameters.
	- removed zillions of gdisplay_untransform_coords().
	- get the active drawable's offsets manually in many cases.
	  (questionable, but IMHO ok because it's obvious and not simply a
	  "TRUE" passed to some function)
	- reordered some functions to be consistent across tools.
	- some tools had to be changed to work on image coords, not
	  display ones (esp. crop).
	- fixed strange rotate tool behaviour which should be backported
	  to stable.
	- some stuff i came across.
	- indentation and other paranoia.
	- rounding of coordinated may be broken in some tools.
	- new bugs guaranteed.

	* app/tools/tool_manager.[ch]: new semantic of
	tool_manager_initialize_active() (looked at the places where it
	was used from and put common code together). Should be a bit
	better now :)

	* app/tools/gimpblendtool.c
	* app/tools/transform_options.c: use the new GTK+ feature that a
	widget (toggle button) can be a frame's title for this tools' tool
	options.

	* app/widgets/widgets-types.h: stuff.

	* themes/Default/gtkrc: s/GtkDialog/GimpDialog/.

	* tools/pdbgen/Makefile.am: don't scan tools/gimpbucketfilltool.h
	any more.

	* tools/pdbgen/enums.pl: regenerated.

	* tools/pdbgen/pdb/tools.pdb: changed bucket_fill wrapper.

	* app/pdb/tools_cmds.c: regenerated.
2001-11-08 19:14:51 +00:00
Michael Natterer cbce339039 fscking broken pipe... 2001-10-31 21:20:09 +00:00
Michael Natterer 05e15eb1cc Cleanup weekend...
2001-10-29  Michael Natterer  <mitch@gimp.org>

	Cleanup weekend...

	* app/app_procs.c: pass "no_interface" to gimp_new().

	* app/core/gimp.[ch]: added "gboolean no_interface" and the
	load_procs and save_procs GSLists.

	* app/core/gimptoolinfo.[ch]: added a "Gimp" pointer to the
	GimpToolInfo object so more functions find their context without
	accessing the global "the_gimp" variable.

	* app/display/display-types.h: removed the GDisplay -> GimpDisplay
	typedef.

	* app/display/gimpdisplay.c: look at gimp->no_interface, don't
	include "appenv.h".

	* app/file/file-open.[ch]
	* app/file/file-save.[ch]: don't use "the_gimp" any more. Instead,
	pass around lots of "Gimp" pointers. Removed the global load_procs
	and save_procs variables here. Use access() to find out whether a
	file is readable/writable, removed the manual voodoo and it's
	Win32 wrappers. Added an optional (can be NULL) "PlunInProcDef"
	parameter to file_save(), removed file_save_with_proc().

	* app/gui/menus.c: Use the unused "gpointer data" parameter of the
	GtkItemFactory callbacks to pass a "Gimp" pointer to all of them.
	This reduces the usage of the global "the_gimp" hack to zero
	in app/gui/... yeah.

	* app/gui/channels-commands.c
	* app/gui/edit-commands.c
	* app/gui/file-commands.c
	* app/gui/image-commands.c
	* app/gui/layers-commands.c
	* app/gui/palettes-commands.c
	* app/gui/select-commands.c
	* app/gui/test-commands.c
	* app/gui/tools-commands.c
	* app/gui/view-commands.c: use the passed "Gimp" pointer.

	* app/gui/color-area.[ch]
	* app/gui/convert-dialog.c
	* app/gui/dialogs-constructors.c
	* app/gui/file-new-dialog.[ch]
	* app/gui/file-open-dialog.[ch]
	* app/gui/file-save-dialog.[ch]
	* app/gui/gui.c
	* app/gui/info-window.[ch]
	* app/gui/module-browser.[ch]
	* app/gui/palette-editor.c
	* app/gui/palette-import-dialog.[ch]
	* app/gui/paths-dialog.c
	* app/gui/preferences-dialog.[ch]
	* app/gui/resize-dialog.[ch]
	* app/gui/tool-options-dialog.[ch]
	* app/gui/toolbox.c: pass around lots more "Gimp" and
	"GimpContext" pointers and don't use "the_gimp" any more.

	* app/tools/gimptool.h: added a pointer to the corresponding
	GimpToolInfo object (which in turn has a pointer to a Gimp).

	* app/tools/tool_manager.[ch]: set the pointer after creating the
	tool object. Removed tool_manager_get_info_by_tool() as there is a
	tool->tool_info pointer now.

	* app/tools/gimpbezierselecttool.c
	* app/tools/gimpblendtool.c
	* app/tools/gimpbrightnesscontrasttool.c
	* app/tools/gimpclonetool.c
	* app/tools/gimpcolorbalancetool.c
	* app/tools/gimpcolorpickertool.c
	* app/tools/gimpconvolvetool.c
	* app/tools/gimpcroptool.c
	* app/tools/gimpcurvestool.c
	* app/tools/gimpdodgeburntool.c
	* app/tools/gimpdrawtool.c
	* app/tools/gimpeditselectiontool.c
	* app/tools/gimpellipseselecttool.c
	* app/tools/gimperasertool.c
	* app/tools/gimpfliptool.c
	* app/tools/gimphistogramtool.c
	* app/tools/gimphuesaturationtool.c
	* app/tools/gimpinktool.c
	* app/tools/gimplevelstool.c
	* app/tools/gimpmagnifytool.c
	* app/tools/gimpmeasuretool.c
	* app/tools/gimpmovetool.c
	* app/tools/gimppainttool.c
	* app/tools/gimppathtool.c
	* app/tools/gimpperspectivetool.c
	* app/tools/gimpposterizetool.c
	* app/tools/gimprectselecttool.c
	* app/tools/gimprotatetool.c
	* app/tools/gimpscaletool.c
	* app/tools/gimpsheartool.c
	* app/tools/gimptexttool.c
	* app/tools/gimpthresholdtool.c
	* app/tools/path_tool.c
	* app/tools/xinput_airbrush.c: s/GDisplay/GimpDisplay/g.
	Use tool->tool_info and tool_info->gimp in some places to get
	rid of using "the_gimp".

	Removing the remaining ones involves changing the tool options
	system and is scheduled next...

	* app/widgets/gimpdnd.c
	* app/widgets/gimpdocumentview.c: pass a "Gimp" pointer to all
	file_open_*() functions.

	* app/gdisplay_color.[ch]
	* app/gdisplay_color_ui.[ch]
	* app/image_map.[ch]
	* app/nav_window.[ch]
	* app/path.c
	* app/path_bezier.c
	* app/path_transform.h
	* app/qmask.[ch]: s/GDisplay/GimpDisplay/g

	* tools/pdbgen/pdb/fileops.pdb: load_procs and save_procs are
	members of the "Gimp" object now.

	* tools/pdbgen/pdb/plug_in.pdb: use gimp->no_interface, don't
	include "appenv.h".

	* app/pdb/fileops_cmds.c
	* app/pdb/plug_in_cmds.c: regenerated.
2001-10-29 11:47:11 +00:00
Michael Natterer f235eabbf1 app/Makefile.am app/disp_callbacks.[ch] app/gdisplay.[ch]
2001-09-26  Michael Natterer  <mitch@gimp.org>

	* app/Makefile.am
	* app/disp_callbacks.[ch]
	* app/gdisplay.[ch]
	* app/gdisplay_ops.[ch]
	* app/gximage.[ch]
	* app/image_render.[ch]
	* app/interface.[ch]
	* app/marching_ants.h
	* app/scale.[ch]
	* app/scroll.[ch]
	* app/selection.[ch]: removed.

	* app/display/Makefile.am
	* app/display/display-types.h
	* app/display/gimpdisplay-callbacks.[ch]
	* app/display/gimpdisplay-marching-ants.h
	* app/display/gimpdisplay-ops.[ch]
	* app/display/gimpdisplay-render.[ch]
	* app/display/gimpdisplay-scale.[ch]
	* app/display/gimpdisplay-scroll.[ch]
	* app/display/gimpdisplay-selection.[ch]
	* app/display/gimpdisplay.[ch]
	* app/display/gimpdisplayshell.[ch]
	* app/display/gximage.[ch]: added here.

	* app/[many files]
	* app/gui/[many files]
	* app/tools/*
	* app/widgets/[many files]: changed accordingly. Still very
	incomplete separation of the display stuff but it at least
	compiles.

	* tools/pdbgen/pdb.pl:
	* tools/pdbgen/pdb/display.pdb: s/GDisplay/GimpDisplay/,
	s/"gdisplay.h"/"display/gimpdisplay.h"/.

	* app/pdb/display_cmds.c: regenerated.
2001-09-25 23:23:09 +00:00
Michael Natterer 51f99c3259 app/plug_in.c libgimpbase/gimpwire.c removed GIOChannel
2001-08-30  Michael Natterer  <mitch@gimp.org>

	* app/plug_in.c
	* libgimpbase/gimpwire.c
	* libgimp/gimp.c: removed GIOChannel "channel->funcs->io_foo()"
	hacks and use plain g_io_channel_[read|write]_chars(). An
	additional g_io_channel_set_buffered (channel, FALSE); is needed
	to make the channels work in binary mode. Fixed misc other stuff
	in the GIOChannel code.

	* app/tools/gimpdrawtool.c
	* app/tools/gimpmovetool.c
	* app/tools/gimptransformtool.c
	* app/widgets/gimpdialogfactory.c
	* libgimpwidgets/gimpcolorarea.c
	* libgimp/gimpui.c: replaced some deprecated GDK functions.

	* app/gui/palette-editor.c: block the color_name entry's "changed"
	signal while setting it. Fixes invalid UTF-8 warnings.
2001-08-30 01:09:58 +00:00
Michael Natterer e2daae315b an evil temp_hack which lets GimpContext managing the active display
2001-08-14  Michael Natterer  <mitch@gimp.org>

	* app/gdisplay.h: an evil temp_hack which lets GimpContext managing
	the active display withoug including "gdisplay.h". Will go away as
	soon ad context properties are registered dynamically.

	* app/module_db.c: cleaned up the object code in preparation of
	moving it to core/.

	* app/path.c: connect to GimpImage's

	* app/core/gimpobject.[ch]: derive it from GObject, not from
	GtkObject any more (yeah :-)

	* app/core/*.c: #include <glib-object.h> instead of <gtk/gtk.h>,
	removed some remaining GtkObject-isms.

	(left in a few #include <gtk/gtk.h> where bigger changes are needed
	to get rid of the UI dependency).

	* app/core/core-types.h: #include <gdk-pixbuf/gdk-pixbuf.h> here
	temporarily.

	* app/core/gimp.c (gimp_create_display): unref the image after
	creating it's first display.

	* app/core/gimpbrush.[ch]: disabled the parts of the code which
	depend on GimpPaintTool.

	* app/core/gimpbrushgenerated.c
	* app/core/gimpbrushpipe.c: changed accordingly.

	* app/core/gimpcontext.[ch]: evil hack (see above) to manage the
	active display without including "gdisplay.h"

	* app/core/gimpimage-mask.[ch]: pass a context to
	gimage_mask_stroke() and get the current tool's PDB string from
	there.

	* app/core/gimpedit.c: changed accordingly.

	* app/core/gimpimage.c: use gimp_image_update() instead of
	gdisplays_update_full().

	* app/gui/color-area.c
	* app/gui/colormap-dialog.c
	* app/gui/dialogs-constructors.c
	* app/gui/edit-commands.c
	* app/gui/image-commands.c
	* app/gui/toolbox.c: changed accordingly (don't use Gtk methods on
	GObjects).

	* app/gui/menus.c: fix some const warnings by explicit casting.

	* app/tools/*.[ch]: ported all tools to GObject, some minor
	cleanup while i was on it.

	* app/widgets/gimpdialogfactory.[ch]: ported to GObject.

	* app/widgets/gimplayerlistview.h: added FOO_GET_CLASS() macro.

	* tools/pdbgen/app.pl: added a "widgets_eek" hack like "tools_eek"
	which inserts #include "widgets/widgets-types.h" before ordinary
	includes.

	* tools/pdbgen/pdb/brush_select.pdb
	* tools/pdbgen/pdb/edit.pdb
	* app/pdb/brush_select_cmds.c
	* app/pdb/edit_cmds.c: changed according to the stuff above.
2001-08-14 14:53:55 +00:00
Sven Neumann f5cfbd50da app/nav_window.c app/user_install.c app/pdb/color_cmds.c
2001-07-25  Sven Neumann  <sven@gimp.org>

	* app/nav_window.c
	* app/user_install.c
	* app/pdb/color_cmds.c
	* app/pdb/selection_cmds.c
	* app/tools/gimpbezierselecttool.c
	* app/tools/gimpblendtool.c
	* app/tools/gimpbucketfilltool.c
	* app/tools/gimpbycolorselecttool.c
	* app/tools/gimpclonetool.c
	* app/tools/gimpcolorpickertool.c
	* app/tools/gimpdrawtool.c
	* app/tools/gimpeditselectiontool.c
	* app/tools/gimpellipseselecttool.c
	* app/tools/gimpfreeselecttool.c
	* app/tools/gimpfuzzyselecttool.c
	* app/tools/gimphuesaturationtool.c
	* app/tools/gimpiscissorstool.c
	* app/tools/gimppainttool.c
	* app/tools/gimprectselecttool.c
	* app/tools/gimptexttool.c
	* app/tools/gimptool.c
	* app/tools/paint_options.c
	* app/tools/selection_options.c
	* app/tools/tool_manager.c
	* app/tools/transform_options.c
	* app/widgets/gimpdnd.c
	* tools/pdbgen/pdb/color.pdb
	* tools/pdbgen/pdb/selection.pdb: use GObject functions.
2001-07-25 00:27:41 +00:00
Michael Natterer 06b16890ba Port to glib/gtk+ 2.0 episode I (every segfault has it's beginning)
2001-07-24  Michael Natterer  <mitch@gimp.org>

	Port to glib/gtk+ 2.0 episode I (every segfault has it's beginning)

	* configure.in: require glib/gtk+ >= 1.3.7, commented out the
	gtkxmhtml stuff.

	From now on, you will need glib, pango, atk and gtk+ HEAD from CVS
	to hack or use GIMP HEAD.

	Beware, it crashes randomly :)

	* app/core/Makefile.am
	* app/core/gimpmarshal.list: new file plus rules to generate
	gimpmarshal.[ch] from it.

	* app/core/*
	* app/tools/*
	* app/widgets/*
	* libgimpwidgets/*: started to use the glib object system. All
	core/ objects are still gtk objects however. All signals are
	created using g_signal_new(). There are many gtk+ artefacts left.
	Finally, we will _not_ use the gtk_signal_foo() wrappers and
	friends any more.

	* app/colormaps.c
	* app/devices.[ch]
	* app/disp_callbacks.c
	* app/errorconsole.c
	* app/file-save.[ch]
	* app/interface.c
	* app/module_db.c
	* app/nav_window.c
	* app/ops_buttons.c
	* app/scroll.c
	* app/user_install.c
	* app/gui/about-dialog.c
	* app/gui/brush-editor.c
	* app/gui/brushes-commands.c
	* app/gui/color-notebook.c
	* app/gui/colormap-dialog.c
	* app/gui/dialogs-commands.c
	* app/gui/dialogs-constructors.c
	* app/gui/file-commands.c
	* app/gui/file-dialog-utils.c
	* app/gui/file-new-dialog.c
	* app/gui/file-open-dialog.[ch]
	* app/gui/file-save-dialog.c
	* app/gui/gradient-editor.c
	* app/gui/gradients-commands.c
	* app/gui/image-commands.c
	* app/gui/info-dialog.[ch]
	* app/gui/layer-select.c
	* app/gui/layers-commands.c
	* app/gui/menus.c
	* app/gui/offset-dialog.c
	* app/gui/palette-editor.c
	* app/gui/palettes-commands.c
	* app/gui/patterns-commands.c
	* app/gui/preferences-dialog.c
	* app/gui/resize-dialog.[ch]
	* app/gui/splash.c
	* app/gui/tips-dialog.c
	* app/gui/tool-options-dialog.c
	* app/gui/toolbox.c
	* app/gui/tools-commands.c
	* libgimp/gimpbrushmenu.c
	* libgimp/gimpmenu.c
	* libgimp/gimppatternmenu.c
	* libgimp/gimpui.c
	* libgimpbase/gimpenv.c: tons and tons of changes like "const
	gchar*", switch from GdkDeviceInfo to GdkDevice (very incomplete
	and currently disables), lots of s/gtk_signal/g_signal/,
	removal/replacement of deprecated stuff,
	s/GtkSignalFunc/GCallback/ and lots of small changes and fixes
	while I was on it, zillions of warnings left...

	* modules/Makefile.am: disabled the water color selector
	temporarily (XInput issues).

	* plug-ins/Makefile.am
	* plug-ins/common/.cvsignore
	* plug-ins/common/Makefile.am
	* plug-ins/common/plugin-defs.pl: simply excluded all plug-ins
	which did not build (including Script-Fu). They are trivial to
	fix.
2001-07-24 21:27:11 +00:00
Michael Natterer d1022c34b6 app/Makefile.am removed.
2001-05-10  Michael Natterer  <mitch@gimp.org>

	* app/Makefile.am
	* app/asupsample.[ch]: removed.

	* app/core/Makefile.am
	* app/core/core-types.h
	* app/tools/Makefile.am
	* app/tools/tools-types.h: new files.

	* app/tools/gimptoolinfo.[ch]: removed.
	* app/core/gimptoolinfo.[ch]: added here.

	* libgimp/Makefile.am
	* libgimp/gimp.h
	* libgimp/gimpadaptivesupersample.[ch]
	* libgimp/gimpbilinear.[ch]: removed here...

	* libgimpcolor/Makefile.am
	* libgimpcolor/gimpcolortypes.h
	* libgimpcolor/gimpadaptivesupersample.[ch]
	* libgimpcolor/gimpbilinear.[ch]: ..and added here.

	* tools/pdbgen/app.pl
	* tools/pdbgen/pdb/paths.pdb

	* app/*.c: changed tons of #include's
2001-05-09 22:34:59 +00:00
Simon Budig 5957eb4f4a app/path_curves.[ch] app/tools/gimpdrawtool.c app/tools/gimppathtool.[ch]
2001-04-11  Simon Budig  <simon@gimp.org>

        * app/path_curves.[ch]
        * app/tools/gimpdrawtool.c
        * app/tools/gimppathtool.[ch]
        * app/tools/path_tool.[ch]
        * app/tools/path_toolP.h

        At least now it looks as if it could do something sometimes...
2001-04-11 13:28:53 +00:00
Simon Budig e2f373cbd2 app/Makefile.am app/apptypes.h app/path_bezier.[ch] app/path_curves.[ch]
2001-04-07  Simon Budig  <simon@gimp.org>

        * app/Makefile.am
        * app/apptypes.h
        * app/path_bezier.[ch]
        * app/path_curves.[ch]
        * app/pixmaps2.h
        * app/tools/Makefile.am
        * app/tools/gimpdrawtool.[ch]
        * app/tools/path_tool.[ch]
        * app/tools/path_toolP.h
        * app/tools/tools.c

        new files:
        * app/tools/gimppathtool.c
        * app/tools/gimppathtool.h

        Reactivated (at least partially) the old new path tool. It
        will undergo major restructuring. Especially the path data
        will become proper objects. This definitely is work in progress
        and totally unuseable now.
2001-04-07 14:55:39 +00:00
Michael Natterer 1d987a3ba7 app/tools/Makefile.am lots of files renamed to gimp*tool.[ch]
2001-03-08  Michael Natterer  <mitch@gimp.org>

	* app/tools/Makefile.am
	* app/tools/[almost *]: lots of files renamed to gimp*tool.[ch]

	* app/commands.c
	* app/context_manager.c
	* app/disp_callbacks.c
	* app/gdisplay.c
	* app/gimage.c
	* app/gimage_mask.c
	* app/gimpdnd.c
	* app/gimprc.c
	* app/global_edit.c
	* app/info_window.c
	* app/scale.c
	* app/scroll.c
	* app/undo.c
	* app/pdb/text_tool_cmds.c
	* app/pdb/tools_cmds.c
	* po/POTFILES.in
	* tools/pdbgen/Makefile.am
	* tools/pdbgen/enums.pl
	* tools/pdbgen/pdb/text_tool.pdb
	* tools/pdbgen/pdb/tools.pdb: changed accordingly.
2001-03-08 01:07:03 +00:00
Michael Natterer 84b634f251 build the measure tool again.
2001-02-27  Michael Natterer  <mitch@gimp.org>

	* app/tools/Makefile.am: build the measure tool again.

	* app/tools/gimpcolorpickertool.c: correct prototypes for some
	functions so we don't get warnings about incompatible assignments
	in "class_init", chain up in "control".

	* app/tools/gimpdrawtool.c: added an implementation of "control"
	which can be called from subclasses so we don't need to call
	GimpDrawTool's methods directly from there.

	* app/tools/gimppaintbrushtool.[ch]: create it's tool options so it
	doesn't crash. Commented out the non_gui stuff. We need a different
	interface for this.

	* app/tools/gimppainttool.[ch]: some cleanups: call the draw tool's
	"control" function, fixed "cursor_update", fixed indentation.

	* app/tools/measure.[ch]: made it work again (properly subclass
	GimpDrawTool).

	* app/tools/tool.c: re-added the non_gui paintbrush STUB()'s

	* app/tools/tools.c: don't allocate the non_gui stuff.
	GimpPaintTool is an abstract superclass, so we cannot create
	an instance of it. Moreover, the current non_gui stuff assumes
	that there is something like a "paint_core" and changes it's
	virtual function pointers, breaking the object system totally.
2001-02-27 19:18:01 +00:00
Michael Natterer 8e3259d084 app/apptypes.h app/Makefile.am new widget. The upcoming replacement for
2001-02-27  Michael Natterer  <mitch@gimp.org>

	* app/apptypes.h
	* app/Makefile.am
	* app/gimpdrawablelistview.[ch]: new widget. The upcoming replacement
	for the layers and channels dialogs.

	* app/test_commands.[ch]: put the test dialogs here...

	* app/commands.[ch]: ... and made this one clean again.

	* app/gimpcontainergridview.c
	* app/gimpcontainerlistview.c
	* app/gimpcontainerview.[ch]: some signal handling fine tuning.

	* app/gimpimage.[ch]: emits "active_layer_changed" and
	"active_channel_changed" signals now. The semantics of
	gimage->active_layer and gimage->active_channel have changed a bit.
	We now have either an active layer _or_ and active channel (there
	is no active layer any more if a channel is active).

	* app/channel_ops.c
	* app/floating_sel.c
	* app/gdisplay.c
	* app/layers_dialog.c
	* app/menus.c: changed accordingly.

	* app/tools/gimpcolorpickertool.c: actually assign the draw_class
	vraiable in the class_init function.

	* app/tools/gimpdrawtool.[ch]
	* app/tools/tool.c: removed the _new() functions because these
	objects are abstract superclasses. Did some cleanup.
	Nathan, please configure you editor to _not_ produce any tabs
	in the source code.

	* app/tools/gimppaintbrushtool.[ch]: "blurb" and "help" are tagged
	with _(), not N_(). Put the register function to the header.

	* po/POTFILES.in: made it compile again.
2001-02-27 14:14:13 +00:00
Nate Summers 80a8d5a75f Introduced GimpPaintTool and GimpDrawTool 2001-02-27 05:21:12 +00:00