Commit Graph

1214 Commits

Author SHA1 Message Date
Sven Neumann 4ebac2e791 app/base/base-enums.h app/paint/paint-enums.h use /*< pdb-skip, skip >*/,
2003-07-01  Sven Neumann  <sven@gimp.org>

	* app/base/base-enums.h
	* app/paint/paint-enums.h
	* app/tools/tools-enums.h: use /*< pdb-skip, skip >*/, updated the
	comment that explains how to use the trigraph sequences.

	* app/tools/tools-enums.c: regenerated.
2003-07-01 10:53:38 +00:00
Michael Natterer 8dd2e80792 Getting rid of some legacy filenames:
2003-06-29  Michael Natterer  <mitch@gimp.org>

	Getting rid of some legacy filenames:

	* app/core/Makefile.am
	* app/core/gimptooloptions.[ch]: new files.

	* app/paint/gimppaintoptions.h: changed #include accordingly.
	#define GIMP_PAINT_OPTIONS_CONTEXT_MASK here.

	* app/tools/paint_options.[ch]
	* app/tools/tool_options.[ch]: removed these files.

	* app/tools/gimppaintoptions-gui.[ch]
	* app/tools/gimptooloptions-gui.[ch]: new files.

	* app/tools/gimppainttool.h: removed GIMP_PAINT_TOOL_OPTIONS_MASK
	define again.

	* app/tools/Makefile.am
	* app/tools/gimpairbrushtool.c
	* app/tools/gimpblendoptions.c
	* app/tools/gimpbucketfilloptions.c
	* app/tools/gimpclonetool.c
	* app/tools/gimpcoloroptions.[ch]
	* app/tools/gimpconvolvetool.c
	* app/tools/gimpcropoptions.[ch]
	* app/tools/gimpdodgeburntool.c
	* app/tools/gimperasertool.c
	* app/tools/gimpflipoptions.[ch]
	* app/tools/gimpinkoptions.c
	* app/tools/gimpmagnifyoptions.[ch]
	* app/tools/gimpmeasureoptions.[ch]
	* app/tools/gimpmoveoptions.[ch]
	* app/tools/gimppaintbrushtool.c
	* app/tools/gimppenciltool.c
	* app/tools/gimpselectionoptions.[ch]
	* app/tools/gimpsmudgetool.c
	* app/tools/gimptextoptions.[ch]
	* app/tools/gimptransformoptions.[ch]
	* app/tools/tool_manager.c
	* app/gui/tool-options-dialog.c: changed accordingly.

	* app/tools/tools.c: moved the vector tool before iscissors.
2003-06-29 20:40:45 +00:00
Michael Natterer e14e158e70 removed enum GimpContextPropType and enum GimpContextPropMask.
2003-06-28  Michael Natterer  <mitch@gimp.org>

	* app/core/gimpcontext.h: removed enum GimpContextPropType and
	enum GimpContextPropMask.

	* app/core/core-enums.[ch]: added them here.

	* app/core/gimptoolinfo.[ch]: replaced "gboolean tool_context"
	member by "GimpContextPropMask context_props" so each tool can
	specify exactly which context properties it wants to have
	persistently remembered.

	* app/tools/tools-types.h: changed typedef GimpToolRegisterCallback
	accordingly.

	* app/tools/tool_manager.[ch] (tool_manager_register_tool): ditto.

	Removed the "global_tool_context" and initialize all tool info
	objects from the user_context after creation. Removed the
	PAINT_OPTIONS_MASK #define and use the new context_props stored in
	tool_info insted.

	* app/tools/gimppainttool.h: #define the common properties of the
	paint tools as GIMP_PAINT_TOOL_OPTIONS_MASK (which is OPACITY |
	PAINT_MODE | BRUSH).

	* app/tools/[all tools].c (gimp_*_tool_register): replaced the
	"use_context" boolean by the actual mask of context properties the
	tools need.
2003-06-28 11:20:37 +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
Michael Natterer e40a5b5370 added an entry for the text tool editor.
2003-06-27  Michael Natterer  <mitch@gimp.org>

	* app/gui/dialogs.c (toplevel_entries): added an entry for the
	text tool editor.

	* app/tools/gimptexttool.c (gimp_text_tool_editor): register
	the editor window with the dialog factory so it becomes
	session-menaged.
2003-06-27 14:26:04 +00:00
Simon Budig 1a80262e7e rewrote gimp_bezier_stroke_extend for the case when the neighbor is not
2003-06-26  Simon Budig  <simon@gimp.org>

        * app/vectors/gimpbezierstroke.c: rewrote gimp_bezier_stroke_extend
        for the case when the neighbor is not really an end point of the
        stroke, but close enough to the end to still be acceptable.

        * app/tools/gimpvectortool.c: Make the tool behave sanely
        and more symetrically (both ends of a stroke behave basically the
        same now), gimp_draw_on_handle () now prefers the anchor passed
        into it via the *ret_anchor parameter over other preferred anchors.
2003-06-26 09:54:56 +00:00
Simon Budig ca50643729 If an control handle gets converted to an edge simply move it to its next
2003-06-25  Simon Budig  <simon@gimp.org>

        * app/vectors/gimpbezierstroke.c: If an control handle gets
        converted to an edge simply move it to its next anchor.

        * app/tools/gimpvectortool.c: Improved interactive handling
        of vectors. Still work in progress, esp. I am not sure about
        the assignment of the modifier keys. Right now it is:

           Drag (Anchor/Handle): Regular Movement
           Shift-Click (Anchor): select multiple anchors (does not work yet)
           Shift-Drag: (Handle): move opposite handle symmetrically
           Ctrl-Drag (Anchor): Drag out control point
           S-C-Click: (Anchor/Handle): Convert to Edge
