Commit Graph

36 Commits

Author SHA1 Message Date
Ell 53964dcb92 Revert "app: add "perspective correction" option to the measure tool"
This reverts commit d31725a9cd.

This option is not very useful.  In order to do actual perspective
correction, we need more information, such as the scene's vanishing
point and the camera's focal length.  The measure tool is probably
not the right place to do all that.  Let's simply revert this.
2018-09-25 04:21:49 -04:00
Ell d31725a9cd app: add "perspective correction" option to the measure tool
Add a boolean "perspective correction" option to the measure tool.
When toggled, the measure tool uses two compass widgets, instead of
one.  Straightening the active item in this mode results a
perspective transform that straightens both lines simultaneously,
keeping their origin fixed.

The information displayed in the info window/statusbar always
refers to the currently-focused compass.
2018-09-23 12:58:45 -04:00
Ell cb3b7a1ba5 Issue #1851 - Measure tool straighten rotation is always to the horizontal.
Add an "orientation" option to the measure tool, corresponding to
the "orientation" property of GimpToolCompass (i.e., it controls
the orientation against which the angle is measured, when not in 3-
point mode.)  The orientation is "auto" by default, so that the
angle is always <= 45 deg.  Note that the "orientation" option
affects the tool's "straighten" function, so that the layer is
rotated toward the current orientation.

Use the "pixel-angle" and "unit-angle" properies of
GimpToolCompass to read the measured angle, instead of duplicating
the angle-measurement logic, in particular, so that we benefit from
the improvements/fixes of the previous commit.
2018-07-15 19:09:06 -04:00
Michael Natterer 5f700549e7 Change the license URL from http://www.gnu.org/licenses/ to https:// 2018-07-11 23:29:46 +02:00
Ell b0cf2e435a app: derive GimpMeasureTool from GimpTransformTool
Derive GimpMeasureTool from GimpTransformTool (and
GimpMeasureOptions from GimpTransformOptions), so that we can reuse
GimpTransformTool's logic for the "straighten" function.  This
simplifies the code, aligns the measure tool with the rest of the
transform tools in terms of transform-related options (it can now
transform selections and paths, in addition to layers, and the
resampling method and clipping behavior are adjustable,) and fixes
straightening of layer groups.

Rename the function from "auto straighten" to just "straighten".

Don't resize the canvas after straightening.  Since we only
transform the active layer, and not the entire image, resizing the
canvas doesn't make much sense.

When in 3-point mode, rotate the second point toward the third
point, rather than toward the x-axis.
2018-06-09 18:29:08 -04:00
Michael Natterer e51915a340 app: rename all tools' widget members to simply "widget"
instead of "line", "polygon", "compass" etc. Good for consistency and
for copy & paste :)
2017-06-27 22:50:50 +02:00
Michael Natterer ed1798209b app: use a GimpToolCompass in GimpMeasureTool 2017-06-11 23:44:55 +02:00
Michael Natterer c86eebb034 app: use a GimpToolGui in GimpMeasureTool 2013-06-07 12:03:39 +02:00
Michael Natterer f59eeb95e7 app: remove GimpMeasureTool:active_handle and use the existing :point
Also don't re-find the active point in button_press().
2011-03-29 08:52:09 +02:00
Michael Natterer 2b9b737686 app: add gimp_measure_tool_oper_update() which should have always been there
and add the stuff that should not be done in cursor_update(). Also add
highlighting of the currently hovered handle.
2011-03-28 20:44:30 +02:00
Michael Natterer 44a6e4f07a app: use gimp_canvas_item_hit() in GimpMeasureTool 2011-03-28 20:13:18 +02:00
Michael Natterer d9b5207aa2 Change licence to GPLv3 (and to LGPLv3 for libgimp).
2009-01-17  Michael Natterer  <mitch@gimp.org>

	* all files with a GPL header and all COPYING files:

	Change licence to GPLv3 (and to LGPLv3 for libgimp).

	Cleaned up some copyright headers and regenerated the parsers in
	the ImageMap plugin.


svn path=/trunk/; revision=27913
2009-01-17 22:28:01 +00:00
Raphael Quinet 89c4abd6ea added status bar help messages explaining the usage of the modifiers.
2007-02-28  Raphael Quinet  <raphael@gimp.org>

	* app/tools/gimpmeasuretool.[ch]: added status bar help messages
	explaining the usage of the modifiers.

	* app/tools/gimpvectortool.c (gimp_vector_tool_status_update):
	suggest Ctrl for edit mode, to close the path or move handles.

	* app/tools/gimpcroptool.c (gimp_crop_tool_button_release):
	"press enter" should be "press Enter", as in the other tools.

