Commit graph

165 commits

Author SHA1 Message Date
Sven Neumann 82edc4b4a6 check that there are segments to draw before calling
2007-10-06  Sven Neumann  <sven@gimp.org>

	* app/tools/gimpeditselectiontool.c 
(gimp_edit_selection_tool_draw):
	check that there are segments to draw before calling
	gimp_draw_tool_draw_boundary().


svn path=/trunk/; revision=23750
2007-10-06 18:09:00 +00:00
Sven Neumann a5d10b2ff0 renamed gimp_image_active_drawable() to gimp_image_get_active_drawable().
2007-07-19  Sven Neumann  <sven@gimp.org>

	* app/core/gimpimage.[ch]: renamed gimp_image_active_drawable() to
	gimp_image_get_active_drawable().

	* app/[lots of files]
	* tools/pdbgen/pdb/paths.pdb
	* tools/pdbgen/pdb/image.pdb: changed accordingly.

svn path=/trunk/; revision=22958
2007-07-19 14:59:51 +00:00
Sven Neumann 5eb341d2a5 removed default label from enum switch statement.
2007-03-10  Sven Neumann  <sven@gimp.org>

	* app/tools/gimpeditselectiontool.c 
(gimp_edit_selection_tool_motion):
	removed default label from enum switch statement.


