Commit graph

1819 commits

Author SHA1 Message Date
Øyvind Kolås
aba2a57c4e improve fixed point coordinate handling 2004-10-27 19:25:50 +00:00
Michael Natterer
d0ab9a7470 app/core/gimp-transform-utils.[ch]. switch from x1,y1,x2,y2 bounding boxes
2004-10-27  Michael Natterer  <mitch@gimp.org>

	* app/core/gimp-transform-utils.[ch]. switch from x1,y1,x2,y2
	bounding boxes to x,y,width,height ones. Added
	gimp_transform_matrix_flip_free(). Renamed some parameters to be
	consistent with others. Some internal cleanup.

	* app/tools/gimpperspectivetool.c
	* app/tools/gimpscaletool.c
	* app/tools/gimpsheartool.c
	* tools/pdbgen/pdb/drawable_transform.pdb
	* tools/pdbgen/pdb/transform_tools.pdb: changed accordingly.

	* tools/pdbgen/pdb/drawable_transform.pdb
	* tools/pdbgen/pdb/transform_tools.pdb: guard all transform
	wrappers with if(gimp_drawable_mask_intersect(...)), also the
	ones which don't need the returned bounding box.

	* tools/pdbgen/pdb/drawable_transform.pdb: renamed some parameters
	and added gimp_drawable_transform_matrix() which takes the 9
	coefficients of a 3x3 matrix for ultimate flexibility ;)

	* app/pdb/drawable_transform_cmds.c
	* app/pdb/internal_procs.c
	* app/pdb/transform_tools_cmds.c
	* libgimp/gimpdrawabletransform_pdb.[ch]: regenerated.
2004-10-27 17:56:02 +00:00
Sven Neumann
57eec590ae Added new drawable transform API to the PDB. Largely based on patches from
2004-10-26  Sven Neumann  <sven@gimp.org>

	Added new drawable transform API to the PDB. Largely based on
	patches from Joao S. O. Bueno. Fixes bug #137053.

	* app/core/gimpdrawable-transform.[ch]: added missing parameters
	to gimp_drawable_transform_flip().

	* tools/pdbgen/pdb/transform_tools.pdb: changed accordinly.

	* app/base/base-enums.h
	* app/core/core-enums.h: removed pdp-skip for GimpInterpolationType
	and GimpTransformDirection enums.

	* libgimp/gimpenums.h
	* plug-ins/pygimp/gimpenums.py
	* tools/pdbgen/enums.pl
	* tools/pdbgen/groups.pl: regenerated.

	* tools/pdbgen/Makefile.am
	* tools/pdbgen/pdb/drawable_transform.pdb: added new file defining
	the new PDB calls.

	* app/pdb/Makefile.am
	* app/pdb/drawable_transform_cmds.c
	* app/pdb/internal_procs.c
	* app/pdb/transform_tools_cmds.c
	* libgimp/gimp_pdb.h
	* libgimp/gimpdrawabletransform_pdb.[ch]: regenerated.
2004-10-26 17:50:52 +00:00
Sven Neumann
cdea36c6ce removed unused variable 2004-10-26 15:07:10 +00:00
Sven Neumann
1ee62f771e app/actions/channels-commands.c app/core/gimpchannel-select.c
2004-10-26  Sven Neumann  <sven@gimp.org>

	* app/actions/channels-commands.c
	* app/core/gimpchannel-select.c
	* app/core/gimpimagefile.c
	* app/core/gimpundo.c
	* app/widgets/gimpcomponenteditor.c: use the new enum utility
	functions from libgimpbase instead of accessing enum_value->value_name.
2004-10-26 14:45:25 +00:00
Michael Natterer
6711646648 Don't store human readable and translatable enum/flag strings in
2004-10-25  Michael Natterer  <mitch@gimp.org>

	Don't store human readable and translatable enum/flag strings in
	GEnumValue's and GTypeValue's fields but attach them to their
	GType using separate structs and utility functions:

	* tools/gimp-mkenums: added params and perl voodoo to support
	generating a second array of values, which is used by the
	Makefiles below to create and register arrays of value
	descriptions.

	* libgimpbase/gimpbasetypes.[ch]: added API to attach/retreive
	arrays of translatable strings to/from enum and flags types. Added
	structs GimpEnumDesc and GimpFlagsDesc for that purpose.

	* libgimpbase/gimputils.[ch]: changed existing enum utility
	functions, added new ones and added a symmetric API for flags.

	* app/base/Makefile.am
	* app/core/Makefile.am
	* app/display/Makefile.am
	* app/paint/Makefile.am
	* app/text/Makefile.am
	* app/tools/Makefile.am
	* app/widgets/Makefile.am
	* libgimp/Makefile.am
	* libgimpbase/Makefile.am: changed *-enums.c generation rules
	accordingly.

	* app/base/base-enums.c
	* app/core/core-enums.c
	* app/display/display-enums.c
	* app/paint/paint-enums.c
	* app/text/text-enums.c
	* app/tools/tools-enums.c
	* app/widgets/widgets-enums.c
	* libgimpbase/gimpbaseenums.c: regenerated.

	* app/widgets/gimpenumstore.c
	* app/widgets/gimpenumwidgets.c
	* app/widgets/gimptemplateeditor.c
	* libgimpwidgets/gimppreviewarea.c: follow the enum utility
	function API changes.
