Commit Graph

1145 Commits

Author SHA1 Message Date
Sven Neumann 5dcf8da089 redid the fix for bug #101036. Instead of temporarily changing the layer
2003-01-05  Sven Neumann  <sven@gimp.org>

	* app/core/gimpimage-merge.c (gimp_image_merge_layers): redid the
	fix for bug #101036. Instead of temporarily changing the layer
	mode, just use a different mode for combine_regions().
2003-01-05 03:34:13 +00:00
Sven Neumann ec6c98656e bumped the version number to 1.3.12.
2003-01-03  Sven Neumann  <sven@gimp.org>

	* configure.in: bumped the version number to 1.3.12.

	* app/display/Makefile.am
	* app/display/gimpdisplayshell-cursor.[ch]
	* app/display/gimpdisplayshell-title.[ch]
	* app/display/gimpdisplayshell-transform.[ch]: new files with code
	that used to live in gimpdisplayshell.c.

	* app/display/gimpdisplay-foreach.c
	* app/display/gimpdisplay.c
	* app/display/gimpdisplayshell-callbacks.c
	* app/display/gimpdisplayshell-handlers.c
	* app/display/gimpdisplayshell-selection.c
	* app/display/gimpdisplayshell.[ch]
	* app/tools/gimpbezierselecttool.c
	* app/tools/gimpcroptool.c
	* app/tools/gimpdrawtool.c
	* app/tools/gimpeditselectiontool.c
	* app/tools/gimpfuzzyselecttool.c
	* app/tools/gimpmovetool.c
	* app/tools/gimptool.c: changed accordingly.