2003-06-24 23:11:13 +00:00
Sven Neumann f30586d112 app/config/gimpconfig.[ch] app/config/gimpconfigwriter.[ch] added support
2003-06-23  Sven Neumann  <sven@gimp.org>

	* app/config/gimpconfig.[ch]
	* app/config/gimpconfigwriter.[ch]
	* app/config/gimpscanner.[ch]: added support for serializing to
	and deserializing from strings. Had to do some smaller changes to
	the GimpConfig API.

	* app/config/test-config.c: added a simple test for the new
	functions.

	* app/config/gimpconfig-dump.c
	* app/config/gimprc.c
	* app/core/gimp-documents.c
	* app/core/gimp-parasites.c
	* app/core/gimp-templates.c
	* app/core/gimpunits.c
	* app/gui/session.c
	* app/plug-in/plug-in-rc.c
	* app/tools/tool_options.c
	* app/widgets/gimpdevices.c: follow GimpConfig API changes.

	* libgimpbase/gimpparasite.[ch]: declared the return value of
	gimp_parasite_data() as gconstpointer.
2003-06-23 22:02:56 +00:00
Hans Breuer 9768e4beee replace the win9x specific cd .... with the portable cd ..\..\..
2003-06-19  Hans Breuer  <hans@breuer.org>

	* makefile.msc : replace the win9x specific cd ....
	with the portable cd ..\..\..

	* **/makefile.msc : updated

	* plug-ins/xjt/xjt.c plug-ins/common/psd_save.c :
	there is still no unistd.h with msvc build
2003-06-19 09:57:35 +00:00
Sven Neumann b39f8fb809 expects the tool identifier as a GQuark now.
2003-06-10  Sven Neumann  <sven@gimp.org>

	* app/gui/tools-commands.c (tools_select_cmd_callback): expects
	the tool identifier as a GQuark now.

	* app/gui/image-menu.c: changed accordingly. Removed code that
	used to move the menu entries for the color correction tools to
	the Layers menu. Added the respective menu entries by hand. Added
	a menu entry for arbitrary rotations and one for Select by Color.

	* app/tools/gimpbrightnesscontrasttool.c
	* app/tools/gimpbycolorselecttool.c
	* app/tools/gimpcolorbalancetool.c
	* app/tools/gimpcolorizetool.c
	* app/tools/gimpcurvestool.c
	* app/tools/gimphistogramtool.c
	* app/tools/gimphuesaturationtool.c
	* app/tools/gimplevelstool.c
	* app/tools/gimpposterizetool.c
	* app/tools/gimpthresholdtool.c: register the color correction
	tools in the Tools menu.

	* app/tools/gimptransformtool.c: added an initialize method and
	moved most initalization code from button_press to this place.
2003-06-10 14:31:53 +00:00
Sven Neumann bc93e4a041 added "in_toolbox"; defaults to TRUE.
2003-06-06  Sven Neumann  <sven@gimp.org>

	* app/core/gimptoolinfo.[ch]: added "in_toolbox"; defaults to TRUE.

	* app/tools/tool_manager.c: set "in_toolbox" to FALSE for tools
	derived from GimpImageTool.

	* app/widgets/gimptoolbox.c: respect the new flag when constructing
	the toolbox.
2003-06-06 14:58:20 +00:00
Sven Neumann e23a566f52 removed unneeded includes.
2003-06-05  Sven Neumann  <sven@gimp.org>

	* app/tools/gimpcolortool.c: removed unneeded includes.

2003-06-05  Sven Neumann  <sven@gimp.org>

	* POTFILES.in: added app/tools/gimpcoloroptions.c
2003-06-05 20:42:38 +00:00
Sven Neumann a6988b2746 simplified by using the functions inherited from GimpColorTool.
2003-06-05  Sven Neumann  <sven@gimp.org>

	* app/tools/gimpcurvestool.c: simplified by using the functions
	inherited from GimpColorTool.
2003-06-05 20:29:03 +00:00
Sven Neumann b1c437b4f8 use OPAQUE_OPACITY instead of 255.
2003-06-05  Sven Neumann  <sven@gimp.org>

	* app/core/gimpdrawable.c (gimp_drawable_get_color_at):
	* app/core/gimpimage-projection.c (gimp_image_projection_get_color_at):
	use OPAQUE_OPACITY instead of 255.

	* app/core/gimpimage-pick-color.[ch]: factored out code that
	averages over colors so it can be used from GimpImageTool.

	* app/tools/gimpimagemaptool.[ch]: derived from GimpColorTool and
	added a GimpColorTool::pick implementation.

	* app/tools/gimpcoloroptions.c
	* app/tools/gimpcolorpickeroptions.c: add the toggle for
	"sample_merged" in gimp_color_picker_options_gui().

	* app/tools/gimpcolortool.c (gimp_color_tool_cursor_update): check
	if the cursor is over the active drawable or if "sample_merged" is
	active.

	* app/tools/gimplevelstool.c: simplified since all color-picking is
	now handled by the parent classes. Fixes bug #112668.