2004-10-25 17:55:25 +00:00
Michael Natterer
a61ed834be #include "libgimpbase/gimpbase.h", not just gimputils.h
2004-10-25  Michael Natterer  <mitch@gimp.org>

	* app/core/gimpobject.c: #include "libgimpbase/gimpbase.h", not
	just gimputils.h
2004-10-25 15:36:55 +00:00
Sven Neumann
726821fef7 say "Click to create preview" if no preview is available.
2004-10-25  Sven Neumann  <sven@gimp.org>

	* app/core/gimpimagefile.c (gimp_imagefile_get_desc_string): say
	"Click to create preview" if no preview is available.
2004-10-24 22:30:52 +00:00
David Odin
bcfbc61e15 only return early if there's nothing to desaturate.
* app/core/gimpdrawable-desaturate.c: only return early if there's nothing
  to desaturate.
2004-10-24 16:25:26 +00:00
Sven Neumann
ea273aadb9 libgimpthumb/gimpthumb-utils.[ch] libgimpthumb/gimpthumbnail.[ch] added
2004-10-23  Sven Neumann  <sven@gimp.org>

	* libgimpthumb/gimpthumb-utils.[ch]
	* libgimpthumb/gimpthumbnail.[ch]
	* libgimpthumb/gimpthumb.def: added missing API, mainly for deleting
	thumbnails.

	* app/core/gimpimagefile.[ch]: when saving a thumbnail, delete a
	failure thumbnail if one exists. Unless the thumbnail was created
	explicitely, remove all other thumbnails for this image.

	* app/actions/documents-commands.c: changed accordingly.

	* app/file/file-open.c: only save a thumbnail if there isn't a
	valid thumbnail already.

	* app/widgets/gimpthumbbox.c: before attempting to create a new
	thumbnail, check if there's an uptodate failure thumbnail.
2004-10-23 15:30:39 +00:00
Sven Neumann
341b6da981 app/actions/colormap-editor-actions.c app/actions/dialogs-actions.c
2004-10-22  Sven Neumann  <sven@gimp.org>

	* app/actions/colormap-editor-actions.c
	* app/actions/dialogs-actions.c
	* app/core/gimpimage-colormap.c
	* app/dialogs/convert-dialog.c
	* app/dialogs/dialogs.c
	* app/widgets/gimpcolormapeditor.c: use the term "Colormap"
	instead of "Indexed Palette". Fixes bug #155829.
