Commit Graph

44 Commits

Author SHA1 Message Date
Michael Natterer 28e1a379e6 app: remove const qualifiers from all object parameters
They are unreliable because every type checking cast discards them,
they are useless anyway, visual clutter, added inconsistently, and
generally suck. Wanted to do this a long time ago, it was a bad idea
in the first place.
2016-05-19 23:54:14 +02:00
Michael Natterer 697572ccc0 app,libgimp*: fix includes to follow our include policy
- don't include <gdk-pixbuf/gdk-pixbuf.h> in headers in app/
- instead, include it in many .c files instead of <glib-object.h>,
  finally acknowledging the fact that app/ depends on gdk-pixbuf almost
  globally
- fix up includes as if libgimpbase depended in GIO, which it soon will
2013-10-15 01:58:39 +02:00
Michael Natterer b4580e74e6 app: implement converting images between precisions, including menu items 2012-05-02 17:51:16 +02:00
Michael Natterer 9a561646c2 Move the undo disable/freeze APIs to gimpimage-undo.[ch] 2010-02-09 22:32:48 +01:00
Michael Natterer 09c897262e Move all undo-related members to GimpImagePrivate
Also add some new API to access them.
2010-02-04 20:06:49 +01:00
Michael Natterer f769284aca Start private struct for GimpImage and move the first members there 2010-02-03 20:31:25 +01:00
Martin Nordholts c181f4eb05 app: Add and use gimp_image_is_dirty() 2009-07-03 21:11:21 +02:00
Michael Natterer d9b5207aa2 Change licence to GPLv3 (and to LGPLv3 for libgimp).
2009-01-17  Michael Natterer  <mitch@gimp.org>

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

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

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


svn path=/trunk/; revision=27913
2009-01-17 22:28:01 +00:00
Martin Nordholts 5aeb568650 s/gimp_container_children_type/gimp_container_get_children_type/
s/gimp_container_policy/gimp_container_get_policy/
s/gimp_container_num_children/gimp_container_get_n_children/

* app/actions/actions.c
* app/actions/file-actions.c
* app/actions/file-commands.c
* app/actions/tool-options-actions.c
* app/actions/tools-actions.c
* app/actions/tools-commands.c
* app/actions/vectors-actions.c
* app/core/gimpcontainer-filter.c
* app/core/gimpcontainer.c
* app/core/gimpcontainer.h
* app/core/gimpimage-convert.c
* app/core/gimpimage-flip.c
* app/core/gimpimage-merge.c
* app/core/gimpimage-resize.c
* app/core/gimpimage-rotate.c
* app/core/gimpimage-scale.c
* app/core/gimpimage-undo.c
* app/core/gimpimage.c
* app/core/gimpimagefile.c
* app/core/gimplist.c
* app/core/gimpundostack.c
* app/dialogs/palette-import-dialog.c
* app/dialogs/quit-dialog.c
* app/display/gimpdisplay.c
* app/display/gimpdisplayshell-layer-select.c
* app/display/gimpdisplayshell-title.c
* app/gui/gui-vtable.c
* app/menus/tool-options-menu.c
* app/tools/gimp-tools.c
* app/widgets/gimpcontrollerlist.c
* app/widgets/gimpimagepropview.c
* app/widgets/gimpsettingsbox.c
* app/widgets/gimpviewablebutton.c
* app/xcf/xcf-load.c
* app/xcf/xcf-save.c

