Commit graph

137 commits

Author SHA1 Message Date
Sven Neumann d34ff5537d libgimpbase/Makefile.am libgimpbase/gimpbase.h added new files that hold
2006-08-29  Sven Neumann  <sven@gimp.org>

	* libgimpbase/Makefile.am
	* libgimpbase/gimpbase.h
	* libgimpbase/gimprectangle.[ch]: added new files that hold
	gimp_rectangle_intersect(), factored out of the core.

	* libgimpbase/gimpbase.def: updated.

	* app/core/gimp-edit.c
	* app/core/gimp-utils.c
	* app/core/gimp-utils.h
	* app/core/gimpchannel-combine.c
	* app/core/gimpdrawable-foreground-extract.c
	* app/core/gimpdrawable-transform.c
	* app/core/gimpdrawable.c
	* app/core/gimpimage-preview.c
	* app/core/gimplayer.c
	* app/core/gimpscanconvert.c
	* app/display/gimpdisplayshell-draw.c: changed includes accordingly.

	* libgimp/gimpdrawablepreview.c: don't duplicate
	gimp_rectangle_intersect() here, use the function in libgimpbase.

	* app/base/siox.c: use gimp_rectangle_intersect() to reduce the
	working area to the region of interest. Fixes bug #340422.
2006-08-29 14:46:32 +00:00
Sven Neumann 740f56c6b9 do not autocrop the buffer contents, always keep the selection size (bug
2006-08-14  Sven Neumann  <sven@gimp.org>

	* app/core/gimp-edit.c (gimp_edit_make_buffer): do not autocrop
	the buffer contents, always keep the selection size (bug #350897).
2006-08-14 08:21:26 +00:00
Sven Neumann f2baf8d9a1 formatting.
2006-07-20  Sven Neumann  <sven@gimp.org>

	* app/core/gimp-edit.c: formatting.
2006-07-20 15:20:07 +00:00
Sven Neumann 049872b361 app/*.[ch] converted tabs to spaces.
2006-04-12  Sven Neumann  <sven@gimp.org>

	* app/*.[ch]
	* app/*/*.[ch]: converted tabs to spaces.
2006-04-12 12:49:29 +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
Sven Neumann f40e8e8a51 app/actions/colormap-editor-actions.c
2006-03-24  Sven Neumann  <sven@gimp.org>

	* app/actions/colormap-editor-actions.c
	* app/actions/gradient-editor-actions.c
	* app/actions/palette-editor-actions.c
	* app/core/gimp-edit.c
	* app/core/gimpchannel-select.c: some more string changes, mainly
	avoiding the use of FG and BG in labels where there's no need for
	being concise.
2006-03-24 11:01:24 +00:00
Michael Natterer b55ce9ea2d added new methods ::get_bytes() and ::flush()
2006-03-02  Michael Natterer  <mitch@gimp.org>

	* app/core/gimppickable.[ch]: added new methods ::get_bytes() and
	::flush()

	* app/core/gimpchannel.c
	* app/core/gimpdrawable.c
	* app/core/gimpimagemap.c
	* app/core/gimpprojection.c: implement ::get_bytes()

	* app/core/gimpprojection.c: implement ::flush() (immediately
	process both the idle renderer's queue and the unflushed update
	areas, to make sure that any reading from the projection will
	re-construct it).

	* app/core/gimp-edit.c
	* app/core/gimpchannel.c
	* app/core/gimpimage-contiguous-region.c
	* app/core/gimpimage-crop.c
	* app/core/gimppalette-import.c
	* app/paint/gimpclone.c
	* app/tools/gimpbycolorselecttool.c
	* app/tools/gimpiscissorstool.c
	* tools/pdbgen/pdb/image.pdb: use the pickable interface more
	consistently when reading from any drawable or the projection, and
	call gimp_pickable_flush() before doing so. Fixes bug #332933.

	* app/core/gimpimage-pick-color.c: added comment why the we don't
	call gimp_pickable_flush() here.

	* app/pdb/image_cmds.c
	* libgimp/gimpimage_pdb.c: regenerated.
2006-03-02 19:30:59 +00:00
Michael Natterer dd1d749870 don't let named cut/copy affect the global buffer. Fixes bug #315225. Also
2005-09-05  Michael Natterer  <mitch@gimp.org>

	* app/core/gimp-edit.c: don't let named cut/copy affect the global
	buffer. Fixes bug #315225. Also make "Global Buffer" translatable.
2005-09-05 18:21:51 +00:00
Michael Natterer 89bb3fffa1 don't create a display here.
2005-09-03  Michael Natterer  <mitch@gimp.org>

	* app/core/gimp-edit.[ch] (gimp_edit_paste_as_new): don't create a
	display here.

	(gimp_edit_named_cut)
	(gimp_edit_named_copy)
	(gimp_edit_named_copy_visible): new functions containing named
	buffer wrappers around the functions affecting the global buffer
	only.

	* app/actions/edit-commands.c: use the new functions instead of
	implementing them here, create a display for the image returned
	by paste as new.

	* app/actions/buffers-commands.c
	* app/widgets/gimptoolbox-dnd.c: create displays here too.

	* tools/pdbgen/pdb/edit.pdb: added wrappers for paste as new and
	wrappers for all the cut/copy/paste named stuff.
	Fixes bug #315130. Cleaned up and de-obfuscated.

	* libgimp/gimp.def: changed accordingly.

	* app/pdb/edit_cmds.c
	* app/pdb/internal_procs.c
	* libgimp/gimpedit_pdb.[ch]: regenerated.
2005-09-02 22:50:06 +00:00
Michael Natterer 893c9b9872 pass opacity and paint_mode to gimp_edit_fill_internal() instead of
2005-07-12  Michael Natterer  <mitch@gimp.org>

	* app/core/gimp-edit.c: pass opacity and paint_mode to
	gimp_edit_fill_internal() instead of figuring them in the
	function.
2005-07-12 15:11:40 +00:00
Michael Natterer ef4b245610 Fix bug #134304, as far as it's fixable:
2005-06-10  Michael Natterer  <mitch@gimp.org>

	Fix bug #134304, as far as it's fixable:

	* app/core/gimp-edit.c (gimp_edit_paste_as_new): handle pasting
	buffers without alpha. Also don't uselessly convert all buffers
	to RGB but create an image in the buffer's color space.

	(gimp_edit_extract): call gimp_selection_extract() with
	add_alpha = FALSE.

	* app/core/gimpselection.c (gimp_selection_extract): set add_alpha
	to TRUE if there is a selection, because the selection could have
	any shape.
2005-06-10 14:45:11 +00:00
Michael Natterer a46c649956 new utility function instead of code duplication.
2004-12-28  Michael Natterer  <mitch@gimp.org>

	* app/core/gimp-edit.c (gimp_edit_set_buffer): new utility
	function instead of code duplication.
2004-12-28 22:42:04 +00:00
Michael Natterer 53c3ff1821 added new function copy_region_nocow() as a workaround for the fact that
2004-12-12  Michael Natterer  <mitch@gimp.org>

	* app/paint-funcs/paint-funcs.[ch]: added new function
	copy_region_nocow() as a workaround for the fact that sharing
	tiles with the projection is heavily broken.

	* app/base/tile-manager.c (tile_invalidate): added a warning when
	entering the code path that breaks badly.

	* app/core/gimp-edit.[ch]: added gimp_edit_copy_visible(), using
	the non-COW copying function above.

	* app/widgets/gimphelp-ids.h: added GIMP_HELP_COPY_VISIBLE.

	* app/actions/edit-actions.c
	* app/actions/edit-commands.[ch]: added action & callback for
	"edit-copy-visible".

	* menus/image-menu.xml.in: added "edit-copy-visible" to the image
	menu.

	* tools/pdbgen/pdb/edit.pdb: added gimp_edit_copy_visible()
	PDB wrapper.

	* app/pdb/edit_cmds.c
	* app/pdb/internal_procs.c
	* libgimp/gimpedit_pdb.[ch]: regenerated.

	* plug-ins/script-fu/scripts/copy-visible.scm: removed all code
	and made it a backward compat wrapper around gimp-edit-copy-visible.
	Fixes bug #138662.
2004-12-12 14:01:08 +00:00
Michael Natterer f6e5ecb2e0 app/core/gimp-edit.c app/core/gimpdrawable-blend.c
2004-11-11  Michael Natterer  <mitch@gimp.org>

	* app/core/gimp-edit.c
	* app/core/gimpdrawable-blend.c
	* app/core/gimpdrawable-bucket-fill.c
	* app/core/gimpitem.c (gimp_item_stroke): added precondition
	checks for gimp_item_is_attached() and removed checks for
	gimp_item_get_image() to actually return an image (because it
	always returns an image).

	* tools/pdbgen/pdb/edit.pdb: let all wrappers fail if the drawable
	is not attached.

	* app/pdb/edit_cmds.c: regenerated.
2004-11-11 14:05:34 +00:00
Michael Natterer cb48cef8be added gimp_drawable_mask_intersect() which returns the same bounding box
2004-10-20  Michael Natterer  <mitch@gimp.org>

	* app/core/gimpdrawable.[ch]: added gimp_drawable_mask_intersect()
	which returns the same bounding box as gimp_drawable_mask_bounds(),
	but returns TRUE only if there is a non-empty intersection between
	the drawable and the selection, or no selection at all. It also
	returns the intersection as x,y,width,height instead of the
	eeky x1,y1,x2,y2.

	* app/core/gimp-edit.c
	* app/core/gimpdrawable-blend.c
	* app/core/gimpdrawable-bucket-fill.c
	* app/core/gimpdrawable-desaturate.c
	* app/core/gimpdrawable-equalize.c
	* app/core/gimpdrawable-histogram.c
	* app/core/gimpdrawable-invert.c
	* app/core/gimpdrawable-stroke.c
	* app/core/gimpimagemap.c
	* app/core/gimpselection.c
	* tools/pdbgen/pdb/color.pdb
	* tools/pdbgen/pdb/transform_tools.pdb: either switch from
	gimp_drawable_mask_bounds() to _intersect() or check the return
	values of _mask_bounds() manually to avoid operations on empty
	areas. Return successfully because it's a nop, not a failure.
	Fixes bug #155733 for the core.

	* app/pdb/color_cmds.c
	* app/pdb/transform_tools_cmds.c: regenerated.
2004-10-19 22:52:04 +00:00
Sven Neumann ab6c609ce1 renamed struct member "unit" to "resolution_unit".
2004-10-12  Sven Neumann  <sven@gimp.org>

	* app/core/gimpimage.[ch]: renamed struct member "unit" to
	"resolution_unit".

	* app/actions/image-commands.c
	* app/core/gimp-edit.c
	* app/core/gimpimage-duplicate.c
	* app/core/gimpimage-undo-push.c
	* app/dialogs/info-window.c
	* app/vectors/gimpvectors-export.c
	* app/widgets/gimptoolbox-dnd.c:
	* app/xcf/xcf-load.c
	* app/xcf/xcf-save.c: changed accordingly. Use gimp_image_get_unit()
	where appropriate.

	* app/core/gimptemplate.c (gimp_template_set_from_image): fixed
	unit handling. Don't touch the template unit, it is used as the
	initial display unit. This will need further changes...
2004-10-12 21:28:53 +00:00
Sven Neumann 477b44360f based on a patch from Joao S. O. Bueno: Ensure that the pasted layer is
2004-09-17  Sven Neumann  <sven@gimp.org>

	* app/core/gimp-edit.c (gimp_edit_paste): based on a patch from
	Joao S. O. Bueno: Ensure that the pasted layer is always within
	the image, if it fits and aligned at top left if it doesn't.
	Fixes bug #142944.
2004-09-17 09:14:02 +00:00
Hans Breuer eafd79de87 gimp_create_display() with the right parameters order
2004-08-09  Hans Breuer  <hans@breuer.org>

	* app/core/gimp-edit.c(gimp_edit_paste_as_new) :
	gimp_create_display() with the right parameters order

	* app/widgets/gimpwidgets-utils.c (gimp_message_box_set_icons)
	handle gtk_style_lookup_icon_set() returnig NULL

	* app/gimpcore.def app/widgets/makefile.msc
	  themes/default/images/makefile.msc : updated
2004-08-08 22:47:23 +00:00
Sven Neumann c509204b7d tools/pdbgen/pdb/image.pdb app/pdb/image_cmds.c reverted changes I did to
2004-06-01  Sven Neumann  <sven@gimp.org>

	* tools/pdbgen/pdb/image.pdb
	* app/pdb/image_cmds.c
	* app/core/gimpimage.[ch]: reverted changes I did to the image
	unit earlier. As in 2.0, it will continue to not accept pixels.
	This makes the PDB API and the XCF format compatible again and
	fixes bug #142961 (and to some extent bug #137704).

	* app/core/Makefile.am
	* app/core/gimpimage-unit.[ch]: removed these files. The
	convenience accessors defined here aren't commonly used any
	longer.

	* app/display/gimpdisplay.[ch]
	* app/display/gimpdisplayshell.[ch]: added a unit parameter to
	gimp_display_new(). Made "unit" and "scale" properties of
	GimpDisplayShell.

	* app/actions/image-commands.c
	* app/actions/images-commands.c
	* app/actions/layers-commands.c
	* app/actions/select-commands.c
	* app/actions/view-commands.c
	* app/core/gimp-edit.c
	* app/core/gimp.[ch]
	* app/core/gimptemplate.c
	* app/display/gimpdisplayshell-handlers.c
	* app/display/gimpdisplayshell-scale.c
	* app/display/gimpdisplayshell-title.c
	* app/display/gimpstatusbar.c
	* app/file/file-open.c
	* app/gui/gui-vtable.c
	* app/gui/info-window.c
	* app/gui/offset-dialog.c
	* app/gui/resize-dialog.[ch]
	* app/pdb/display_cmds.c
	* app/tools/gimpcroptool.c
	* app/tools/gimpmeasuretool.c
	* app/tools/gimppainttool.c
	* app/tools/gimprectselecttool.c
	* app/tools/gimprotatetool.c
	* app/tools/gimpscaletool.c
	* app/vectors/gimpvectors-export.c
	* app/widgets/gimptoolbox-dnd.c
	* tools/pdbgen/pdb/display.pdb: changed accordingly. Use the
	display unit where the image unit was used before.
2004-06-01 22:04:20 +00:00
Michael Natterer de7a940501 app/config/gimpconfig-deserialize.c app/config/gimpscanner.c
2004-05-12  Michael Natterer  <mitch@gimp.org>

	* app/config/gimpconfig-deserialize.c
	* app/config/gimpscanner.c
	* app/core/gimp-edit.c
	* app/core/gimpchannel-combine.c
	* app/core/gimpcontainer.c
	* app/core/gimpdrawable-bucket-fill.c
	* app/core/gimpdrawable-combine.c
	* app/core/gimpdrawable.c
	* app/core/gimpgradient.c
	* app/core/gimpimage-flip.c
	* app/core/gimpimage-merge.c
	* app/core/gimpimage-projection.c
	* app/core/gimpimage.c
	* app/display/gimpdisplay-handlers.c
	* app/display/gimpdisplayshell-callbacks.c
	* app/display/gimpprogress.c
	* app/gui/info-dialog.c
	* app/gui/module-browser.c
	* app/gui/offset-dialog.c
	* app/plug-in/plug-in.c
	* app/tools/gimpdrawtool.c
	* app/tools/tool_manager.c
	* app/widgets/gimpactiongroup.c
	* app/widgets/gimpdialogfactory.c
	* app/widgets/gimpgradienteditor.c
	* app/widgets/gimpitemfactory.c
	* app/widgets/gimppropwidgets.c
	* app/widgets/gimpwidgets-utils.c
	* app/xcf/xcf-save.c
	* libgimp/gimpexport.c
	* libgimpwidgets/gimphelpui.c
	* libgimpwidgets/gimppixmap.c
	* libgimpwidgets/gimpunitmenu.c: replaced G_GNUC_FUNCTION,
	G_GNUC_PRETTY_FUNCTION, G_STRLOC and hardcoded function names in
	g_warning()s by G_STRFUNC.
2004-05-12 08:13:33 +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 fe005f3a2f fixed bug added when factoring out gimp_edit_extract(): check if
2004-03-07  Michael Natterer  <mitch@gimp.org>

	* app/core/gimp-edit.c (gimp_edit_extract): fixed bug added when
	factoring out gimp_edit_extract(): check if tile_manager_crop()
	cropped away the whole TileManager before making a GimpBuffer from
	it.
2004-03-07 22:28:21 +00:00
Michael Natterer 513f5eac36 added new signal "buffer_changed" and new function
2004-02-19  Michael Natterer  <mitch@gimp.org>

	* app/core/gimp.[ch]: added new signal "buffer_changed" and new
	function gimp_set_global_buffer() which emits it when the global
	buffer changes.

	* app/core/gimp-edit.c (gimp_edit_extract): use it instead
	of fiddling with gimp->global_buffer manually.

	* app/gui/image-menu.c: connect to "buffer_changed" and set the
	"Paste" menu entries sensitive. Fixes bug #134752.

	(image_menu_update): changed accordingly. Also changed a lot of
	buggy SET_SENSITIVE() lines which made menu items which work fine
	on any drawable insensitive when there were no layers (instead
	of no drawable).

	* app/gui/edit-commands.c: added new macro return_if_new_drawable()
	and use it instead of return_if_no_image() so we don't run
	into assertions if there is no active drawable.

	(cut,copy_named_buffer_callback): unfortunately had to introduce
	two new translated messages about not being able to cut/copy when
	there is no active drawable.
2004-02-19 12:49:15 +00:00
Simon Budig 645a1ab652 Store the zoom factor as float, not as a ratio.
2004-01-29  Simon Budig  <simon@gimp.org>

	* app/display/gimpdisplayshell.[ch]: Store the zoom factor as
	float, not as a ratio.

	* app/display/gimpdisplayshell-scale.[ch]: change the API to
	expose the Float instead a weirdly encoded integer. Implement
	functions to get a ratio from the scale factor. Implement a set
	as presets as discussed on the mailinglist. Changed Zoom->Other
	dialog to enable entering a float.

	* app/display/gimpdisplayshell-title.c
	* app/display/gimpnavigationview.c
	* app/gui/image-menu.c
	* app/gui/info-window.c
	* app/tools/gimpmagnifytool.c: changed accordingly.

	* app/core/gimp.[ch]
	* app/display/gimpdisplay.[ch]
	* app/gui/gui-vtable.c
	* app/widgets/widgets-enums.h: Made the various display-creating
	functions accept a float for the scale. Introduce a new
	GimpZoomType: GIMP_ZOOM_TO. Generally adjust the API to use
	floats instead of weird integers.

	* app/core/gimp-edit.c
	* app/core/gimptemplate.c
	* app/display/gimpdisplayshell-callbacks.c
	* app/file/file-open.c
	* app/gui/image-commands.c
	* app/gui/view-commands.[ch]
	* tools/pdbgen/pdb/display.pdb
	* app/widgets/gimpimageview.c
	* app/widgets/gimptoolbox-dnd.c: changed accordingly

	* app/pdb/display_cmds.c: regenerated
2004-01-29 22:22:29 +00:00
Michael Natterer 748d432f3a removed gimp_image_owns_item() again.
2004-01-26  Michael Natterer  <mitch@gimp.org>

	* app/core/gimpimage.[ch]: removed gimp_image_owns_item() again.

	* app/core/gimpitem.[ch]: instead, added new virtual function
	GimpItem::is_attached().

	* app/core/gimpchannel.c
	* app/core/gimplayer.c
	* app/core/gimplayermask.c
	* app/core/gimpselection.c
	* app/vectors/gimpvectors.c: implement it.

	* app/core/gimp-edit.c
	* app/core/gimpdrawable-transform.c
	* app/core/gimplayer-floating-sel.c
	* app/text/gimptext-compat.c
	* tools/pdbgen/pdb/edit.pdb
	* tools/pdbgen/pdb/floating_sel.pdb
	* tools/pdbgen/pdb/selection.pdb
	* tools/pdbgen/pdb/text_tool.pdb
	* tools/pdbgen/pdb/transform_tools.pdb_ changed accordingly.

	* app/pdb/edit_cmds.c
	* app/pdb/floating_sel_cmds.c
	* app/pdb/selection_cmds.c
	* app/pdb/text_tool_cmds.c
	* app/pdb/transform_tools_cmds.c: regenerated.
2004-01-26 16:18:16 +00:00
Michael Natterer dc3ac41965 add the layer to the image before pasting to it. Fixes bug #132504.
2004-01-26  Michael Natterer  <mitch@gimp.org>

	* plug-ins/script-fu/scripts/unsharp-mask.scm: add the layer to
	the image before pasting to it. Fixes bug #132504.

	Fixed the underlying problem: make it impossible to attach
	floating selections to drawables which are not currently part of
	the image's layer or channel stacks.
	Also cleaned up image <-> floating_sel interaction:

	* app/core/gimplayer-floating-sel.[ch] (floating_sel_attach):
	added assertion that the drawable is part of the image (see below).
	Don't call gimp_image_floating_selection_changed(), it's emitted
	by gimp_image_add_layer() now.

	(floating_sel_remove)
	(floating_sel_anchor): don't emit "floating_selection_changed",
	it's emitted by gimp_image_remove_layer() now.

	(floating_sel_anchor): removed the fix for bug #132162 because
	gimp_image_remove_layer() behaves correctly now (see below).

	Renamed floating_sel_reset() to floating_sel_activate_drawable().
	Added g_return_if_fail() all over the place.

	* app/core/gimpimage.[ch]: added new function gimp_image_owns_item()
	which return TRUE if the passed item is part of the image.

	(gimp_image_add_layer): emit "floating_selection_changed" here if
	needed.

	(gimp_image_remove_layer): emit "floating_selection_changed" if
	needed, don't try to activate a layer if we called
	floating_sel_activate_drawable().
	This is the real fix for bug #132162.

	* app/core/gimpimage-undo-push.c (undo_pop_layer): apply the same
	fixes as to gimp_image_add,remove_layer(). Don't call
	gimp_drawable_invalidate_preview() on the previously active layer
	because that's done by gimp_image_set_active_layer() now.

	* app/xcf/xcf-load.c: remember the "floating_sel_drawable" in the
	XcfInfo struct and attach it *after* all layers and channels are
	loaded to avoid attaching the floating selection to an
	out-of-image drawable.

	* app/core/gimp-edit.c (gimp_edit_paste)
	* app/core/gimpdrawable-transform.c (gimp_drawable_transform_affine,
	gimp_drawable_transform_flip, gimp_drawable_transform_rotate)
	* app/core/gimpselection.c (gimp_selection_float)
	* app/text/gimptext-compat.c (text_render): added checks for
	gimp_image_owns_item() in all functions which can produce
	floating selections.

	* tools/pdbgen/pdb/edit.pdb
	* tools/pdbgen/pdb/floating_sel.pdb
	* tools/pdbgen/pdb/selection.pdb
	* tools/pdbgen/pdb/text_tool.pdb
	* tools/pdbgen/pdb/transform_tools.pdb: added checks for
	gimp_item_owns_image() and return an execution error if invoked
	with a drawable which is not part of the image.

	* app/pdb/edit_cmds.c
	* app/pdb/floating_sel_cmds.c
	* app/pdb/selection_cmds.c
	* app/pdb/text_tool_cmds.c
	* app/pdb/transform_tools_cmds.c: regenerated.
2004-01-26 15:34:47 +00:00
Michael Natterer 0af39061b6 Fixed bug #78732 (don't paste off screen):
2004-01-15  Michael Natterer  <mitch@gimp.org>

	Fixed bug #78732 (don't paste off screen):

	* app/display/gimpdisplayshell-transform.[ch]: added new function
	gimp_display_shell_untransform_viewport() which returns the
	visible rectangle of the image in image coordinates.

	* app/core/gimp-edit.[ch] (gimp_edit_paste): added viewport
	parameters and changed positioning of the pasted layer as follows:

	- if there is a selection, center on the selection (just as before).
	- if there is no viewport, center on the active drawable.
	- if the viewport intersects with the active drawable, center
	  on the intersection.
	- if the viewport does *not* intersect with the active drawable,
	  center on the active drawable (off-screen, but better than pasting
	  something that will be invisible due to floating selection clipping).
	- if there is no active drawable, center on the viewport.
	- if there is no active drawable and no viewport, center on the image.

	* app/widgets/gimpbufferview.c (gimp_buffer_view_paste_clicked)
	(gimp_buffer_view_paste_into_clicked)
	* app/display/gimpdisplayshell-dnd.c (gimp_display_shell_drop_buffer)
	* app/gui/edit-commands.c (edit_paste_cmd_callback)
	(edit_paste_into_cmd_callback): ask the shell for the viewport
	and pass it to gimp_edit_paste().

	* app/display/gimpdisplayshell-dnd.c
	(gimp_display_shell_drop_drawable): center the created layer on
	the viewport.

	* app/tools/gimpmovetool.c (gimp_move_tool_button_release): use
	gimp_display_shell_untransform_viewport() (its code was taken from
	here).

	* tools/pdbgen/pdb/edit.pdb: pass "no viewport" to gimp_edit_paste().

	* app/pdb/edit_cmds.c: regenerated.
2004-01-15 14:36:43 +00:00
Michael Natterer dec20d8214 Enabled skipping enum values for either the PDB or GType registration
2004-01-06  Michael Natterer  <mitch@gimp.org>

	Enabled skipping enum values for either the PDB or GType
	registration (don't always skip both targets):

	* tools/gimp-mkenums: skip enum values only if there is a literal
	"skip" (don't match "pdb-skip").

	* tools/pdbgen/enumgen.pl: skip only "pdb-skip" values, not "skip"
	ones.

	* app/base/base-enums.h
	* app/core/core-enums.h
	* app/paint/paint-enums.h
	* libgimpbase/gimpbaseenums.h: use the right "pdb-skip"/"skip"
	combination to skip enum values. Changed comments accordingly.

	Cleaned up the fill functions:

	* app/core/core-enums.[ch]: added GIMP_PATTERN_FILL enum value to
	the GimpFillType enum. Don't export GIMP_NO_FILL to the PDB
	because it's completely useless to export a NOP.

	* app/core/gimp-edit.c (gimp_edit_fill, gimp_edit_fill_internal):
	handle pattern fill requests.

	* app/core/gimpdrawable.[ch] (gimp_drawable_fill): added GimpPattern
	parameter and fill with it if it's non-NULL.

	(gimp_drawable_fill_by_type): handle pattern fill and pass the
	current pattern to gimp_drawable_fill().

	* app/text/gimptextlayer.c: changed accordingly.

	* app/gui/edit-commands.c
	* app/gui/image-menu.c: use gimp_edit_fill() instead of
	gimp_drawable_bucket_fill() for FG, BG and pattern filling.

	* libgimp/gimpcompat.h
	* plug-ins/script-fu/siod-wrapper.c: removed NO_IMAGE_FILL compat
	enum value. It should have never been exported to the PDB.

	* app/pdb/drawable_cmds.c
	* app/pdb/edit_cmds.c
	* libgimp/gimpenums.h
	* plug-ins/pygimp/gimpenums.py
	* plug-ins/script-fu/script-fu-constants.c
	* tools/pdbgen/enums.pl: regenerated.
2004-01-06 14:02:08 +00:00
Michael Natterer aee083e248 added more precondition checks, minor cleanup.
2003-12-16  Michael Natterer  <mitch@gimp.org>

	* app/core/gimp-edit.c: added more precondition checks, minor
	cleanup.
2003-12-16 12:41:17 +00:00
Michael Natterer 2d56352b48 removed enum value GIMP_UNDO_GROUP_EDIT_COPY (I have no idea why we used
2003-12-09  Michael Natterer  <mitch@gimp.org>

	* app/core/core-enums.[ch]: removed enum value
	GIMP_UNDO_GROUP_EDIT_COPY (I have no idea why we used to push an
	undo group around "Copy"...).

	* app/core/gimp-edit.c (gimp_edit_extract): new utility function
	which does everything needed for cut and copy and does not push an
	undo group for copy.

	(gimp_edit_cut,copy): removed lots of duplicated code and call
	gimp_edit_extract().

	(gimp_edit_paste,paste_as_new): no need to call
	gimp_item_set_image() on newly created layers.
2003-12-09 16:20:31 +00:00
Michael Natterer df108404a1 new utility function which does everything gimp_edit_clear() and
2003-10-08  Michael Natterer  <mitch@gimp.org>

	* app/core/gimp-edit.c (gimp_edit_fill_internal): new utility
	function which does everything gimp_edit_clear() and
	gimp_edit_fill() do but doesn't fail to:

	- fill an indexed drawable with white.
	- fill a drawable with alpha with transparency.

	(gimp_edit_clear)
	(gimp_edit_fill): use gimp_edit_fill_internal().

	* app/core/gimpdrawable.c (gimp_drawable_[apply,replace]_region):
	added more g_return_if_fail(required_parameter != NULL).
2003-10-08 17:20:06 +00:00
Michael Natterer a20e04bdaf added new virtual functions GimpDrawable::get_active_components(),
2003-10-06  Michael Natterer  <mitch@gimp.org>

	* app/core/gimpdrawable.[ch]: added new virtual functions
	GimpDrawable::get_active_components(), apply_region() and
	replace_region().

	* app/core/Makefile.am
	* app/core/gimpdrawable-combine.[ch]: new files containing
	apply_region()'s and replace_region()'s default implementation.
	They are identical to the ones removed from GimpImage except that
	they don't mask the selection with itself (bug #107949).

	* app/core/gimpchannel.c
	* app/core/gimplayer.c: implement get_active_components().

	* app/core/gimpchannel.c: implement apply_region() and
	replace_region() and invalidate the channel's boundary
	before upchaining (bug #107949).

	* app/core/gimpimage.[ch]: removed gimp_image_apply_image(),
	gimp_image_replace_image() and gimp_image_get_active_components().

	* app/core/gimpimage-undo-push.c (undo_pop_image): invalidate
	boundary and bounds if the drawable is a channel (bug #107949).

	(undo_pop_mask)
	(undo_pop_channel_mod): finish previous commit :)

	* app/core/gimp-edit.c
	* app/core/gimpdrawable-blend.c
	* app/core/gimpdrawable-bucket-fill.c
	* app/core/gimpdrawable-stroke.c
	* app/core/gimpimagemap.c
	* app/core/gimplayer-floating-sel.c
	* app/paint/gimppaintcore.c
	* app/tools/gimpinktool.c: changed accordingly.
2003-10-06 14:40:12 +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 28d6f0a241 app/core/gimpedit.[ch] app/core/gimpmodules.[ch] app/core/gimpunits.[ch]
2003-09-15  Michael Natterer  <mitch@gimp.org>

	* app/core/gimpedit.[ch]
	* app/core/gimpmodules.[ch]
	* app/core/gimpunits.[ch]
	* app/text/gimpfonts.[ch]: removed...

	* app/core/gimp-edit.[ch]
	* app/core/gimp-modules.[ch]
	* app/core/gimp-units.[ch]
	* app/text/gimp-fonts.[ch]: ...and added with new names because
	these files operate on members of a Gimp instance and are
	therefore methods of the Gimp object.

	* app/core/Makefile.am
	* app/text/Makefile.am
	* app/display/gimpdisplayshell-dnd.c
	* app/gui/edit-commands.c
	* app/gui/module-browser.c
	* app/gui/preferences-dialog.c
	* app/widgets/gimpbufferview.c
	* app/widgets/gimpdocumentview.c
	* app/widgets/gimptoolbox-dnd.c
	* app/app_procs.c
	* tools/pdbgen/pdb/edit.pdb
	* tools/pdbgen/pdb/fonts.pdb: changed accordingly.

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

	* app/core/gimp.c (gimp_init): don't create gimp->fonts.
	(gimp_initialize): call gimp_fonts_init().
	(gimp_restore): call gimp_fonts_load() instead of _init().

	* app/text/gimp-fonts.c (gimp_fonts_init): don't call
	gimp_fonts_load(), just create gimp->fonts and connect to
	"notify::font-path" of gimp->config.
2003-09-15 17:26:28 +00:00
Michael Natterer aaf84a73d2 removed function map_to_color() since it does not belong here and the two
2003-09-05  Michael Natterer  <mitch@gimp.org>

	* app/paint-funcs/paint-funcs.[ch]: removed function map_to_color()
	since it does not belong here and the two places using it look much
	cleaner when doing that stuff themselves.

	* app/core/gimpdrawable-preview.c: cleanup.
	(gimp_drawable_preview_scale): do the indexed palette lookup here
	instead of calling map_to_color().

	* app/core/gimpimage.c (gimp_image_get_color): transform the
	colors here instead of calling map_to_color().

	* app/core/gimpimage.[ch] (gimp_image_get_color): reordered
	parameters src parameters are before dest parameters.
	Made the src color const.

	(gimp_image_transform_color): reordered so src parameters are
	*after* dest parameters (since this function operates on the dest
	image and it makes sense to have the dest parameters
	together). Made the src color const here, too.

	* app/core/gimpdrawable-bucket-fill.c
	* app/core/gimpdrawable.c
	* app/core/gimpimage-contiguous-region.c
	* app/core/gimpimage-projection.c
	* app/core/gimpimagemap.c
	* app/core/gimplayer.c
	* app/core/gimppalette-import.c
	* app/paint/gimpclone.c
	* app/paint/gimppaintcore.c: changed accordingly.

	* app/core/gimpedit.c (gimp_edit_cut,copy): simplified by
	moving the "cropped" variable to a local scope.

	* app/core/gimpimage-mask.c: calling gimp_image_update() followed
	by gimp_viewable_imvalidate_preview(drawable) is equal to calling
	gimp_drawable_update() directly.
2003-09-05 17:44:39 +00:00
Sven Neumann 8e38f70b96 free the memory allocated for the GimpLut structure. Removed trailing
2003-09-05  Sven Neumann  <sven@gimp.org>

	* app/base/gimplut.[ch] (gimp_lut_free): free the memory allocated
	for the GimpLut structure. Removed trailing whitespace.

	* app/core/gimpbuffer.c: cosmetics.

	* app/core/gimpedit.[ch]: let gimp_edit_cut() and gimp_edit_copy()
	return a pointer to the global cut buffer instead of creating a
	GimpBuffer which was leaked by most callers.

	* app/gui/edit-commands.c: changed accordingly.

	* libgimpwidgets/gimpquerybox.[ch] (string_query_box_ok_callback):
	removed a superfluous g_strdup(); made GimpQueryStringCallback take
	a const gchar* pointer.

	* app/gui/edit-commands.c
	* app/gui/file-commands.c
	* app/gui/palettes-commands.c: changed accordingly.
2003-09-05 01:40:29 +00:00
Michael Natterer e837849934 removed the _value() and _is_empty() wrappers.
2003-09-03  Michael Natterer  <mitch@gimp.org>

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

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

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

	* app/pdb/misc_tools_cmds.c: regenerated.
2003-09-03 15:13:19 +00:00
Michael Natterer 6ce4e7102c removed the feather(), sharpen(), all(), invert(), border(), grow() and
2003-09-03  Michael Natterer  <mitch@gimp.org>

	* app/core/gimpimage-mask.[ch]: removed the feather(), sharpen(),
	all(), invert(), border(), grow() and shrink() wrappers.

	* app/core/gimpselection.[ch]: changed gimp_selection_invalidate()
	and gimp_selection_push_undo() to take GimpChannel parameters, not
	GimpSelection ones. They will be made virtual GimpChannel
	functions anyway.

	* app/core/gimpedit.c
	* app/gui/select-commands.c
	* app/widgets/gimpselectioneditor.c
	* tools/pdbgen/pdb/selection.pdb: changed accordingly.

	* app/pdb/selection_cmds.c: regenerated.
2003-09-03 13:37:49 +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
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 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
Sven Neumann 28fddfd554 Makefile.am removed this header file.
2003-03-25  Sven Neumann  <sven@gimp.org>

	* Makefile.am
	* gimpintl.h: removed this header file.

	* gimpmiscui.c: include libgimp-intl.h.

	* gimp.c (gimp_main): call setlocale() and bind to the libgimp
	textdomain so that plug-ins don't need to do that explicitely.

	* libgimp/stdplugins-intl.h: added the functionality that used to
	live in gimpintl.h and removed the libgimp related stuff. Got rid
	of the INIT_I18N_UI() macro.

	* plug-ins/*/*.c: removed all occurances of INIT_I18N_UI().
	Plug-ins simply call INIT_I18N() once in their run() function.

	* plug-ins/script-fu/script-fu-intl.h: added the functionality
	that used to live in gimpintl.h and removed the libgimp related
	stuff.

	* app/Makefile.am
	* app/gimp-intl.h: new file that defines the gettext macros for
	the GIMP core.

	* app/*/*.c: include gimp-intl.h instead of libgimp/gimpintl.h.

	* plug-ins/script-fu/scripts/test-sphere.scm: fixed typos.
2003-03-25 16:38:19 +00:00
Michael Natterer 0da22124d2 pass more detailed undo_desc strings instead of always "Fill".
2003-02-17  Michael Natterer  <mitch@gimp.org>

	* app/core/gimpedit.c (gimp_edit_fill): pass more detailed
	undo_desc strings instead of always "Fill".

	* app/core/gimpimage-mask-select.c: changed undo_desc strings
	to match the already existing blurbs of the selection tools.
2003-02-17 11:32:02 +00:00
Michael Natterer 7a6a8d9dbb Moved the undo step implementations to the core and pass around lots of
2003-02-14  Michael Natterer  <mitch@gimp.org>

	Moved the undo step implementations to the core and pass around
	lots of "const gchar *undo_desc". Fixes bug #104367.

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

	* app/core/Makefile.am
	* app/core/gimpimage-undo-push.[ch]: ...and added here.

	* app/paint/Makefile.am
	* app/tools/Makefile.am
	* app/paint/gimppaintcore-undo.[ch]
	* app/tools/gimptransformtool-undo.[ch]: new files for the
	paint and transform undos.

	* app/core/gimppaintinfo.[ch]: added a blurb.

	* app/paint/gimpairbrush.c
	* app/paint/gimpclone.c
	* app/paint/gimpconvolve.c
	* app/paint/gimpdodgeburn.c
	* app/paint/gimperaser.c
	* app/paint/gimppaintbrush.c
	* app/paint/gimppaintcore.c
	* app/paint/gimppencil.c
	* app/paint/gimpsmudge.c
	* app/paint/paint-types.h
	* app/paint/paint.c: pass the blurb when registering the core.

	* app/core/gimpdrawable.[ch]
	* app/core/gimpimage.[ch]
	* app/core/gimpimage-mask-select.[ch]
	* app/core/gimpimage-mask.[ch]
	* app/core/gimpimagemap.[ch]
	* app/core/gimplayer-floating-sel.[ch]: added "undo_desc" parameters
	to all undo pushing helper functions.

	* app/undo_history.c
	* app/core/gimpchannel.c
	* app/core/gimpdrawable-blend.c
	* app/core/gimpdrawable-bucket-fill.c
	* app/core/gimpdrawable-desaturate.c
	* app/core/gimpdrawable-equalize.c
	* app/core/gimpdrawable-invert.c
	* app/core/gimpdrawable-offset.c
	* app/core/gimpdrawable-transform.c
	* app/core/gimpedit.c
	* app/core/gimpimage-convert.c
	* app/core/gimpimage-crop.c
	* app/core/gimpimage-guides.c
	* app/core/gimpimage-merge.c
	* app/core/gimpimage-qmask.c
	* app/core/gimpimage-resize.c
	* app/core/gimpimage-scale.c
	* app/core/gimpimage-undo.c
	* app/core/gimpitem.c
	* app/core/gimplayer.c
	* app/core/gimplayermask.c
	* app/display/gimpdisplayshell-dnd.c
	* app/file/file-open.c
	* app/file/file-save.c
	* app/gui/channels-commands.c
	* app/gui/file-commands.c
	* app/gui/file-open-dialog.c
	* app/gui/image-commands.c
	* app/gui/layers-commands.c
	* app/gui/paths-dialog.c
	* app/gui/select-commands.c
	* app/gui/vectors-commands.c
	* app/text/gimptext-compat.c
	* app/tools/gimpbezierselecttool.c
	* app/tools/gimpbucketfilltool.c
	* app/tools/gimpeditselectiontool.c
	* app/tools/gimpfreeselecttool.c
	* app/tools/gimpfuzzyselecttool.c
	* app/tools/gimpimagemaptool.c
	* app/tools/gimpinktool.c
	* app/tools/gimpiscissorstool.c
	* app/tools/gimpmeasuretool.c
	* app/tools/gimpmovetool.c
	* app/tools/gimppainttool.c
	* app/tools/gimprectselecttool.c
	* app/tools/gimptexttool.c
	* app/tools/gimptransformtool.c
	* app/widgets/gimpchannellistview.c
	* app/widgets/gimpdrawablelistview.c
	* app/widgets/gimpselectioneditor.c
	* tools/pdbgen/pdb/color.pdb
	* tools/pdbgen/pdb/drawable.pdb
	* tools/pdbgen/pdb/guides.pdb
	* tools/pdbgen/pdb/layer.pdb
	* tools/pdbgen/pdb/selection.pdb
	* tools/pdbgen/pdb/selection_tools.pdb: changed accordingly: pass
	"undo_desc" strings, changed includes or simply removed inclusion
	of "undo.h". Some random cleanups.

	* tools/pdbgen/pdb/guides.pdb: cleaned up a lot. Fixed
	gimp_image_find_next_guide() to not return guides with
	position < 0 (and made it shorter and readable).

	* app/pdb/color_cmds.c
	* app/pdb/drawable_cmds.c
	* app/pdb/guides_cmds.c
	* app/pdb/layer_cmds.c
	* app/pdb/selection_cmds.c
	* app/pdb/selection_tools_cmds.c: regenerated.
2003-02-14 14:14:29 +00:00
Michael Natterer b600fd8605 changed FOO_UNDO enum values to GIMP_UNDO_FOO.
2003-02-13  Michael Natterer  <mitch@gimp.org>

	* app/core/core-enums.[ch]: changed FOO_UNDO enum values to
	GIMP_UNDO_FOO.

	* app/undo.[ch]: removed the undo group wrappers.

	* app/undo_history.c
	* app/core/gimpdrawable-transform.c
	* app/core/gimpedit.c
	* app/core/gimpimage-convert.c
	* app/core/gimpimage-crop.c
	* app/core/gimpimage-mask.c
	* app/core/gimpimage-merge.c
	* app/core/gimpimage-qmask.c
	* app/core/gimpimage-resize.c
	* app/core/gimpimage-scale.c
	* app/core/gimpimage-undo.c
	* app/core/gimpimage.c
	* app/core/gimpitem.c
	* app/core/gimplayer-floating-sel.c
	* app/core/gimplayer.c
	* app/display/gimpdisplayshell-dnd.c
	* app/gui/channels-commands.c
	* app/gui/image-commands.c
	* app/gui/layers-commands.c
	* app/paint/gimppaintcore.c
	* app/text/gimptext-compat.c
	* app/tools/gimpbezierselecttool.c
	* app/tools/gimpeditselectiontool.c
	* app/tools/gimpmeasuretool.c
	* app/tools/gimptexttool.c
	* app/tools/gimptransformtool.c
	* tools/pdbgen/pdb/layer.pdb
	* tools/pdbgen/pdb/undo.pdb: changed accordingly. Pass meaningful
	undo names to gimp_image_undo_group_start().

	* app/pdb/layer_cmds.c
	* app/pdb/undo_cmds.c: regenerated.
2003-02-13 11:23:50 +00:00
Manish Singh 1a44f2126c cleanup, removed unecessary G_OBJECT() casts. Should do the same for
2003-01-05  Manish Singh  <yosh@gimp.org>

        * many files in app, modules and libgimp*: cleanup, removed unecessary
        G_OBJECT() casts. Should do the same for plug-ins, when more of them
        get undeprecated.
2003-01-05 22:07:10 +00:00
Michael Natterer ea95a3227d Replaced Garry's fix for bug #98843 by a more general solution which stops
2003-01-02  Michael Natterer  <mitch@gimp.org>

	Replaced Garry's fix for bug #98843 by a more general solution
	which stops the active tool when an undo group start is pushed:

	* app/core/gimpimage.[ch]: removed the "layer_merge" signal
	and added "undo_start" instead.

	* app/undo.c: emit "undo_start" in undo_push_group_start()
	_before_ checking if gimage->undo_on is TRUE.

	* app/tools/tool_manager.c: connect to "undo_start" and HALT the
	active tool if neccessary.

	* app/core/core-types.h: added EDIT_COPY_UNDO_GROUP.

	* app/core/gimpedit.c: push an undo group around the copy
	operation. Will probably have to add more undo group types to wrap
	other critical image modifications with.

	* app/core/gimpimage-merge.c
	* app/gui/convert-dialog.c
	* app/gui/edit-commands.c
	* app/gui/test-commands.c
	* app/tools/gimpimagemaptool.c: removed all special code to
	stop the active tool.
2003-01-02 13:38:09 +00:00
Michael Natterer 33bba65728 Make sure the selection (gimpimage-mask.c) functionality is really built
2002-08-20  Michael Natterer  <mitch@gimp.org>

	Make sure the selection (gimpimage-mask.c) functionality is really
	built *on top* of the GimpChannel functionality:

	* app/undo.[ch]: renamed undo_push_image_mask() to
	undo_push_mask() and generalized it's API to take a GimpChannel
	param so undos can be pushed for channels which are not the
	image's selection. Simplified the API and added code which copies
	the region of interest instead of leaving this to callers.

	* app/undo_types.h: s/IMAGE_MASK_UNDO/MASK_UNDO/

	* app/undo_history.c: changed accordingly.

	* app/core/gimpchannel.[ch]: don't #include "gimpimage-mask.h".
	Changed gimp_channel_push_undo() to really push a channel undo,
	not a selection undo. Added "gboolean push_undo" params to all
	functions which are called from gimpimage-mask.c. Various cleanups
	and optimizations. Added /*< proxy-foo >*/ stuff to the header so
	we export just the struct itself to libgimpproxy. Added accessors
	gimp_channel_[get|set]_show_masked().

	* app/core/gimpimage-mask.[ch]: renamed gimp_image_mask_undo() to
	gimp_image_mask_push_undo(). Call it before calling GimpChannel
	functions which modify the mask, also call all GimpChannel
	functions with push_undo = FALSE. Emit gimp_image_mask_changed()
	after each operation instead of calling it in
	gimp_image_mask_invalidate(). Removed gimp_image_mask_none()
	because it is the same as gimp_image_mask_clear().
	General cleanup.

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

	* app/core/gimpedit.c: call gimp_image_mask_clear(), not
	gimp_channel_clear (gimp_image_get_mask()).

	* app/core/gimpimage-crop.c
	* app/core/gimpimage-resize.c
	* app/core/gimpimage-scale.c: call gimp_image_mask_changed()

	* app/gui/channels-commands.c
	* app/gui/select-commands.c
	* app/tools/gimptexttool.c
	* tools/pdbgen/pdb/channel.pdb
	* tools/pdbgen/pdb/selection.pdb: follow GimpChannel and
	gimp_image_mask* API changes.

	* app/pdb/channel_cmds.c
	* app/pdb/selection_cmds.c
	* libgimpproxy/gimpchannel.h: regenerated.

	Unrelated:

	* app/core/gimpimage.c: call gimp_drawable_push_undo() instead of
	undo_push_image() directly.
2002-08-20 10:22:23 +00:00
Sven Neumann 16c289ea95 added a GimpImageType parameter to specify the desired drawable type. This
2002-05-21  Sven Neumann  <sven@gimp.org>

	* app/core/gimplayer.[ch] (gimp_layer_new_from_tiles): added a
	GimpImageType parameter to specify the desired drawable type. This
	is needed when pasting into layer masks.

	* app/core/gimpdrawable-transform.c
	* app/core/gimpedit.c
	* app/core/gimpimage-mask.c: changed accordingly.
2002-05-21 11:29:20 +00:00
Sven Neumann 16e8b1bec8 registered GimpFillType enum and added translatable names to
2002-05-13  Sven Neumann  <sven@gimp.org>

	* app/core/core-enums.[ch]: registered GimpFillType enum and added
	translatable names to GimpImageBaseType.

	* app/core/gimp.[ch]
	* app/core/gimpedit.c
	* app/core/gimpimage-new.[ch]: removed gimp_image_new_[init|exit]()
	where we used to create names for the enums mentioned above. Dropped
	gimp_image_new_set_have_current_cut_buffer() in favor of accessing
	the value directly.

	* app/gui/file-new-dialog.c (file_new_dialog_create)
	* app/gui/layers-commands.c (layers_new_layer_query): use
	GimpEnumMenus to choose the base_type and fill_type.
2002-05-13 15:35:27 +00:00