2003-06-05 18:47:23 +00:00
Sven Neumann 21b4aba939 changed the default radius.
2003-06-05  Sven Neumann  <sven@gimp.org>

	* app/tools/gimpcoloroptions.c: changed the default radius.

	* app/tools/gimpcolortool.[ch]: pass GimpColorOptions to
	gimp_color_tool_enable(). Added gimp_color_tool_disable() and
	gimp_color_tool_is_enabled().

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

	* app/tools/gimppainttool.[ch]: derived GimpPaintTool from
	GimpColorTool and removed most color picking code.

	* app/tools/gimpdodgeburntool.c (gimp_dodgeburn_tool_modifier_key)
	* app/tools/gimperasertool.c (gimp_eraser_tool_modifier_key):
	chain up to the parent class.

	* app/tools/gimppaintbrushtool.c: purely cosmetic change.
2003-06-05 15:43:49 +00:00
Sven Neumann b108d7028b added VOID: ENUM, BOXED, INT.
2003-06-04  Sven Neumann  <sven@gimp.org>

	* app/core/gimpmarshal.list: added VOID: ENUM, BOXED, INT.

	* app/tools/gimpcolortool.[ch]: added a default implementation for
	GimpColorTool::pick. Emit a "picked" signal when a color was
	successfully picked.

	* app/tools/gimpcolorpickertool.c: simplified a lot since
	GimpColorTool does most of the work for us now.
2003-06-04 20:23:36 +00:00
Sven Neumann 9d2cc5f82a reordered arguments.
2003-06-04  Sven Neumann  <sven@gimp.org>

	* app/core/gimpimage-pick-color.[ch]: reordered arguments.

	* app/tools/gimpcolorpickertool.c
	* app/tools/gimppainttool.c: changed accordingly.
2003-06-04 16:42:46 +00:00
Sven Neumann 737bf44e28 app/tools/Makefile.am app/tools/gimpcoloroptions.[ch] new files that
2003-06-04  Sven Neumann  <sven@gimp.org>

        * app/tools/Makefile.am
        * app/tools/gimpcoloroptions.[ch]
        * app/tools/gimpcolortool.[ch]: new files that implement base
        classes moved out of GimpColorPickerOptions and GimpColorPickerTool.

        * app/tools/gimpcolorpickeroptions.[ch]
        * app/tools/gimpcolorpickertool.[ch]: derive from the new obejcts.

        * app/tools/gimpimagemaptool.h
        * app/tools/gimppainttool.c
        * app/tools/tools-types.h: moved typedefs into the types file.
2003-06-04 15:48:17 +00:00
Michael Natterer 15b9be6a2c added enum GimpTransformType which can be one of { LAYER, SELECTION, PATH
2003-05-31  Michael Natterer  <mitch@gimp.org>

	* app/tools/tools-enums.[ch]: added enum GimpTransformType which
	can be one of { LAYER, SELECTION, PATH }

	* app/tools/gimptransformoptions.[ch]: added a GimpTransformType
	property to GimpTransformOptions. Added a GUI for the new
	option.

	* app/tools/gimpflipoptions.[ch]: derive it from
	GimpTransformOptions and add the GUI here, too.

	* app/tools/gimpfliptool.c
	* app/tools/gimptransformtool.[ch]: added support for transforming
	the selection. Added framework for transforming paths (still
	unimplemented).

	* app/tools/gimpselectionoptions.c: small cleanup.

	* libgimpwidgets/gimpstock.[ch]
	* themes/Default/images/Makefile.am
	* themes/Default/images/stock-path-16.png
	* themes/Default/images/stock-path-22.png
	* themes/Default/images/stock-selection-16.png: new icons for the
	new transform options buttons. Simply copied existing ones...
2003-05-30 23:52:24 +00:00
Sven Neumann f7f09188f2 don't stop the active tool, the tool manager did this already when the
2003-05-30  Sven Neumann  <sven@gimp.org>

	* app/tools/gimpeditselectiontool.c
	(gimp_edit_selection_tool_button_release): don't stop the active
	tool, the tool manager did this already when the edit-selection
	tool was pushed.
2003-05-30 15:50:46 +00:00
Michael Natterer bbc102f9cf app/display/gimpdisplayshell-callbacks.c app/tools/gimpcolorpickertool.c
2003-05-28  Michael Natterer  <mitch@gimp.org>

	* app/display/gimpdisplayshell-callbacks.c
	* app/tools/gimpcolorpickertool.c
	* app/tools/gimpcroptool.c
	* app/tools/gimphistogramtool.c
	* app/tools/gimpimagemaptool.c
	* app/tools/gimpmeasuretool.c
	* app/tools/gimptextoptions.c
	* app/tools/gimptransformtool.c
	* app/tools/paint_options.c
	* app/tools/tool_manager.c
	* app/widgets/gimppaletteeditor.c
	* app/widgets/gimptoolbox-color-area.c:
	don't #include "gui/dialogs.h" to get the global factories but use
	gimp_dialog_factory_from_name() instead.
2003-05-28 17:23:54 +00:00
Michael Natterer 8addf4daa6 app/tools/gimpfreeselecttool.[ch] added the possibility to <alt>+drag the
2003-05-27  Michael Natterer  <mitch@gimp.org>

	* app/tools/gimpfreeselecttool.[ch]
	* app/tools/gimprectselecttool.[ch]: added the possibility to
	<alt>+drag the whole selection preview line *while* creating the
	selection. Used a modified version of
	http://aeropc5.hut.fi/~mjkorhon/gimp-move-selection.patch (found
	in the mailing list archives). Fixes bug #87688.