svn path=/trunk/; revision=22030
2007-02-28 22:35:37 +00:00
Sven Neumann 41237259c9 In all files, changed the standard copyright notice to say "GIMP - The GNU
2006-12-09  Sven Neumann  <sven@gimp.org>

        * In all files, changed the standard copyright notice to say
        "GIMP - The GNU Image Manipulation Program".
2006-12-09 21:33:38 +00:00
Michael Natterer 0a341138e2 app/tools/gimpmeasuretool.h fixed _GET_OPTIONS() macros.
2006-09-13  Michael Natterer  <mitch@gimp.org>

	* app/tools/gimpmeasuretool.h
	* app/tools/gimppainttool.h: fixed _GET_OPTIONS() macros.
2006-09-13 10:44:40 +00:00
Michael Natterer 2ab5d86ae8 implement active_modifier_key() and give immediate feedback when Control
2006-09-12  Michael Natterer  <mitch@gimp.org>

	* app/tools/gimpmeasuretool.[ch]: implement active_modifier_key()
	and give immediate feedback when Control (constrain to 15 degrees)
	is toggled. Did a s/mtool/measure/g.
2006-09-12 20:24:50 +00:00
Michael Natterer 6c7f0c6830 added gimp_tool_get_options() so tools don't need to incude
2006-09-05  Michael Natterer  <mitch@gimp.org>

	* app/tools/gimptool.[ch]: added gimp_tool_get_options() so tools
	don't need to incude "core/gimptoolinfo.h" just to get to
	their options.

	* app/tools/gimp*tool.h: added macros GIMP_FOO_TOOL_GET_OPTIONS()
	which return specific tool options types and do all casting
	themselves.

	* app/tools/*.c: use the new macros and don't include
	"core/gimptoolinfo.h" in most files.

	* app/tools/gimpcolorpickertool.c (gimp_color_picker_tool_register):
	make it use the parent context's FG and BG.

	* app/tools/gimpcolortool.c (gimp_color_tool_real_picked): set the
	color on the tool's options, not on the user context.
2006-09-05 18:25:31 +00:00
Michael Natterer 271fae5fc2 added width and height to the info displayed in the statusbar and the info
2005-03-21  Michael Natterer  <mitch@gimp.org>

	* app/tools/gimpmeasuretool.[ch]: added width and height to the
	info displayed in the statusbar and the info window.
	Fixes bug #165275.
2005-03-21 10:27:36 +00:00
Sven Neumann 69be56bd80 don't use InfoDialog; always display pixels and real-world units in the
2003-10-20  Sven Neumann  <sven@gimp.org>

	* app/tools/gimpmeasuretool.[ch]: don't use InfoDialog; always
	display pixels and real-world units in the info window.
2003-10-20 17:36:18 +00:00
Sven Neumann 84e1810adc app/tools/gimpairbrushtool.[ch] app/tools/gimpbezierselecttool.[ch]
2002-05-03  Sven Neumann  <sven@gimp.org>

	* app/tools/gimpairbrushtool.[ch]
	* app/tools/gimpbezierselecttool.[ch]
	* app/tools/gimpblendtool.[ch]
	* app/tools/gimpbrightnesscontrasttool.[ch]
	* app/tools/gimpbucketfilltool[.ch]
	* app/tools/gimpbycolorselecttool[.ch]
	* app/tools/gimpclonetool[.ch]
	* app/tools/gimpcolorbalancetool[.ch]
	* app/tools/gimpcolorpickertool[.ch]
	* app/tools/gimpconvolvetool[.ch]
	* app/tools/gimpcroptool[.ch]
	* app/tools/gimpcurvestool[.ch]
	* app/tools/gimpdodgeburntool[.ch]
	* app/tools/gimpeditselectiontool.c
	* app/tools/gimpellipseselecttool[.ch]
	* app/tools/gimperasertool[.ch]
	* app/tools/gimpfliptool[.ch]
	* app/tools/gimpfreeselecttool[.ch]
	* app/tools/gimpfuzzyselecttool[.ch]
	* app/tools/gimphistogramtool[.ch]
	* app/tools/gimphuesaturationtool[.ch]
	* app/tools/gimpinktool[.ch]
	* app/tools/gimpiscissorstool[.ch]
	* app/tools/gimplevelstool[.ch]
	* app/tools/gimpmagnifytool[.ch]
	* app/tools/gimpmeasuretool[.ch]
	* app/tools/gimpmovetool[.ch]
	* app/tools/gimppaintbrushtool[.ch]
	* app/tools/gimppainttool.c
	* app/tools/gimppathtool[.ch]
	* app/tools/gimppenciltool[.ch]
	* app/tools/gimpperspectivetool[.ch]
	* app/tools/gimpposterizetool[.ch]
	* app/tools/gimprectselecttool[.ch]
	* app/tools/gimprotatetool[.ch]
	* app/tools/gimpscaletool[.ch]
	* app/tools/gimpselectiontool.c
	* app/tools/gimpsheartool[.ch]
	* app/tools/gimpsmudgetool[.ch]
	* app/tools/gimptexttool[.ch]
	* app/tools/gimpthresholdtool[.ch]
	* app/tools/gimptool.c
	* app/tools/gimptoolcontrol.h
	* app/tools/gimptoolmodule[.ch]
	* app/tools/gimptransformtool.c
	* app/tools/gimpvectortool[.ch]
	* app/tools/path_tool.c
	* app/tools/tool_manager[.ch]
	* app/tools/tools.c
	* libgimptool/gimptool.c
	* libgimptool/gimptoolcontrol.h
	* libgimptool/gimptoolmodule.h: removed tons of warnings. Do we need
	to add -Werror to the CFLAGS to avoid such a mess in the future ?!
	Also had to enforce the GIMP coding style in lots of places :-(

	* libgimp/gimppixelrgn.c: got sick and tired of debugging plug-ins,
	so I've added checks for most parameters passed to the GimpPixelRgn
	functions. This will slow down plug-in execution a little bit but
	should help to find bugs early.
2002-05-03 11:31:08 +00:00
Nate Summers 69ccb4d370 massive tool plugin changes 2002-03-29 03:50:29 +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
Sven Neumann 4ba6db4e94 Michael Natterer <mitch@gimp.org>
2001-12-03  Sven Neumann  <sven@gimp.org>
	    Michael Natterer <mitch@gimp.org>

	* app/paint-funcs/paint-funcs-mmx.h: removed redefiniton of HAS_ALPHA
	macro.

	* app/core/gimp.c: reverted Daniel's change; it doesn't make the code
	simpler, only more error-prone.

	* app/gui/info-dialog.h
	* app/gui/resize-dialog.h
	* app/core/gimp.h
	* app/core/gimpbrushgenerated.h
	* app/core/gimpbrushpipe.h
	* app/core/gimpchannel.[ch]
	* app/core/gimpcontainer.h
	* app/core/gimpcoreconfig.h
	* app/core/gimpdata.h
	* app/core/gimpdatafactory.[ch]
	* app/core/gimpdrawable-blend.c
	* app/core/gimpdrawable.[ch]
	* app/core/gimpimage.h
	* app/core/gimpimagefile.h
	* app/core/gimplayer.h
	* app/core/gimplayermask.h
	* app/core/gimpmoduleinfo.h
	* app/core/gimppalette.h
	* app/core/gimpundo.h
	* app/widgets/gimpbrushfactoryview.h
	* app/widgets/gimpconstrainedhwrapbox.h
	* app/widgets/gimpcontainermenu.h
	* app/widgets/gimpcontainerview.h
	* app/widgets/gimpdialogfactory.h
	* app/widgets/gimpimagedock.h
	* app/widgets/gimplistitem.h
	* app/widgets/gimpmenuitem.h
	* app/widgets/gimpnavigationpreview.h
	* app/widgets/gimppreview.h
	* app/gimprc.h
	* app/pathP.h
	* app/tools/gimpbezierselecttool.h
	* app/tools/gimpcolorbalancetool.h
	* app/tools/gimpcurvestool.h
	* app/tools/gimpdodgeburntool.c
	* app/tools/gimpfreeselecttool.h
	* app/tools/gimphuesaturationtool.h
	* app/tools/gimpinktool-blob.h
	* app/tools/gimpinktool.h
	* app/tools/gimpiscissorstool.h
	* app/tools/gimpmagnifytool.h
	* app/tools/gimpmeasuretool.h
	* app/tools/gimppainttool.h
	* app/tools/gimppathtool.h
	* app/tools/gimprectselecttool.h
	* app/tools/gimpthresholdtool.h
	* app/tools/gimptool.h
	* app/tools/gimptransformtool.h
	* app/base/base-config.h
	* app/base/gimplut.[ch]
	* app/base/pixel-region.h
	* app/base/pixel-surround.[ch]
	* app/base/temp-buf.[ch]
	* app/base/tile-manager-private.h
	* app/base/tile-manager.[ch]
	* app/base/tile-private.h
	* app/base/tile.[ch]
	* app/display/gimpdisplay.h
	* app/display/gimpdisplayshell-selection.h
	* app/display/gimpdisplayshell.h
	* app/gui/brush-select.h
	* app/gui/gradient-editor.h
	* app/gui/gradient-select.h: reverted most of Daniel's changes.

	There's no reason to use unsigned integers here and in lots of places
	it is even wrong.

	Then it's way too early to convert gbooleans into bitfields. This
	change may make sense in a few places but can happen later when the
	API has settled and the code is more stable.

	* app/gimprc.c: reverted Daniel's change. This is a GCC-ism and this
	code is about to die soon anyway.
2001-12-03 13:44:59 +00:00
Daniel Egger 1ed9180112 Convert ugly comments into named structure fields. Much cleaner and less
2001-12-02  Daniel Egger  <degger@fhm.edu>

	* app/gimprc.c: Convert ugly comments into named structure fields.
	Much cleaner and less errorprone though may cause troubles on
	older compilers and then needs to be reverted. Please report!

	* app/base/base-types.h: Add FIXME reminder.

	* app/base/gimplut.c: Use CLAMP macro instead of if-cascade.

	* app/base/temp-buf.c: Remove duplicated calculations and simplify
	checks.

	* app/base/tile-manager.c:
	- (tile_manager_get_tile_num): Return success and take an additional
	  pointer for the tilenumber.
	- Simplify logic in the rest of the file as a result.
	- Remove rotten debugging cruft.

	* app/core/gimpbrushgenerated.c: Fix two stylistic nits.

	* app/app_procs.c: Include <stdlib.h> for exit () prototype.

	* app/core/gimpdrawable-blend.c: Include <stdlib.h> for abs ()
	prototype.

	* app/display/gimpdisplay.c: Include <string.h> for memcpy ()
	prototype.

	* app/core/gimpimage-convert.c: (HIST_RGB): First parameter is
	not const. Fixes a gcc warning for a wrong return value.

	* libgimpwidgets/gimpunitmenu.c
	* app/core/gimpunit.c: Add suggested (by gcc 3.1 cvs) parentheses
	to group correct logic tests together.

	* app/paint-funcs/paint-funcs-generic.h: Fix my HAS_ALPHA macro
	to avoid gcc 3.1 cvs warning.

	* app/gimprc.h
	* pathP.h
	* base-config.h
	* app/base/boundary.h
	* app/base/gimplut.[ch]
	* app/base/pixel-region.h
	* app/base/pixel-surround.[ch]
	* app/base/temp-buf.[ch]
	* app/base/tile-manager-private.h
	* app/base/tile-manager.c
	* app/base/tile-private.h
	* app/base/tile.[ch]
	* app/core/gimp.h
	* app/core/gimpbrushgenerated.h
	* app/core/gimpbrushpipe.h
	* app/core/gimpchannel.[ch]
	* app/core/gimpcontainer.h
	* app/core/gimpcoreconfig.h
	* app/core/gimpdata.h
	* app/core/gimpdatafactory.[ch]
	* app/core/gimpdrawable-blend.c
	* app/core/gimpdrawable.[ch]
	* app/core/gimpimage.h
	* app/core/gimpimagefile.h
	* app/core/gimplayer.h
	* app/core/gimplayermask.h
	* app/core/gimpmoduleinfo.h
	* app/core/gimppalette.h
	* app/core/gimpundo.h
	* app/display/gimpdisplay.h
	* app/display/gimpdisplayshell-selection.h
	* app/display/gimpdisplayshell.h
	* app/gui/brush-select.h
	* app/gui/gradient-editor.h
	* app/gui/gradient-select.h
	* app/gui/info-dialog.h
	* app/gui/resize-dialog.h
	* app/tools/gimpbezierselecttool.h
	* app/tools/gimpcolorbalancetool.h
	* app/tools/gimpcolorpickertool.h
	* app/tools/gimpcurvestool.h
	* app/tools/gimpdodgeburntool.c
	* app/tools/gimpfreeselecttool.h
	* app/tools/gimpfuzzyselecttool.h
	* app/tools/gimphuesaturationtool.h
	* app/tools/gimpinktool-blob.h
	* app/tools/gimpinktool.h
	* app/tools/gimpiscissorstool.h
	* app/tools/gimpmagnifytool.h
	* app/tools/gimpmeasuretool.h
	* app/tools/gimppainttool.h
	* app/tools/gimppathtool.h
	* app/tools/gimprectselecttool.h
	* app/tools/gimpthresholdtool.h
	* app/tools/gimptool.h
	* app/tools/gimptransformtool.h
	* app/tools/path_toolP.h
	* app/widgets/gimpbrushfactoryview.h
	* app/widgets/gimpconstrainedhwrapbox.h
	* app/widgets/gimpcontainermenu.h
	* app/widgets/gimpcontainerview.h
	* app/widgets/gimpdialogfactory.h
	* app/widgets/gimpimagedock.h
	* app/widgets/gimplistitem.h
	* app/widgets/gimpmenuitem.h
	* app/widgets/gimpnavigationpreview.h
	* app/widgets/gimppreview.h: Unsignify lots of variables and
	parameters and use bitfields in structs where possible. First
	part of a huge cleanup all over the code...
2001-12-02 14:59:30 +00:00
Sven Neumann 757017a8e2 bumped version number to 1.3.1. Require Glib/GTK+-1.3.11 and Pango-0.22.
2001-11-23  Sven Neumann  <sven@gimp.org>

	* configure.in: bumped version number to 1.3.1.
	Require Glib/GTK+-1.3.11 and Pango-0.22. Removed GDK_DISABLE_COMPAT_H
	and GTK_DISABLE_COMPAT_H from our default CFLAGS since they don't
	exist any longer.

	* RELEASE-TO-CVS.patch: removed since the glib/gtk+ API is supposed to
	be frozen now.

	* HACKING: removed reference to RELEASE-TO-CVS.patch

	* app/gui/menus.c
	* app/tools/gimptexttool.c: applied RELEASE-TO-CVS.patch to conform
	to the new GTK+/Pango API.

	* app/core/Makefile.am: generate marshallers with gimp_marshal prefix.

	* app/core/gimpmarshal.list: added all marshallers we use.

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

	* app/[lots of .c files]: use gimp_marshal_* for all marshallers.

	* data/images/
	* app/app_procs.c
	* app/gui/splash.c:

	* libgimpbase/Makefile.am
	* libgimpbase/gimpbase.h
	* libgimpbase/gimputils.[ch]: removed since they are no longer needed.

	* app/gimprc.c
	* plug-ins/common/ps.c
	* plug-ins/gdyntext/gdyntext.c
	* plug-ins/gdyntext/gdyntextcompat.c
	* plug-ins/gfig/gfig.c
	* plug-ins/gflare/gflare.c
	* plug-ins/script-fu/script-fu-scripts.c: use glib functions instead
	of gimp_strescape() and gimpstrcompress().

	* cleaned up all header files: use G_BEGIN_DECLS/G_END_DECLS, declared
	all _get_type function as G_GNUC_CONST.

	* tools/pdbgen/enumcode.pl
	* tools/pdbgen/lib.pl: make them generate header files using
	G_BEGIN_DECLS/G_END_DECLS.

	* pixmaps/Makefile.am
	* pixmaps/wilber3.xpm: removed ...
	* data/images/tips_wilber.png: ... and added here as PNG

	* app/gui/tips-dialog.c: load the Wilber on demand using GdkPixbuf.

	* data/images/gimp_splash.ppm: removed ...
	* data/images/gimp_splash.png: ... and added as PNG

	* app/app_procs.c
	* app/gui/splash.[ch]: load the splash image using GdkPixbuf.

	* app/gui/about-dialog.c: sink the GtkPreview.
2001-11-22 23:46:13 +00:00
Michael Natterer a75c675d03 added GimpToolRegisterFunc, GimpToolRegisterCallback and
2001-11-20  Michael Natterer  <mitch@gimp.org>

	* app/tools/tools-types.h: added GimpToolRegisterFunc,
	GimpToolRegisterCallback and GimpToolOptionsNewFunc typedefs
	which are used to register tools.

	* app/tools/tools.c: put the register funcs in an array of
	GimpToolRegisterFuncs. Pass a Gimp pointer *plus* a
	GimpToolRegisterCallback (which is tool_manager_register_tool())
	to the tools' register functions.

	* app/tools/tool_manager.[ch]: added a GimpToolOptionsNewFunc to
	the parameters of tool_manager_register_tool(). Create the tool
	options here, not in each tool.

	* app/tools/paint_options.[ch]
	* app/tools/selection_options.[ch]
	* app/tools/tool_options.[ch]
	* app/tools/transform_options.[ch]: all _init() and _new()
	functions take a GimpToolInfo pointer now. The _reset() func needs
	to be set manually now.

	* app/tools/[all_tools].[ch]: changed accordingly:

	- pass GimpToolOptionsNewFuncs to the register callback.
	- don't create the tool options in the tools' _init() function.
	- removed all static tool options variables.
	- get the options from the tool system in the cases i missed
	  in my last commit.
	- added minor hacks to get rid of the static options pointer
	  in some pathological cases :) (i.e. the ink tool).
2001-11-20 23:00:47 +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
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 1bcd3e1834 app/Makefile.am removed.
2001-07-07  Michael Natterer  <mitch@gimp.org>

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

	* app/app_procs.c: call tool_mananger instead of context_manager
	functions, pass "the_gimp" to some more functions.

	* app/drawable.[ch]: pass a GimpContext to drawable_fill().

	* app/errors.c: behave according to "stack_trace_mode" when using
	the debugging signal handler.

	* app/gimprc.[ch]: removed the core/ config variables.

	* app/selection.c: set the selection's state to INVISIBLE in
	selection_pause().

	* app/core/Makefile.am
	* app/core/gimpcoreconfig.[ch]: new files (the configuration
	variables used by core/).

	* app/core/gimpcontext.[ch]: removed the global contexts (user,
	default, ...) and their functions. It's no longer possible to pass
	NULL to the context functions to manipulate the current context
	(gimpcontext.c doesn't know the current context any more).

	* app/core/gimp.[ch]: added them here. The functions are now called
	gimp_[set|get]_*_context(). Added gimp_create_context() which is
	the only function to create contexts now.

	* app/gui/dialogs.[ch]
	* app/gui/gui.[ch]: pass "gimp" to all functions.

	* app/tools/tool_manager.[ch]
	* app/tools/tools.[ch]: pass "gimp" to lots of functions. Added
	the "global_tool_context" logic and the global/non-global paint
	options switching from the context_manager. Pass "gimp" to all
	tools' "register" functions.

	* app/tools/*: changed accordingly.

	* app/devices.c
	* app/disp_callbacks.c
	* app/file-open.[ch]
	* app/file-save.c
	* app/gdisplay.c
	* app/gimage.c
	* app/libgimp_glue.c
	* app/module_db.c
	* app/nav_window.c
	* app/plug_in.c
	* app/qmask.c
	* app/undo.c
	* app/base/base-config.c
	* app/core/gimpbrushpipe.c
	* app/core/gimpdrawable-offset.c
	* app/core/gimpgradient.c
	* app/core/gimpimage-duplicate.c
	* app/core/gimpimage-mask.c
	* app/core/gimpimage-new.c
	* app/core/gimpimage.c
	* app/core/gimppalette.c
	* app/core/gimptoolinfo.[ch]
	* app/core/gimpundo.c
	* app/gui/brush-select.c
	* app/gui/channels-commands.c
	* app/gui/color-area.c
	* app/gui/dialogs-constructors.c
	* app/gui/file-new-dialog.c
	* app/gui/file-open-dialog.c
	* app/gui/gradient-editor.c
	* app/gui/gradient-select.c
	* app/gui/info-window.c
	* app/gui/layers-commands.c
	* app/gui/menus.c
	* app/gui/palette-editor.c
	* app/gui/palette-import-dialog.c
	* app/gui/palette-select.c
	* app/gui/paths-dialog.c
	* app/gui/pattern-select.c
	* app/gui/preferences-dialog.c
	* app/gui/resize-dialog.c
	* app/gui/test-commands.c
	* app/gui/tool-options-dialog.c
	* app/gui/toolbox.c
	* app/gui/tools-commands.c
	* app/xcf/xcf-load.c
	* app/xcf/xcf-save.c
	* app/widgets/gimpchannellistview.c
	* app/widgets/gimpdnd.c
	* app/widgets/gimpdrawablelistview.[ch]
	* app/widgets/gimpimagedock.c
	* app/widgets/gimplayerlistview.c
	* app/pdb/brushes_cmds.c
	* app/pdb/drawable_cmds.c
	* app/pdb/gradient_select_cmds.c
	* app/pdb/gradients_cmds.c
	* app/pdb/palette_cmds.c
	* app/pdb/patterns_cmds.c
	* app/pdb/procedural_db.c
	* tools/pdbgen/pdb/brushes.pdb
	* tools/pdbgen/pdb/drawable.pdb
	* tools/pdbgen/pdb/gradient_select.pdb
	* tools/pdbgen/pdb/gradients.pdb
	* tools/pdbgen/pdb/palette.pdb
	* tools/pdbgen/pdb/patterns.pdb: changed accordingly: remove usage
	of gimp_context_[get|set]_*(NULL), create contexts with
	gimp_create_context(). Get the user/current context with
	gimp_get_[user|current]_context(). Added/removed access to the
	global "the_gimp" variable in some places. Get the core's config
	variables from "core_config".
2001-07-07 12:17:23 +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
Nate Summers 80a8d5a75f Introduced GimpPaintTool and GimpDrawTool 2001-02-27 05:21:12 +00:00
Michael Natterer 9417fa1db7 forgot one s/gimptool/gimptool-1.4/
2001-02-21  Michael Natterer  <mitch@gimp.org>

	* configure.in: forgot one s/gimptool/gimptool-1.4/

	* app/appenums.h: removed "UPDATE_CURSOR" from the ToolAction enum.

	* app/context_manager.c: removed the toolbox toggle button updating
	code here...

	* app/toolbox.c: ...and handle it in the toolbox itself.

	* app/devices.c: removed some obsolete old tool suff.

	* app/tools/Makefile.am
	* app/tools/move.[ch]: reactivated. Disabled the edit_selection
	stuff for now. We need a way to temporary push tools to some stack
	of the tool manager.

	* app/tools/tool.[ch]: removed lot of stuff that is obsolete or
	handled by the GimpToolInfo object now.

	* app/tools/tool_manager.[ch]: stripped all tool options stuff
	because they will be able to follow tool changes themselves.
	Renamed some functions to be consistent.

	* app/tools/tools.c: register the move tool again.

	* app/cursorutil.c
	* app/disp_callbacks.c
	* app/gimage_mask.c
	* app/global_edit.c
	* app/tools/color_picker.c
	* app/tools/measure.[ch]
	* app/tools/tool_options.c: changed accordingly.
2001-02-21 21:56:39 +00:00
Michael Natterer 99c5201870 Made the tool system work again and integrated it back with the
2001-02-21  Michael Natterer  <mitch@gimp.org>

	Made the tool system work again and integrated it back with the
	GimpContext. It's a hack between old, new and freshly hacked
	stuff. There are still lots of warnings but at least we can switch
	tools again.

	* app/tools/Makefile.am
	* app/tools/gimptoolinfo.[ch]: resurrected as real object.
	The GimpToolInfo objects are derived from GimpData, which gives
	us the tool icon stuff for free. Also, we need a list of _objects_
	which is allocated all the time. All tools are required to have
	a "register" function which registers themselves with the list
	of GimpToolInfo objects which is maintained by the tool manager.

	* app/tools/tool.[ch]: made a real GtkObject with properly named
	functions out of it. The former "active_tool_control" is of
	course not the default implementation of the tool's "control"
	method but a hack _around_ it, so it went to the tool manager.

	* app/tools/color_picker.[ch]
	* app/tools/measure.[ch]: ditto. Added "register" functions and
	"destroy" implementations so the tools go away after use.

	* app/tools/tool_manager.[ch]: badly hacked at the moment to keep
	both the list of class structures _and_ the tool info list.

	* app/tools/tools.c: call the tools' register functions.

	* app/gimpcontext.[ch]: store a pointer to a GimpToolInfo object
	as "active_tool" in the context, so we're independent of tools
	being allocated or not. It's treated just like a brush or pattern
	now.

	* app/gimpdnd.[ch]: made tool DND work like all other DND types.

	* app/devices.[ch]: also here: the tool is just a normal data object
	now, resulting in removal of lots of code.

	* app/commands.c
	* app/context_manager.c: updated the tool select and context stuff
	to work again.

	* app/toolbox.c: removed the old pixmap buttons and put GimpPreviews
	inside the tool buttons. Still needs an own preview type to
	look nice.

	* app/disp_callbacks.c
	* app/about_dialog.c
	* app/app_procs.c
	* app/appenums.h
	* app/apptypes.h
	* app/gimage.c
	* app/gimppalette.c
	* app/gimppreview.c
	* app/gimprc.c
	* app/info_window.c
	* app/menus.c
	* app/palette_select.h
	* app/scale.c
	* app/scroll.c: lots of changes to make it work again.
2001-02-21 12:18:09 +00:00
Seth Burgess 72e138b752 Added in measure tool again
Modified Files:
 	ChangeLog app/tools/Makefile.am app/tools/measure.c
 	app/tools/measure.h app/tools/color_picker.c
 	app/tools/color_picker.h app/tools/tools.c
2001-02-17 19:49:44 +00:00
Michael Natterer 8d6c335f8f app/Makefile.am app/channel_pvt.h app/drawable_pvt.h app/gdisplayF.h
2000-12-29  Michael Natterer  <mitch@gimp.org>

	* app/Makefile.am
	* app/channel_pvt.h
	* app/drawable_pvt.h
	* app/gdisplayF.h
	* app/gimpdrawableP.h
	* app/gimpimageP.h
	* app/layer_pvt.h
	* app/toolsF.h: removed these files.

	* app/apptypes.h
	* tools/pdbgen/enums.pl: added tons of opaque typedefs and enums.

	* tools/pdbgen/pdb/brush_select.pdb
	* tools/pdbgen/pdb/brushes.pdb
	* tools/pdbgen/pdb/channel.pdb
	* tools/pdbgen/pdb/color.pdb
	* tools/pdbgen/pdb/convert.pdb
	* tools/pdbgen/pdb/display.pdb
	* tools/pdbgen/pdb/drawable.pdb
	* tools/pdbgen/pdb/fileops.pdb
	* tools/pdbgen/pdb/gradient_select.pdb
	* tools/pdbgen/pdb/gradients.pdb
	* tools/pdbgen/pdb/help.pdb
	* tools/pdbgen/pdb/image.pdb
	* tools/pdbgen/pdb/layer.pdb
	* tools/pdbgen/pdb/pattern_select.pdb
	* tools/pdbgen/pdb/patterns.pdb
	* tools/pdbgen/pdb/selection.pdb
	* tools/pdbgen/pdb/tools.pdb
	* app/*: chainsaw #include cleanup:

	- Never (never!!) include stuff in header files except where we
	  need access to structures' contents (like derived objects).
	- Added prototypes and proper formating in many files.
	- The #include order in *all* *.c files is as follows:

	#include "config.h"

	#include <system stuff>

	#include <gtk/gtk.h>

	#include "apptypes.h"

	#include "gimp stuff"

	#include "libgimp stuff"

	#include "libgimp/gimpintl.h"

	By following this scheme we can easily see a file's dependencies
	from it's #include's and can grep for the inclusion to find out
	where a file is used.

	* tools/pdbgen/app.pl: changed to follow the include scheme above.

	* libgimp/Makefile.am
	* libgimp/gimpuitypes.h: new file, included from libgimp/gimpui.h
	and from app/apptypes.h.

	* libgimp/gimpcolorbutton.[ch]
	* libgimp/gimpdialog.[ch]
	* libgimp/gimphelpui.[ch]
	* libgimp/gimpparasite.[ch]
	* libgimp/gimppatheditor.[ch]
	* libgimp/gimpprotocol.c
	* libgimp/gimpquerybox.[ch]
	* libgimp/gimpsizeentry.[ch]
	* libgimp/gimptypes.h
	* libgimp/gimpui.h
	* libgimp/gimpunit.h
	* libgimp/gimpunitmenu.[ch]
	* libgimp/gimpwidgets.[ch]: changed accordingly.

	* plug-ins/FractalExplorer/Dialogs.c
	* plug-ins/gdyntext/message_window.c
	* plug-ins/imagemap/imap_default_dialog.c
	* plug-ins/imagemap/imap_file.c: these files used to include
	"libgimp/gimpui.h" without including "libgimp/gimp.h". This is
	no longer possible because the libgimpui headers don't inlcude
	"libgimp/gimpunit.h" any more.
2000-12-29 15:22:01 +00:00
Sven Neumann 27c2621399 Added new measure tool.
--Sven
1999-08-15 15:59:06 +00:00