svn path=/trunk/; revision=22098
2007-03-10 22:35:21 +00:00
Michael Natterer 83d3a750d4 include "libgimpmath/gimpmathtypes.h" instead of "libgimpmath/gimpmath.h".
2007-03-09  Michael Natterer  <mitch@gimp.org>

	* app/core/core-types.h: include "libgimpmath/gimpmathtypes.h"
	instead of "libgimpmath/gimpmath.h".

	* app/core/gimpbrush.h
	* app/paint/gimppaintcore.h
	* app/paint/gimpperspectiveclone.h
	* app/text/gimptext.h
	* app/tools/gimptransformtool.h: include gimpvector.h and
	gimpmatrix.h explicitely where they are needed in public structs.

	* app/*/*.c
	* tools/pdbgen/pdb/paths.pdb: include "libgimpmath/gimpmath.h"
	where needed.

	* app/pdb/paths_cmds.c: regenerated.


svn path=/trunk/; revision=22084
2007-03-09 13:00:01 +00:00
Michael Natterer 974a74004f remove useless includes. Some minor cleanup.
2007-03-09  Michael Natterer  <mitch@gimp.org>

	* app/tools/*.c: remove useless includes. Some minor cleanup.


svn path=/trunk/; revision=22083
2007-03-09 11:10:40 +00:00
Michael Natterer c2c21a30f2 Clean up fix for bug #328001:
2007-03-07  Michael Natterer  <mitch@gimp.org>

	Clean up fix for bug #328001:

	* app/tools/gimpeditselectiontool.[ch] (process_event_queue_keys):
	made private again.

	(gimp_edit_selection_tool_translate): new function which has an
	additional GimpTransformType parameter to determine what transform
	to perform. Do all the work here, ignoring the key event's
	modifier state.

	(gimp_edit_selection_tool_key_press): just determine the transform
	type from the key event's modifier state and call
	gimp_edit_selection_tool_translate().

	* app/tools/gimpmovetool.c (gimp_move_tool_key_press): removed all
	code and call gimp_edit_selection_tool_translate() with
	options->move_type. Moved the function to its proper place in the
	file.


svn path=/trunk/; revision=22063
2007-03-07 09:34:47 +00:00
Sven Neumann f878258e5d Patch by Martin Nordholts. Fixes bug #328001.
2007-03-06  Sven Neumann  <sven@gimp.org>

	Patch by Martin Nordholts. Fixes bug #328001.

	* app/tools/gimpeditselectiontool.[ch] 
(process_event_queue_keys):
	Made process_event_queue_keys public for use of gimpmovetool.c.
	Still needs to be renamed and moved to another place.

	* app/tools/gimpmovetool.c (gimp_move_tool_key_press): Created
	gimp_move_tool_key_press() which takes care of events that
	gimp_edit_selection_tool_key_press() is not is able to
	handle. Otherwise just pass key events on to that method.


svn path=/trunk/; revision=22058
2007-03-06 19:56:08 +00:00
Michael Natterer d7ed63948c Step one towards enabling tool cancellation by other means than mouse
2007-02-27  Michael Natterer  <mitch@gimp.org>

	Step one towards enabling tool cancellation by other means than
	mouse button 3 and towards proper "clicked" semantics.

	* app/tools/tools-enums.[ch]: added enum GimpButtonReleaseType
	which can be one of { NORMAL, CANCEL, CLICK } (click is curently
	unused).

	* app/tools/gimptool.[ch] (GimpTool::button_release): added
	"release_type" parameter.

	(gimp_tool_button_release): if the state contains
	GDK_BUTTON3_MASK, call the tool's button_release() with CANCEL,
	use NORMAL otherwise.

	* app/tools/gimpaligntool.c
	* app/tools/gimpblendtool.c
	* app/tools/gimpbrightnesscontrasttool.c
	* app/tools/gimpbucketfilltool.c
	* app/tools/gimpcolortool.c
	* app/tools/gimpcroptool.c
	* app/tools/gimpcurvestool.c
	* app/tools/gimpeditselectiontool.c
	* app/tools/gimpforegroundselecttool.c
	* app/tools/gimpfreeselecttool.c
	* app/tools/gimpiscissorstool.c
	* app/tools/gimpmagnifytool.c
	* app/tools/gimpmeasuretool.c
	* app/tools/gimpmovetool.c
	* app/tools/gimppainttool.c
	* app/tools/gimprectangleselecttool.c
	* app/tools/gimprectangletool.[ch]
	* app/tools/gimpregionselecttool.c
	* app/tools/gimptransformtool.c
	* app/tools/gimpvectortool.c (button_release): added
	"release_type" parameters and get rid of own checks for
	GDK_BUTTON3_MASK.


svn path=/trunk/; revision=22015
2007-02-27 18:55:12 +00:00
Raphael Quinet 65950be141 app/display/gimpstatusbar.[ch] add optional help text at the end of the
2007-01-21  Raphael Quinet  <raphael@gimp.org>

	* app/display/gimpstatusbar.[ch]
	* app/tools/gimptool.[ch]: add optional help text at the end of
	the messages generated by gimp_statusbar_push_coords() and
	gimp_statusbar_push_length().

	* app/tools/gimpcolortool.c
	* app/tools/gimpeditselectiontool.c 
	* app/tools/gimpmovetool.c
	* app/tools/gimprectangletool.c: use the updated functions.

	* app/tools/gimpblendtool.c
	* app/tools/gimpcolorpickertool.c: added status bar messages.

svn path=/trunk/; revision=21745
2007-01-21 01:24:51 +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
Simon Budig 0308d410b4 Fixing include/declaration issues in the application:
2006-11-23  Simon Budig  <simon@gimp.org>

	Fixing include/declaration issues in the application:

	* app/composite/gimp-composite-sse2.c: disable unused debugging code

	* app/paint-funcs/paint-funcs.[ch]
	* app/paint-funcs/scale-funcs.[ch]: fix include files, add some
	prototypes, make some other functions static.

	* app/core/gimpbuffer.c
	* app/core/gimpdrawable-preview.c: changed accordingly.

	* app/tools/gimpeditselectiontool.[ch]: untangle .c and .h file.

	* app/widgets/gimpfiledialog.c: add missing #include.
2006-11-24 14:08:40 +00:00
Sven Neumann 3b92ec7406 hide the internal API.
2006-09-04  Sven Neumann  <sven@gimp.org>

	* app/display/gimpdisplayshell-selection.[ch]: hide the internal
API.

	* app/display/gimpdisplayshell-appearance.c
	* app/display/gimpdisplayshell-callbacks.c
	* app/display/gimpdisplayshell-handlers.c
	* app/display/gimpdisplayshell.[ch]
	* app/tools/gimpcolortool.c
	* app/tools/gimpeditselectiontool.c
	* app/tools/gimpmovetool.c: changed accordingly.

	* app/config/gimpdisplayconfig.c
	* app/dialogs/preferences-dialog.c: increased the default
marching
	ants speed.
2006-09-04 17:18:38 +00:00
Michael Natterer b53aa45a76 Changed GimpViewable preview rendering to have a context to get
2006-08-29  Michael Natterer  <mitch@gimp.org>

	Changed GimpViewable preview rendering to have a context to get
	FG/BG/whatever from. Use the context to enable dynamic FG/BG
	colors in gradients. Fixes bug #127676 and bug #352214. Addresses
	bug #128367 (doesn't fix it because there's no loading/saving and
	no GUI yet).

	* app/core/core-enums.[ch]: added enum GimpGradientColor to enable
	specifying gradient colors in terms of foreground and background.

	* app/core/gimpgradient.[ch]: added color_type members to the
	GimpGradientSegment struct and honor them in
	gimp_gradient_get_color_at(). Added GimpContext parameters to all
	functions which finally call get_color_at().

	* app/core/gimp-gradients.c: use the new method to implement the
	builtin gradients.

	* app/core/gimpviewable.[ch]: added GimpContext parameters to all
	get_preview() and get_pixbuf() functions.

	* app/core/gimpbrush.c
	* app/core/gimpbuffer.c
	* app/core/gimpdrawable-preview.[ch]
	* app/core/gimpgradient.c
	* app/core/gimpimage-preview.[ch]
	* app/core/gimpimagefile.c
	* app/core/gimppalette.c
	* app/core/gimppattern.c
	* app/core/gimpundo.[ch]
	* app/text/gimpfont.c
	* app/vectors/gimpvectors-preview.[ch]: changed ::get_preview()
	and ::get_pixbuf() implementations accordingly.

	* app/core/gimpdrawable-blend.c
	* app/core/gimppalette-import.[ch]
	* app/dialogs/dialogs-constructors.c
	* app/dialogs/palette-import-dialog.c
	* app/dialogs/resize-dialog.c
	* app/display/gimpdisplayshell-layer-select.c
	* app/display/gimpdisplayshell.c
	* app/display/gimpnavigationeditor.c
	* app/paint/gimppaintoptions.c
	* app/tools/gimpeditselectiontool.c
	* app/tools/gimptexttool.c
	* app/actions/gradient-editor-commands.c
	* app/widgets/gimpaction.c
	* app/widgets/gimpbrusheditor.[ch]
	* app/widgets/gimpbufferview.c
	* app/widgets/gimpcellrendererviewable.c
	* app/widgets/gimpchanneltreeview.c
	* app/widgets/gimpclipboard.c
	* app/widgets/gimpcoloreditor.c
	* app/widgets/gimpcomponenteditor.c
	* app/widgets/gimpcontainerbox.c
	* app/widgets/gimpcontainercombobox.c
	* app/widgets/gimpcontainereditor.c
	* app/widgets/gimpcontainerentry.c
	* app/widgets/gimpcontainergridview.c
	* app/widgets/gimpcontainertreeview.[ch]
	* app/widgets/gimpdataeditor.[ch]
	* app/widgets/gimpdevicestatus.c
	* app/widgets/gimpdnd.[ch]
	* app/widgets/gimpdrawabletreeview.c
	* app/widgets/gimpfiledialog.c
	* app/widgets/gimpgradienteditor.[ch]
	* app/widgets/gimpgradientselect.c
	* app/widgets/gimpitemtreeview.c
	* app/widgets/gimplayertreeview.c
	* app/widgets/gimppaletteeditor.[ch]
	* app/widgets/gimppropwidgets.[ch]
	* app/widgets/gimpselectioneditor.c
	* app/widgets/gimpthumbbox.[ch]
	* app/widgets/gimptoolbox-image-area.c
	* app/widgets/gimptoolbox-indicator-area.c
	* app/widgets/gimptooloptionseditor.c
	* app/widgets/gimpundoeditor.c
	* app/widgets/gimpvectorstreeview.c
	* app/widgets/gimpview-popup.[ch]
	* app/widgets/gimpview.[ch]
	* app/widgets/gimpviewablebutton.c
	* app/widgets/gimpviewabledialog.c
	* app/widgets/gimpviewrenderer.[ch]
	* app/widgets/gimpviewrenderer-frame.c
	* app/widgets/gimpviewrendererbrush.c
	* app/widgets/gimpviewrendererbuffer.c
	* app/widgets/gimpviewrendererdrawable.c
	* app/widgets/gimpviewrenderergradient.c
	* app/widgets/gimpviewrendererimage.c
	* tools/pdbgen/pdb/drawable.pdb
	* tools/pdbgen/pdb/gradient.pdb
	* tools/pdbgen/pdb/gradients.pdb
	* tools/pdbgen/pdb/image.pdb: added tons of GimpContext members
	and parameters, implement GimpDocked::set_context() in many
	widgets. Pass these locally remembered contexts to GimpViewable
	functions. Did some minor cleanups on the way. There are still
	some minor FIXMEs around where the code uses a NULL context (which
	is allowed by the APIs)

	* app/pdb/drawable_cmds.c
	* app/pdb/gradient_cmds.c
	* app/pdb/gradients_cmds.c
	* app/pdb/image_cmds.c: regenerated.
2006-08-29 21:44:51 +00:00
Michael Natterer 2a97cb07c1 added check for GIMP_TRANSLATE_MODE_MASK_COPY_TO_LAYER which was forgotten
2006-08-15  Michael Natterer  <mitch@gimp.org>

	* app/tools/gimpeditselectiontool.c (gimp_edit_selection_tool_start):
	added check for GIMP_TRANSLATE_MODE_MASK_COPY_TO_LAYER which was
	forgotten when this mode was introduced.
2006-08-15 21:15:49 +00:00
Michael Natterer 3e5b6e0e05 app/core/Makefile.am new files with functions to translate, flip, rotate,
2006-05-21  Michael Natterer  <mitch@gimp.org>

	* app/core/Makefile.am
	* app/core/gimpimage-item-list.[ch]: new files with functions to
	translate, flip, rotate, transform and align a list of items
	inside an undo group.

	(gimp_image_item_list_get_list): returns a list of items matching
	any combination of GimpItemTypeMask and GimpItemSet.

	* app/core/gimpitem.[ch]: added new function gimp_item_is_in_set().

	* app/core/gimpitem-linked.[ch]: use the new functions. Removed
	gimp_item_linked_get_list().

	* app/tools/gimpeditselectiontool.c: use
	gimp_image_item_list_get_list() instead of
	gimp_item_linked_get_list().

	* app/core/gimpimage-resize.c
	* app/tools/gimpaligntool.c: use the new functions instead of
	creating and iterating the lists manually.
2006-05-21 11:32:41 +00:00
Michael Natterer 42ff7f4920 remove enum GimpItemLinkedMask...
2006-05-19  Michael Natterer  <mitch@gimp.org>

	* app/core/gimpitem-linked.h: remove enum GimpItemLinkedMask...

	* app/core/core-enums.[ch]: ...and add it here as GimpItemTypeMask.
	Renamed enum GimpImageResizeLayers to GimpItemSet.

	* app/core/gimpitem-linked.[ch]
	* app/core/gimpimage-resize.[ch]
	* app/dialogs/resize-dialog.[ch]
	* app/actions/image-commands.c
	* app/actions/layers-commands.c
	* app/tools/gimpeditselectiontool.c: changed accordingly.
2006-05-19 14:50:46 +00:00
Sven Neumann 6ebcf700d1 removed erroneous semicolon after G_DEFINE_TYPE macros.
2006-05-15  Sven Neumann  <sven@gimp.org>

	* app/*/*.c:
	* lib*/*.c: removed erroneous semicolon after G_DEFINE_TYPE macros.
2006-05-15 09:46:31 +00:00
Sven Neumann 5439aa4995 did a global gdisp -> display substitution.
2006-03-28  Sven Neumann  <sven@gimp.org>

	* app/*: did a global gdisp -> display substitution.
2006-03-28 17:55:52 +00:00
Sven Neumann 905fdfcbed did a global gimage -> image substitution.
2006-03-28  Sven Neumann  <sven@gimp.org>

	* app/*: did a global gimage -> image substitution.
2006-03-28 17:08:36 +00:00
Michael Natterer 8b8c784a5b port to G_DEFINE_TYPE() and friends. Some related cleanup.
2005-12-13  Michael Natterer  <mitch@gimp.org>

	* app/tools/*.c: port to G_DEFINE_TYPE() and friends. Some related
	cleanup.
2005-12-13 09:13:50 +00:00
Sven Neumann 1f0aff2b09 libgimpwidgets/gimpwidgets.def added gimp_zoom_model_zoom() and changed
2005-09-25  Sven Neumann  <sven@gimp.org>

	* libgimpwidgets/gimpwidgets.def
	* libgimpwidgets/gimpzoommodel.[ch]: added gimp_zoom_model_zoom()
	and changed gimp_zoom_model_get_fraction() to take a model instead
	of the zoom factor.

	* app/display/gimpdisplayshell.[ch]: use a GimpZoomModel for the
	display scale factor.

	* app/actions/image-commands.c
	* app/actions/view-actions.c
	* app/actions/view-commands.c
	* app/display/gimpdisplayshell-callbacks.c
	* app/display/gimpdisplayshell-scale.c
	* app/display/gimpdisplayshell-title.c
	* app/display/gimpnavigationeditor.c
	* app/display/gimpstatusbar.c
	* app/tools/gimpeditselectiontool.c
	* app/tools/gimpmagnifytool.c: changed accordingly.
2005-09-25 17:03:03 +00:00
Michael Natterer 4fb1743f55 renamed puclic functions, defines and enums to live in a proper "boundary"
2005-08-20  Michael Natterer  <mitch@gimp.org>

	* app/base/boundary.[ch]: renamed puclic functions, defines and
	enums to live in a proper "boundary" namespace. Cleaned up and
	simplified internal code even more.

	* app/core/gimpchannel.c
	* app/core/gimpdrawable-stroke.c
	* app/core/gimplayer-floating-sel.c
	* app/paint/gimppaintcore-stroke.c
	* app/tools/gimpeditselectiontool.c
	* app/tools/gimpfuzzyselecttool.c
	* app/tools/gimppainttool.c: changed accordingly.
2005-08-20 15:46:37 +00:00
Sven Neumann 6466e3b82d need to sort the boundary here since gimp_draw_tool_draw_boundary()
2005-07-18  Sven Neumann  <sven@gimp.org>

	* app/tools/gimpeditselectiontool.c (gimp_edit_selection_tool_start):
	need to sort the boundary here since gimp_draw_tool_draw_boundary()
	expects a sorted boundary now. Fixes bug #310432.

	* app/tools/gimppainttool.c: formatting.
2005-07-18 15:54:49 +00:00
Sven Neumann 27042a7b36 app/tools/gimppainttool.[ch] unified tool and paint-tool statusbar APIs.
2005-05-07  Sven Neumann  <sven@gimp.org>

	* app/tools/gimppainttool.[ch]
	* app/tools/gimptool.[ch]: unified tool and paint-tool statusbar APIs.

	* app/tools/gimpblendtool.c
	* app/tools/gimpclonetool.c
	* app/tools/gimpcolortool.c
	* app/tools/gimpcroptool.c
	* app/tools/gimpeditselectiontool.c
	* app/tools/gimpfuzzyselecttool.c
	* app/tools/gimpmeasuretool.c
	* app/tools/gimpmovetool.c
	* app/tools/gimpnewrectselecttool.c
	* app/tools/gimprectangletool.c
	* app/tools/gimprectselecttool.c
	* app/tools/gimpvectortool.c: changed accordingly.

	* app/tools/gimpselectiontool.c: give more hints in the statusbar.
	Some of the selection tools should probably override these.
2005-05-07 13:24:47 +00:00
Michael Natterer c0d9179492 removed redundant "gimage" parameter.
2004-11-16  Michael Natterer  <mitch@gimp.org>

	* app/core/gimpitem-linked.[ch] (gimp_item_linked_get_list):
	removed redundant "gimage" parameter.

	* app/tools/gimpeditselectiontool.c: changed accordingly.
2004-11-16 13:52:04 +00:00
Michael Natterer 76d95a10d0 added new parameter "gboolean propagate_release" to
2004-10-06  Michael Natterer  <mitch@gimp.org>

	* app/tools/gimpeditselectiontool.[ch]: added new parameter
	"gboolean propagate_release" to gimp_edit_slection_tool_start()
	and remember it in the GimpEditSelectionTool struct. If requested,
	propagate GimpTool::button_release() to the tool below in the tool
	stack.

	* app/tools/gimpselectiontool.c (gimp_selection_tool_start_edit):
	pass FALSE so we don't get the button_release().

	* app/tools/gimpmovetool.[ch]: pass TRUE so we get
	button_release(). If moving a layer or path in "pick active" mode,
	remember the old active layer/path and switch back to it in
	button_release(). Fixes bug #97734.

	Unrelated:

	* app/tools/gimpeditselectiontool.c
	(gimp_edit_selection_tool_motion): set "first_move" to FALSE only
	if a move actually happened. Fixes un-undoable moves at high zoom
	factors.
2004-10-06 21:04:13 +00:00
Michael Natterer 10d80dac75 removed the hack that was displaying "Floating Selection" instead of the
2004-09-22  Michael Natterer  <mitch@gimp.org>

	* app/widgets/gimplayertreeview.c
	(gimp_layer_tree_view_floating_selection_changed): removed the
	hack that was displaying "Floating Selection" instead of the
	floating layer's real name.

	* app/core/gimplayer.c: implement GimpViewable::get_description()
	instead and special case floating selections with a two-line
	text that contains "Floating Selection".

	* app/core/gimplayer-floating-sel.c
	* app/core/gimpimage-undo-push.c: emit "name_changed" on the layer
	when it changes its state from floating to normal or vice versa
	so the views can update accordingly.

	* app/core/gimpselection.c: s/"Selection"/"Floated Layer"/.

	* app/tools/gimpeditselectiontool.c:
	s/"Floating Layer"/"Floating Selection"/.
2004-09-22 12:46:35 +00:00
Michael Natterer b909c2b2ee new function which checks if undo compression is possible:
2004-08-03  Michael Natterer  <mitch@gimp.org>

	* app/core/gimpimage-undo.[ch] (gimp_image_undo_can_compress):
	new function which checks if undo compression is possible:

	(1) is the image dirty? Fixes bug #148853.
	(2) is redo stack empty?
	(3) do both the passed undo object_type and undo_type
	    match the top undo item?

	Consistently name the GType and GimpUndoType passed to undo
	functions "object_type" and "undo_type" to avoid confusion.

	* app/actions/layers-commands.c
	* app/tools/gimpeditselectiontool.c
	* app/tools/gimptexttool.c
	* app/widgets/gimpitemtreeview.c
	* app/widgets/gimplayertreeview.c: use the new utility function
	instead of checking the above conditions manually.
2004-08-03 14:09:49 +00:00
Michael Natterer d50a2db779 renamed init_edit_selection() to gimp_edit_selection_tool_start(). Removed
2004-07-26  Michael Natterer  <mitch@gimp.org>

	* app/tools/gimpeditselectiontool.[ch]: renamed init_edit_selection()
	to gimp_edit_selection_tool_start(). Removed enum EditType.

	* app/tools/tools-enums.h: added enum GimpTranslateMode instead.

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

	* app/tools/gimpselectiontool.[ch]: added protected utility
	function gimp_selection_tool_start_edit().

	* app/tools/gimpfreeselecttool.c
	* app/tools/gimpfuzzyselecttool.c
	* app/tools/gimprectselecttool.c: use the new function instead of
	duplicating the same code three times, don't include
	"gimpeditselectiontool.h".

	* app/tools/gimpiscissorstool.c: don't include
	"gimpeditselectiontool.h".
2004-07-26 14:50:51 +00:00
Michael Natterer 674f80e155 don't freeze()/thaw() the image's undo to prevent live-movement from
2004-07-26  Michael Natterer  <mitch@gimp.org>

	* app/tools/gimpeditselectiontool.c: don't freeze()/thaw() the
	image's undo to prevent live-movement from ending up on the undo
	stack. Instead, just stop pushing undo steps after the initial
	movement. Simplifies edit_select's undo code quite a bit and fixes
	bug #148458.
2004-07-26 13:15:22 +00:00
Michael Natterer c5ec0d4f70 *** empty log message *** 2004-07-13 16:36:29 +00:00
Sven Neumann 9f25f8608b adapt the arrow key velocity to the display scale factor. Please test and
2004-07-07  Sven Neumann  <sven@gimp.org>

	* app/tools/gimpeditselectiontool.c
	(gimp_edit_selection_tool_key_press): adapt the arrow key velocity
	to the display scale factor. Please test and complain if you
	dislike this behaviour.

	* themes/Default/images/Makefile.am
	* themes/Default/images/stock-color-pick-from-screen-16.png: new
	icon drawn by Jimmac.

	* libgimpwidgets/gimpstock.[ch]: register the new icon.

	* libgimpwidgets/gimppickbutton.c: use it for the screen color
	picker instead of reusing the color picker tool icon.
2004-07-06 22:58:33 +00:00
Michael Natterer 02b91f6628 app/tools/gimptool.[ch] added boolean return value to
2004-06-24  Michael Natterer  <mitch@gimp.org>

	* app/tools/gimptool.[ch]
	* app/tools/tool_manager.[ch]: added boolean return value to
	GimpTool::key_press() which indicates if the event was handled.

	* app/tools/gimpcroptool.c
	* app/tools/gimpeditselectiontool.[ch]
	* app/tools/gimptransformtool.c
	* app/tools/gimpvectortool.c: return TRUE if the key event was handled.

	* app/tools/gimppainttool.c: removed key_press() implementation.

	* app/widgets/Makefile.am
	* app/widgets/widgets-types.h
	* app/widgets/gimpcontrollerkeyboard.[ch]: new controller class
	which takes GdkEventKey and emits controller events for all
	combinations of modifiers and cursor keys.

	* app/widgets/gimpcontrollers.[ch]: added new function
	gimp_controllers_get_keyboard().

	* app/display/gimpdisplayshell-callbacks.c: if a key event was not
	handled by the active tool, dispatch it to the keyboard controller.

	* etc/controllerrc: add a keyboard controller which is configured
	to do the same as the removed gimp_paint_tool_key_press().
2004-06-24 10:16:08 +00:00
Simon Budig 3fe1753e1a Make the Enter/Return key do the crop action.
2004-06-12  Simon Budig  <simon@gimp.org>

	* app/tools/gimpcroptool.c: Make the Enter/Return key do
	the crop action.

	* app/tools/gimpeditselectiontool.c
	* app/tools/gimpvectortool.c: Make the _key_press functions
	safe for non-arrow keys.
2004-06-12 19:29:50 +00:00
Simon Budig 3c1b7fe68f renamed the "arrow_key" member to "key_press", since it is now no longer
2004-06-12  Simon Budig  <simon@gimp.org>

	* app/tools/gimptool.[ch]: renamed the "arrow_key" member
	to "key_press", since it is now no longer about just the arrow
	keys.

	* app/tools/gimpcroptool.c
	* app/tools/gimpeditselectiontool.c
	* app/tools/gimpeditselectiontool.h
	* app/tools/gimpmovetool.c
	* app/tools/gimppainttool.c
	* app/tools/gimpselectiontool.c
	* app/tools/gimptexttool.c
	* app/tools/gimpvectortool.c
	* app/tools/tool_manager.c: Changed accordingly.
2004-06-12 18:41:52 +00:00
Michael Natterer a30db14bb7 set translate_desc to "Move Layer Mask".
2004-04-15  Michael Natterer  <mitch@gimp.org>

	* app/core/gimplayermask.c (gimp_layer_mask_class_init): set
	translate_desc to "Move Layer Mask".

	* app/tools/gimpeditselectiontool.c: take the undo desc
	from the moved item's class instead of duplicating all
	strings here.
2004-04-15 15:07:30 +00:00
Michael Natterer 18d9161eea Get rid of the "current_context" which was in fact just a bunch of global
2004-04-15  Michael Natterer  <mitch@gimp.org>

	Get rid of the "current_context" which was in fact just a bunch of
	global variables. Instead, pass the needed context all the way
	from the GUI and the PDB to the core. This is a prerequisite for
	macro recording and generally helps separating the various
	subsystems from each other. Work in progress...

	* app/core/gimp.[ch]: removed member "current_context" and
	gimp_[get|set]_current_context().

	* app/core/gimp-edit.[ch]
	* app/core/gimpdrawable-blend.[ch]
	* app/core/gimpdrawable-bucket-fill.[ch]
	* app/core/gimpdrawable-offset.[ch]
	* app/core/gimpdrawable-transform.[ch]
	* app/core/gimpimage-crop.[ch]
	* app/core/gimpimage-flip.[ch]
	* app/core/gimpimage-merge.[ch]
	* app/core/gimpimage-resize.[ch]
	* app/core/gimpimage-rotate.[ch]
	* app/core/gimpimage.[ch]
	* app/core/gimpimagefile.[ch]
	* app/core/gimpitem-linked.[ch]
	* app/core/gimpitem.[ch]
	* app/core/gimplayer.[ch]
	* app/core/gimpselection.[ch]
	* app/core/gimptemplate.[ch]
	* app/file/file-open.[ch]
	* app/file/file-save.[ch]
	* app/pdb/procedural_db.[ch]
	* app/text/gimptext-compat.[ch]
	* app/text/gimptextlayer-transform.[ch]
	* app/gui/brush-select.[ch]
	* app/gui/font-select.[ch]
	* app/gui/gradient-select.[ch]
	* app/gui/palette-select.[ch]
	* app/gui/pattern-select.[ch]: added tons of "GimpContext *context"
	parameters and use the passed context instead of
	gimp_get_current_context().

	* app/app_procs.c
	* app/batch.c
	* app/core/gimpchannel.c
	* app/core/gimpdrawable.c
	* app/paint/gimperaser.c
	* app/paint/gimppaintbrush.c
	* app/plug-in/plug-in-message.c
	* app/plug-in/plug-ins.c
	* app/text/gimptextlayer.c
	* app/tools/gimpblendtool.c
	* app/tools/gimpbucketfilltool.c
	* app/tools/gimpcroptool.c
	* app/tools/gimpeditselectiontool.c
	* app/tools/gimpfliptool.c
	* app/tools/gimpinktool.c
	* app/tools/gimptransformtool.c
	* app/vectors/gimpvectors.c
	* app/gui/convert-dialog.c
	* app/gui/drawable-commands.c
	* app/gui/edit-commands.c
	* app/gui/file-commands.c
	* app/gui/file-new-dialog.c
	* app/gui/file-open-dialog.c
	* app/gui/file-save-dialog.c
	* app/gui/image-commands.c
	* app/gui/layers-commands.c
	* app/gui/offset-dialog.c
	* app/gui/select-commands.c
	* app/gui/vectors-commands.c
	* app/widgets/gimpdnd.c
	* app/widgets/gimpdocumentview.c
	* app/widgets/gimphelp.c
	* app/widgets/gimpthumbbox.c: pass gimp_get_user_context() or
	GIMP_CONTEXT(tool_options) or whatever is the right context
	to the changed core functions.

	* tools/pdbgen/app.pl: pass "GimpContext *context" to all
	generated PDB invokers.

	* tools/pdbgen/pdb/brush_select.pdb
	* tools/pdbgen/pdb/brushes.pdb
	* tools/pdbgen/pdb/drawable.pdb
	* tools/pdbgen/pdb/edit.pdb
	* tools/pdbgen/pdb/font_select.pdb
	* tools/pdbgen/pdb/gradient_select.pdb
	* tools/pdbgen/pdb/gradients.pdb
	* tools/pdbgen/pdb/image.pdb
	* tools/pdbgen/pdb/layer.pdb
	* tools/pdbgen/pdb/paint_tools.pdb
	* tools/pdbgen/pdb/palette.pdb
	* tools/pdbgen/pdb/palette_select.pdb
	* tools/pdbgen/pdb/palettes.pdb
	* tools/pdbgen/pdb/paths.pdb
	* tools/pdbgen/pdb/pattern_select.pdb
	* tools/pdbgen/pdb/patterns.pdb
	* tools/pdbgen/pdb/selection.pdb
	* tools/pdbgen/pdb/text_tool.pdb
	* tools/pdbgen/pdb/transform_tools.pdb: pass the new context
	parameter to the changed core functions.

	* app/pdb/*_cmds.c: regenerated.
2004-04-14 23:37:34 +00:00
Michael Natterer 2e61d12ed4 Moved the calls to floating_sel_relax()/rigor() from various places to two
2004-04-13  Michael Natterer  <mitch@gimp.org>

	Moved the calls to floating_sel_relax()/rigor() from various
	places to two single spots in the core where they are actually
	needed. Fixes bug #138356 (which was caused by the projection
	being triggered in the middle of changing the floating selection's
	size or the size of the drawable it is attached to). This commit
	effectively removes floating selection fiddling from the core's
	public API.

	* app/core/gimpdrawable.[ch] (gimp_drawable_has_floating_sel): new
	function which returns TRUE if there is a floating selection
	attached to the drawable.

	* app/core/gimpdrawable.c (gimp_drawable_translate)
	(gimp_drawable_set_tiles_full): if the drawable *has* a floating
	selection, relax/rigor it before/after modifying the drawable.

	* app/core/gimplayer.c (gimp_layer_translate)
	(gimp_layer_set_tiles): if the layer *is* the floating selection,
	relax/rigor it before/after modifying it.

	* app/core/gimpdrawable-transform.c
	* app/core/gimpimage-convert.c
	* app/core/gimpimage-crop.c
	* app/core/gimpimage-flip.c
	* app/core/gimpimage-resize.c
	* app/core/gimpimage-rotate.c
	* app/core/gimpimage-scale.c
	* app/gui/layers-commands.c
	* app/tools/gimpeditselectiontool.c
	* tools/pdbgen/pdb/layer.pdb: removed calls to
	floating_sel_rigor()/relax() all over the place. Also removed
	lots of undo groups which are obsolete now.

	* app/pdb/layer_cmds.c: regenerated.
2004-04-13 13:54:54 +00:00
Simon Budig 5e47b5a0ed Make it possible to refresh the preview of an undo step.
2004-03-20  Simon Budig  <simon@gimp.org>

	* app/core/gimpundo.[ch]: Make it possible to refresh the preview
	of an undo step.

	* app/tools/gimpeditselectiontool.c
	* app/widgets/gimpitemtreeview.c
	* app/widgets/gimplayertreeview.c: refresh the preview when
	compressing undos. This ensures that the last preview in the undo
	history always reflects the current state of the image.
2004-03-19 23:42:42 +00:00
Michael Natterer dade4a8430 app/tools/gimpeditselectiontool.c compress undo steps only if the redo
2004-03-02  Michael Natterer  <mitch@gimp.org>

	* app/tools/gimpeditselectiontool.c
	* app/widgets/gimplayertreeview.c: compress undo steps only
	if the redo stack is empty.
2004-03-02 14:33:31 +00:00
Simon Budig 331f982322 added "use_offsets" parameter to gimp_draw_tool_draw_boundary() for
2004-02-21  Simon Budig  <simon@gimp.org>

	* app/tools/gimpdrawtool.[ch]: added "use_offsets" parameter
	to gimp_draw_tool_draw_boundary() for consistency.

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

	* app/tools/gimppainttool.c: when drawing straight lines draw
	the brush preview at the end of the line.
2004-02-21 16:06:56 +00:00
Michael Natterer 856c4eeedb Enabled/fixed moving of channels and layer masks (was something between
2004-01-12  Michael Natterer  <mitch@gimp.org>

	Enabled/fixed moving of channels and layer masks (was something
	between disabled and broken before).

	* app/tools/gimpeditselectiontool.h (enum EditType): added new
	values EDIT_CHANNEL_TRANSLATE and EDIT_LAYER_MASK_TRANSLATE.

	* app/tools/gimpmovetool.c (gimp_move_tool_button_press): look at
	the type of the active drawable and invoke GimpEditSelectionTool
	accordingly.

	(gimp_move_tool_cursor_update): don't show the "bad" cursor when
	the active drawable is a channel or layer mask.

	* app/tools/gimpeditselectiontool.c: changed/enabled moving of
	channels and layer masks to work similar to selection mask moving:

	- Show only the item's outline while moving and do the actual move
	  on button_release.
	- Fixed/generalized some code to cope with the fact that we move
	  the linked layers/vectors *while* moving but the moved channel
	  itself *after* moving.
	- Draw the channel's/mask's bounding box instead of its boundary
	  if the boundary is empty (if all its values are either below or
	  above HALF_WAY).
2004-01-12 14:13:24 +00:00
Michael Natterer f0372cad0f Treat changes to the selection like changes to any other drawable:
2003-10-06  Michael Natterer  <mitch@gimp.org>

	Treat changes to the selection like changes to any other drawable:

	* app/core/gimpchannel.c
	* app/core/gimpchannel-combine.c: call gimp_drawable_update() after
	changing the channel.

	* app/core/gimpimage.[ch]: added struct GimpImageFlushAccumulator
	with one member "gboolean mask_changed". Connect to "update" of
	the selection and set accum.mask_changed to TRUE in the callback.
	Added default implementation for GimpImage::flush() and emit
	"mask_changed" there.

	Unrelated:
	* app/core/gimpimage.h: removed GimpGuide struct...
	* app/core/gimpimage-guides.h: ...and added it here.

	* app/core/gimpimage-undo-push.c (undo_pop_mask)
	(undo_pop_channel_mod): don't distinguish between selection and
	non-selection channels and just call gimp_drawable_update().

	* app/core/gimpundo.h
	* app/core/gimpimage-undo.c: removed "gboolean mask_changed" from
	the GimpUndoAccumulator struct since we don't have to care about
	that signal explicitly any more.

	* app/display/gimpdisplay-foreach.[ch]: removed gimp_displays_flush().

	* tools/pdbgen/pdb/display.pdb (displays_flush_invoker): call
	gimp_image_flush() on all images so the flush accumulator is
	honored.

	This generalization enables the removal of more special purpose
	code which was needed to treat the selection different:

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

	* app/core/gimpchannel-select.[ch]: ...and added under a new name
	because it's not selection specific any more.

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

	* app/core/gimpselection.[ch]: ...added the two remaining
	functions here. Removed all calls to gimp_image_mask_changed().

	* app/core/Makefile.am
	* app/core/gimp-edit.c
	* app/core/gimpdrawable-transform.c
	* app/core/gimpimage-scale.c
	* app/core/gimpimage-snap.c
	* app/display/gimpdisplayshell.c
	* app/gui/channels-commands.c
	* app/gui/layers-commands.c
	* app/gui/select-commands.c
	* app/gui/vectors-commands.c
	* app/tools/gimpbycolorselecttool.c
	* app/tools/gimpeditselectiontool.c
	* app/tools/gimpellipseselecttool.c
	* app/tools/gimpfreeselecttool.c
	* app/tools/gimpfuzzyselecttool.c
	* app/tools/gimpiscissorstool.c
	* app/tools/gimprectselecttool.c
	* app/tools/gimptransformtool.c
	* app/widgets/gimpchanneltreeview.c
	* app/widgets/gimpselectioneditor.c
	* app/widgets/gimpvectorstreeview.c
	* app/xcf/xcf-save.c
	* tools/pdbgen/pdb/paths.pdb
	* tools/pdbgen/pdb/selection.pdb
	* tools/pdbgen/pdb/selection_tools.pdb: changed accordingly.

	* app/core/gimpdrawable-bucket-fill.c
	* app/core/gimpimage-colormap.c
	* app/core/gimplayer-floating-sel.c
	* app/core/gimplayer.c
	* app/gui/image-menu.c
	* app/paint/gimppaintcore.c
	* app/tools/gimpcroptool.c
	* app/tools/gimpinkoptions.c
	* app/tools/gimpvectortool.c: removed useless and/or obsolete
	#includes.

	* app/pdb/display_cmds.c
	* app/pdb/paths_cmds.c
	* app/pdb/selection_cmds.c
	* app/pdb/selection_tools_cmds.c: regenerated.
2003-10-06 12:17:11 +00:00
Michael Natterer b46c0f7f4d initialize undo_type to shut up the compiler.
2003-09-17  Michael Natterer  <mitch@gimp.org>

	* app/tools/gimpeditselectiontool.c
	(gimp_edit_selection_tool_arrow_key): initialize undo_type to shut
	up the compiler.
2003-09-17 22:00:10 +00:00
Michael Natterer 94dddc1820 changed "gboolean move_mask" to "GimpTransformType move_type" and added an
2003-09-16  Michael Natterer  <mitch@gimp.org>

	* app/tools/gimpmoveoptions.[ch]: changed "gboolean move_mask" to
	"GimpTransformType move_type" and added an "Affect:" stock radio
	box so it offers the same LAYER,SELECTION,PATH choice as the other
	transform tools.

	* app/tools/gimpmovetool.[ch]: honor the new tool option, made
	cursor_update() show more different cursors which describe the
	state of the tool more closely, fixed some cases where the
	GimpeditSelectionTool was invoked with meaningless values
	(like requesting a selection transform when there is no
	selection).

	Changed modifiers:

	- Made <Shift> toggle "move current layer".
	- Made <Control> switch to path moving.
	- <Alt> switched to selection moving as before.

	* app/tools/gimpeditselectiontool.[ch]: added EDIT_VECTORS_TRANSLATE
	operation mode and honor it all over the place. Unified the code
	which transforms layers and vectors since it's essentially the same.

	(gimp_edit_selection_tool_cursor_key): simplified selection moving
	code and added support for moving paths (using <Control>).
2003-09-16 16:23:38 +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
Michael Natterer 008e3e208c removed the _bounds() and _boundary() wrappers.
2003-09-03  Michael Natterer  <mitch@gimp.org>

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

	* app/core/gimpdrawable.c
	* app/display/gimpdisplayshell-selection.c
	* app/gui/image-commands.c
	* app/gui/layers-commands.c
	* app/tools/gimpcroptool.c
	* app/tools/gimpeditselectiontool.c
	* app/tools/gimptransformtool.c
	* app/xcf/xcf-save.c: changed accordingly.
2003-09-03 17:17:18 +00:00
Michael Natterer f47b758f32 removed the _translate() and _stroke() wrappers.
2003-09-03  Michael Natterer  <mitch@gimp.org>

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

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

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

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

	* app/core/gimpimage-crop.c
	* app/core/gimpimage-flip.c
	* app/core/gimpimage-resize.c
	* app/core/gimpimage-rotate.c
	* app/core/gimpimage-scale.c: no need to call
	gimp_image_mask_invalidate() and/or gimp_image_mask_changed()
	manually after scale, resize, flip and rotate, since GimpSelection
	updates itself correctly.
2003-09-03 10:19:47 +00:00
Sven Neumann b20358c07f removed a superfluous call to g_object_ref().
2003-09-02  Sven Neumann  <sven@gimp.org>

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

	* app/vectors/gimpvectors.c (gimp_vectors_copy_strokes): free the
	old list of strokes.
2003-09-02 14:00:38 +00:00
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