2004-10-22 14:43:43 +00:00
Michael Natterer
06447c00c2 added new enum GimpStrokeMethod which can be one of { LIBART, PAINT_CORE
2004-10-22  Michael Natterer  <mitch@gimp.org>

	* app/core/core-enums.[ch]: added new enum GimpStrokeMethod which
	can be one of { LIBART, PAINT_CORE }.

	* app/core/Makefile.am
	* app/core/core-types.h
	* app/core/gimpstrokedesc.[ch]: new object which encapsulates
	the params and setup logic for the different stroke methods.

	* app/core/gimpitem.[ch]: use it in GimpItem::stroke() and
	in the gimp_item_stroke() wrapper.

	* app/core/gimpchannel.c (gimp_channel_stroke)
	* app/core/gimpselection.c (gimp_selection_stroke)
	* app/vectors/gimpvectors.c (gimp_vectors_stroke): changed accprdingly.

	* app/actions/select-commands.c
	* app/actions/vectors-commands.c
	* app/dialogs/stroke-dialog.c
	* tools/pdbgen/pdb/edit.pdb
	* tools/pdbgen/pdb/paths.pdb: use GimpStrokeDesc. Simplifies the
	code quite a bit.

	* app/pdb/edit_cmds.c
	* app/pdb/paths_cmds.c: regenerated.
2004-10-22 12:32:31 +00:00
Michael Natterer
7ab5fe2903 Replacing the call to gimp_channel_is_empty() by a simple
2004-10-20  Michael Natterer  <mitch@gimp.org>

	* app/core/gimpdrawable-stroke.c
	(gimp_drawable_stroke_scan_convert): Replacing the call to
	gimp_channel_is_empty() by a simple gimp_drawable_mask_intersect()
	was wrong because gimp_channel_is_empty() makes sure that the
	selection doesn't mask itself while being stroked.
2004-10-20 22:06:00 +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
0b6f4114d8 added "message" function to the GimpProgress interface. Call
2004-10-14  Sven Neumann  <sven@gimp.org>

	* app/core/gimpprogress.[ch]: added "message" function to the
	GimpProgress interface. Call gimp_message() if it is unimplemented.

	* app/plug-in/plug-in-progress.[ch]: added new function
	plug_in_progress_message() that passes the message to the current
	proc_frame's progress.

	* app/widgets/gimpthumbbox.c: implement GimpProgress::message.
	Just do nothing in the implementation. We don't want to see
	messages from file plug-ins that we use to create the thumbnails.

	* tools/pdbgen/pdb/message.pdb
	* app/pdb/message_cmds.c: if there's a current plug-in, dispatch
	the message by calling plug_in_progress_message().

	* app/display/gimpdisplayshell-close.c: fixed wrong types in
	function calls.
2004-10-14 15:15:03 +00:00
Michael Natterer
1e4203e665 register GimpConvertPaletteType with the type system.
2004-10-14  Michael Natterer  <mitch@gimp.org>

	* app/core/core-enums.[ch]: register GimpConvertPaletteType with
	the type system.

	* app/widgets/gimpwidgets-utils.c (gimp_enum_radio_frame_add):
	fixed to insert the widget at the right place in the radio box.

	* app/dialogs/convert-dialog.c: use enum widgets and
	gimp_enum_radio_frame_add(), resulting in a much better looking
	dialog with much less lines of code.
2004-10-14 13:44:06 +00:00
Sven Neumann
280a497f48 ref the imagefile while creating the thumbnail.
2004-10-13  Sven Neumann  <sven@gimp.org>

	* app/core/gimpimagefile.c (gimp_imagefile_create_thumbnail): ref
	the imagefile while creating the thumbnail.

	* app/core/gimpimagefile.[ch]
	* app/widgets/gimpthumbbox.c (gimp_thumb_box_auto_thumbnail): moved
	the tricky part about thumbnail creation into the new function
	gimp_imagefile_create_thumbnail_weak().
2004-10-12 23:25:19 +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
ec693d7b09 app/config/gimpcoreconfig.[ch] added new gimprc option
2004-10-08  Sven Neumann  <sven@gimp.org>

	* app/config/gimpcoreconfig.[ch]
	* app/config/gimprc-blurbs.h: added new gimprc option
	"thumbnail-filesize-limit" that allows to control the maximum
	filesize for automatic thumbnail creation.

	* app/dialogs/preferences-dialog.c: added a GUI for it, needs
	review.

	* app/core/gimpimagefile.[ch]: minor cleanups. Moved call to
	gimp_thumbnail_peek_image() from gimp_imagefile_save_thumb() to
	 gimp_imagefile_save_thumbnail() to avoid it being called twice.

	* app/file/file-utils.[ch]: export utility function
	file_utils_find_proc_by_extension() that allows to check for a
	file plug-in by looking at the filename extension only.

	* app/widgets/gimpthumbbox.[ch]: automatically create or update
	thumbnails for image files with a known extension that are smaller
	than "thumbnail-filesize-limit".  Fixes bug #137176.
2004-10-08 19:29:33 +00:00
Sven Neumann
e9e2e3f65a store the time when the image is first dirtied.
2004-10-06  Sven Neumann  <sven@gimp.org>

	* app/core/gimpimage.[ch]: store the time when the image is first
	dirtied.

	* app/display/gimpdisplayshell-close.c: tell the user what time
	period of changes will be lost when the image is not saved.
2004-10-05 23:42:35 +00:00
Michael Natterer
3eb69a85f0 tools/pdbgen/pdb/brush.pdb tools/pdbgen/pdb/gradient.pdb disallow the
2004-10-04  Michael Natterer  <mitch@gimp.org>

	* tools/pdbgen/pdb/brush.pdb
	* tools/pdbgen/pdb/gradient.pdb
	* tools/pdbgen/pdb/palette.pdb: disallow the empty string for
	new brushes, gradients and palettes and check the return value
	of gimp_data_factory_data_new(). Cleanup.

	* app/core/gimpbrushgenerated.c (gimp_brush_generated_new)
	* app/core/gimpgradient.c (gimp_gradient_new)
	* app/core/gimpdatafactory.c (gimp_data_factory_data_new): same
	here. Fixes bug #154264.

	* app/core/gimpdata.[ch] (gimp_data_set_filename): added boolean
	"deletable" parameter because it's not derivable from "writable".

	* app/core/gimpdatafactory.c (gimp_data_factory_load_data): need
	to figure "deletable" separately from "writable" to be able to
	delete unsavable stuff in the user-writable data directories.
	Fixes bug #154410.

	(gimp_data_factory_data_save_single): cleaned up.

	* app/pdb/brush_cmds.c
	* app/pdb/gradient_cmds.c
	* app/pdb/palette_cmds.c
	* libgimp/gimpbrush_pdb.c
	* libgimp/gimpgradient_pdb.c
	* libgimp/gimppalette_pdb.c: regenerated.
2004-10-04 09:39:27 +00:00
Michael Natterer
2c74680ef6 code review / cleanup.
2004-09-28  Michael Natterer  <mitch@gimp.org>

	* app/core/gimppalette.c: code review / cleanup.

	(gimp_palette_delete_entry): don't add "Black" when the last color
	gets removed, a palette can easily live with zero colors.

	* app/widgets/gimppaletteeditor.c
	(palette_editor_invalidate_preview): also update the entry which
	shows the palette_entry's name.
2004-09-28 14:59:55 +00:00
Sven Neumann
ab269fc645 removed conversion to TempBuf. Instead implement
2004-09-27  Sven Neumann  <sven@gimp.org>

	* app/core/gimpimagefile.c: removed conversion to TempBuf.
	Instead implement GimpViewable::get_new_pixbuf by compositing the
	thumbnail on a checkerboard.

	* app/widgets/gimpviewrenderer.[ch]: renamed the no_view_pixbuf
	struct member to pixbuf.
	(gimp_view_renderer_real_render): try gimp_viewable_get_pixbuf()
	and render the pixbuf before falling back to the TempBuf preview.
	(gimp_view_renderer_render_pixbuf): new function that sets a
	pixbuf for the renderer and flushes the render_buffer.

	* app/widgets/gimpviewrendererimagefile.c
	(gimp_view_renderer_imagefile_render): render the pixbuf.

	* app/dialogs/dialogs-constructors.c: create the document history
	dockable with a zero borderwidth.
2004-09-26 23:44:24 +00:00
Michael Natterer
5aeac72ef1 added comment about not changing the silly "Qmask" string because it is
2004-09-25  Michael Natterer  <mitch@gimp.org>

	* app/core/gimpimage-qmask.h: added comment about not changing the
	silly "Qmask" string because it is used to identify the Quick Mask
	in the XCF.

	* app/core/gimpchannel.c: implement GimpViewable::get_description()
	and return "Quick Mask" if it's the Quick Mask.

	* app/actions/qmask-actions.c
	* app/actions/qmask-commands.c
	* app/core/core-enums.[ch]
	* app/core/gimpimage-qmask.c
	* app/display/gimpdisplayshell.c: s/QuickMask/Quick Mask/.
2004-09-25 16:52:49 +00:00
Michael Natterer
ad1c2ca0fc added new vitrual function GimpPickableInterface::get_image()
2004-09-25  Michael Natterer  <mitch@gimp.org>

	* app/core/gimppickable.[ch]: added new vitrual function
	GimpPickableInterface::get_image()

	* app/core/gimpdrawable.c
	* app/core/gimpimagemap.c
	* app/core/gimpprojection.[ch]: implement it.
2004-09-25 13:16:13 +00:00
Michael Natterer
877b19c372 factored common code out of the UNDO amd REDO cases. Use
2004-09-24  Michael Natterer  <mitch@gimp.org>

	* app/core/gimpimage-undo-push.c (undo_pop_fs_to_layer): factored
	common code out of the UNDO amd REDO cases. Use gimp_drawable_update()
	instead of gimp_viewable_invalidate_preview() so the projection
	gets updated correctly. Fixes bug #149558.

	* app/core/gimplayer-floating-sel.c (floating_sel_to_layer):
	removed unused variables and their assignments.
2004-09-24 18:06:49 +00:00
Michael Natterer
ee5354e4b7 app/dialogs/Makefile.am removed...
2004-09-23  Michael Natterer  <mitch@gimp.org>

	* app/dialogs/Makefile.am
	* app/dialogs/color-dialog.[ch]: removed...

	* app/widgets/Makefile.am
	* app/widgets/widgets-types.h
	* app/widgets/gimpcolordialog.[ch]: ...and added as widget.

	* app/core/gimpmarshal.list: new marshaller VOID__BOXED_ENUM.

	* app/widgets/widgets-enums.[ch]: new enum GimpColorDialogState.

	* app/widgets/gimpcolormapeditor.[ch]
	* app/widgets/gimpcolorpanel.[ch]
	* app/widgets/gimpgradienteditor.[ch]
	* app/widgets/gimppaletteeditor.[ch]
	* app/widgets/gimptoolbox-color-area.c
	* app/actions/gradient-editor-commands.c
	* app/actions/view-commands.c: ported to GimpColorDialog. Removes
	a whole bunch of ugly widgets/ -> dialogs/ dependencies.
2004-09-23 20:41:40 +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
Sven Neumann
23690346af Improved undo memory calculation for paint operations (bug #153035):
2004-09-19  Sven Neumann  <sven@gimp.org>

	Improved undo memory calculation for paint operations (bug #153035):

	* app/base/tile-manager.[ch] (tile_manager_get_memsize): added a
	"gboolean sparse" parameter to get more accurate results for
	sparse tile-managers.

	* app/core/gimpbuffer.c
	* app/core/gimpdrawable.c
	* app/core/gimpimage-undo-push.c
	* app/core/gimpimage.c
	* app/core/gimplayer.c
	* app/core/gimpprojection.c: changed accordingly.
2004-09-19 19:47:26 +00:00
Sven Neumann
c3ef897b10 Try to make floating selections more obvious:
2004-09-19  Sven Neumann  <sven@gimp.org>

	Try to make floating selections more obvious:

	* app/widgets/gimplayertreeview.c
	(gimp_layer_tree_view_floating_selection_changed): always display
	"Floating Selection" as the name for a floating selection.

	* app/core/gimpselection.c (gimp_selection_float): call the new
	layer "Selection" instead of "Floating Selection". This is what
	will be displayed if the FS is turned into a layer.

	* app/actions/layers-commands.c (layers_edit_layer_query): don't
	special case floating selections here.

	* app/core/gimplayer-floating-sel.c: cosmetics.
2004-09-19 16:56:03 +00:00
Sven Neumann
cace0a19a0 app/actions/qmask-commands.c just some cleanup.
2004-09-18  Sven Neumann  <sven@gimp.org>

	* app/actions/qmask-commands.c
	* libgimpcolor/gimprgb.c (gimp_rgba_distance): just some cleanup.

	* app/core/gimpimage-qmask.c (gimp_image_set_qmask_color): always
	set gimage->qmask_color regardless of the qmask state.

	* libgimpwidgets/gimpcolorbutton.c (gimp_color_button_new): set
	the type before setting the color.
2004-09-17 22:16:21 +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
Sven Neumann
29b455c901 replaced a bitshift with a binary and. Should be unnoticeably faster ;)
2004-09-16  Sven Neumann  <sven@gimp.org>

	* app/core/gimpscanconvert.c (VALUE_TO_PIXEL): replaced a bitshift
	with a binary and. Should be unnoticeably faster ;)
2004-09-16 11:31:30 +00:00
Simon Budig
34d51a6382 Implemented an own rendering callback for libart and use it instead of
2004-09-16  Simon Budig  <simon@gimp.org>

	* app/core/gimpscanconvert.c: Implemented an own rendering
	callback for libart and use it instead of art_gray_svp_aa().
	This now handles non-antialiased scan conversions itself. It
	also basically shows the way to implement a LUT for the
	scan conversion.
2004-09-16 00:46:02 +00:00
Simon Budig
fe7eb34e6e Implement function to resize the image to contain all layers completely.
2004-09-05  Simon Budig  <simon@gimp.org>

	* app/core/gimpimage-resize.[ch]: Implement function to resize
	the image to contain all layers completely. Untabified.

	* app/actions/image-actions.c
	* app/actions/image-commands.[ch]
	* app/widgets/gimphelp-ids.h
	* menus/image-menu.xml.in: Make it available in the GUI.

	* tools/pdbgen/pdb/image.pdb: Make it available in the PDB.

	* app/pdb/image_cmds.c
	* app/pdb/internal_procs.c
	* libgimp/gimpimage_pdb.[ch]: regenerated.
2004-09-04 22:08:43 +00:00
Michael Natterer
6b43c205d1 added GimpProgress parameter to gimp_drawable_transform_affine().
2004-08-31  Michael Natterer  <mitch@gimp.org>

	* app/core/gimpdrawable-transform.[ch]: added GimpProgress
	parameter to gimp_drawable_transform_affine().

	* tools/pdbgen/pdb/edit.pdb
	* tools/pdbgen/pdb/transform_tools.pdb: show progress for "blend"
	and all transform functions.

	* app/pdb/edit_cmds.c
	* app/pdb/transform_tools_cmds.c: regenerated.
2004-08-31 14:17:33 +00:00
Michael Natterer
9e76c5a4bc added "GimpPaintInfo *paint_info" member and construct property. Changed
2004-08-31  Michael Natterer  <mitch@gimp.org>

	* app/paint/gimppaintoptions.[ch]: added "GimpPaintInfo *paint_info"
	member and construct property. Changed gimp_paint_options_new()
	to take only a GimpPaintInfo parameter.

	* app/core/gimpitem.c (gimp_item_stroke)
	* app/core/gimppaintinfo.c (gimp_paint_info_new): changed accordingly.

	* app/core/gimpchannel.c (gimp_channel_stroke)
	* app/vectors/gimpvectors.c (gimp_vectors_stroke): use
	paint_options->paint_info->paint_type directly instead of casting
	to GimpToolOptions and using
	tool_options->tool_info->paint_info->paint_type (eek). Fixes crash
	when stroking via the PDB because newly created GimpToolOptions
	instances have no "tool_info" pointer yet.

	* tools/pdbgen/pdb/paint_tools.pdb: changed all paint PDB wrappers
	accordingly.

	* app/pdb/paint_tools_cmds.c: regenerated.
2004-08-31 13:20:57 +00:00
Michael Natterer
509b88e815 Brought the PDB progress into a working state. Fixes bug #6010, addressed
2004-08-30  Michael Natterer  <mitch@gimp.org>

	Brought the PDB progress into a working state. Fixes bug #6010,
	addressed bugs #97266 and #135185 and unfortunately reopens bug
	#150194 (will fix that later).

	* libgimpbase/gimpbaseenums.h: added enum GimpProgressCommand.

	* app/core/gimppdbprogress.c
	* libgimp/gimpprogress.c: use the enum instead of integer
	constants for the different progress commands. Cleanup.

	* app/plug-in/plug-in-progress.c
	* app/plug-in/plug-in-run.c
	* app/plug-in/plug-in.c: switch bach to real refcouting for
	plug_in->progress (reopens bug #150194) and enabled the PDB
	progress code.

	* plug-ins/script-fu/script-fu-scripts.c: cleaned up the
	progress stuff and the script-fu interface a bit.

	* plug-ins/pygimp/gimpenums.py
	* plug-ins/script-fu/script-fu-constants.c
	* tools/pdbgen/enums.pl: regenerated.
2004-08-30 14:57:24 +00:00
Michael Natterer
065db21d0a Added an API to allow plug-ins to embed the progress for the actions they
2004-08-29  Michael Natterer  <mitch@gimp.org>

	Added an API to allow plug-ins to embed the progress for the
	actions they trigger into their own GUI (attention: half-done and
	broken code ahead...)

	* app/core/Makefile.am
	* app/core/core-types.h
	* app/core/gimppdbprogress.[ch]: new object implementing dispatching
	progress calls to a temporary PDB procedure in a plug-in.

	* app/Makefile.am: force to link gimppdbprogress.o, bah!

	* app/plug-in/plug-in-progress.[ch]: added API to install,
	uninstall and cancel a PDB progress for this plug-in, but disabled
	the implementation because it doesn't work yet.

	* tools/pdbgen/pdb/progress.pdb: added pdb wrappers for the new
	install, uninstall and cancel functions.

	* libgimp/Makefile.am
	* libgimp/gimp.h
	* libgimp/gimpprogress.[ch]: added an API around the PDB progress
	stuff.

	* app/pdb/internal_procs.c
	* app/pdb/progress_cmds.c
	* libgimp/gimpprogress_pdb.[ch]: regenerated.

	* plug-ins/script-fu/script-fu-scripts.c: use the new API to show
	the progress in the script-fu dialog.
2004-08-29 18:36:30 +00:00
David Odin
b7f58e163e Renamed GimpPreviewSize to GimpViewSize.
* app/core/core-enums.h: Renamed GimpPreviewSize to GimpViewSize.

* app/core/core-enums.c: Regenerated.

* app/actions/dockable-actions.c

* app/config/gimpcoreconfig.c
* app/config/gimpcoreconfig.h
* app/config/gimpdisplayconfig.c
* app/config/gimpdisplayconfig.h

* app/core/gimpundo.c

* app/display/gimpnavigationeditor.c

* app/gui/dialogs.c
* app/gui/file-open-location-dialog.c

* app/tools/gimppaintoptions-gui.c
* app/tools/gimptextoptions.c

* app/widgets/gimpbrushselect.c
* app/widgets/gimpcontainerpopup.c
* app/widgets/gimpcontainerview.c
* app/widgets/gimpdialogfactory.c
* app/widgets/gimpfontselect.c
* app/widgets/gimpgradientselect.c
* app/widgets/gimppaletteselect.c
* app/widgets/gimppatternselect.c
* app/widgets/gimpselectioneditor.c
* app/widgets/gimpsessioninfo.c
* app/widgets/gimptemplateeditor.c
* app/widgets/gimpundoeditor.c
* app/widgets/gimpundoeditor.h
* app/widgets/gimpviewablebutton.c: Changed accordingly.
2004-08-29 11:58:05 +00:00
Sven Neumann
804788c120 applied a patch from Eric Cheung that changes the function to use a GQueue
2004-08-28  Sven Neumann  <sven@gimp.org>

	* app/core/gimpimage-contiguous-region.c
	(find_contiguous_region_helper): applied a patch from Eric Cheung
	that changes the function to use a GQueue to implement recursion
	instead of recursive function calls. Fixes bug #151124.

	* plug-ins/common/noisify.c (noisify_dialog): left-align the
	preview.
2004-08-28 11:48:00 +00:00
Michael Natterer
f1d0db6d99 removed "gboolean use_default_values" from GimpItem::stroke().
2004-08-26  Michael Natterer  <mitch@gimp.org>

	* app/core/gimpitem.[ch]: removed "gboolean use_default_values"
	from GimpItem::stroke().

	* app/core/gimpchannel.c
	* app/core/gimpselection.c
	* app/vectors/gimpvectors.c: changed accordingly.
2004-08-26 16:33:42 +00:00
Michael Natterer
23bd12162d implement the whole paint_options fiddling here instead of in each
2004-08-26  Michael Natterer  <mitch@gimp.org>

	* app/core/gimpitem.c (gimp_item_stroke): implement the whole
	paint_options fiddling here instead of in each subclass and pass
	either GimpStrokeOptions or GimpPaintOptions (instead of
	GimpStrokeOptions or GimpPaintInfo) to GimpItem::stroke().

	Also copied code (that needs to be abstracted to a utility
	function) from the tool_manager which makes sure we really use the
	global brush, pattern etc. if these options are checked in prefs.
	Fixes bug #150716.

	* app/core/gimpchannel.c (gimp_channel_stroke)
	* app/vectors/gimpvectors.c (gimp_vectors_stroke): removed the
	duplicated code mentioned above and simply use the paint_options
	passed.
2004-08-26 16:06:13 +00:00
Sven Neumann
80531ec936 added gimp_message_box_repeat().
2004-08-25  Sven Neumann  <sven@gimp.org>

	* app/widgets/gimpmessagebox.[ch]: added gimp_message_box_repeat().

	* app/widgets/Makefile.am
	* app/widgets/widgets-types.h
	* app/widgets/gimperrordialog.[ch]: added new dialog that adds a new
	GimpMessageBox for each message added. Fixes bug #92604.

	* app/widgets/gimpwidgets-utils.[ch]: removed old gimp_message_box()
	functionality.

	* app/gui/gui.c (gui_abort): use a GimpMessageBox in a GimpDialog.

	* app/gui/dialogs-constructors.[ch]
	* app/gui/dialogs.c: manage GimpErrorDialog as singleton.

	* app/gui/gui-vtable.c (gui_message): use the new error dialog.

	* app/core/gimp-gui.c (gimp_message): substitue "GIMP" for a NULL
	domain.

	* app/widgets/gimperrorconsole.c (gimp_error_console_add): fail
	when being called with a NULL domain.
2004-08-25 17:58:52 +00:00
Michael Natterer
db1d6b0d6e app/core/gimp.c converted tabs to spaces, cosmetic changes.
2004-08-11  Michael Natterer  <mitch@gimp.org>

	* app/core/gimp.c
	* app/core/gimpimagefile.c: converted tabs to spaces, cosmetic
	changes.
2004-08-11 14:00:08 +00:00
Michael Natterer
57a3396d40 added virtual function gboolean GimpProgressInterface::is_active().
2004-08-11  Michael Natterer  <mitch@gimp.org>

	* app/core/gimpprogress.[ch]: added virtual function
	gboolean GimpProgressInterface::is_active().

	* app/display/gimpdisplay.c
	* app/display/gimpstatusbar.c
	* app/widgets/gimpfiledialog.c
	* app/widgets/gimpprogressbox.c
	* app/widgets/gimpprogressdialog.c
	* app/widgets/gimpthumbbox.c: implement it.

	* app/plug-in/plug-in.h: removed "gboolean progress_active" and
	added "gulong progress_cancel_id" instead.

	* app/plug-in/plug-in-progress.c: changed accordingly. Make sure
	we correctly handle the "cancel" connections of progress instances
	passed from other plug-ins.
2004-08-11 10:29:56 +00:00
Michael Natterer
ca30f73817 added "display_ID" to gimp_new_progress().
2004-08-11  Michael Natterer  <mitch@gimp.org>

	* app/core/gimp-gui.[ch]: added "display_ID" to gimp_new_progress().

	* app/gui/gui-vtable.c: changed accordingly.

	* app/plug-in/plug-in-progress.[ch]: reenabled showing the
	progress in a particular display.
2004-08-11 09:36:51 +00:00
Michael Natterer
502f9b71f3 app/core/gimpdrawable-blend.c some progress cleanup.
2004-08-11  Michael Natterer  <mitch@gimp.org>

	* app/core/gimpdrawable-blend.c
	* app/core/gimpprogress.c: some progress cleanup.

	* app/display/gimpstatusbar.c (gimp_statusbar_progress_start): no
	need to warn if there is already a progress active, just silently
	return NULL as all other GimpProgressInterface implementors.

	* app/plug-in/plug-in-progress.c: several progress fixes.
	It's still a mess.

	* plug-ins/common/url.c: don't show progress depending on
	run_mode. Run the actual file plug-in with the same run_mode we
	were invoked with.
2004-08-11 00:34:34 +00:00
Michael Natterer
02d2b990f5 Redid the whole internal progress stuff: don't pass around
2004-08-10  Michael Natterer  <mitch@gimp.org>

	Redid the whole internal progress stuff: don't pass around
	progress_callback and progress_data; instead, provide a
	pointer to a GimpProgressInterface which can be implemented
	by a variety of backends.

	Addresses (but not yet fixes) bugs #6010, #97266 and #135185.

	* app/display/Makefile.am
	* app/display/gimpprogress.[ch]: removed the old progress hack.

	* app/core/Makefile.am
	* app/core/core-types.h
	* app/core/gimpprogress.[ch]: implement GimpProgressInterface.

	* app/widgets/Makefile.am
	* app/widgets/widgets-types.h
	* app/widgets/gimpprogressdialog.[ch]: the standalone progress
	dialog as widget implementing GimpProgressInterface.

	* app/display/gimpdisplay.c
	* app/display/gimpstatusbar.[ch]
	* app/widgets/gimpfiledialog.[ch]
	* app/widgets/gimpthumbbox.[ch]: added GimpProgressInterface
	implementation to these classes.

	* app/core/gimp-gui.[ch]
	* app/gui/gui-vtable.c: replaced the old progress vtable entries
	by two new to create and destroy a GimpProgressDialog in case
	no other progress is available.

	* app/pdb/procedural_db.[ch]
	* app/plug-in/plug-in-run.[ch]
	* tools/pdbgen/app.pl: pass a GimpProgress to all PDB wrappers and
	all plug-ins.

	* app/plug-in/plug-in.[ch]
	* app/plug-in/plug-ins.c
	* app/plug-in/plug-in-message.c
	* app/plug-in/plug-in-progress.c: handle the case there the
	plug-in was crated with a progress as well as the case where it
	wasn't.

	* app/app_procs.c
	* app/batch.c
	* app/xcf/xcf.c
	* app/file/file-open.[ch]
	* app/file/file-save.[ch]
	* app/widgets/gimphelp.c
	* app/widgets/gimpbrushselect.c
	* app/widgets/gimpfontselect.c
	* app/widgets/gimpgradientselect.c
	* app/widgets/gimppaletteselect.c
	* app/widgets/gimppatternselect.c: changed accordingly.

	* app/core/gimpimagefile.[ch]
	* app/display/gimpdisplayshell-dnd.c
	* app/gui/file-open-dialog.c
	* app/gui/file-open-location-dialog.c
	* app/gui/file-save-dialog.c
	* app/widgets/gimplayertreeview.c
	* app/widgets/gimptoolbox-dnd.c: pass a GimpProgress to all file
	related functions. Embed the progress in the file dialog where
	possible.

	* app/core/gimpdrawable-blend.[ch]
	* app/core/gimpdrawable-transform.[ch]
	* app/core/gimpimage-convert.[ch]
	* app/core/gimpimage-flip.[ch]
	* app/core/gimpimage-resize.[ch]
	* app/core/gimpimage-rotate.[ch]
	* app/core/gimpimage-scale.[ch]
	* app/core/gimpitem-linked.[ch]
	* app/core/gimpitem.[ch]
	* app/core/gimpchannel.c
	* app/core/gimpdrawable.c
	* app/core/gimplayer.c
	* app/core/gimpselection.c
	* app/vectors/gimpvectors.c: replaced callback/data by GimpProgress.

	* app/tools/gimpblendtool.c
	* app/tools/gimptransformtool.c
	* app/gui/convert-dialog.c
	* app/actions/documents-commands.c
	* app/actions/file-commands.c
	* app/actions/image-commands.c
	* app/actions/layers-commands.c
	* app/actions/plug-in-commands.c
	* app/actions/vectors-commands.c
	* tools/pdbgen/pdb/convert.pdb
	* tools/pdbgen/pdb/edit.pdb
	* tools/pdbgen/pdb/image.pdb
	* tools/pdbgen/pdb/layer.pdb: changed callers accordingly.

	* app/pdb/*_cmds.c: regenerated.
2004-08-10 18:47:21 +00:00
Sven Neumann
b6efff7e77 plugged more file descriptor leaks.
2004-08-10  Sven Neumann  <sven@gimp.org>

	* app/core/gimpbrushgenerated.c (gimp_brush_generated_load):
	plugged more file descriptor leaks.
2004-08-10 11:33:13 +00:00