svn path=/trunk/; revision=27692
2008-11-20 22:45:19 +00:00
Michael Natterer 37cff850af remove members "quick_mask_changed" and "alpha_changed" (the former was
2008-11-20  Michael Natterer  <mitch@gimp.org>

	* app/core/gimpundo.h (struct GimpUndoAccumulator): remove members
	"quick_mask_changed" and "alpha_changed" (the former was unused
	and the latter is entirely handled by the image's flush
	accumulator now.

	* app/core/gimpimage-undo.c
	* app/core/gimplayerundo.c: changed accordingly.


svn path=/trunk/; revision=27690
2008-11-19 23:39:28 +00:00
Michael Natterer 1cdf6c5b7f remove floating_sel_remove() and reorder one function.
2008-11-09  Michael Natterer  <mitch@gimp.org>

	* app/core/gimplayer-floating-sel.[ch]: remove
	floating_sel_remove() and reorder one function.

	* app/core/gimpimage.c (gimp_image_remove_layer): add the single
	line of special code that needs to be done when removing a
	floating selection.

	* app/core/gimpselection.c
	* app/actions/layers-commands.c
	* tools/pdbgen/pdb/floating_sel.pdb: changed accordingly.

	* app/pdb/floating-sel-cmds.c: regenerated.

	* app/core/core-enums.[ch]
	* app/core/gimpimage-undo.c: remove enum value
	GIMP_UNDO_GROUP_FS_REMOVE.


svn path=/trunk/; revision=27583
2008-11-09 18:45:16 +00:00
Michael Natterer 5503e6a055 Add GEGL_CFLAGS and #includes as if gimpdrawable.h and gimpimage.h had a
2008-10-09  Michael Natterer  <mitch@gimp.org>

	Add GEGL_CFLAGS and #includes as if gimpdrawable.h and gimpimage.h
	had a GEGL dependency (they will have in the next commit, but I
	wanted to keep the commit separate).

	* app/dialogs/Makefile.am
	* app/file/Makefile.am
	* app/gui/Makefile.am
	* app/menus/Makefile.am
	* app/paint/Makefile.am
	* app/plug-in/Makefile.am
	* app/text/Makefile.am
	* app/vectors/Makefile.am
	* app/widgets/Makefile.am
	* app/xcf/Makefile.am: add GEGL_CFLAGS.

	* app/actions/*.c
	* app/core/*.c
	* app/dialogs/*.c
	* app/display/*.c
	* app/file/*.c
	* app/gui/*.c
	* app/menus/*.c
	* app/paint/*.c
	* app/pdb/gimppdb-utils.c
	* app/pdb/gimpprocedure.c
	* app/plug-in/*.c
	* app/text/*.c
	* app/tools/*.c
	* app/vectors/*.c
	* app/widgets/*.c
	* app/xcf/*.c: add <gegl.h> or replace <glib-object.h> by <gegl.h>
	to all files which include a drawable subclass or gimpimage.h

	* tools/pdbgen/app.pl: include <gegl.h> instead of <glib-object.h>
	in all generated files.

	* app/pdb/*-cmds.c: regenerated.

	* data/images/gimp-splash.png: the goat is still sleeping.
	By Aurore Derriennic.


svn path=/trunk/; revision=27202
2008-10-09 20:24:04 +00:00
Martin Nordholts 2975f815a8 Make the size-changed-detailed signal also contain previous image size.
2008-08-28  Martin Nordholts  <martinn@svn.gnome.org>

	* app/core/gimpimage.[ch]: Make the size-changed-detailed signal
	also contain previous image size.

	* app/display/gimpdisplayshell-handlers.c
	(gimp_display_shell_size_changed_detailed_handler): Take the
	previous image size into account and center the image if it starts
	to fit (axis indepentently) in the viewport due to the resize.

	* app/core/gimpundo.h
	* app/core/gimpimage-undo.c
	* app/core/gimpimageundo.[ch]
	* app/core/gimpimage-undo-push.[ch]: Manage the
	previous-size-information.

	* app/core/gimpimage-crop.c
	* app/core/gimpimage-scale.c
	* app/core/gimpimage-rotate.c
	* app/core/gimpimage-resize.c: Propagate previous size to the
	size-changed-detailed signal emission and the undo-system.

svn path=/trunk/; revision=26804
2008-08-28 19:12:03 +00:00
Michael Natterer 26c2c6afda :size-changed-detailed): change double to int in signal parameters.
2008-08-04  Michael Natterer  <mitch@gimp.org>

	* app/core/gimpimage.[ch] (GimpImage::size-changed-detailed):
	change double to int in signal parameters.

	Remove gimp_image_emit_size_changed_signals() and call
	gimp_viewable_size_changed() in size-changed-detailed's default
	handler.

	* app/core/gimpimageundo.[ch]
	* app/core/gimpimage-undo-push.[ch]: change double to int in
	previous-origin related code.

	* app/core/gimpimage-undo.c
	* app/core/gimpimage-scale.c
	* app/core/gimpimage-crop.c
	* app/core/gimpimage-rotate.c
	* app/core/gimpimage-resize.c: call gimp_image_size_changed_detailed()
	instead of the removed gimp_image_emit_size_changed_signals()

	* app/display/gimpdisplayshell-scroll.[ch]: remove
	gimp_display_shell_handle_size_changed_detailed() because it
	handles both scrolling and scaling and doesn't belong here.

	* app/display/gimpdisplayshell-handlers.c: moved its code back to
	gimp_display_shell_size_changed_detailed_handler() and follow the
	double -> int change above.


svn path=/trunk/; revision=26367
2008-08-04 20:11:35 +00:00
Martin Nordholts 6c48f2b601 Further work for completing bug #362915 that makes changes to the image
2008-08-03  Martin Nordholts  <martinn@svn.gnome.org>

	Further work for completing bug #362915 that makes changes to the
	image size (e.g when cropping) be much more nicely handled by
	display shell.

	* app/core/gimpimage.[ch]: Add new signal
	GimpImage::size-changed-detailed that is emited whenever
	GimpViewable::size-changed is. The new signal provides additional
	information, namely the previous origin relative to the current
	origin. Cliens choose what specific signal to listen to depending
	on how much info they need.

	* app/display/gimpdisplayshell-handlers.c: Connect to
	GimpImage::size-changed-detailed instead of
	GimpViewable::size-changed since the shell wants information about
	the previous image origin.
	(gimp_display_shell_resolution_changed_handler): Use
	gimp_display_shell_scale_resize() instead to avoid display
	garbage.

	* app/display/gimpdisplayshell-scale.[ch]: Add new utility
	function gimp_display_shell_center_image_on_next_size_allocate().

	* app/display/gimpdisplayshell-scroll.[ch]
	(gimp_display_shell_handle_size_changed_detailed): New function
	that replaces logic in gimp_display_shell_handle_size_changed and
	that takes previous-origin of the image into account and adjusts
	the offset so that the image content that remains doesn't move. If
	the window is resized on image resize, just center the image
	afterwards.

	* app/core/gimpimage-undo-push.[ch]
	(gimp_image_undo_push_image_size): Add previous-origin paremeters.

	* app/core/gimpimageundo.[ch]: Add and manage previous-origin
	properties so that the display shell offset can be appropriately
	adjusted also when undoing.

	* app/core/gimpundo.h
	* app/core/gimpimage-undo.c: Add previous_origin members to the
	undo accumulator and emit that information when the size of the
	image changes due to the undo.

	* app/core/gimpimage-crop.c (gimp_image_crop)
	* app/core/gimpimage-scale.c (gimp_image_scale)
	* app/core/gimpimage-rotate.c (gimp_image_rotate)
	* app/core/gimpimage-resize.c (gimp_image_resize_with_layers):
	Supply information about the previous-origin of the image to the
	size-changed signals and the undo system.

svn path=/trunk/; revision=26354
2008-08-03 11:35:53 +00:00
Sven Neumann a9b946e376 app/core/gimpimage.c fixed handling of the image undo counter for the case
2008-01-24  Sven Neumann  <sven@gimp.org>

	* app/core/gimpimage.c
	* app/core/gimpimage-undo.c: fixed handling of the image undo
	counter for the case where the user has undone the image to a
	state before the last save and then pushes a new undo. Fixes
	bug #509822.


svn path=/trunk/; revision=24699
2008-01-24 09:38:44 +00:00
Michael Natterer bdc91d6c52 Remove support for the old undo pop and free cruft:
2007-02-03  Michael Natterer  <mitch@gimp.org>

	Remove support for the old undo pop and free cruft:

	* app/core/core-types.h: remove typedefs GimpUndoPopFunc and
	GimpUndoFreeFunc.

	* app/core/gimpundo.[ch]: remove members and properties size,
	data, pop_func and free_func.

	* app/core/gimpimage-undo.[ch] (gimp_image_undo_push): remove
	parameters size, struct_size, pop_func and free_func.

	* app/core/gimpimage-undo-push.c
	* app/tools/gimptransformtool.c
	* app/paint/gimpink.c
	* app/paint/gimppaintcore.c: change calls to above function
	accordingly.


svn path=/trunk/; revision=21845
2007-02-03 22:25:32 +00:00
Michael Natterer dcee3d60c3 app/core/core-enums.[ch] drop the "image" from GIMP_UNDO_IMAGE_GUIDE,
2007-01-30  Michael Natterer  <mitch@gimp.org>

	* app/core/core-enums.[ch]
	* app/core/gimpimage-undo-push.[ch]: drop the "image" from
	GIMP_UNDO_IMAGE_GUIDE, GIMP_UNDO_IMAGE_SAMPLE_POINT,
	gimp_imge_undo_push_image_guide() and
	gimp_imge_undo_push_image_sample_point()

	* app/core/gimpimage-undo.c
	* app/core/gimpimage-guides.c
	* app/core/gimpimage-scale.c
	* app/core/gimpimage-sample-points.c
	* app/core/gimpimage-rotate.c
	* app/tools/gimpmeasuretool.c: changed accordingly.


svn path=/trunk/; revision=21804
2007-01-29 23:21:41 +00:00
Sven Neumann 41237259c9 In all files, changed the standard copyright notice to say "GIMP - The GNU
2006-12-09  Sven Neumann  <sven@gimp.org>

        * In all files, changed the standard copyright notice to say
        "GIMP - The GNU Image Manipulation Program".
2006-12-09 21:33:38 +00:00
Michael Natterer e634d4d718 Added "Edit -> Fade" which allows to modify the paint mode and opacity of
2006-10-21  Michael Natterer  <mitch@gimp.org>

	Added "Edit -> Fade" which allows to modify the paint mode and
	opacity of the last drawable operation (fill, plugins etc.).
	Started from a patch by Bill Skaggs. Fixes bug #170707.

	* app/base/base-enums.[ch] (enum GimpLayerModeEffects): register
	the values REPLACE_MODE, ERASE_MODE and ANTI_ERASE_MODE with
	the type system.

	* app/widgets/gimppropwidgets.[ch]
	* app/widgets/gimpwidgets-constructors.[ch]: added "gboolean
	with_replace_modes" to the paint mode menu constructors.

	* app/tools/gimppaintoptions-gui.c
	* app/widgets/gimpbrushselect.c
	* app/widgets/gimplayertreeview.c: pass with_replace_modes = FALSE.

	* app/core/gimpdrawableundo.[ch]: added members which keep tiles,
	paint mode and opacity of the pasted pixels.

	* app/core/gimpimage-undo.[ch] (gimp_image_undo_get_fadeable):
	returns a GimpUndo suitable for a fade operation, or NULL.

	* app/core/gimp-edit.[ch] (gimp_edit_fade): implements the actual
	fade by undoing the last operation and then re-applying the pixels
	with different paint mode and opacity.

	* app/core/gimpdrawable-combine.c: store the pasted pixels in
	the GimpDrawableUndo.

	* app/actions/edit-actions.c
	* app/actions/edit-commands.[ch]: action and callback for fade.

	* app/dialogs/Makefile.am
	* app/dialogs/fade-dialog.[ch]: the fade dialog.

	* app/widgets/gimphelp-ids.h: the fade help ID.

	* menus/image-menu.xml.in: added a menu entry in "Edit".
2006-10-21 18:46:49 +00:00
William Skaggs 701b7b31d7 Bill Skaggs <weskaggs@primate.ucdavis.edu>
Finally implemented the suggestion in bug #144854, of
	"strong" undo/redo commands that continue undoing so long
	as they only encounter visibility changes.

	* app/actions/edit-actions.c
	* app/actions/edit-commands.c
	* app/actions/edit-commands.h: added "strong undo"
	and "strong redo" commands/actions.

	* app/core/gimpimage-undo.[ch]: added functions
	gimp_image_strong_undo() and gimp_image_strong_redo().

	* app/core/gimpundo.[ch]: added utility function
	gimp_undo_is_weak().

	* app/widgets/gimphelp-ids.h:added id's.

	* menus/image-menu.xml.in: added to edit menu,
	bound to C-S-z and C-S-y.

	This will no doubt need tweaking, but I will consider it
	to fix bug #144854.
2006-06-13 02:03:44 +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 1adf3d71af Did a global s/qmask/quick-mask/:
2005-09-19  Michael Natterer  <mitch@gimp.org>

	Did a global s/qmask/quick-mask/:

	* app/actions/qmask-actions.[ch]
	* app/actions/qmask-commands.[ch]
	* app/core/gimpimage-qmask.[ch]
	* menus/qmask-menu.xml
	* themes/Default/images/stock-qmask-off-16.png
	* themes/Default/images/stock-qmask-on-16.png: removed.

	* app/actions/quick-mask-actions.[ch]
	* app/actions/quick-mask-commands.[ch]
	* app/core/gimpimage-quick-mask.[ch]
	* menus/quick-mask-menu.xml
	* themes/Default/images/stock-quick-mask-off-16.png
	* themes/Default/images/stock-quick-mask-on-16.png: added.

	* app/actions/Makefile.am
	* app/actions/actions.c
	* app/core/Makefile.am
	* app/core/core-enums.[ch]
	* app/core/gimpchannel.c
	* app/core/gimpimage-duplicate.c
	* app/core/gimpimage-undo.c
	* app/core/gimpimage.[ch]
	* app/core/gimpundo.[ch]
	* app/display/gimpdisplayshell-appearance.c
	* app/display/gimpdisplayshell-callbacks.[ch]
	* app/display/gimpdisplayshell-handlers.c
	* app/display/gimpdisplayshell.[ch]
	* app/menus/menus.c
	* app/widgets/gimphelp-ids.h
	* libgimpwidgets/gimpstock.[ch]
	* menus/Makefile.am
	* menus/image-menu.xml.in
	* themes/Default/images/Makefile.am: changed accordingly.
2005-09-19 12:44:06 +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 4b582b481a Replaced the concept of having a boolean indicating if an undo step
2004-07-29  Michael Natterer  <mitch@gimp.org>

	Replaced the concept of having a boolean indicating if an undo
	step dirties the image by a bitfield indicating which parts
	of the image are dirtied:

	* app/core/core-enums.[ch]: reordered two values in enum
	GimpUndoType, added GIMP_DIRTY_IMAGE_SIZE to enum GimpDirtyMask.

	The values of GimpDirtyMask are still questionable and will
	probably change...

	* app/core/gimpimage.[ch]: removed signal "undo_start" and added
	a GimpDirtyMask parameter to the "dirty" and "clean" signals.

	* app/core/gimpimage-undo.[ch] (gimp_image_undo_push): replaced
	"gboolean dirties_image" by "GimpDirtyMask dirty_mask" and pass
	it to gimp_image_dirty().

	(gimp_image_undo_group_start): added *ugly* code which tries to
	figure GimpDirtyMask from the group's GimpUndoType and store it in
	the GimpUndoGroup. Call gimp_image_dirty() instead of the removed
	gimp_image_undo_start(). This means the undo group now dirties the
	image just like one of its undo steps, but that's no problem since
	undoing cleans it in the same way.

	* app/core/gimpundo.[ch]: s/dirties_image/dirty_mask/g

	(gimp_undo_pop): emit clean/dirty signals *before* performing the
	actual undo step so listeners can detach from the image before it
	is changed by undo.

	* app/core/gimpimage-undo-push.c (gimp_image_undo_push_*): pass a
	GimpDirtyMask instead of TRUE/FALSE to gimp_image_undo_push().

	* app/core/gimpimagemap.[ch]: removed "gboolean interactive"
	because it makes no sense to use GimpImageMap noninteractively.
	Don't freeze()/thaw() undo while the image_map is active which
	fixes many ways of trashing the image's undo state but probably
	introduces new ways of doing evil things.

	* app/display/gimpdisplay-foreach.c
	* app/display/gimpdisplayshell-handlers.c: changed according
	to the GimpImage::clean()/dirty() signal changes. Small fixes
	in the quit dialog's dirty image container.

	* app/tools/gimptoolcontrol.[ch]: added member and API to
	set/get the dirty_mask.

	* app/tools/gimpcroptool.c
	* app/tools/gimpimagemaptool.c
	* app/tools/gimpiscissorstool.c
	* app/tools/gimptexttool.c
	* app/tools/gimptransformtool.c: whenever setting "preserve" to
	FALSE, also set a "dirty_mask" which specifies on which image
	changes the tool wants to be canceled.

	* app/tools/tool_manager.c: removed "undo_start" connection and
	connect to both "dirty" *and* "clean" to check if the active_tool
	needs to be canceled. Cancel the tool only if the dirty_mask
	passed in the signal has common bits with the tool's dirty_mask.

	Fixes bug #109561 and probably opens some new ones...
2004-07-29 14:16:21 +00:00
Michael Natterer 87b5322fdb added properties "gimp", "id", "width", "height" and "base-type". Moved
2004-07-14  Michael Natterer  <mitch@gimp.org>

	* app/core/gimpimage.c: added properties "gimp", "id", "width",
	"height" and "base-type". Moved all code from gimp_image_new()
	to GObject::constructor().

	* app/core/gimpimage-convert.c
	* app/core/gimpimage-crop.c
	* app/core/gimpimage-resize.c
	* app/core/gimpimage-rotate.c
	* app/core/gimpimage-scale.c
	* app/core/gimpimage-undo-push.c: set "width", "height" and
	"base-type" with g_object_set() so "notify" is emitted on the
	properties.

	* app/core/gimpimage-undo.c (gimp_image_undo_pop_stack):
	freeze/thaw property notifications around undoing/redoing so they
	are not emitted in the middle of the undo operation.
2004-07-14 12:12:50 +00:00
Sven Neumann 5cff101603 resurrected some bit-rotting debug code. Might become useful one day.
2004-07-13  Sven Neumann  <sven@gimp.org>

	* app/core/gimpimage-undo.c: resurrected some bit-rotting debug
	code. Might become useful one day.
2004-07-13 08:30:22 +00:00
Michael Natterer da74f1269e app/core/gimpundo.[ch] app/core/gimpitemundo.[ch] removed all _new()
2004-07-12  Michael Natterer  <mitch@gimp.org>

	* app/core/gimpundo.[ch]
	* app/core/gimpitemundo.[ch]
	* app/text/gimptextundo.[ch]: removed all _new() functions and
	added properties and GObject::constructor() implementations
	instead.

	* app/core/gimpimage-undo.[ch] (gimp_image_undo_push): added
	"GType undo_gtype" parameter and allow to pass name-value pairs as
	"...". Une the new GParameter utility functions to construct the
	appropriate undo step with g_object_newv().

	(gimp_image_undo_push_item): removed.

	(gimp_image_undo_push_undo): removed. Merged its code back into
	gimp_image_undo_push(), where it originally came from.

	* app/core/gimpimage-undo-push.c
	* app/core/gimpundostack.c
	* app/paint/gimppaintcore-undo.c
	* app/tools/gimptransformtool-undo.c
	* app/widgets/gimpundoeditor.c: changed accordingly.
2004-07-12 16:59:36 +00:00
Michael Natterer 525a98f81a Made the undo system robust against the currently pushed undo being too
2004-07-07  Michael Natterer  <mitch@gimp.org>

	Made the undo system robust against the currently pushed undo
	being too large according to prefs settings. Fixes bug #145379.

	* app/core/gimpimage-undo.[ch] (gimp_image_undo_push_undo)
	(gimp_image_undo_group_end): emit "undo-event" *before* calling
	gimp_image_undo_free_space() so the undo history doesn't try to
	remove an item that has never been added.

	(gimp_image_undo_push_undo): added boolean return value indicating
	if the undo could be pushed (FALSE means the undo was to large
	and was discarded right away).

	(gimp_image_undo_push_item): return NULL if the above returned
	FALSE.

	* app/core/gimpimage-undo-push.c (gimp_image_undo_push_text_layer):
	changed accordingly.
2004-07-07 13:58:51 +00:00
Sven Neumann 2326e1b979 added gimp_undo_type_to_name() a similar function used to live in
2004-03-21  Sven Neumann  <sven@gimp.org>

	* app/core/gimpundo.[ch]: added gimp_undo_type_to_name() a similar
	function used to live in gimpimage-undo.[ch].

	* app/core/gimpitemundo.c (gimp_item_undo_new): allow NULL as name
	and generate it from the undo_type then.

	* app/core/gimpimage-undo.[ch]: added gimp_image_undo_push_undu(),
	new function that allows to push an undo on the image.

	* app/text/Makefile.am
	* app/text/text-types.h
	* app/text/gimptextundo.[ch]: added GimpTextUndo, derived from
	GimpItemUndo.

	* app/core/gimpimage-undo-push.c (gimp_image_undo_push_text_layer):
	use the new code and simply push a text undo here.

	* app/tools/gimptexttool.c: compress text undos by peeking at the
	undo stack. Fixes bug #137766.
2004-03-21 23:14:21 +00:00
Simon Budig dfd41249fe app/core/gimpimage.[ch] renamed gimage->freeze_count to
2004-03-15  Simon Budig  <simon@gimp.org>

	* app/core/gimpimage.[ch]
	* app/core/gimpimage-undo.c: renamed gimage->freeze_count
	to gimage->undo_freeze_count (more explicit).

	* app/file/file-open.c: Ensure that the undo system is enabled
	after loading an image (to protect against broken loaders).
2004-03-14 23:19:49 +00:00
Simon Budig 657bd9fff7 app/core/gimpimage.[ch] introduced a freeze counter, so that
2004-03-14  Simon Budig  <simon@gimp.org>

	* app/core/gimpimage.[ch]
	* app/core/gimpimage-undo.c: introduced a freeze counter, so
	that undo_freeze(); undo_freeze(); undo_thaw(); no longer
	results in an thawed undo stack.

	Fixes Bug #124176.

	This might reveal other places in the code where
	gimp_image_undo_freeze/thaw or gimp_image_undo_disable/enable
	were used in an inconsistent (not-paired) manner.

	* app/file/file-open.c: e.g. here, where _enable was called on
	the new image. The intention was to free a potential undo stack,
	so now call gimp_image_undo_free() instead.
2004-03-14 19:10:55 +00:00
Sven Neumann fd30d5c976 app/config/gimpbaseconfig.h use gint64 for all memsize properties.
2003-11-16  Sven Neumann  <sven@gimp.org>

	* app/config/gimpbaseconfig.h
	* app/config/gimpcoreconfig.h: use gint64 for all memsize properties.

	* app/base/tile-manager.[ch] (tile_manager_get_memsize): since
	tiles can be swapped out, a tilemanager can be larger than gsize
	(on 32bit platforms). Use a gint64 to avoid an overflow.

	* app/core/gimp.c
	* app/core/gimpbrush.c
	* app/core/gimpbrushpipe.c
	* app/core/gimpbuffer.c
	* app/core/gimpchannel.c
	* app/core/gimpcontainer.c
	* app/core/gimpcontext.c
	* app/core/gimpdata.c
	* app/core/gimpdatafactory.c
	* app/core/gimpdrawable.c
	* app/core/gimpgradient.c
	* app/core/gimpimage-undo-push.c
	* app/core/gimpimage-undo.[ch]
	* app/core/gimpimage.c
	* app/core/gimpitem.c
	* app/core/gimpitemundo.[ch]
	* app/core/gimplayer.c
	* app/core/gimplist.c
	* app/core/gimpobject.[ch]
	* app/core/gimppalette.c
	* app/core/gimpparasitelist.c
	* app/core/gimppattern.c
	* app/core/gimpundo.[ch]
	* app/core/gimpundostack.c
	* app/core/gimpviewable.c
	* app/text/gimptext.c
	* app/text/gimptextlayer.c
	* app/vectors/gimpstroke.c
	* app/vectors/gimpvectors.c: use gint64 for gimp_object_get_memsize()
	and all its implementations.

	* app/display/gimpdisplayshell-title.c
	* app/gui/info-window.c: changed accordingly.
2003-11-16 17:51:36 +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 24f3da165b changed GimpObject::get_memsize() to return a second value named
2003-08-25  Michael Natterer  <mitch@gimp.org>

	* app/core/gimpobject.[ch]: changed GimpObject::get_memsize() to
	return a second value named "gui_size", where the primary return
	value is the "constant" actual size (as long as no operation is
	performed on the object), and the second "gui_size" return value
	is the size of temporary stuff like preview caches or boundary
	segments (which may change asynchronously, even if the object is
	on the undo stack).

	* app/core/gimp.c
	* app/core/gimpbrush.c
	* app/core/gimpbrushpipe.c
	* app/core/gimpbuffer.c
	* app/core/gimpchannel.c
	* app/core/gimpcontainer.c
	* app/core/gimpcontext.c
	* app/core/gimpdata.c
	* app/core/gimpdatafactory.c
	* app/core/gimpdrawable.c
	* app/core/gimpgradient.c
	* app/core/gimpimage-undo.c
	* app/core/gimpimage.c
	* app/core/gimpitem.c
	* app/core/gimplayer.c
	* app/core/gimplist.c
	* app/core/gimppalette.c
	* app/core/gimpparasitelist.c
	* app/core/gimppattern.c
	* app/core/gimpundo.c
	* app/core/gimpundostack.c
	* app/core/gimpviewable.c
	* app/text/gimptextlayer.c
	* app/vectors/gimpstroke.c
	* app/vectors/gimpvectors.c: changed get_memsize() implementations
	accordingly.

	* app/display/gimpdisplayshell-title.c
	* app/gui/debug-commands.c
	* app/widgets/gimppreview.c: changed callers accordingly.

	* app/core/gimpimage-undo-push.c: changed layer, channel, vectors
	and layer_mask undo steps to add/subtract the size of the
	resp. objects whenever they take/drop ownership of them. Ignore
	the objects' "gui_size" to get identical sizes on
	adding/subtracting. Fixes bug #120429.
2003-08-25 10:49:33 +00:00
Michael Natterer 884b3aa7a3 Made drawable/layer properties (visibility, opacity etc.) undoable (fixes
2003-03-17  Michael Natterer  <mitch@gimp.org>

	Made drawable/layer properties (visibility, opacity etc.)
	undoable (fixes bug #73893).

	* app/core/core-enums.[ch]: added undo types/groups for
	visibility, mode, opacity, linked and preserve_trans.

	* app/core/Makefile.am
	* app/core/core-types.h
	* app/core/gimpitemundo.[ch]: new GimpUndo subclass which holds a
	ref'ed GimpItem pointer so (1) this doesn't need to be done by all
	undo steps related to an item and (2) the item the undo step is
	for can be determined from outside the undo system.

	* app/core/gimpimage-undo.[ch]: added gimp_image_undo_push_item()
	which returns a new GimpItemUndo.

	* app/core/gimpimage-undo-push.[ch]: use it for all item related
	undo steps. Removed lots of GimpItem, GimpLayer, GimpDrawable
	and GimpVectors pointers from the private undo structs. Added
	undo push functions for the new undo types added above.

	* app/core/gimpdrawable.[ch] (gimp_drawable_set_visible): added
	"gboolean push_undo" parameter.

	* app/core/gimplayer.[ch] (gimp_layer_set_opacity, _mode,
	_preserve_trans, _linked): added "gboolean push_undo" parameters.

	* app/core/gimpimage-mask.c
	* app/core/gimpimage-merge.c
	* app/core/gimplayer-floating-sel.c
	* app/tools/gimpmovetool.c
	* app/xcf/xcf-load.c
	* app/widgets/gimpdrawablelistitem.c
	* app/widgets/gimplayerlistitem.c
	* app/widgets/gimplayerlistview.c: changed accordingly.

	* tools/pdbgen/pdb/channel.pdb
	* tools/pdbgen/pdb/layer.pdb: ditto. Added '$undo' paramaters to
	the foo_accessors() functions. Removed $func from foo_accesors()
	because we don't manipulate items without using getters/setters
	any longer.

	* app/pdb/channel_cmds.c
	* app/pdb/layer_cmds.c: regenerated.

	* app/widgets/gimpcellrenderertoggle.[ch]: added "clicked" signal
	which carries an additional "GdkModifierType state" parameter as
	in GimpCellRendererViewable .

	* app/widgets/gimpcontainertreeview.c: emit "clicked" from
	the toggle renderer, not "toggled" so the callbacks get the
	modifier state.

	* app/widgets/gimpdrawabletreeview.c: resurrected the "exclusive
	visible by <shift>+click" feature as in 1.2.

	* app/widgets/gimplayertreeview.c: compress layer opacity undos by
	looking at the top of the undo stack and not pushing an undo if
	there already is a GIMP_UNDO_DRAWABLE_OPACITY for the active
	layer.
2003-03-17 18:02:41 +00:00
Michael Natterer c8b4394d71 Reimplemented the undo history:
2003-02-20  Michael Natterer  <mitch@gimp.org>

	Reimplemented the undo history:

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

	Changes/cleanups to the undo system to enable/simplify the new
	undo history implementation:

	* app/core/core-types.h: removed enum undo_event_t. Removed the
	GimpImage parameter from GimpUndoPopFunc and GimpUndoFreeFunc
	because GimpUndo has a GimpImage pointer now (see below).

	* app/core/core-enums.[ch]: added enum GimpUndoEvent. Added an
	enum value for REDO_EXPIRED.

	* app/core/gimpimage.[ch]: added a GimpUndo pointer to the
	"undo_event" signal which needs to be passed for all events except
	UNDO_FREE.

	* app/display/gimpdisplayshell-handlers.c: changed accordingly.

	* app/core/gimpundo.[ch]: added a GimpImage pointer to the
	GimpUndo struct. Removed GimpImage parameters all over the
	place. Added preview stuff. The preview creation needs to be
	triggered explicitly using gimp_undo_create_preview() because the
	GimpUndo can't know when it's possible to create the preview.

	* app/core/gimpimage-undo-push.c
	* app/paint/gimppaintcore-undo.c
	* app/tools/gimptransformtool-undo.c: changed accordingly, cleanup.

	* app/core/gimpundostack.[ch]: ditto. Return the freed undo from
	gimp_undo_stack_free_bottom(). Removed unused container signal
	handlers.

	* app/core/gimpimage-undo.c: free the redo stack the same way old
	undos are freed (from bottom up). Emit "undo_event" with event ==
	REDO_EXPIRED for each removed redo.

	* app/core/gimpmarshal.list: added new marshallers.

	New undo history implementation:

	* app/widgets/Makefile.am
	* app/widgets/widgets-types.h
	* app/widgets/gimpundoeditor.[ch]
	* app/widgets/gimpundopreview.[ch]: new widgets for the undo
	step previews and the history itself.

	* app/widgets/gimppreview-utils.c: added GimpUndoPreview to the
	list of possible preview types.

	* app/gui/dialogs-constructors.[ch]
	* app/gui/dialogs-menu.c
	* app/gui/dialogs.c
	* app/gui/image-menu.c
	* app/gui/toolbox-menu.c: removed the old and added the new undo
	history to the dialog factory and the various dialog menus.

	* app/widgets/gimpdnd.[ch]: don't warn if a GType has no
	corresponding DND type. Instead, return FALSE from the function
	that failed.

	* app/widgets/gimppreview.c: check the return value of gimpdnd
	functions.  Not only add drag sources but also remove them when no
	longer needed.

	* app/widgets/gimpselectioneditor.h: removed unneeded inclusion of
	"gui/gui-types.h".
2003-02-20 12:47:42 +00:00
Michael Natterer a4a224587b Fixed most of the bugs the Script-Fu logo scripts triggered:
2003-02-14  Michael Natterer  <mitch@gimp.org>

	Fixed most of the bugs the Script-Fu logo scripts triggered:

	* app/core/gimpdrawable-bucket-fill.[ch]
	(gimp_drawable_bucket_fill): added "gboolean do_seed_fill"
	parameter instead of assuming TRUE.
	(gimp_drawable_bucket_fill_full): moved "color" and "pattern"
	parameters to the end.

	* app/tools/gimpbucketfilltool.c
	* app/display/gimpdisplayshell-dnd.c
	* app/widgets/gimpdrawablelistview.c: changed accordingly.

	* tools/pdbgen/pdb/misc_tools.pdb: only pass TRUE if the selection
	is empty. Restores old PDB behaviour.

	* app/core/gimpimage-undo.c (gimp_image_undo_group_end): return
	early if gimage->undo_on is FALSE. Fixes bogus criticals.

	* app/core/gimpimage.c (gimp_image_add_[layer|channel|vectors]):
	clamp the passed position to sane values before calling
	gimp_container_insert() (Scripts adding layers at wrong indices
	are broken but should not crash the core).

	* tools/pdbgen/pdb/paint_tools.pdb: need to copy the relevant
	paint parameters from the current context now that the paint
	options are contexts themselves.

	* tools/pdbgen/pdb/palette.pdb: removed useless includes.

	(Mostly) fixed text PDB functions:

	* app/text/gimptext-compat.[ch] (text_render): don't set
	text->font_size = -1 but get the size from the PangoFontDescrition.
	(text_get_extents): return the logical_rect, not the ink_rect
	because the size of the created text layer will be the logical_rect.

	* tools/pdbgen/pdb/text_tool.pdb: removed text_fontname_create()
	utility function and the usage of pass_through and implement all
	invokers in-place, using the correct parameters.

	* plug-ins/script-fu/siod-wrapper.c: fixed BG-IMAGE-FILL compat
	define so we can BG fill again. Cleaned up color handling code.

	* plug-ins/script-fu/scripts/coolmetal-logo.scm
	* plug-ins/script-fu/scripts/glossy.scm
	* plug-ins/script-fu/scripts/land.scm
	* plug-ins/script-fu/scripts/lava.scm
	* plug-ins/script-fu/scripts/test-sphere.scm: use new gradient names.

	* app/pdb/misc_tools_cmds.c
	* app/pdb/paint_tools_cmds.c
	* app/pdb/palette_cmds.c
	* app/pdb/text_tool_cmds.c: regenerated.
2003-02-14 22:33:22 +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
Michael Natterer be70105d3b Moved the undo system to the core: Keep GimpUndoStack objects as undo and
2003-02-12  Michael Natterer  <mitch@gimp.org>

	Moved the undo system to the core: Keep GimpUndoStack objects as
	undo and redo stack. Use GimpUndo objects as members of the
	stacks. GimpUndoStack is derived from GimpUndo and keeps undo
	groups, so undo group handling is much simpler than before
	(the whole group is just a single GimpUndo object on the
	stack and not everything between group boundary markers).

	* app/Makefile.am
	* app/undo_types.h: removed.

	* app/config/gimpcoreconfig.[ch]: added "gulong undo_size".
	* app/config/gimprc-blurbs.h: and its blurb.

	* app/core/core-enums.[ch]: added GimpUndoMode and GimpUndoType.

	* app/core/core-types.h: removed UndoType, added GimpUndoAccumulator,
	GimpUndoPopFunc and GimpUndoFreeFunc.

	* app/core/gimpundo.[ch]: do everything the old "Undo" struct did.
	Removed the virtual push() function and added free().

	* app/core/gimpundostack.[ch]: keeps the new undo/redo stacks
	and also acts as undo group.

	* app/core/gimpimage-undo.[ch]: moved the undo apparatus here.

	* app/core/gimpimage.[ch]: removed the old stuff.

	* app/core/gimpmarshal.list: added marshaller needed for GimpUndo.

	* app/undo.[ch]: removed the whole undo mechanism. Only the
	actual undo pushing functions are left.

	* app/undo_history.c
	* app/gui/edit-commands.c
	* app/gui/file-commands.c
	* app/gui/image-menu.c
	* app/gui/preferences-dialog.c
	* app/tools/gimpeditselectiontool.c: changed accordingly.
2003-02-12 17:11:34 +00:00
Michael Natterer e2daae315b an evil temp_hack which lets GimpContext managing the active display
2001-08-14  Michael Natterer  <mitch@gimp.org>

	* app/gdisplay.h: an evil temp_hack which lets GimpContext managing
	the active display withoug including "gdisplay.h". Will go away as
	soon ad context properties are registered dynamically.

	* app/module_db.c: cleaned up the object code in preparation of
	moving it to core/.

	* app/path.c: connect to GimpImage's

	* app/core/gimpobject.[ch]: derive it from GObject, not from
	GtkObject any more (yeah :-)

	* app/core/*.c: #include <glib-object.h> instead of <gtk/gtk.h>,
	removed some remaining GtkObject-isms.

	(left in a few #include <gtk/gtk.h> where bigger changes are needed
	to get rid of the UI dependency).

	* app/core/core-types.h: #include <gdk-pixbuf/gdk-pixbuf.h> here
	temporarily.

	* app/core/gimp.c (gimp_create_display): unref the image after
	creating it's first display.

	* app/core/gimpbrush.[ch]: disabled the parts of the code which
	depend on GimpPaintTool.

	* app/core/gimpbrushgenerated.c
	* app/core/gimpbrushpipe.c: changed accordingly.

	* app/core/gimpcontext.[ch]: evil hack (see above) to manage the
	active display without including "gdisplay.h"

	* app/core/gimpimage-mask.[ch]: pass a context to
	gimage_mask_stroke() and get the current tool's PDB string from
	there.

	* app/core/gimpedit.c: changed accordingly.

	* app/core/gimpimage.c: use gimp_image_update() instead of
	gdisplays_update_full().

	* app/gui/color-area.c
	* app/gui/colormap-dialog.c
	* app/gui/dialogs-constructors.c
	* app/gui/edit-commands.c
	* app/gui/image-commands.c
	* app/gui/toolbox.c: changed accordingly (don't use Gtk methods on
	GObjects).

	* app/gui/menus.c: fix some const warnings by explicit casting.

	* app/tools/*.[ch]: ported all tools to GObject, some minor
	cleanup while i was on it.

	* app/widgets/gimpdialogfactory.[ch]: ported to GObject.

	* app/widgets/gimplayerlistview.h: added FOO_GET_CLASS() macro.

	* tools/pdbgen/app.pl: added a "widgets_eek" hack like "tools_eek"
	which inserts #include "widgets/widgets-types.h" before ordinary
	includes.

	* tools/pdbgen/pdb/brush_select.pdb
	* tools/pdbgen/pdb/edit.pdb
	* app/pdb/brush_select_cmds.c
	* app/pdb/edit_cmds.c: changed according to the stuff above.
2001-08-14 14:53:55 +00:00
Michael Natterer d1022c34b6 app/Makefile.am removed.
2001-05-10  Michael Natterer  <mitch@gimp.org>

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

	* app/core/Makefile.am
	* app/core/core-types.h
	* app/tools/Makefile.am
	* app/tools/tools-types.h: new files.

	* app/tools/gimptoolinfo.[ch]: removed.
	* app/core/gimptoolinfo.[ch]: added here.

	* libgimp/Makefile.am
	* libgimp/gimp.h
	* libgimp/gimpadaptivesupersample.[ch]
	* libgimp/gimpbilinear.[ch]: removed here...

	* libgimpcolor/Makefile.am
	* libgimpcolor/gimpcolortypes.h
	* libgimpcolor/gimpadaptivesupersample.[ch]
	* libgimpcolor/gimpbilinear.[ch]: ..and added here.

	* tools/pdbgen/app.pl
	* tools/pdbgen/pdb/paths.pdb

	* app/*.c: changed tons of #include's
2001-05-09 22:34:59 +00:00
Sven Neumann 75e8e3877c app/Makefile.am app/apptypes.h app/gimpimage-undo.[ch] app/gimpundo.[ch]
2001-03-05  Sven Neumann  <sven@gimp.org>

	* app/Makefile.am
	* app/apptypes.h
	* app/gimpimage-undo.[ch]
	* app/gimpundo.[ch]
	* app/gimpundostack.[ch]: added new GimpUndo and GimpUndoStack objects
	which will be used for the upcoming new undo system. Actually my
	current plan for the undo system is to keep it pretty much as it is...

	* app/gimpimage.[ch]: added new GimpUndoStacks but temporarily kept
	old GSLists around, so I don't break everything now.
2001-03-05 01:01:16 +00:00