2003-01-03 18:01:30 +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
Garry R. Osgood d8fd3b04c1 Updated my CVS. app/undo.c app/undo_history.c app/core/gimpimage.[ch]
2003-01-01 Garry R. Osgood <grosgood@rcn.com>
* MAINTAINERS: Updated my CVS.
* app/undo.c
* app/undo_history.c
* app/core/gimpimage.[ch]
* app/tools/gimpimagemaptool.c
* app/core/gimpimage-merge.c: implementation of LAYER_MERGE
signal emitters and listeners. (see bug #98843); listeners thaw
undo stack (image map tools, usually).
* app/widgets/gimpviewabledialog.c: gimp_viewable_dialog_close ()
Check if the widget has a non-null reference to a window before
using it to synthesize a cancel event. These seven deltas closes bug #98843.
* app/core/gimpimage-merge.c: (gimp_image_merge_layers())
Regardless of merge type, temporarily set composition mode
of bottom layer to NORMAL, then merge. Closes bug #101036.
2003-01-01 23:40:53 +00:00
Hans Breuer 8364722f2d when checking for 'excecutable' make sure it is a regular file too (on
2003-01-01  Hans Breuer  <hans@breuer.org>

	* libgimpbase/gimpdatafiles.c : when checking for
	'excecutable' make sure it is a regular file too
	(on win32 even directories carry the IXUSR flag)

	* app/app_procs.h : there is still no #warning with
	msvc, special case to make it build with non GCC

	* makefile.msc */makefile.msc */*/makefile.msc : updated

	* app/gui/user-install-dialog.c : get prototype for mkdir

	* libgimpwidgets/libgimp-glue.c : make it compile without
	LT_RELEASE being defined

	* modules/module.def : removed
	  modules/Makefile.am : no export file needed when
	functions get exported by G_MODULE_EXPORT
2003-01-01 13:33:27 +00:00
Sven Neumann 42b01c5256 use proper defines to specify the permissions when calling mkdir().
2002-12-30  Sven Neumann  <sven@gimp.org>

	* app/core/gimpimagefile.c (gimp_imagefile_png_thumb_path): use
	proper defines to specify the permissions when calling mkdir().

	* app/file/file-utils.c: removed redeclaration of mkdir() for
	Win32 since we don't call mkdir() here.

	* app/gui/user-install-dialog.c (user_install_run): rewrote
	copy_file() to use GError for error reporting. Use the same code
	for the user installation on all platforms. Also fixes bug #102015.

	* data/misc/Makefile.am
	* data/misc/user_install
	* data/misc/user_install.bat: removed obsoleted scripts.
2002-12-30 17:27:58 +00:00
Sven Neumann 1f47a470b3 app/app_procs.c app/core/gimp.c app/gui/gui.c removed debugging output.
2002-12-30  Sven Neumann  <sven@gimp.org>

	* app/app_procs.c
	* app/core/gimp.c
	* app/gui/gui.c
	* app/widgets/gimpitemfactory.c: removed debugging output.

	* app/plug-in/plug-ins.c: need to expand the plug_in_path before
	using it.

	* app/gui/plug-in-menus.c (plug_in_menus_init): removed an
	unneeded assertion.

	* plug-ins/imagemap/Makefile.am (EXTRA_DIST): removed references
	to files that were removed some time ago.
2002-12-30 00:01:30 +00:00
Sven Neumann 7535310816 another fix for #102016.
2002-12-29  Sven Neumann  <sven@gimp.org>

	* app/core/gimpimagefile.c: another fix for #102016.
2002-12-29 22:02:24 +00:00
Sven Neumann 023c76978f configure.in etc/Makefile.am etc/gimprc.in removed templates for gimprc
2002-12-29  Sven Neumann  <sven@gimp.org>

	* configure.in
	* etc/Makefile.am
	* etc/gimprc.in
	* etc/gimprc_user.in: removed templates for gimprc files.

	* etc/gimprc: added this file as generated by gimp-config-dump.

	* app/gui/user-install-dialog.c
	* data/misc/user_install: don't install an empty user gimprc.

	* app/config/Makefile.am
	* app/config/gimpconfig-substitute.[ch]: removed these files.
	* app/config/gimpconfig-path.[ch]: and added them again with
	reduced functionality. Paths found in config files are now
	basically handled like standard strings by the config system.
	Users of the GimpConfig path variables need to expand the path
	themselves.

	* app/config/gimpbaseconfig.c
	* app/config/gimpconfig-deserialize.c
	* app/config/gimpconfig-dump.c
	* app/config/gimpconfig-utils.c
	* app/config/gimpconfig.c
	* app/config/gimpcoreconfig.c
	* app/config/gimprc.c:
	* app/base/base.c
	* app/base/temp-buf.c
	* app/core/gimp.c
	* app/core/gimpdatafactory.c
	* app/core/gimpmodules.c
	* app/gui/user-install-dialog.c
	* app/plug-in/plug-in.c
	* app/tools/tools.c
	* app/widgets/gimppropwidgets.c: changed accordingly.
2002-12-29 18:58:24 +00:00
Simon Budig d3e9fc6405 app/core/gimpimage-mask-select.c app/paint/gimppaintcore-stroke.c
2002-12-29  Simon Budig  <simon@gimp.org>

        * app/core/gimpimage-mask-select.c
        * app/paint/gimppaintcore-stroke.c
        * app/tools/gimpvectortool.c
        * app/vectors/gimpbezierstroke.[ch]
        * app/vectors/gimpstroke.[ch]
        * app/vectors/gimpvectors-preview.c: some more stuff for the
        vectors tool: bezier interpolation is available, we have preview
        generation. Usage is still weird.
2002-12-28 23:52:29 +00:00
Manish Singh 2bb5acc246 added some rudimentary support to prepend values to existing environment
2002-12-17  Manish Singh  <yosh@gimp.org>

        * app/core/gimpenvirontable.[ch]: added some rudimentary support
        to prepend values to existing environment variables. You can do
        "separator name=value" now. API change to gimp_environ_table_add
        for it too. Also added some error checking.

        * app/gui/gui.c: change to new above API

        * plug-ins/pygimp/Makefile.am: write ": PYTHONPATH=" out to env
        file

        * po/POTFILES.in: add gimpenvirontable.c
2002-12-18 02:47:39 +00:00
Michael Natterer f03b6b6d75 Changed menubar showing/hiding to work like rulers and statusbar:
2002-12-14  Michael Natterer  <mitch@gimp.org>

	Changed menubar showing/hiding to work like rulers and statusbar:

	* app/config/gimpconfig-blurbs.h
	* app/config/gimpdisplayconfig.[ch]: renamed "menu_bar_per_display"
	to "show_menubar". Removed GIMP_PARAM_RESTART flag.

	* app/display/gimpdisplayshell.[ch]: chaged shell->item_factory to
	shell->menubar_factory plus shell->popup_factory and always create
	both of them. Added "gboolean update_popup" to
	gimp_display_shell_set_menu_sensitivity() and call it recursively
	with update_popup == TRUE if the display it is called for is the
	active one.

	* app/display/gimpdisplay.c
	* app/display/gimpdisplayshell-callbacks.c: changed accordinly.

	* app/gui/gui.c: ditto. Set the menu sensitivity of new displays.

	* app/gui/menus.c: added "<Image>/View/Toggle Menubar" menu item.
	Moved some factory initialization code from gimpdisplayshell.c
	here.

	* app/gui/view-commands.[ch]: added
	view_toggle_menubar_cmd_callback(). Update the menu sensitivity
	manually in all callbacks which don't call gimp_image_flush().

	* app/gui/preferences-dialog.c (prefs_dialog_new): moved the "Show
	Menubar" toggle to the "Appearance" frame of the "Image Windows"
	page. Added an own frame for the display zoom/scaling settings.

	(preferences_dialog_create): Attach config_copy and config_orig
	using g_object_set_data_full() instead of just g_object_set_data()
	plus a g_object_weak_ref().

	(prefs_default_resolution_callback): set the resolution for both
	fields of the "size_sizeentry" instead of setting it for "x"
	twice.
2002-12-14 14:13:54 +00:00
Michael Natterer b2c3f0187d Cleaned up the exit process:
2002-12-05  Michael Natterer  <mitch@gimp.org>

	Cleaned up the exit process:

	* app/core/gimp.[ch]: added an "exit" signal which carries a
	"gboolean kill_it" parameter and has a boolean return value.
	Added gimp_boolean_handled_accumulator() so the emission of "exit"
	can be stopped by returning TRUE from a callback.  Removed
	gimp_shutdown() from the public API and made it "exit"'s default
	implementation. Addec gimp_exit() to emit the signal.

	* app/core/gimpmarshal.list: added BOOLEAN__BOOLEAN marshaller.

	* app/gui/gui.[ch]: Replaced public functions gui_shutdown() and
	gui_exit() by "exit" callbacks. g_signal_connect_after() the
	latter so the shutdown order is correct.

	* app/app_procs.[ch]: removed app_exit() and connect to "exit".
	Split the exit stuff into normal and connect_after callbacks as
	above.

	* app/batch.c
	* app/gui/file-commands.c
	* tools/pdbgen/pdb/misc.pdb
	* app/widgets/gimptoolbox.c: call gimp_exit() instead of
	app_exit(). Don't #include "app_procs.h".

	* app/pdb/misc_cmds.c: regenerated.
2002-12-05 15:49:59 +00:00
Sven Neumann bb7ff29ebb use the same string as in gimpbrushpipe.c to reduce the number of
2002-12-05  Sven Neumann  <sven@gimp.org>

	* app/core/gimpbrushpipe.c: use the same string as in
	gimpbrushpipe.c to reduce the number of translatable strings.
2002-12-05 09:00:44 +00:00
Sven Neumann cdeba56bbf don't check filename for internal GimpData objects because they are never
2002-12-02  Sven Neumann  <sven@gimp.org>

	* app/core/gimpdata.c (gimp_data_save): don't check filename for
	internal GimpData objects because they are never saved.

	* app/config/gimprc.c: made verbose an object property so that its
	value is copied by gimp_config_duplicate().
2002-12-02 22:41:44 +00:00
Michael Natterer 4ccd0f0ae3 use GError for reporting load/save errors. Added gimp_data_error_quark()
2002-12-02  Michael Natterer  <mitch@gimp.org>

	* app/core/gimpdata.[ch]: use GError for reporting load/save
	errors. Added gimp_data_error_quark() and a GimpDataError enum.
	Made simple virtual functions out of save(), get_extension()
	and duplicate() because they don't need to be signals.

	* app/core/gimpbrush.[ch]
	* app/core/gimpbrushgenerated.[ch]
	* app/core/gimpbrushpipe.[ch]
	* app/core/gimpgradient.[ch]
	* app/core/gimppalette.[ch]
	* app/core/gimppattern.[ch]: changed accordingly. Set data->dirty
	to FALSE in each _load() function.

	* app/core/gimpdatafactory.[ch]: report GError messages here.
	Changed the ugly factory->path pointer location hack to
	factory->path_property_name and get the path from
	factory->gimp->config. Added gimp_data_factory_data_duplicate()
	implementation which was already declared in the header.

	* app/core/gimp.c: pass the path property name to
	gimp_data_factory_new().

	* app/widgets/gimpdatafactoryview.c: removed the duplicate
	implementation and call gimp_data_factory_data_duplicate().

	* app/core/gimpgradient.[ch]: added gimp_gradient_save_as_pov().

	* app/gui/gradients-commands.c: removed save_as_pov implementation
	and call gimp_gradient_save_as_pov().
2002-12-02 13:39:09 +00:00
Sven Neumann c838165e33 prefix PIXELS and POINTS with GIMP instead of SIZE so we don't break the
2002-12-01  Sven Neumann  <sven@gimp.org>

	* app/core/core-types.h: prefix PIXELS and POINTS with GIMP
	instead of SIZE so we don't break the libgimp API without a good
	reason.

	* app/pdb/text_tool_cmds.c
	* tools/pdbgen/enums.pl: regenerated.

	* libgimp/gimpmisc.[ch]: removed gimp_timer functions since the
	GTimer API is simple enough and doesn't need to be wrapped.

	* plug-ins/common/newsprint.c
	* plug-ins/common/unsharp.c: use GTimer.
2002-12-01 19:33:34 +00:00
Hans Breuer 7c7ff46cc6 updated
2002-11-30  Hans Breuer  <hans@breuer.org>

	* */makefile.msc */*/makefile.msc : updated

	* themes/Default/images/makefile.msc : new file
	* themes/Default/makefile.msc : removed

	* libgimpwidgets/gimpwidgets.def : updated

	* app/core/core-types.h : renamed PIXELS and POINTS
	to SIZE_* to avoid clashes with system headers
	* app/pdb/text_tool_cmds.c : updated ...
	* tools/pdbgen/enums.py : ... by renaming here too.

	* app/widgets/gimphistogrambox.c : <string.h> for memcpy()
	* app/widgets/gimppropwidgets.c : <string.h> for strlen()

	* app/config/gimpconfig.c : on win32 rename always fails
	if the destination file exists. Delete it first.

	* libgimp/gimp.def : removed all '_'-prefixed exports
	* plug-ins/common/iwarp.c : replace _gimp_layer_copy()
	with gimp_layer_copy(), gimp_layer_add_alpha()

	* libgimp/gimpmisc.c : ported gimp_timer funcs to use
	g_timer to be more portable

	* libgimpbase/gimpdatafiles.c : there are no symlinks on
	win32, inverted to #ifndef G_OS_WIN32 as it was meant.

	* libgimpbase/gimpbase.def libgimpmodule/gimpmodule.def
	  libgimpwidgets/gimpwidgets.def : updated externals

	* plug-ins/common/randomize.c plug-ins/common/sinus.c :
	don't initialize more than the defined struct size

	* plug-ins/common/warp.c : removed unneeded unistd.h and
	signal.h include

	* regexrepl/regexrepl.def : (new file) needed to build
	as DLL
2002-12-01 14:53:17 +00:00
Michael Natterer 319173b14c added "gboolean use_shm" to the Gimp struct and to gimp_new().
2002-12-01  Michael Natterer  <mitch@gimp.org>

	* app/core/gimp.[ch]: added "gboolean use_shm" to the Gimp struct
	and to gimp_new().

	* app/app_procs.c: pass "use_shm" to gimp_new().

	* app/plug-in/plug-in.c (plug_in_init): get "use_shm" from the
	passed "gimp".  Don't include "appenv.h" and "app_procs.h".
2002-12-01 12:16:03 +00:00
Michael Natterer 5c86e63983 removed the global "base_config" variable.
2002-11-30  Michael Natterer  <mitch@gimp.org>

	* app/base/base-types.h: removed the global "base_config" variable.

	* app/base/base.[ch]: added "gboolean use_mmx" to base_init().
	Don't #include "appenv.h". Pass around more parameters to reduce
	the usage of the global "paint_options" pointer.

	* app/app_procs.c: pass "use_mmx" to base_init().

	* app/base/temp-buf.c: pass "temp_path" around internally. Declare
	"base_config" extern and added a #warning.

	* app/core/gimpdata.[ch]
	* app/core/gimpbrush.[ch]
	* app/core/gimpbrushgenerated.[ch]
	* app/core/gimpbrushpipe.[ch]
	* app/core/gimpgradient.[ch]
	* app/core/gimppalette.[ch]
	* app/core/gimppattern.[ch]: added "gboolean stingy_memory_use"
	parameters to all _new(), _load() and _duplicate() functions.

	* app/core/gimpmarshal.list: GimpData::duplicate needs an
	OBJECT__BOOLEAN marshaller now.

	* app/core/gimpdatafactory.[ch]: added a "Gimp" pointer so the
	factory can find the config. Pass base_config->stingy_memory_use
	to the GimpData functions changed above.

	* app/core/gimp-gradients.c
	* app/core/gimp.c
	* app/core/gimppalette-import.c
	* app/gui/palettes-commands.c
	* app/widgets/gimpdatafactoryview.c: changed accordingly.

	* app/core/gimpcontext.c: get "stingy_memory_use" from
	context->gimp->config.
2002-11-30 16:31:39 +00:00
Michael Natterer 64eb7d748a added gimp->edit_config which is a copy of gimp->config except for
2002-11-30  Michael Natterer  <mitch@gimp.org>

	* app/core/gimp.[ch]: added gimp->edit_config which is a copy of
	gimp->config except for GIMP_PARAM_RESTRT options. Create it in
	gimp_set_config() which must be called before anything else after
	gimp_new(). Install "notify" handlers between the both to keep
	them up-to-date. Enable auto saving for the edit_config.

	* app/app_procs.c: call gimp_set_config().

	* tools/pdbgen/pdb/gimprc.pdb: use gimp->edit_config here so we
	don't accidentially change GIMP_PARAM_RESTART values from the PDB.

	* app/pdb/gimprc_cmds.c: regenerated.

	* app/gui/preferences-dialog.c: use gimp->edit_config as the base
	for all prefs operations. Disable auto saving while the prefs
	dialog is open. No need any more to parse the saved gimprc to get
	GIMP_PARAM_RESTART values. Removed GIMP_PARAM_RESTART special
	hacks because edit_config handles them transparently for us.

	Unrelated:

	* app/core/gimpimage.c (gimp_image_init): initialize active_vectors.

	* app/gui/gui.c (gui_image_disconect): when the last image
	disappears, show the toolbox only if the image had a display.
2002-11-30 13:08:44 +00:00
Sven Neumann b92d38ce68 app/config/Makefile.am removed ... ... and readded under this name.
2002-11-28  Sven Neumann  <sven@gimp.org>

	* app/config/Makefile.am
	* app/config/gimpconfig-params-blurbs.h: removed ...
	* app/config/gimpconfig-blurbs.h: ... and readded under this name.
	Defined all missing blurb definitions to NULL.

	* app/config/gimpconfig-params.h: added a blurb parameter to all
	GIMP_CONFIG_INSTALL_PROP_* macros.

	* app/config/gimpbaseconfig.c
	* app/config/gimpcoreconfig.c
	* app/config/gimpdisplayconfig.c
	* app/config/gimpguiconfig.c: register blurbs with the GimpRc
	properties.

	* app/config/gimpconfig-serialize.c: do proper line-breaking for
	comments.

	* app/core/gimpcontext.c
	* app/widgets/gimpdeviceinfo.c: register NULL blurbs here.
2002-11-28 15:19:19 +00:00
Sven Neumann cfd1c72936 added (yet unused) autosave feature.
2002-11-27  Sven Neumann  <sven@gimp.org>

	* app/config/gimprc.[ch]: added (yet unused) autosave feature.

	* app/core/gimpbrush.c
	* app/core/gimpbrushpipe.c: simplified user-visible messages.
2002-11-27 16:13:09 +00:00
Manish Singh 2b16283b32 moved FINITE definition to $extra code. Changed to use #elif, much
2002-11-24  Manish Singh <yosh@gimp.org>

        * tools/pdbgen/pdb/image.pdb: moved FINITE definition to $extra
        code. Changed to use #elif, much cleaner.

        * app/pdb/image_cmds.c: regenerated

        * app/core/gimpenvirontable.[ch]: added support for app internal
        environment variable settings. These override any *.env files if
        there are collisions. Not sure on that policy. Also, envp is now
        generated on the first get_envp call.

        * app/gui/gui.[ch]: added gui_environ_init, which uses
        gimp_environ_table_add. Moved the setting of DISPLAY to here.
        Added setting of GDK_DISPLAY instead for the fb backends. Hm,
        perhaps GDK should do this itself...

        * app_procs.c: call gui_environ_init.

        * libgimpwidgets/gimpcolorscale.c
        * libgimpwidgets/gimpcolorscales.c: #include <string.h> for
        strlen and memcpy.

-Yosh
2002-11-25 00:04:26 +00:00
Michael Natterer 4ce4adf87d removed gimp_config_values_equal().
2002-11-23  Michael Natterer  <mitch@gimp.org>

	* app/config/gimpconfig-utils.[ch]: removed
	gimp_config_values_equal().

	* app/config/gimpconfig-serialize.c
	* app/config/gimpconfig.c: use g_param_values_cmp() instead so
	our registered compare methods are used.

	* app/config/gimpdisplayconfig.[ch]: added "canvas_padding_mode"
	and "canvas_padding_color" properties.

	* app/display/display-enums.[ch]: added enum GimpDisplayPaddingMode
	which can be one of { theme, light check, dark check, custom }.

	* app/display/gimpdisplay.h
	* app/display/gimpdisplay-handlers.c: removed cached monitor
	resolution values...

	* app/display/gimpdisplayshell.[ch]: ...and added them here. Added
	padding state as in GimpDisplayConfig. Added utility function
	gimp_display_shell_set_padding() which hides all the details.
	Added the new padding modes to the padding color button's context
	menu.

	* app/display/gimpdisplayshell-callbacks.[ch]: don't fiddle
	with colors manually but use gimp_display_shell_set_padding()
	in realize() and in the color button callbacks.

	* app/display/gimpdisplayshell-handlers.c: connect to
	notify::monitor-[xy]resolution and
	notify::canvas-padding-[mode|color] and update accordingly.

	* app/widgets/gimppropwidgets.[ch]: added
	gimp_prop_color_button_new().

	* app/widgets/gimpdialogfactory.[ch]: added
	gimp_dialog_factories_session_clear() (unimplemented).

	* app/gui/preferences-dialog.c: added widgets for padding mode and
	color. Removed some callbacks by connecting the functions they
	called directly. Cleanup.
2002-11-23 22:22:21 +00:00
Michael Natterer 024061d9d7 added tile_cache_init() and tile_cache_exit() as public functions.
2002-11-21  Michael Natterer  <mitch@gimp.org>

	* app/base/tile-cache.[ch]: added tile_cache_init() and
	tile_cache_exit() as public functions.

	* app/base/base.c: call them. Connect to GimpBaseConfig's
	notify::tile-cache-size.

	* app/core/gimpimage.c: connect to notify::transparency-type and
	notify::transparency-size and call
	gimp_image_invalidate_layer_previews() in the callback.

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

	* app/display/gimpdisplayshell-handlers.c: connect to
	notify::transparency-type and notify::transparency-size and expose
	the shell in the callback.

	* app/display/gimpdisplayshell-render.[ch]: added render_init()
	and render_exit() functions and connect to
	notify::transparency-type and notify::transparency-size for
	setting up the render buffers.

	* app/gui/gui.c: call the new functions instead of render_setup().
	Connect to notify::show-tool-tips.

	* app/gui/preferences-dialog.c: copy values between the global
	config object and its local clone only when they have changed.
	Wrap setting of lots of values in g_object_[freeze|thaw]_notify().
	Added lots of mnemonics.

	* app/gui/resolution-calibrate-dialog.c: added mnemonics.

	* app/widgets/gimppropwidgets.c: g_object_set() the values edited
	by the gimp_prop_coordinates() much less often by remembering the
	old values and setting them only when they have changed.
2002-11-21 15:46:19 +00:00
Michael Natterer 8b6ec3b332 added GIMP_PARAM_RESTART and GIMP_PARAM_CONFIRM flags and changed all
2002-11-20  Michael Natterer  <mitch@gimp.org>

	* app/config/gimpconfig-params.h: added GIMP_PARAM_RESTART and
	GIMP_PARAM_CONFIRM flags and changed all param spec macros
	to have a "flags" parameter.

	* app/config/gimpbaseconfig.c
	* app/config/gimpcoreconfig.c
	* app/config/gimpdisplayconfig.c
	* app/config/gimpguiconfig.c: tag the values which need restart or
	confirmation with the resp. flags. Changed all macro calls
	accordingly.

	* app/core/gimpcontext.c
	* app/widgets/gimpdeviceinfo.c: changed macro calls accordingly.
2002-11-20 19:09:40 +00:00
Dave Neary cd28dee822 configure.in app/core/gimpbrushpipe.c app/gui/about-dialog.c
2002-11-20  Dave Neary  <bolsh@gimp.org>

        * configure.in
        * app/core/gimpbrushpipe.c
        * app/gui/about-dialog.c
        * app/paint-funcs/paint-funcs-generic.h
        * app/paint-funcs/paint-funcs.c
        * libgimpmath/gimpmath.h
        * libgimpwidgets/gimpwidgets.c
        * plug-ins/common/CML_explorer.c
        * plug-ins/common/blur.c
        * plug-ins/common/cubism.c
        * plug-ins/common/gee.c
        * plug-ins/common/gee_zoom.c
        * plug-ins/common/gqbist.c
        * plug-ins/common/jigsaw.c
        * plug-ins/common/lic.c
        * plug-ins/common/noisify.c
        * plug-ins/common/nova.c
        * plug-ins/common/papertile.c
        * plug-ins/common/plasma.c
        * plug-ins/common/randomize.c
        * plug-ins/common/sample_colorize.c
        * plug-ins/common/scatter_hsv.c
        * plug-ins/common/shift.c
        * plug-ins/common/sinus.c
        * plug-ins/common/smooth_palette.c
        * plug-ins/common/snoise.c
        * plug-ins/common/sparkle.c
        * plug-ins/common/spheredesigner.c
        * plug-ins/common/spread.c
        * plug-ins/common/warp.c
        * plug-ins/common/wind.c
        * plug-ins/flame/cmap.c
        * plug-ins/flame/flame.c
        * plug-ins/flame/libifs.c
        * plug-ins/gflare/gflare.c
        * plug-ins/gimpressionist/gimpressionist.c
        * plug-ins/gimpressionist/gimpressionist.h
        * plug-ins/gimpressionist/plasma.c
        * plug-ins/gimpressionist/repaint.c
        * plug-ins/ifscompose/ifscompose_utils.c
        * plug-ins/maze/algorithms.c
        * plug-ins/maze/maze.c
        * plug-ins/maze/maze.h
        * plug-ins/mosaic/mosaic.c: Change all occurrences of RAND_MAX,
        G_MAXRAND, rand(), srand(), lrand48(), srand48(), random(),
        srandom(), RAND_FUNC and SRAND_FUNC to the appropriate g_rand*
        equivalent. Programs which require seed setting for reproducible
        results, and anything in the core, gets a dedicated GRand * for
        the lifetime required. Programs which only ever used random
        numbers for tossing a coin, rolling a dice, etc use g_random
        functions. For the rest, judgement was used. Where it was easy, a
        GRand * object was used and g_rand_* functions were
        preferred. This fixes bug #67386 in HEAD.
2002-11-20 09:27:48 +00:00
Sven Neumann 073e533a8a Finally landed the new GimpConfig based gimprc parser. It's not finished
2002-11-18  Sven Neumann  <sven@gimp.org>

	Finally landed the new GimpConfig based gimprc parser. It's not
	finished yet but we need to start somewhere. This release removes
	the old gimprc.[ch] files. The gimprc format changes slightly, but
	the changes are minimal. The Preferences dialog is temporarily
	disabled since it still needs to be ported. If you are are afraid,
	stay away from CVS for a few days ;-)

	* app/Makefile.am
	* app/gimprc.[ch]: removed the old gimprc system.

	* app/base/Makefile.am
	* app/base/base-config.[ch]: removed these files in favor of
	config/gimpbaseconfig.[ch].

	* app/core/Makefile.am
	* app/core/gimpcoreconfig.[ch]: removed these files in favor of
	config/gimpcoreconfig.[ch].

	* app/config/Makefile.am
	* app/config/config-types.h: moved typedefs into this new file.

	* app/config/gimpbaseconfig.[ch]
	* app/config/gimpcoreconfig.[ch]
	* app/config/gimpdisplayconfig.[ch]
	* app/config/gimpguiconfig.[ch]
	* app/config/gimprc.[ch]
	* app/config/test-config.c: brought into shape for real use.

	* app/base/base-types.h: include config/config-types.h here. Added
	a global GimpBaseConfig *base_config variable to ease migration.

	* app/gui/Makefile.am: temporarily disabled the preferences dialog.

	* app/app_procs.c
	* app/undo.c
	* app/undo_history.c
	* app/base/base.[ch]
	* app/base/gimphistogram.c
	* app/base/pixel-processor.c
	* app/base/temp-buf.c
	* app/base/tile-cache.c
	* app/core/core-types.h
	* app/core/gimp-documents.c
	* app/core/gimp.c
	* app/core/gimpbrush.c
	* app/core/gimpbrushgenerated.c
	* app/core/gimpcontext.c
	* app/core/gimpdrawable-transform.c
	* app/core/gimpimage-new.c
	* app/core/gimpimage.c
	* app/core/gimpimagefile.c
	* app/core/gimpmodules.c
	* app/core/gimppattern.c
	* app/display/Makefile.am
	* app/display/gimpdisplay-handlers.c
	* app/display/gimpdisplay.[ch]
	* app/display/gimpdisplayshell-callbacks.c
	* app/display/gimpdisplayshell-handlers.c
	* app/display/gimpdisplayshell-layer-select.c
	* app/display/gimpdisplayshell-render.c
	* app/display/gimpdisplayshell-scale.c
	* app/display/gimpdisplayshell-scroll.c
	* app/display/gimpdisplayshell-selection.c
	* app/display/gimpdisplayshell.[ch]
	* app/display/gimpnavigationview.c
	* app/file/file-save.c
	* app/gui/device-status-dialog.c
	* app/gui/dialogs-constructors.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/gui.c
	* app/gui/menus.c
	* app/gui/paths-dialog.c
	* app/gui/resize-dialog.c
	* app/gui/session.c
	* app/gui/test-commands.c
	* app/gui/tips-dialog.c
	* app/gui/tips-dialog.h
	* app/gui/user-install-dialog.c
	* app/gui/view-commands.c
	* app/paint/gimppaintcore.c
	* app/plug-in/plug-in.c
	* app/plug-in/plug-ins.c
	* app/tools/gimpbezierselecttool.c
	* app/tools/gimpbucketfilltool.c
	* app/tools/gimpcolorpickertool.c
	* app/tools/gimpcroptool.c
	* app/tools/gimpeditselectiontool.c
	* app/tools/gimpfuzzyselecttool.c
	* app/tools/gimpinktool.c
	* app/tools/gimpmagnifytool.c
	* app/tools/gimpmeasuretool.c
	* app/tools/gimppainttool.c
	* app/tools/gimppathtool.c
	* app/tools/gimptexttool.[ch]
	* app/tools/selection_options.c
	* app/tools/tools.c
	* app/tools/transform_options.c
	* app/widgets/gimphelp.c
	* app/widgets/gimpitemfactory.c
	* app/widgets/gimpselectioneditor.c
	* app/xcf/xcf-load.c
	* tools/pdbgen/pdb/fileops.pdb
	* tools/pdbgen/pdb/gimprc.pdb
	* tools/pdbgen/pdb/image.pdb
	* tools/pdbgen/pdb/layer.pdb
	* tools/pdbgen/pdb/transform_tools.pdb: use the new config system
	instead of the old gimprc stuff.

	* etc/gimprc.in
	* etc/gimprc_user.in: adapted to the new gimprc format. Will update
	the man-page later...

	* app/pdb/fileops_cmds.c
	* app/pdb/gimprc_cmds.c
	* app/pdb/image_cmds.c
	* app/pdb/layer_cmds.c
	* app/pdb/transform_tools_cmds.c
	* libgimp/gimpgimprc_pdb.c: regenerated.
2002-11-18 20:50:31 +00:00
Sven Neumann 9a8a6227c8 accept a NULL name and return NULL. Fixes warnings when starting gimp w/o
2002-11-18  Sven Neumann  <sven@gimp.org>

	* app/core/gimpcontainer.c (gimp_container_get_child_by_name):
	accept a NULL name and return NULL. Fixes warnings when starting
	gimp w/o a gimprc.
2002-11-17 23:39:46 +00:00
Michael Natterer d878906a7e g_return_if_fail() earlier to clarify things (There was a bug in 1.2 which
2002-11-17  Michael Natterer  <mitch@gimp.org>

	* app/core/gimpcontext.c (gimp_context_set_default_colors,
	gimp_context_swap_colors): g_return_if_fail() earlier to clarify
	things (There was a bug in 1.2 which was fixed only accidentially
	in HEAD).
2002-11-17 20:51:03 +00:00
Manish Singh 2eef2afbc1 don't say "Now type 'make'" if configure failed.
2002-11-11  Manish Singh  <yosh@gimp.org>

        * autogen.sh: don't say "Now type 'make'" if configure failed.

        * app/core/Makefile.am
        * app/core/core-types.h
        * app/core/gimpenvirontable.[ch]: Implemented GimpEnvironTable,
        keeps an envp array built from system environment and *.env files.

        * app/core/gimp.[ch]: keep a GimpEnvironTable around.

        * app/gimprc.c
        * app/config/gimpcoreconfig.[ch]
        * app/core/gimpcoreconfig.h
        * app/gui/preferences-dialog.c
        * app/gui/user-install-dialog.c: environ-path config stuff

        * themes/Default/images/preferences/Makefile.am
        * themes/Default/images/preferences/folder-environ.png: just copied
        folder.png here, need a better one.

        * app/plug-in/plug-in.c: quick hack to use the envp in the
        GimpEnvironTable. Only on unix now, should really port the
        code to use g_spawn_*.

        * data/misc/user_install
        * etc/gimprc.in: add environ-path stuff

        * data/environ/Makefile: creates system environ directory.

        * data/environ/default.env: sample env file info.

        * data/Makefile.am
        * configure.in: added data/environ dir

        * plug-ins/pygimp/Makefile.am: python module files get put in
        $(gimpplugindir)/python now, install pygimp.env to point to it.

        * plug-ins/pygimp/doc/Makefile.am: minor clean up.
2002-11-12 03:34:11 +00:00
Michael Natterer 2fd6f782a0 the transformed tile_manager has always an alpha channel, so use
2002-11-10  Michael Natterer  <mitch@gimp.org>

	* app/core/gimpdrawable-transform.c (gimp_drawable_transform_paste):
	the transformed tile_manager has always an alpha channel, so use
	gimp_drawable_type_with_alpha() when creating a layer from it
	using gimp_layer_new_from_tiles(). Fixes bug #98053.
2002-11-09 23:15:22 +00:00
Michael Natterer 65d5e587e9 don't g_message() on error but return a GError.
2002-10-30  Michael Natterer  <mitch@gimp.org>

	* app/core/gimpdata.[ch] (gimp_data_delete_from_disk): don't
	g_message() on error but return a GError.

	* app/widgets/gimpdatafactoryview.c: show the message here.
2002-10-30 18:46:29 +00:00
Michael Natterer b705a3ab99 cosmetic cleanup.
2002-10-30  Michael Natterer  <mitch@gimp.org>

	* app/core/gimpbrush.[ch]: cosmetic cleanup.
2002-10-30 18:25:40 +00:00
Michael Natterer c7ac6aff52 Moved generic datafile loading to LibGimpBase:
2002-10-23  Michael Natterer  <mitch@gimp.org>

	Moved generic datafile loading to LibGimpBase:

	* app/core/gimpdatafiles.[ch]: removed...

	* libgimpbase/gimpdatafiles.[ch]: ...and add here with a changed
	API which requires no more global variables.

	* libgimpbase/Makefile.am
	* libgimpbase/gimpbase.h
	* libgimpbase/gimpbasetypes.h
	* app/core/Makefile.am
	* app/core/core-types.h
	* app/core/gimpdatafactory.c
	* app/gui/gui.c
	* app/plug-in/plug-in.c
	* app/plug-in/plug-ins.c
	* app/tools/tools.c: changed accordingly.

	Moved module loading to LibGimpModule:

	* app/core/gimpmodules.c: removed lots of code...

	* libgimpmodule/gimpmoduledb.[ch]: ...and added it here as
	GimpModuleDB object.

	* libgimpmodule/Makefile.am
	* libgimpmodule/gimpmoduletypes.h: changed accordingly.

	* app/core/gimp.[ch]: replaced gimp->modules by gimp->module_db.

	* libgimpmodule/gimpmodule.[ch]: added
	gimp_module_query(). Internal cleanup. Stuff...

	* app/gui/module-browser.c: changed accordingly. Unfinished...

	* app/core/gimpcontainer.c
	* app/core/gimplist.c: reverted the HACKS introduced recently.

	* app/core/gimpobject.[ch]: added gimp_g_object_get_memsize()
	utility function.

	* libgimpproxy/gimpobject.[ch]: regenerated.

	Changed display filter configuration stuff:

	* libgimpwidgets/gimpcolordisplay.[ch]: made the virtual
	configure() function return a GtkWidget instead of opening a
	dialog. Changed configure_cancel() to configure_reset(). Added
	"changed" signal.

	* app/display/gimpdisplayshell-filter-dialog.c: embed the filters'
	config GUI in the dialog. Connect to "changed" and added a "Reset"
	button which resets the filter.

	* modules/cdisplay_gamma.c
	* modules/cdisplay_highcontrast.c: changed accordingly.

	* modules/colorsel_triangle.c
	* modules/colorsel_water.c: minor fixes.

2002-10-23  Michael Natterer  <mitch@gimp.org>

	* libgimpbase/libgimpbase-docs.sgml
	* libgimpbase/libgimpbase-sections.txt
	* libgimpbase/tmpl/gimpbasetypes.sgml
	* libgimpbase/tmpl/gimpdatafiles.sgml: added GimpDatafiles

	* libgimpmodule/libgimpmodule-docs.sgml
	* libgimpmodule/libgimpmodule-sections.txt
	* libgimpmodule/tmpl/gimpmoduledb.sgml: added GimpModuleDB.

	* libgimpwidgets/libgimpwidgets.types: added gimp_dialog_get_type

	* libgimpmodule/tmpl/gimpmodule.sgml
	* libgimpwidgets/tmpl/gimpcolordisplay.sgml
	* libgimpwidgets/tmpl/gimpdialog.sgml: updated.
2002-10-23 14:55:07 +00:00
Michael Natterer 0f77b4228f Makefile.am libgimpmodule/.cvsignore libgimpmodule/Makefile.am
2002-10-21  Michael Natterer  <mitch@gimp.org>

	* Makefile.am
	* libgimpmodule/.cvsignore
	* libgimpmodule/Makefile.am
	* libgimpmodule/gimpmodule.[ch]
	* libgimpmodule/gimpmodule.def
	* libgimpmodule/gimpmoduletypes.h
	* libgimpmodule/makefile.msc: new library for module loading.

	* configure.in: generate Makefiles for libgimpmodule and its
	devel-docs. Added GMODULE_CFLAGS and GMODULE_LIBS.

	* app/Makefile.am: link the app against it.

	* libgimp/gimpmodule.h
	* app/core/gimpmoduleinfo.[ch]: removed.

	* libgimp/Makefile.am
	* app/core/Makefile.am
	* app/core/core-types.h
	* app/core/gimpmodules.c
	* app/gui/module-browser.c: changed accordingly.

	* modules/cdisplay_gamma.c
	* modules/cdisplay_highcontrast.c
	* modules/colorsel_triangle.c
	* modules/colorsel_water.c: #include "libgimpmodule/gimpmodule.h"

2002-10-21  Michael Natterer  <mitch@gimp.org>

	* Makefile.am
	* libgimpmodule/.cvsignore
	* libgimpmodule/Makefile.am
	* libgimpmodule/libgimpmodule-docs.sgml
	* libgimpmodule/libgimpmodule-sections.txt
	* libgimpmodule/libgimpmodule.types
	* libgimpmodule/tmpl/.cvsignore
	* libgimpmodule/tmpl/gimpmodule.sgml
	* libgimpmodule/tmpl/gimpmoduletypes.sgml: added API docs for the
	new module loading lib.

	* libgimp/tmpl/gimpmodule.sgml: removed.

	* libgimp/libgimp-docs.sgml
	* libgimp/libgimp-sections.txt: changed accordingly.

	* libgimpwidgets/tmpl/gimpcolordisplay.sgml
	* libgimpwidgets/tmpl/gimpcolorselect.sgml
	* libgimpwidgets/tmpl/gimpcolorselector.sgml: updated.

2002-10-21  Michael Natterer  <mitch@gimp.org>

	* POTFILES.in: removed app/core/gimpmoduleinfo.c

2002-10-21  Michael Natterer  <mitch@gimp.org>

	* POTFILES.in: added libgimpmodule/gimpmodule.c
2002-10-21 14:15:02 +00:00
Michael Natterer 4cb04533e4 app/core/gimpmoduleinfo.[ch] separated module query from type registration
2002-10-20  Michael Natterer  <mitch@gimp.org>

	* app/core/gimpmoduleinfo.[ch]
	* libgimp/gimpmodule.h: separated module query from type
	registration by adding a separate "gimp_module_query" function
	which must be implemented by modules. Make local copies of the
	strings returned by the query function.

	* app/core/gimpmodules.c
	* app/gui/module-browser.c: changed accordingly.

	* modules/cdisplay_gamma.c
	* modules/cdisplay_highcontrast.c
	* modules/colorsel_triangle.c
	* modules/colorsel_water.c: added the gimp_module_query() functions.
2002-10-20 12:40:30 +00:00
Michael Natterer d7055a3351 Ported module loading to GTypeModule, getting rid of all own module
2002-10-20  Michael Natterer  <mitch@gimp.org>

	Ported module loading to GTypeModule, getting rid of all own
	module registering/bookkeeping stuff for color selectors and
	display filters. The modules now simply register GimpColorSelector
	and GimpColorDisplay subclasses, the list of registered subclasses
	can then be obtained calling g_type_children() on the abstract
	base classes.

	This is work in progress and just the first working state after I
	started breaking everything...

	* app/gui/color-select.[ch]
	* libgimp/gimpcolordisplay.h
	* libgimp/gimpcolorselector.h: removed.

	* app/gui/Makefile.am
	* libgimp/Makefile.am: changed accordingly.

	* libgimp/gimpmodule.h: massively simplified. All voodoo is gone.

	* libgimpwidgets/gimpcolordisplay.[ch]
	* libgimpwidgets/gimpcolorselector.[ch]: new abstract base classes
	which need to be subclassed by modules.

	* libgimpwidgets/gimpcolorselect.[ch]: the built-in color selector
	from app/gui/color-select.* ported to be a GimpColorSelector
	subclass.

	* libgimpwidgets/Makefile.am
	* libgimpwidgets/gimpwidgets.h
	* libgimpwidgets/gimpwidgetsmarshal.list
	* libgimpwidgets/gimpwidgetstypes.h: changed accordingly.

	* app/core/gimpmoduleinfo.[ch]: made it a GTypeModule subclass

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

	* app/core/gimpcontainer.c
	* app/core/gimplist.c: HACKED around to allow GimpLists of
	GObjects (not GimpObjects). This is EEKy, so I will either make
	gimp->modules a simple GList and revert this bit of change, or
	allow GObjects all over the place in GimpContainer land...

	* app/display/gimpdisplayshell-filter.[ch]
	* app/gui/color-notebook.c: removed all module stuff and use
	g_type_children() to get the list of available color_selectors
	and display_filters.

	* app/display/gimpdisplayshell-filter-dialog.c
	* app/display/gimpdisplayshell-render.c
	* app/gui/module-browser.c: changed accordingly.

	* app/gui/gui.c: ref the built-in color selector's class before
	the modules are queried so it appears first in the list of
	GimpColorSelector's children.

	* modules/Makefile.am: build the water color selector again.

	* modules/cdisplay_gamma.c
	* modules/cdisplay_highcontrast.c
	* modules/colorsel_triangle.c
	* modules/colorsel_water.c: ported them all to the new API.

	* modules/gimpmodregister.[ch]: removed the old EMX module hack.
2002-10-20 10:14:17 +00:00
Sven Neumann cedcb7bc8d changed an error message.
2002-10-18  Sven Neumann  <sven@gimp.org>

	* app/core/gimpimage-mask.c (gimp_image_mask_extract): changed an
	error message.

	* app/widgets/gimpmessagebox.c: tweaked so it looks more like the
	query box.
2002-10-18 15:16:05 +00:00
Sven Neumann 6303579945 added convenience function gimp_display_coords_in_active_drawable().
2002-10-14  Sven Neumann  <sven@gimp.org>

	* app/display/gimpdisplay.[ch]: added convenience function
	gimp_display_coords_in_active_drawable().

	* app/tools/gimpcurvestool.c: indicate the possibility to pick color
	values from the image by showing a color picker cursor. Made the
	file selection dialog transient for the tool shell.

	* app/tools/gimplevelstool.c: made the file selection dialog
	transient for the tool shell.
2002-10-14 13:39:35 +00:00
Sven Neumann 01a8d7cb93 added PANGO_FT2_CFLAGS.
2002-10-11  Sven Neumann  <sven@gimp.org>

	* app/core/Makefile.am (INCLUDES): added PANGO_FT2_CFLAGS.
2002-10-10 23:46:45 +00:00
Sven Neumann ce5aa0c929 optionally allow GIMP_UNIT_PIXEL as value for GimpUnit params.
2002-10-10  Sven Neumann  <sven@gimp.org>

	* app/config/gimpconfig-params.[ch]: optionally allow GIMP_UNIT_PIXEL
	as value for GimpUnit params.

	* app/core/gimpimage-text.[ch]
	* app/core/gimptext.[ch]
	* app/tools/gimptexttool.c: moved some code around.
2002-10-10 17:07:46 +00:00
Sven Neumann ce3af12618 app/core/Makefile.am app/core/core-types.h added first draft of a GimpText
2002-10-10  Sven Neumann  <sven@gimp.org>

	* app/core/Makefile.am
	* app/core/core-types.h
	* app/core/gimptext.[ch]: added first draft of a GimpText object.
2002-10-10 14:30:01 +00:00
Michael Natterer 0c586b3044 adjust the cell_size of the preview dynamically (makes them look nicer).
2002-10-09  Michael Natterer  <mitch@gimp.org>

	* app/core/gimppalette.c (gimp_palette_get_new_preview): adjust
	the cell_size of the preview dynamically (makes them look nicer).

	* app/core/gimppalette-import.c: require n_colors to be at least
	2, not 1. Cleanup.

	* app/gui/palette-import-dialog.c: completely chopped and
	re-assembled source and GUI. Please have a look and comment...
2002-10-09 14:04:25 +00:00
Sven Neumann 29a75b7b07 new files that implement the text rendering that used to live in
2002-10-09  Sven Neumann  <sven@gimp.org>

	* app/core/gimpimage-text.[ch]: new files that implement the text
	rendering that used to live in gimptexttool.[ch].

	* app/core/Makefile.am
	* app/core/core-types.h
	* app/tools/gimptexttool.[ch]
	* tools/pdbgen/Makefile.am
	* tools/pdbgen/pdb/text_tool.pdb: changed accordingly.

	* tools/pdbgen/enums.pl
	* app/pdb/text_tool_cmds.c: regenerated.
2002-10-09 14:00:26 +00:00
Sven Neumann e5595d6153 an attempt to fix bug #94749 (gimp_image_duplicate crashes if floating
2002-10-08  Sven Neumann  <sven@gimp.org>

	* app/core/gimpimage-duplicate.c: an attempt to fix bug #94749
	(gimp_image_duplicate crashes if floating selection exists).

	* data/images/gimp_splash.png: a new blinkensplash from Paris.
2002-10-08 13:25:50 +00:00
Michael Natterer 45f2ed6294 set channel->bounds_known to FALSE (fixes #93853).
2002-09-24  Michael Natterer  <mitch@gimp.org>

	* app/core/gimpchannel.c (gimp_channel_sharpen): set
	channel->bounds_known to FALSE (fixes #93853).
2002-09-24 15:57:27 +00:00
Michael Natterer 451d392aac Some PDB cleanup:
2002-09-10  Michael Natterer  <mitch@gimp.org>

	Some PDB cleanup:

	* tools/pdbgen/pdb/procedural_db.pdb: removed the get_data() and
	set_data() implementations and the global "data_list" variable.
	Cleaned up the dump() stuff (pass the FILE pointer around instead
	of having a global variable for it). Fixed output_string() so it
	does not crash on NULL strings.

	* app/core/gimp.[ch]: added gimp->procedural_db_data_list.

	* app/pdb/procedural_db.[ch]: added procedural_db_[set|get]_data().
	Don't leak data identifiers when overwriting an already existing
	entry. Added g_return_if_fail() stuff to all public functions.

	* tools/pdbgen/pdb/channel.pdb
	* tools/pdbgen/pdb/drawable.pdb
	* tools/pdbgen/pdb/layer.pdb
	* tools/pdbgen/pdb/parasite.pdb: tweaked some helper functions to
	take parameters which make them aware of the real type of the
	objects they handle (e.g. the PDB function gimp_layer_set_name()
	matches the core function gimp_object_get_name()).

	* app/pdb/pdb_glue.h: removed ugly CPP-level workarounds for the
	issue mentioned above.

	* app/pdb/channel_cmds.c
	* app/pdb/drawable_cmds.c
	* app/pdb/layer_cmds.c
	* app/pdb/parasite_cmds.c
	* app/pdb/procedural_db_cmds.c: regenerated.
2002-09-10 20:23:00 +00:00
Michael Natterer 3106802da5 return gimage->cmap directly instead of calling
2002-09-08  Michael Natterer  <mitch@gimp.org>

	* app/core/gimpimage.c (gimp_image_get_colormap): return
	gimage->cmap directly instead of calling
	gimp_drawable_cmap(active_drawable) without checking if there
	actually is an active_drawable.

	* tools/pdbgen/pdb/image.pdb (image_get_cmap): use g_memdup()
	instead of g_new() followed by memcpy().

	* app/pdb/image_cmds.c: regenerated.
2002-09-08 10:00:20 +00:00
Hans Breuer e17baf71d6 updated
2002-09-06  Hans Breuer  <hans@breuer.org>

	* */*/makefile.msc : updated

	* libgimptool/makefile.msc : new file, libgimptool
	is currently build as static lib due to references
	into app/core

	* themes/Default/makefile.msc : removed
	* themes/Default/images/makefile.msc : new file

	* libgimpwidgets/makefile.msc libgimpwidgets/gimpwidgets.c
	updated (externals)

	* app/paint-funcs.c : replaced gccism varibale size array on
	stack with portable alloca, removed sizeof(buf) check which
	must fail now.

	* app/config/gimpconfig.c : get write/close protos
	on win32 from io.h
	* app/config/gimprc.c : dito and <string.h>
	* app/config/gimpscanner.c : <string.h> only

	* app/core/gimpcontainer.c : workaround for clumsy
	compilers not supporting vararg macros

	* app/core/gimpdocumentlist.c app/core/gimpparasitelist.c
	include <io.h> on win32

	* app/widgets/gimpdocumentview.c
	  app/widgets/gimpimagedock.c
	  app/widgets/gimppreview.c : add #ifdef __GNUC__
	to avoid breaking on non standard pragma #warning.

	* app/gui/session.c : include <string.h>

	* regexrepl/makefile.msc : build as dll

	* plug-ins/makefile.msc : updated

	* plug-ins/common/pix.c : open file binary

	* plug-ins/common/spheredesigner.c : avoid error
	'incompatible types' while assigning, use memcpy()
2002-09-06 22:25:19 +00:00
Michael Natterer 54c377d7dd put the call to gimp_drawable_mask_bounds() back because we always need
2002-09-05  Michael Natterer  <mitch@gimp.org>

	* app/core/gimpdrawable-bucket-fill.c: put the call to
	gimp_drawable_mask_bounds() back because we always need the region
	to apply the fill (fixes non-seed-fill fills). Also take
	"sample_merged" into account when intersecting the resulting mask
	with the image's selection.

	Fixed unrelated bug:

	* app/core/gimpimage-contiguous-region.c: need to use
	gimp_image_projection_bytes(), not drawable->bytes if
	"sample_marged" is TRUE.
2002-09-05 13:36:30 +00:00
Dave Neary 738993fbc5 Small patch to modify the behaviour of the bucket fill tool if there is an
2002-09-04  Dave Neary  <bolsh@gimp.org>
        * app/core/gimpdrawable-bucket-fill.c: Small patch to
        modify the behaviour of the bucket fill tool if there
        is an active selection. Question: Should the bucket fill
        only work if clicked inside the selection? Currently a
        click anywhere works, and stuff gets drawn if the region
        intersects the selection. This patch closes bug #72896.
2002-09-04 18:32:17 +00:00
Michael Natterer 0d91f5a8c3 small speedup: use g_object_[get|set]_qdata() instead of
2002-09-02  Michael Natterer  <mitch@gimp.org>

	* app/core/gimpviewable.c: small speedup: use
	g_object_[get|set]_qdata() instead of g_object_[set|set]_data().
2002-09-02 17:35:16 +00:00
Michael Natterer b830a9cf9f remove the attached preview pixbuf just as the preview temp_buf.
2002-09-02  Michael Natterer  <mitch@gimp.org>

	* app/core/gimpviewable.c (gimp_viewable_real_invalidate_preview):
	remove the attached preview pixbuf just as the preview temp_buf.
2002-09-02 17:14:03 +00:00
Michael Natterer f4e1ec9734 Refcount layer masks correctly. Fixes layer mask undo.
2002-09-01  Michael Natterer  <mitch@gimp.org>

	Refcount layer masks correctly. Fixes layer mask undo.

	* app/core/gimplayer.c (gimp_layer_add_mask): ref the mask.

	* app/xcf/xcf-load.c
	* app/gui/layers-commands.c
	* tools/pdbgen/pdb/image.pdb: unref layer masks after adding them.

	* app/pdb/image_cmds.c: regenerated.
2002-09-01 07:25:41 +00:00
Michael Natterer 3ddc24d805 fixed wrong g_return_if_fail() in gimp_channel_feather() so the function
2002-08-29  Michael Natterer  <mitch@gimp.org>

	* app/core/gimpchannel.c: fixed wrong g_return_if_fail() in
	gimp_channel_feather() so the function can be called again (fixes
	#91923). Also added more g_return_if_fail() where they were
	missing and cleaned up everything a bit.
2002-08-29 16:48:17 +00:00
Michael Natterer 9c416076b1 app/undo.c (undo_pop_layer) emit "alpha_changed" from the image if we
2002-08-28  Michael Natterer  <mitch@gimp.org>

	* app/undo.c (undo_pop_layer)
	* app/core/gimpimage.c (gimp_image_[add|remove]_layer): emit
	"alpha_changed" from the image if we started (or ended up)
	with an image containing one layer without alpha.

	* app/core/gimplayer.c: use gimp_container_num_children() instead
	of accessing container->num_children manually.
2002-08-28 14:09:14 +00:00
Michael Natterer 4dc1b80eb2 fixed a bug introduced by myself on 2001-12-13: the floating selection
2002-08-27  Michael Natterer  <mitch@gimp.org>

	* app/core/gimpimage-mask.c (gimp_image_mask_float): fixed a bug
	introduced by myself on 2001-12-13: the floating selection layer
	needs to be of the type of it's associated drawable, which may be
	different from the image's type if it is a channel or layer mask
	(fixes #91814).
2002-08-27 20:06:40 +00:00
Michael Natterer 21ae8245bc removed #defines and added enum CurvesType instead.
2002-08-27  Michael Natterer  <mitch@gimp.org>

	* app/base/curves.h: removed #defines and added enum CurvesType
	instead.

	* app/core/gimpchannel.c: use TRANSPARENT_OPACITY and
	OPAQUE_OPACITY instead of 0 and 255.

	* app/core/gimplayer.c (gimp_layer_create_mask): fixed inverse
	layer mask creation by setting GIMP_CHANNEL(mask)->bounds_known to
	FALSE correctly (fixes #90982). Also optimized mask creation
	by calling gimp_channel_all() and gimp_channel_clear() for
	white and black masks.
2002-08-27 14:17:46 +00:00
Michael Natterer 1186e83a28 Color correction tool chopping:
2002-08-26  Michael Natterer  <mitch@gimp.org>

	Color correction tool chopping:

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

	* app/core/Makefile.am
	* app/core/core-types.h
	* app/core/gimpimagemap.[ch]: ...and added here as object.

	* app/base/Makefile.am
	* app/base/base-types.h
	* app/base/color-balance.[ch]
	* app/base/curves.[ch]
	* app/base/hue-saturation.[ch]
	* app/base/threshold.[ch]: the lowlevel color correction functions
	plus their parameter structs cut out of the resp. tools.

	* app/core/core-enums.[ch]: removed GimpTransferMode enum...

	* app/base/base-enums.[ch]: ...added it here. Also added
	GimpHueRange for the new hue-saturation files.

	* tools/pdbgen/enums.pl
	* libgimp/gimpenums.h
	* plug-ins/script-fu/script-fu-constants.c: regenerated.

	* app/tools/Makefile.am
	* app/tools/gimpcolorbalancetool-transfer.c: removed (code went
	to base/color-balance.c).

	* app/tools/gimpimagemaptool.[ch]: added most code which was
	diplicated in subclasses. Create the dialog here with a nice title
	bar including image preview and name (fixes #66033). Added virtual
	functions map(), dialog() and reset() which need to be implemented
	by subclasses.

	* app/tools/gimpbrightnesscontrasttool.[ch]
	* app/tools/gimpcolorbalancetool.[ch]
	* app/tools/gimpcurvestool.[ch]
	* app/tools/gimphuesaturationtool.[ch]
	* app/tools/gimplevelstool.[ch]
	* app/tools/gimpposterizetool.[ch]
	* app/tools/gimpthresholdtool.[ch]: removed tons of duplicated
	code and simply implement GimpImageMapTool's virtual functions.
	Removed all dialog structs and keep the variables in the tool
	structs. The dialogs are now created on-the-fly and destroyed when
	the tool goes away, which makes all callbacks much simpler and
	safer. Lots of GUI & code cleanup in all dialogs.

	* app/tools/gimpcurvestool.c
	* app/tools/gimplevelstool.c: added separate "Reset Channel"
	buttons and let the global "Reset" buttons reset all color
	channels.

	* app/tools/tools.c: the various antique foo_free() functions
	don't exist any more.

	* app/tools/gimphistogramtool.c: removed ImageMap field from
	dialog struct (it was unused). Cleaned up dialog a bit.

	* tools/pdbgen/Makefile.am: don't scan tools/gimphuesaturationtool.h
	for enums.

	* tools/pdbgen/pdb/color.pdb: use the new stuff from base/ and
	don't include stuff from tools/ any more.

	* app/pdb/color_cmds.c
	* app/pdb/paint_tools_cmds.c: regenerated.
2002-08-26 11:35:56 +00:00
Sven Neumann 48e27f1d51 tools/pdbgen/pdb/gimprc.pdb don't leak the result of
2002-08-22  Sven Neumann  <sven@gimp.org>

	* tools/pdbgen/pdb/gimprc.pdb
	* app/pdb/gimprc_cmds.c (gimprc_query_invoker): don't leak the
	result of gimprc_value_to_str().

	* app/core/gimpdrawable-preview.c (gimp_drawable_preview_scale):
	use g_new0() instead of g_new() followed by memset().

	* plug-ins/script-fu/script-fu-server.c (server_log): free the
	string after logging it.
2002-08-22 15:16:36 +00:00
Michael Natterer c2523d8d63 compress emissions of "mask_changed" and "qmask_changed" across undo
2002-08-22  Michael Natterer  <mitch@gimp.org>

	* app/undo.c: compress emissions of "mask_changed" and
	"qmask_changed" across undo groups.

	* app/core/gimpimage-mask.c: set GIMP_DRAWABLE(mask)->preview_valid
	to FALSE in gimp_image_mask_invalidate(), not in
	gimp_image_mask_push_undo(). Fixes selection preview rendering
	after a mask undo.
2002-08-22 10:40:11 +00:00
Michael Natterer 5103c495fb call gimp_image_mask_changed() after performing the selection op.
2002-08-21  Michael Natterer  <mitch@gimp.org>

	* app/core/gimpimage-mask-select.c: call gimp_image_mask_changed()
	after performing the selection op.
2002-08-21 10:59:26 +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
Michael Natterer ab53e0d3f5 fixed warning, coding style.
2002-08-11  Michael Natterer  <mitch@gimp.org>

	* app/core/gimpcontainer.c: fixed warning, coding style.
2002-08-11 18:45:24 +00:00
Sven Neumann 00d408bdd6 bumbed version number to 1.3.8.
2002-07-11  Sven Neumann  <sven@gimp.org>

	* configure.in: bumbed version number to 1.3.8.

	* app/core/gimpcontainer.c: use gulong for signal handler IDs.
2002-07-11 11:37:41 +00:00
Michael Natterer fa537489d7 removed gdisp->scale, gdisp->dot_for_dot, the scaling marcos and the
2002-06-27  Michael Natterer  <mitch@gimp.org>

	* app/display/gimpdisplay.[ch]: removed gdisp->scale,
	gdisp->dot_for_dot, the scaling marcos and the
	gdisplay_[un]transform[_f]() functions.

	* app/display/gimpdisplayshell.[ch]: added them here. Named the
	transform functions gimp_display_shell_[un]transform_xy[_f]().

	Made the gimp_display_shell_[un]transform_coords() functions copy
	all values of the GimpCoords struct, not just x and y.

	* app/display/gimpstatusbar.[ch]: keep a pointer to
	GimpDisplayShell, not GimpDisplay.

	* app/display/gimpdisplayshell-callbacks.c
	* app/display/gimpdisplayshell-render.c
	* app/display/gimpdisplayshell-scale.c
	* app/display/gimpdisplayshell-scroll.c
	* app/display/gimpdisplayshell-selection.c
	* app/display/gimpnavigationview.c
	* app/gui/image-commands.c
	* app/gui/info-window.c
	* app/gui/select-commands.c
	* app/gui/view-commands.c
	* app/tools/gimpbezierselecttool.c
	* app/tools/gimpcroptool.c
	* app/tools/gimpdrawtool.c
	* app/tools/gimpeditselectiontool.c
	* app/tools/gimpmagnifytool.c
	* app/tools/gimpmeasuretool.c
	* app/tools/gimpmovetool.c
	* app/tools/gimppainttool.c
	* app/tools/gimppathtool.c
	* app/tools/gimprotatetool.c
	* app/tools/gimpscaletool.c
	* app/tools/gimpvectortool.c: changed accordingly.

	* app/gui/layers-commands.c: if(gimage->selection_mask) is always
	TRUE, use if(!gimp_image_mask_is_empty(gimage)) instead.

	* app/tools/gimpfuzzyselecttool.[ch]: moved global variables
	to the object struct.
2002-06-26 22:16:59 +00:00
Michael Natterer 0aec31c3c6 Fixed color picking (reported by jimmac on #gimp):
2002-06-20  Michael Natterer  <mitch@gimp.org>

	Fixed color picking (reported by jimmac on #gimp):

	* app/core/gimpimage-pick-color.c: set the returned color's alpha
	value to opaque if the drawable we pick from has no aplha.

	* app/tools/gimpcolorpickertool.c: ignore all values returned by
	gimp_image_pick_color() if it returns FALSE (which happens if we
	want to pick outside the drawable).
2002-06-19 22:09:02 +00:00
Sven Neumann c585964707 Obviously I disagree with Tim about the symbol_name parameter in
2002-06-17  Sven Neumann  <sven@gimp.org>

	Obviously I disagree with Tim about the symbol_name parameter in
	g_scanner_unexp_token(). As it seems it's not supposed to be used
	to tell the user about the expected symbol (see bug #81850):

	* gimpconfig.[ch] (gimp_config_deserialize_return): removed the
	symbol_name parameter.

	* app/config/gimpconfig-deserialize.c
	* app/core/gimpcontainer.c
	* app/core/gimpdocumentlist.c
	* app/core/gimpparasitelist.c: changed the callers accordingly.

	* app/core/gimpunits.c (gimp_unitrc_load): pass NULL as symbol_name
	to g_scanner_unexp_token().
2002-06-17 19:36:33 +00:00
Michael Natterer a3f44d8b0f Separated tool_options creation from tool registration so we don't
2002-06-17  Michael Natterer  <mitch@gimp.org>

	Separated tool_options creation from tool registration so we
	don't implicitly create widgets before gui_init():

	* libgimptool/gimptooltypes.h: removed GimpToolOptionsNewFunc
	typedef here...

	* app/core/core-types.h: ...and added it here.

	* libgimpproxy/gimpproxytypes.h: regenerated.

	* app/core/gimptoolinfo.[ch]: added a GimpToolOptionsNewFunc
	pointer to remember the constructor. Fixed the finalize() method
	(bug was never noticed because we leaked all tool infos)

	* app/tools/tool_manager.[ch]: moved tool_options creation to the
	new function tool_manager_restore(). Unref the tool infos after
	adding them to their container. Added "brush" and "gradient" to
	the context properties which are defined for tool contexts.

	* app/app_procs.c: call tool_manager_restore() after gui_init().

	* app/gui/gui.c: removed the hack introduced recently and call
	render_setup() in gui_init() again, not in gui_themes_init().

	Use the correct contexts now that they are properly initialized
	at the time of tool_options creation:

	* app/tools/gimpblendtool.c: use tool_info->context, not
	gimp_get_user_context() to get/set the tool's gradient.

	* app/paint/gimppaintcore.[ch] (gimp_paint_core_start): added a
	GimpPaintOptions paramater and get the brush to use from
	paint_options->context (instead of gimp_get_current_context()).

	* app/paint/gimppaintcore-stroke.c
	* app/tools/gimppainttool.c: changed accordingly.

	* app/tools/paint_options.c: added a brush preview to the paint
	options.
2002-06-17 10:34:28 +00:00
Maurits Rijk 0e0114f7fb Adding more mnemonic stuff (#80804) and replaced some memcpy of structure variables by structure assignments. 2002-06-13 20:32:21 +00:00
Michael Natterer 91cfa78384 added a boolean "internal" which indicates that the data object is an
2002-06-12  Michael Natterer  <mitch@gimp.org>

	* app/core/gimpdata.[ch]: added a boolean "internal" which
	indicates that the data object is an automatically created
	internal object. Changed the code to refuse saving to deleting
	internal objects.

	* app/core/Makefile.am
	* app/core/gimp-gradients.[ch]: new files implementing internal
	gradients (FG -> BG in RGB and HSV and FG -> transparent).

	* app/core/gimp.c: call gimp_gradients_init().

	* app/core/gimpdatafactory.c (gimp_data_factory_data_free): don't
	free internal objects so they stay there on "Refresh".

	* app/core/gimpdatalist.c: sort internal objects to the beginning
	of the list.

	* app/widgets/gimpdataeditor.c: refuse to change the name of
	internal objects.

	* app/widgets/gimpdatafactoryview.c: set the "Delete" button
	insensitive for internal objects.

	* app/widgets/gimpgradienteditor.c: refuse to edit internal
	gradients, just display them so color picking works.

	* app/gui/brushes-commands.c
	* app/gui/gradients-commands.c
	* app/gui/palettes-commands.c
	* app/gui/patterns-commands.c: set the "Delete" menu item
	insensitive for internal objects.

	* app/gui/gui.c: need to call render_setup() earlier because of
	you-dont-want-to-know-why. Will change it back once the previews
	have their own render buffers.

	* app/tools/gimpblendtool.c: Replaced the "Type" menu by a preview
	showing the active gradient. Clicking the preview pops up the
	gradient selection. Renamed the "Gradient" menu to "Shape". Removed
	"blend_mode" from the BlendOptions struct because we always use
	"custom" mode now.
2002-06-12 13:48:47 +00:00
Sven Neumann fd21daebdf app/undo.c app/config/gimpconfig-deserialize.c app/core/gimpbrushpipe.c
2002-06-09  Sven Neumann  <sven@gimp.org>

	* app/undo.c
	* app/config/gimpconfig-deserialize.c
	* app/core/gimpbrushpipe.c
	* app/core/gimpcontainer.c
	* app/core/gimpimagefile.c
	* app/gui/paths-dialog.c
	* app/tools/gimpcurvestool.c
	* app/tools/gimplevelstool.c
	* app/widgets/gimpcomponentlistitem.c
	* app/widgets/gimpgradienteditor.c: unified translatable strings
	and unmarked a few for translation since they should never be seen.

2002-06-09  Sven Neumann  <sven@gimp.org>

	* POTFILES.in: updated.

	* de.po: updated german translation.
2002-06-09 12:53:42 +00:00
Sven Neumann 3aae39405e app/base/Makefile.am automake-1.6 seems to use yet another variable to
2002-06-08  Sven Neumann  <sven@gimp.org>

	* app/base/Makefile.am
	* app/paint-funcs/Makefile.am: automake-1.6 seems to use yet another
	variable to pass flags to the assembler (bug #84514). Define
	AM_CCASFLAGS like AM_ASFLAGS to satisfy all versions of automake.

	* configure.in
	* all Makefiles: removed STRIP_BEGIN and STRIP_END since it's a
	GNU make extension that we don't really need and newer versions of
	automake don't seem to like it.
2002-06-07 23:00:46 +00:00
Michael Natterer f064fa4e69 added gimp_list_reverse().
2002-06-07  Michael Natterer  <mitch@gimp.org>

	* app/core/gimplist.[ch]: added gimp_list_reverse().

	* app/core/gimpdocumentlist.c: call it after deserializing so we
	don't reverse the history each time.

	* app/widgets/gimpdevices.c: use it instead of manually fiddling
	with list->list.
2002-06-07 20:23:33 +00:00
Michael Natterer 413b9d3329 renamed gimp_drawable_apply_image() to gimp_drawable_push_undo() because
2002-06-06  Michael Natterer  <mitch@gimp.org>

	* app/core/gimpdrawable.[ch]: renamed gimp_drawable_apply_image()
	to gimp_drawable_push_undo() because that's what it actually does.

	* app/image_map.c
	* app/core/gimpdrawable-offset.c
	* app/core/gimpimage-mask.c
	* app/core/gimpimage.c
	* app/core/gimplayer.c
	* app/paint/gimppaintcore.c
	* app/tools/gimpinktool.c: changed accordingly. Removed redundant
	comments because it's now obvious what the function does from
	looking at its name.

	* app/core/gimpdrawable.[ch]
	* app/core/gimpimage.h: renamed "gboolean undo" parameters to
	"gboolean push_undo".
2002-06-06 19:44:05 +00:00
Michael Natterer 8bfd02fa5a added a boolean "push_undo" parameter.
2002-06-06  Michael Natterer  <mitch@gimp.org>

	* app/core/gimpchannel.[ch] (gimp_channel_invert): added a boolean
	"push_undo" parameter.

	* app/core/gimpimage-mask.c
	* app/core/gimpimage-qmask.c: pass push_undo == TRUE.

	* app/core/gimplayer.c (gimp_layer_create_mask): call
	gimp_channel_invert(), not gimp_drawable_invert() because the
	latter takes the current selection into accout (reported by Jimmac
	on #gimp). Added g_return_if_fail() stuff to all public functions.
	Cleanup.
2002-06-06 19:07:59 +00:00
Michael Natterer 8c3f15b42a don't warn if an out-of-bounds index is passed in but simply return NULL
2002-06-06  Michael Natterer  <mitch@gimp.org>

	* app/core/gimpcontainer.c (gimp_container_get_child_by_index):
	don't warn if an out-of-bounds index is passed in but simply
	return NULL (removes the need to check if the container has 0
	children before asking the container for it's first child).
2002-06-06 18:57:37 +00:00
Michael Natterer c6948e6e95 configure the scanner the same way GimpConfig did (scanner->user_data is,
2002-05-31  Michael Natterer  <mitch@gimp.org>

	* app/config/gimpscanner.[ch]: configure the scanner the same
	way GimpConfig did (scanner->user_data is, if set, a GError).
	Added gimp_scanner_parse_color(). Added "GError **error" to
	gimp_scanner_new().

	* app/config/gimpconfig.c: use gimp_scanner_new().

	* app/config/gimpconfig-deserialize.c: use gimp_scanner_parse_color().

	* app/core/gimpunits.c
	* app/plug-in/plug-in-rc.c: changed accordingly.

	* app/plug-in/plug-in-rc.c: made the main parse loops consistent
	with the other places using GScanner.
2002-05-31 13:58:18 +00:00
Sven Neumann bb32c3c267 determine the src_base_type from the passed drawable, not from the image
2002-05-28  Sven Neumann  <sven@gimp.org>

	* app/core/gimplayer.c (gimp_layer_new_from_drawable): determine
	the src_base_type from the passed drawable, not from the image it
	is attached to.

	* app/core/gimpimage-convert.c (gimp_drawable_convert_rgb)
	(gimp_drawable_convert_grayscale): added a check for the expected
	bpp of the passed tile_manager.
2002-05-28 21:32:06 +00:00
Michael Natterer b7e3c716c4 override GObjectClass->constructor() and do the setup stuff there, not in
2002-05-28  Michael Natterer  <mitch@gimp.org>

	* app/core/gimpcontext.c: override GObjectClass->constructor() and
	do the setup stuff there, not in gimp_context_new(). This way we
	can create properly initialized contexts with g_object_new().

	* app/widgets/gimpdeviceinfo.c: Removed the "gimp" property
	again. Added a constructor() implementation and moved stuff there
	from gimp_device_info_set_property(PROP_GIMP).

	* app/config/gimpconfig-deserialize.c: made deserialization of
	value arrays work by actually using the array any not just leaking
	it ;)

	* app/core/gimpcontainer.c: removed debugging output. Call
	config_iface->deserialize(child, ...) again instead of calling
	gimp_config_deserialize_properties() directly.

	* app/widgets/gimpdevices.c: switch to using the new stuff for
	devicerc.

	* app/widgets/gimpdeviceinfo.[ch]
	* app/widgets/gimpdevices.[ch]
	* app/gimprc.c: removed all old gimprc-style devicerc stuff.

	* app/gui/menus.c
	* app/gui/test-commands.[ch]: removed devicerc testing entries
	and callbacks.
2002-05-28 16:41:56 +00:00
Michael Natterer dbc8aeb49c added "gint nest_level" to the deserialization functions, so nested calls
2002-05-27  Michael Natterer  <mitch@gimp.org>

	* app/config/gimpconfig.[ch]: added "gint nest_level" to the
	deserialization functions, so nested calls to deserialize()
	don't error on the trailing ')'. Made the scanner config parse
	one-character identifiers and allow G_CSET_A_2_Z for all
	identifiers.
	Added gimp_config_deserialize_return() because returning the
	correct return value from a deserialize() function is not
	trivial any more with nested calls.

	* app/config/gimpconfig-deserialize.[ch]
	* app/config/gimprc.c
	* app/core/gimpdocumentlist.c
	* app/core/gimpparasitelist.c: use the new return value utility
	function and made the main parsing loops simpler.

	* app/core/gimpunits.c: made the main parsing loops consistent
	with the stuff that uses GimpConfig.

	* app/config/gimpconfig-deserialize.c
	* app/config/gimpconfig-serialize.c: call the
	(de)serialize_property() functions only if the property's class
	implements the method itself (does *not* inherit it from one of
	it's parents).

	* app/core/gimpcontainer.c: implemented deserialization of
	containers. For each child entry encountered in the input, check
	if it's already contained in the container and create it if not.
	If a "gimp" pointer is passed as user_data pass it as construct
	property to g_object_new() when creating the object.

	* app/core/gimpcontext.c: changed deserialization of brush,
	pattern etc. to honor "no_data".

	* app/widgets/gimpdeviceinfo.c: added a "gimp" construct_only
	property which overrides GimpContext's "gimp" property. Moved all
	initialisation code from gimp_device_info_new() to
	gimp_device_info_set_property(PROP_GIMP) so it is properly
	performed if the object is created by GimpContainer's
	deserialize() implementation.

	* app/widgets/gimpdevices.c: made gimp_devices_restore_test() work.
2002-05-27 14:04:21 +00:00
Sven Neumann 9ba70e461f "%lld" is not a portable format string, cast to gint64 and use
2002-05-27  Sven Neumann  <sven@gimp.org>

	* app/core/gimpimagefile.c: "%lld" is not a portable format string,
	cast to gint64 and use G_GINT64_FORMAT instead.
2002-05-27 11:45:50 +00:00
Michael Natterer d6ce8fce69 use "%lld" when printing or parsing file sizes because AC_SYS_LARGEFILE
2002-05-27  Michael Natterer  <mitch@gimp.org>

	* app/core/gimpimagefile.c: use "%lld" when printing or parsing
	file sizes because AC_SYS_LARGEFILE makes off_t a long long.
2002-05-27 01:31:48 +00:00
Sven Neumann 14066a6e8d app/core/cpercep.[ch] app/core/gimpimage-convert.c removed C++ style
2002-05-24  Sven Neumann  <sven@gimp.org>

	* app/core/cpercep.[ch]
	* app/core/gimpimage-convert.c
	* app/paint-funcs/paint-funcs.c: removed C++ style comments and
	compiler warnings.
2002-05-24 10:48:08 +00:00
Michael Natterer b10ade1a35 app/config/gimpconfig.[ch] added "gint indent_level" to all serialization
2002-05-24  Michael Natterer  <mitch@gimp.org>

	* app/config/gimpconfig.[ch]
	* app/config/gimpconfig-serialize.[ch]: added "gint indent_level"
	to all serialization functions. Added gimp_config_string_indent()
	which indents a GString.

	* app/config/gimprc.c
	* app/core/gimpdocumentlist.c
	* app/core/gimpparasitelist.c: changed accordingly.

	* app/core/gimpcontext.c: don't crash when serializing NULL object
	properties.

	* app/config/gimpscanner.[ch]: added gimp_scanner_parse_identifier().

	* app/core/gimpcontainer.c: implement GimpConfigInterface.
	Container serialization works, deserialization is not implemented yet.

	* app/widgets/gimpdevices.[ch]: made
	GimpDeviceManager->device_info_list a GimpList, not GList, added
	testing functions for (de)serializing it.

	* app/gui/menus.c
	* app/gui/test-commands.[ch]: call the new test functions from
	the <Toolbox>/File/Debug menu.
2002-05-24 02:53:20 +00:00
Michael Natterer 42f8ae15e4 added virtual interface methods serialize_property() and
2002-05-22  Michael Natterer  <mitch@gimp.org>

	* app/config/gimpconfig.[ch]: added virtual interface methods
	serialize_property() and deserialize_property() which can be used
	to implement (de)serialization of special properties or to
	override the default implementation.

	* app/config/gimpconfig-deserialize.c
	* app/config/gimpconfig-serialize.c: for each property, check if
	the class which added it implements the virtual functions and call
	them before trying the default implementations.

	* app/config/gimpconfig-params.h: added new macro
	GIMP_CONFIG_INSTALL_PROP_OBJECT().

	* app/core/gimpcontext.c: declare the "tool", "brush", "pattern",
	"gradient" and "palette" properties as serializable and added
	implementations of (de)serialize_property().
2002-05-22 13:19:19 +00:00
Sven Neumann 3553cf90bf need to link test-config against libgimpcolor now.
2002-05-21  Sven Neumann  <sven@gimp.org>

	* app/config/Makefile.am: need to link test-config against
	libgimpcolor now.

	* app/config/gimpconfig.c (gimp_config_serialize): write newlines
	after header and before footer.

	* app/config/test-config.c
	* app/config/gimprc.c
	* app/core/gimp-documents.c
	* app/core/gimp-parasites.c
	* app/gui/test-commands.c: removed the newlines here.

	* app/config/gimpconfig-params.h: define GIMP_PARAM_SERIALZE flag
	which can be used to mark an object property as serializable.
	Make the GIMP_CONFIG_INSTALL_PROP_* macros set it.

	* app/config/gimpconfig-deserialize.c
	* app/config/gimpconfig-serialize.c: check the GIMP_PARAM_SERIALIZE
	flag.

	* app/config/gimpconfig-params.c (gimp_param_color_set_default):
	fixed.

	* app/core/gimpcontext.c: install serializable properties using the
	GIMP_CONFIG_INSTALL_PROP_* macros.
2002-05-21 17:33:04 +00:00
Michael Natterer 292ec087eb added GIMP_TYPE_COLOR as boxed type encapsulating GimpRGB.
2002-05-21  Michael Natterer  <mitch@gimp.org>

	* app/config/gimpconfig-types.[ch]: added GIMP_TYPE_COLOR as boxed
	type encapsulating GimpRGB.

	* app/config/gimpconfig-params.[ch]: added GimpParamSpecColor
	which is derived from GParamSpecBoxed and adds a default value.

	* app/config/gimpconfig-deserialize.c
	* app/config/gimpconfig-serialize.c: added generic
	(de)serialization of the new property type.

	* app/core/gimpcontext.c: implement the config interface, changed
	signal parameters and property types to use the new
	GIMP_TYPE_COLOR.

	* app/core/gimpmarshal.list: added a VOID__BOXED marshaller.

	* app/gui/menus.c
	* app/gui/test-commands.[ch]: some test code which (de)serializes
	the user context.
2002-05-21 15:01:57 +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 95b7ad4f7f app/core/gimpdocumentlist.c app/core/gimpparasitelist.c improved parser
2002-05-15  Sven Neumann  <sven@gimp.org>

	* app/core/gimpdocumentlist.c
	* app/core/gimpparasitelist.c
	* app/core/gimpunits.c: improved parser error messages. Relies on a
	fix in glib (see bug #81850). However it doesn't hurt if you don't
	have the fix.
2002-05-15 13:48:47 +00:00
Sven Neumann 394d4aed05 added user_data pointer to serialize and deserialize methods.
2002-05-15  Sven Neumann  <sven@gimp.org>

	* app/config/gimpconfig.[ch]: added user_data pointer to serialize
	and deserialize methods.

	* app/config/gimprc.[ch]: implement gimp_rc_save() using
	gimp_config_serialize() so it can take advantage of the file
	handling magic implemented there.

	* app/config/test-config.c
	* app/core/gimp-documents.c
	* app/core/gimp-parasites.c
	* app/core/gimpdocumentlist.c
	* app/core/gimpparasitelist.c: changed accordingly.
2002-05-15 11:59:51 +00:00
Sven Neumann 9b6ef26100 added a return value to indicate success of
2002-05-15  Sven Neumann  <sven@gimp.org>

	* app/config/gimpconfig.[ch]: added a return value to indicate
	success of GimpConfigInterface::serialize. Added a GimpConfigError
	value for write errors and check the return value of all write()
	calls. Allow to specify file header and footer when calling
	gimp_config_serialize().

	* app/config/gimpconfig-serialize.[ch]
	* app/config/gimprc.c: changed accordingly.

	* app/core/gimp-documents.[ch]: new files with functions to handle
	gimp->documents.

	* app/core/gimpdocuments.[ch]: removed ...

	* app/core/gimpdocumentlist.[ch]: ... and added under this name.
	Implements a generic document list.

	* app/core/gimp-parasites.[ch]: new files with functions to handle
	gimp->parasites.

	* app/core/gimpparasite.[ch]: removed.

	* app/core/gimpparasitelist.[ch]: nothing more than a generic
	parasite list.

	* app/undo.c
	* app/core/Makefile.am
	* app/core/core-types.h
	* app/core/gimp.c
	* app/core/gimpdrawable.c
	* app/core/gimpimage-merge.c
	* app/core/gimpimage.c
	* app/core/gimpitem.c
	* app/file/file-open.c
	* app/file/file-save.c
	* app/gui/file-open-dialog.c
	* app/pdb/parasite_cmds.c
	* tools/pdbgen/pdb/parasite.pdb: changed accordingly.
2002-05-15 11:05:32 +00:00
Sven Neumann 63485cb6b8 misc small changes.
2002-05-15  Sven Neumann  <sven@gimp.org>

	* app/core/gimpdocuments.c: misc small changes.

	* app/core/gimpparasite.[ch]: reduced to a small set of wrappers
	around gimp->parasites.

	* app/core/gimpparasitelist.c: moved the code that reads and
	writes parasite lists ala parasiterc to this file. Added a
	GimpConfigInterface to GimpParasiteList.

	* app/core/gimp.c: changed accordingly.
2002-05-14 22:48:24 +00:00
Sven Neumann 7a560fea3d app/core/core-types.h made the list of recently used images an object
2002-05-14  Sven Neumann  <sven@gimp.org>

	* app/core/core-types.h
	* app/core/gimpdocuments.[ch]: made the list of recently used
	images an object derived from GimpList that implements the
	GimpConfigInterface.

	* app/core/gimp.c
	* app/file/file-open.c
	* app/file/file-save.c: changed accordingly.
2002-05-14 17:31:58 +00:00
Michael Natterer 84d244c1ed parse parasiterc using GScanner instead of gimprc.
2002-05-13  Michael Natterer  <mitch@gimp.org>

	* app/core/gimpparasite.c: parse parasiterc using GScanner instead
	of gimprc.

	* app/gimprc.c: removed the parasite parsing stuff.
2002-05-13 20:24:19 +00:00
Sven Neumann 0172411138 uhh, skipping values used in the PDB was a bad idea. Removed the skip
2002-05-13  Sven Neumann  <sven@gimp.org>

	* app/core/core-enums.[ch]: uhh, skipping values used in the PDB
	was a bad idea. Removed the skip trigraphs again. This breaks the
	GUI; will fix it later.

	* tools/pdbgen/enums.pl: regenerated.
2002-05-13 15:53:45 +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
Michael Natterer 73057f7689 gimp_display_idlerenderer_callback()). The assertion went off whenever we
2002-05-13  Michael Natterer  <mitch@gimp.org>

	* app/paint-funcs/paint-funcs.c commented out a warning in
	initial_sub_region and a g_error() in combine_sub_region which
	didn't expect to get chunks of pixels with a width of > 128
	passed. I guess it was an assertion to ensure the integrity of
	some higher level code (see gimpdisplay.c:
	gimp_display_idlerenderer_callback()).  The assertion went off
	whenever we wanted to render a preview with a width of > 128,
	which is however handled absolutely correctly by the two
	functions. (fixes #26072)

	* app/core/gimpcontext.c (gimp_context_get_by_type): unref objects
	before returning them. Fixes our biggest memleak (whole images).

	* app/display/gimpdisplay-handlers.c: commented out debugging
	g_print()s which track the image's refcount.
2002-05-13 14:28:49 +00:00