2003-05-27 11:52:03 +00:00
Michael Natterer 707e597665 added "gint ref_count" to the TileManager struct.
2003-05-26  Michael Natterer  <mitch@gimp.org>

	* app/base/tile-manager-private.h: added "gint ref_count" to the
	TileManager struct.

	* app/base/tile-manager.[ch]: replaced tile_manager_destroy()
	by tile_manager_ref() and tile_manager_unref().

	* app/core/gimpimage-undo-push.c: ref the tile managers stored in
	the undo system and DON'T destroy them if no undo could be pushed.
	Should fix the remaining crashes with undo disabled like in
	bug #9350.

	(!!!) Note that the tiles passed to gimp_image_undo_push_image()
	and gimp_drawable_push_undo() as well as the tile managers of
	drawables passed to gimp_image_undo_push_[layer|channel]_mod()
	must be unref'ed by the caller now.

	* app/core/gimpdrawable-transform.c (gimp_drawable_transform_paste):
	don't take ownership of the passed tiles but ref them if needed.

	(!!!) Callers must unref the passed tiles themselves now.

	* app/core/gimpbuffer.c
	* app/core/gimpdrawable-blend.c
	* app/core/gimpdrawable-bucket-fill.c
	* app/core/gimpdrawable-offset.c
	* app/core/gimpdrawable.c
	* app/core/gimpedit.c
	* app/core/gimpimage-convert.c
	* app/core/gimpimage-mask.c
	* app/core/gimpimage-projection.c
	* app/core/gimpimage.c
	* app/core/gimpimagemap.c
	* app/core/gimplayer-floating-sel.c
	* app/core/gimplayer.c
	* app/paint/gimppaintcore.c
	* app/text/gimptextlayer.c
	* app/tools/gimpinktool.c
	* app/tools/gimpiscissorstool.c
	* app/tools/gimptransformtool-undo.c
	* app/tools/gimptransformtool.c: changed accordingly.
2003-05-26 17:02:06 +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
Michael Natterer dd9a0a4a63 Use g_object_[set|get]_qdata(), not just _data() to speed up tool manager
2003-05-25  Michael Natterer  <mitch@gimp.org>

	* app/tools/tool_manager.[ch] (tool_manager_set,get): Use
	g_object_[set|get]_qdata(), not just _data() to speed up tool
	manager access.

	Removed tool_manager_active_get_help_data() and
	tool_manager_help_func().

	* 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: use gimp_standard_help_func and
	tool->tool_info->help_data instead. Don't #include "tool_manager.h".
2003-05-25 17:16:59 +00:00
Hans Breuer 89bfbdf66d updated win32 (msvc) build
2003-05-24  Hans Breuer  <hans@breuer.org>

	* **/makefile.msc **/*.def : updated win32 (msvc) build

	* plug-ins/twain/twain.c plug-ins/winsnap/winsnap.c :
	add the extra parameter to gimp_main() calls
2003-05-24 17:00:03 +00:00
Sven Neumann 83a2f4983e app/paint/gimppaintcore.c applied a patch from Henning Makholm
2003-05-23  Sven Neumann  <sven@gimp.org>

	* app/paint/gimppaintcore.c
	* app/tools/gimppainttool.c: applied a patch from Henning Makholm
	<henning@makholm.net> that improves drawing of narrow straight lines
	by moving the endpoints to pixel centers. Fixes bug #84145.
2003-05-23 13:22:38 +00:00
Michael Natterer 487f71ba05 Removed the old paths and the remaining legacy stuff it needed. Fixes bug
2003-05-21  Michael Natterer  <mitch@gimp.org>

	Removed the old paths and the remaining legacy stuff it needed.
	Fixes bug #104471.

	* Makefile.am
	* configure.in
	* pixmaps/*: removed the pixmaps/ directory.

	* app/ops_buttons.[ch]
	* app/path.[ch]
	* app/pathP.h
	* app/path_transform.h
	* app/gui/paths-dialog.[ch]
	* app/tools/gimpbezierselecttool.[ch]: removed these files.

	* app/Makefile.am
	* app/gui/Makefile.am
	* app/tools/Makefile.am: changed accordingly.

	* app/core/core-types.h: removed the Path* types.

	* app/core/gimpimage.[ch]
	* app/core/gimpimage-duplicate.c: removed gimage->paths.

	* app/gui/about-dialog.c: inline wilber2_xpm for now.

	* app/gui/dialogs-constructors.c
	* app/gui/dialogs-menu.c
	* app/gui/dialogs.c
	* app/gui/menus.c: removed the old paths dialog.

	* app/gui/gui.c: removed gui_rotate_the_shield_harmonics() hack
	which was broken anyway.

	* app/tools/gimptransformtool.c: #if 0 path_transform preview stuff.

	* app/tools/gimpiscissorstool.c: removed useless include.

	* app/tools/tools.c: removed the bezier select tool.

	* app/vectors/gimpvectors.c (gimp_vectors_real_stroke_add): use
	g_list_append(), not g_list_prepend() so some ugly side conditions
	of legacy path loading are honored.

	* app/xcf/xcf-load.c
	* app/xcf/xcf-save.c: load and save only GimpVectors.
2003-05-21 17:38:14 +00:00
Simon Budig 9c811f25d0 Extended to be able to handle multiple polygons in a sane way.
2003-05-21  Simon Budig  <simon@gimp.org>

	* app/core/gimpscanconvert.[ch]: Extended to be able to handle
	multiple polygons in a sane way.

	* app/core/gimpimage-mask-select.c: Use this to convert
	multiple-stroke vectors objects to selections. Libart rocks!

	* app/tools/gimpiscissorstool.c: Changed accordingly.

	(The previous commit did not run cleanly)
2003-05-21 01:02:37 +00:00
Michael Natterer 49b851780e fixed to work like gimp_hls_to_rgb_int() (does the right thing now for the
2003-05-19  Michael Natterer  <mitch@gimp.org>

	* libgimpcolor/gimpcolorspace.c (gimp_hsl_to_rgb): fixed to work
	like gimp_hls_to_rgb_int() (does the right thing now for the
	saturation == 0 case). Some minor cleanups.

	Implemented "Colorize" as suggested in bug #20509. It's not a
	toggle in the "Hue/Saturation" tool dialog (which would be a gross
	hack IMHO) but a separate tool. Fixes bug #20509.

	* app/base/Makefile.am
	* app/base/base-types.h
	* app/base/colorize.[ch]: the actual mapping function lives
	here. Its algorithm was taken from the "colorify" plug-in.

	* app/tools/Makefile.am
	* app/tools/gimpcolorizetool.[ch]: the tool.

	* app/tools/tools.c: register it.

	* app/gui/dialogs.c: session-manage its dialog.

	* libgimpwidgets/gimpstock.[ch]
	* themes/Default/images/Makefile.am
	* themes/Default/images/tools/stock-tool-colorize-16.png
	* themes/Default/images/tools/stock-tool-colorize-22.png: new
	icons from Jimmac.

	Unrelated:

	* app/tools/gimpbrightnesscontrasttool.c
	* app/tools/gimpcolorbalancetool.c
	* app/tools/gimphuesaturationtool.c
	* app/tools/gimpposterizetool.c
	* app/tools/gimpthresholdtool.c: don't #include "tool_manager.h"
2003-05-19 14:21:03 +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 c44bf94c5a app/tools/gimptransformtool.c removed old path undo stuff.
2003-05-18  Michael Natterer  <mitch@gimp.org>

	* app/tools/gimptransformtool.c
	* app/tools/gimptransformtool-undo.[ch]: removed old path undo stuff.
2003-05-18 10:44:09 +00:00
Michael Natterer 9981c4645c added "gboolean cut_image" parameter so we can float selections without
2003-05-16  Michael Natterer  <mitch@gimp.org>

	* app/core/gimpimage-mask.[ch] (gimp_image_mask_extract): added
	"gboolean cut_image" parameter so we can float selections
	without cutting them from the original drawable.

	* app/gui/select-commands.c
	* tools/pdbgen/pdb/selection.pdb: pass cut_image == TRUE.

	* app/pdb/selection_cmds.c: regenerated.

	* app/tools/tools-enums.[ch]: added SELECTION_MOVE_COPY value
	to the SelectOps enum.

	* app/tools/gimpselectiontool.c: use the new mode when
	<ctrl>+<alt>-dragging a selction (yes, this is evil but there are
	no modifiers left).

	* app/tools/gimpeditselectiontool.[ch]: extended EditType enum by
	EDIT_MASK_COPY_TO_LAYER_TRANSLATE and pass cut_image == FALSE if
	it's passed to init_edit_selection().

	* app/tools/gimpfreeselecttool.c
	* app/tools/gimpfuzzyselecttool.c
	* app/tools/gimprectselecttool.c: pass the new mode to
	GimpEditSelectionTool.
2003-05-16 12:10:47 +00:00
Michael Natterer a4395cead9 added "gboolean clip_result" to GimpItem::flip().
2003-05-13  Michael Natterer  <mitch@gimp.org>

	* app/core/gimpitem.[ch]: added "gboolean clip_result" to
	GimpItem::flip().

	* app/vectors/gimpvectors.c
	* app/tools/gimpfliptool.c: changed accordingly.

	* app/core/gimpdrawable.c: implement GimpItem::flip() and
	GimpItem::transform().

	* app/core/gimpchannel.c
	* app/core/gimplayer.c: chain up in flip() and transform() and do
	only the layer/channel specific stuff here.

	* app/core/gimpdrawable-transform.[ch]: fixed indentation.
	(gimp_drawable_transform_tiles_flip): added "gboolean clip_result"
	and warn that it is not yet implemented.
	(gimp_drawable_transform_tiles_affine): when transforming a
	channel set bg_color to transparent. Clip channels (but not layer
	masks) only if the passed tiles have bpp == 1 (the channel is
	unfloated).
	(gimp_drawable_transform_affine): clip all unfloated channels.

	* app/core/gimpitem-linked.[ch]: added gimp_item_linked_get_list()
	utility function to avoind iterating all layers/channels/vectors
	in all functions.

	* app/tools/gimptransformtool.c: clip all unfloated channels.

	The clipping fixes above together fix bug #112858.
2003-05-13 13:57:11 +00:00
Michael Natterer 45334e637e Added support for transforming linked layers, channels and vectors. Fixes
2003-05-12  Michael Natterer  <mitch@gimp.org>

	Added support for transforming linked layers, channels
	and vectors. Fixes bug #86277.

	* app/core/gimpdrawable-transform.[ch]
	(gimp_drawable_transform_tiles_flip): added "gdouble axis" and
	calculate the resulting drawable offset.
	(gimp_drawable_transform_flip): calculate the axis and pass it to
	the function above.
	(gimp_drawable_transform_[tiles_]affine): reordered parameters.

	* app/core/gimpitem.[ch]: added virtual functions GimpItem::flip()
	and GimpItem::transform().

	* app/core/gimpchannel.c
	* app/core/gimplayer.c
	* app/vectors/gimpvectors.c: implement flip() and transform().
	Note that all functions always transform the whole item,
	regardless of a present selection.

	* app/core/Makefile.am
	* app/core/gimpitem-linked.[ch]: new files containing utility
	functions which translate, flip and transform all linked items.

	* app/tools/gimpfliptool.c
	* app/tools/gimptransformtool.c
	* tools/pdbgen/pdb/layer.pdb: use the new gimp_item_linked_*()
	functions to translate, flip and transform all linked items.

	* tools/pdbgen/pdb/transform_tools.pdb: follow
	gimp_drawable_transform_affine() API change.

	* app/pdb/layer_cmds.c
	* app/pdb/transform_tools_cmds.c: regenerated.
2003-05-12 15:56:36 +00:00
Michael Natterer 305dc2ffd7 make sure that active_tool->tool_info is non-NULL before dereferencing it.
2003-05-12  Michael Natterer  <mitch@gimp.org>

	* app/tools/tool_manager.c (tool_manager_tool_changed): make sure
	that active_tool->tool_info is non-NULL before dereferencing it.
	(Spotted by Ville Pätsi).
2003-05-12 14:11:37 +00:00
Sven Neumann 2182fb816a initialize scale to please the compiler.
2003-05-09  Sven Neumann  <sven@gimp.org>

	* app/tools/gimpmagnifytool.c (gimp_magnify_tool_button_release):
	initialize scale to please the compiler.
2003-05-09 19:57:38 +00:00
Michael Natterer 457368140d added "gboolean push_undo" to GimpItem::translate() and don't push and
2003-05-09  Michael Natterer  <mitch@gimp.org>

	* app/core/gimpitem.[ch]: added "gboolean push_undo" to
	GimpItem::translate() and don't push and undo in
	gimp_item_translate().

	* app/core/gimpchannel.[ch]: removed public function
	gimp_channel_translate() and implement GimpItem::translate().

	* app/core/gimpimage-mask.c
	* app/core/gimplayer.c: changed accordingly.

	* app/vectors/gimpvectors.c: actually translate the vectors
	in translate().

	* app/gui/channels-commands.c (channels_new_channel_query): removed
	useless call to gimp_channel_translate().

	* app/tools/gimpeditselectiontool.c
	* tools/pdbgen/pdb/layer.pdb: when translating a linked layer,
	also translate all linked channels and vectors. Cleanup.

	Note that the "linked" behaviour has changed: before this change,
	moving a layer moved all linked layers unconditionally. Now,
	linked layers/channels/vectors are moved *only* if the moved layer
	is also linked (the linked items behave as a group now and moving
	something not in the group does not affect the group).

	* app/pdb/layer_cmds.c: regenerated.
2003-05-09 13:05:37 +00:00
Michael Natterer 882a8eca80 added default implementations for scale() and resize() which just set the
2003-05-09  Michael Natterer  <mitch@gimp.org>

	* app/core/gimpitem.c: added default implementations for scale()
	and resize() which just set the resulting width/height and offset
	values.

	* app/core/gimpdrawable.c: chain up in scale() and resize().

	* app/vectors/gimpvectors.[ch]: buncha vectors changes/features:

	- Removed unused "linked" and "locked" members.
	- Removed "changed" signal.
	- Added "freeze" and "thaw" signals and functions to emit them.
	- Added "freeze_count" member so we emit only one freeze/thaw pair
	  even when doing nested changes.
	- Added GimpItem::translate() implementation.
	- Actually scale and resize the vectors in scale() and resize().
	- Added undo for scale() and resize().
	- Added freeze()/thaw() pairs around all modifying functions.
	- Changed gimp_vectors_copy_strokes() to work as needed.

	* app/core/gimpimage-resize.c
	* app/core/gimpimage-scale.c: resize and scale all vectors.
	Fixes bug #36491.

	* app/core/gimpimage-undo-push.c (undo_pop_vectors_mod): added
	freeze()/thaw() around the vectors-modifying code. Also restore
	width, height and offsets.

	* app/tools/gimpvectortool.c: connect to "freeze" and "thaw"
	and pause()/resume() vectors drawing accordingly.
2003-05-09 00:38:51 +00:00
Michael Natterer 33b7d779d6 removed "linked" member and API...
2003-05-08  Michael Natterer  <mitch@gimp.org>

	* app/core/gimplayer.[ch]: removed "linked" member and API...

	* app/core/gimpitem.[ch]: ...and added it here.

	* app/core/core-enums.[ch]
	* app/core/gimpimage-undo-push.[ch]: changed layer_linked undo
	types and functions to be item_linked ones.

	* app/tools/gimpeditselectiontool.c
	* app/xcf/xcf-load.c
	* app/xcf/xcf-save.c
	* tools/pdbgen/pdb/layer.pdb: changed accordingly.

	* app/pdb/layer_cmds.c: regenerated.

	* app/widgets/gimplayertreeview.[ch]: removed "linked" icon and
	functions...

	* app/widgets/gimpitemtreeview.[ch]: and added them here. Setting
	channels or vectors to "linked" does nothing yet.
2003-05-08 20:26:01 +00:00
Michael Natterer 766930db38 added width, height, offset_x and offset_y parameters.
2003-05-08  Michael Natterer  <mitch@gimp.org>

	* app/core/gimpitem.[ch] (gimp_item_configure): added width,
	height, offset_x and offset_y parameters.

	* app/core/gimpdrawable.c
	* app/vectors/gimpvectors.c: changed accordingly.

	* app/tools/gimpfliptool.c: removed unused variable.
2003-05-08 14:21:39 +00:00
Michael Natterer c1ab39a5e8 removed gimp_drawable_offsets().
2003-05-08  Michael Natterer  <mitch@gimp.org>

	* app/core/gimpdrawable.[ch]: removed gimp_drawable_offsets().

	* app/core/gimpitem.[ch]: added gimp_item_offsets().

	* app/core/gimpdrawable-blend.c
	* app/core/gimpdrawable-bucket-fill.c
	* app/core/gimpdrawable-histogram.c
	* app/core/gimpedit.c
	* app/core/gimpimage-convert.c
	* app/core/gimpimage-crop.c
	* app/core/gimpimage-mask-select.c
	* app/core/gimpimage-mask.c
	* app/core/gimpimage-merge.c
	* app/core/gimpimage-pick-color.c
	* app/core/gimpimage-preview.c
	* app/core/gimpimage-projection.c
	* app/core/gimpimage-undo-push.c
	* app/core/gimpimage.c
	* app/core/gimplayer-floating-sel.c
	* app/core/gimplayer.c
	* app/display/gimpdisplay.c
	* app/display/gimpdisplayshell-transform.c
	* app/display/gimpdisplayshell.c
	* app/gui/channels-commands.c
	* app/gui/layers-commands.c
	* app/paint/gimppaintcore.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/gimpcroptool.c
	* app/tools/gimpcurvestool.c
	* app/tools/gimpeditselectiontool.c
	* app/tools/gimpfliptool.c
	* app/tools/gimpfuzzyselecttool.c
	* app/tools/gimpinktool.c
	* app/tools/gimplevelstool.c
	* app/tools/gimppainttool.c
	* app/tools/gimprectselecttool.c
	* app/tools/gimptransformtool.c
	* app/widgets/gimpselectioneditor.c
	* app/widgets/gimptoolbox.c
	* tools/pdbgen/pdb/color.pdb
	* tools/pdbgen/pdb/drawable.pdb: changed accordingly.

	* app/pdb/color_cmds.c
	* app/pdb/drawable_cmds.c: regenerated.
2003-05-08 14:06:03 +00:00
Michael Natterer 54878b79ce removed gimp_drawable_width,height().
2003-05-08  Michael Natterer  <mitch@gimp.org>

	* app/core/gimpdrawable.[ch]: removed gimp_drawable_width,height().

	* app/core/gimpitem.[ch]: added gimp_item_width,height().

	* app/core/gimpchannel.c
	* app/core/gimpdrawable-bucket-fill.c
	* app/core/gimpdrawable-offset.c
	* app/core/gimpdrawable-preview.c
	* app/core/gimpdrawable-transform.c
	* app/core/gimpimage-contiguous-region.c
	* app/core/gimpimage-crop.c
	* app/core/gimpimage-mask.c
	* app/core/gimpimage-merge.c
	* app/core/gimpimage-preview.c
	* app/core/gimpimage-projection.c
	* app/core/gimpimage-undo-push.c
	* app/core/gimpimage.c
	* app/core/gimpimagemap.c
	* app/core/gimplayer-floating-sel.c
	* app/core/gimplayer.c
	* app/core/gimplayermask.c
	* app/core/gimpscanconvert.c
	* app/display/gimpdisplay.c
	* app/display/gimpdisplayshell-dnd.c
	* app/display/gimpdisplayshell.c
	* app/gui/channels-commands.c
	* app/gui/layers-commands.c
	* app/paint/gimpclone.c
	* app/paint/gimpconvolve.c
	* app/paint/gimpdodgeburn.c
	* app/paint/gimppaintcore.c
	* app/paint/gimpsmudge.c
	* app/text/gimptextlayer.c
	* app/tools/gimpbezierselecttool.c
	* app/tools/gimpbucketfilltool.c
	* app/tools/gimpbycolorselecttool.c
	* app/tools/gimpclonetool.c
	* app/tools/gimpcroptool.c
	* app/tools/gimpeditselectiontool.c
	* app/tools/gimpfliptool.c
	* app/tools/gimpfuzzyselecttool.c
	* app/tools/gimphistogramtool.c
	* app/tools/gimpinktool.c
	* app/tools/gimprectselecttool.c
	* app/tools/gimptransformtool.c
	* app/widgets/gimpselectioneditor.c
	* app/widgets/gimptoolbox.c
	* tools/pdbgen/pdb/drawable.pdb
	* tools/pdbgen/pdb/selection.pdb: changed accordingly.

	* app/pdb/drawable_cmds.c
	* app/pdb/selection_cmds.c: regenerated.
2003-05-08 13:12:46 +00:00
Michael Natterer 4136e61ddc More transform virtualization preparation:
2003-05-08  Michael Natterer  <mitch@gimp.org>

	More transform virtualization preparation:

	* app/core/gimpdrawable.[ch]: removed "width", "height", "offset_x"
	and "offset_y"...

	* app/core/gimpitem.[ch]: ...and added them here.

	* app/core/gimpchannel.c
	* app/core/gimpdrawable-preview.c
	* app/core/gimpdrawable-transform.c
	* app/core/gimpedit.c
	* app/core/gimpimage-convert.c
	* app/core/gimpimage-mask.c
	* app/core/gimpimage-merge.c
	* app/core/gimpimage-qmask.c
	* app/core/gimpimage-undo-push.c
	* app/core/gimplayer-floating-sel.c
	* app/core/gimplayer.c
	* app/text/gimptext-compat.c
	* app/text/gimptextlayer.c
	* app/tools/gimptexttool.c
	* app/tools/gimptransformtool.c
	* app/widgets/gimppreviewrendererdrawable.c
	* app/xcf/xcf-load.c
	* app/xcf/xcf-save.c
	* tools/pdbgen/pdb/layer.pdb: changed accordingly.

	* app/pdb/layer_cmds.c: regenerated.
2003-05-08 11:52:31 +00:00
Michael Natterer f3747dbac2 removed GimpToolState (ACTIVE, INACTIVE).
2003-05-06  Michael Natterer  <mitch@gimp.org>

	* app/tools/tools-enums.[ch]: removed GimpToolState (ACTIVE,
	INACTIVE).

	* app/tools/gimptoolcontrol.[ch]: replaced "GimpToolState state"
	by "gboolean active".

	* app/tools/gimptool.c (gimp_tool_control)
	* app/tools/tool_manager.c (tool_manager_control_active): check
	for gimp_tool_control_is_active() before calling
	gimp_tool_control_halt().
2003-05-06 11:11:15 +00:00
Michael Natterer 1317d1809e added g_return_if_fail (gimp_tool_control_is_active (tool->control)) since
2003-05-06  Michael Natterer  <mitch@gimp.org>

	* app/tools/gimptool.c (gimp_tool_motion): added
	g_return_if_fail (gimp_tool_control_is_active (tool->control))
	since that's a basic constraint of tool event handling.

	* app/tools/gimpbezierselecttool.c
	* app/tools/gimpeditselectiontool.c
	* app/tools/gimpfreeselecttool.c
	* app/tools/gimpfuzzyselecttool.c
	* app/tools/gimpiscissorstool.c
	* app/tools/gimpmagnifytool.c
	* app/tools/gimprectselecttool.c (gimp_*_tool_motion):
	removed checks for gimp_tool_control_is_active().
2003-05-06 10:30: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
Michael Natterer 1204865d04 new utility function which takes GimpZoomType and zooms "scalesrc" and
2003-05-05  Michael Natterer  <mitch@gimp.org>

	* app/display/gimpdisplayshell-scale.[ch]
	(gimp_display_shell_scale_zoom_fraction): new utility function
	which takes GimpZoomType and zooms "scalesrc" and "scaledest".
	(gimp_display_shell_scale_calc_fraction): new utility function
	which takes an exact double scale factor and calculates "scalesrc"
	and "scaledest".

	(gimp_display_shell_scale): use the first.
	(gimp_display_shell_scale_fit): use the second.

	* app/tools/gimpmagnifytool.[ch]: use the first to click-zoom and
	the second to area-zoom. Fixes bug #112115. Removed zoom_in() and
	zoom_out() utiliy functions. Removed "GimpZoomType op" from the
	GimpMagnifyTool struct. Cleanup.
2003-05-05 14:48:15 +00:00
Michael Natterer c18b6554b1 app/gui/dialogs.c app/tools/gimphistogramtool.c register their dialogs
2003-05-03  Michael Natterer  <mitch@gimp.org>

	* app/gui/dialogs.c
	* app/tools/gimphistogramtool.c
	* app/tools/gimpmeasuretool.c: register their dialogs too.
2003-05-03 09:56:25 +00:00
Michael Natterer fefaf61b28 added new function gimp_dialog_factory_add_foreign() which adds a dialog
2003-05-02  Michael Natterer  <mitch@gimp.org>

	* app/widgets/gimpdialogfactory.[ch]: added new function
	gimp_dialog_factory_add_foreign() which adds a dialog that was not
	created by the factory itself. Its identifier however must be
	registered with the factory. Connect to all toplevel dialogs'
	"configure_event" and remember the resulting window geometry so we
	get session management for *all* dialogs, not only for those which
	were open on exit.

	* app/gui/dialogs.c: added the "File New" dialog. Added foreign
	entries (without constructor) for all dialogs opened by tools.

	* app/gui/dialogs-constructors.[ch]: added a constructor for
	the file_new dialog.

	* app/gui/file-new-dialog.[ch]: renamed file_new_dialog_create()
	to file_new_dialog_new() and removed the gimage and template
	paramaters. Adder new function file_new_dialog_set() to set
	gimage and template after creation.

	* app/gui/file-commands.c
	* app/gui/templates-commands.c: changed accordingly.

	* app/tools/gimpimagemaptool.[ch]
	* app/tools/gimptransformtool.[ch]: added
	"const gchar *shell_identifier" to the tool structs. Register the
	tool dialogs using gimp_dialog_factory_add_foreign().

	* app/tools/gimpbrightnesscontrasttool.c
	* app/tools/gimpcolorbalancetool.c
	* app/tools/gimpcurvestool.c
	* app/tools/gimphuesaturationtool.c
	* app/tools/gimplevelstool.c
	* app/tools/gimpperspectivetool.c
	* app/tools/gimpposterizetool.c
	* app/tools/gimprotatetool.c
	* app/tools/gimpscaletool.c
	* app/tools/gimpsheartool.c
	* app/tools/gimpthresholdtool.c: set "shell_identifier" so the
	dialogs become session managed. Fixes bug #61091.

	* app/tools/gimpcroptool.c: register the crop dialog with the
	dialog factory. Fixes bug #52849.

	* app/tools/gimpcolorpickertool.c: ditto.

	Unrelated:

	* app/tools/gimptool.c: no need to cast the return value of
	g_object_new().
2003-05-02 18:43:15 +00:00