Commit Graph

22 Commits

Author SHA1 Message Date
0ceeeb0254 added a writeable field to GimpData and set it from
2003-02-26  Sven Neumann  <sven@gimp.org>

	* app/core/gimpdata.[ch]: added a writeable field to GimpData and
	set it from gimp_data_set_filename().

	* app/gui/brushes-menu.c
	* app/gui/gradients-menu.c
	* app/gui/palettes-menu.c
	* app/gui/patterns-menu.c
	* app/widgets/gimpbrushfactoryview.c
	* app/widgets/gimpdatafactoryview.c
	* app/widgets/gimpgradienteditor.c: look at data->writeable when
	setting widgets sensitivity.

	* app/gui/user-install-dialog.c (user_install_dialog_create): reduce
	some of the dialog clutter by not showing the directories created for
	plug-ins.

	* app/core/gimpviewable.[ch]: added a default_stock_id to
	GimpViewableClass so we don't need to hold a copy in each instance.
	Added accessor functions to set and get the stock_id.

	* app/core/gimptoolinfo.c
	* app/gui/dialogs-constructors.c
	* app/gui/image-menu.c
	* app/tools/gimpcroptool.c
	* app/tools/gimphistogramtool.c
	* app/tools/gimpimagemaptool.c
	* app/tools/gimpmeasuretool.c
	* app/tools/gimptransformtool.c
	* app/widgets/gimpcellrendererviewable.c
	* app/widgets/gimppreview.c
	* app/widgets/gimptoolbox.c: use gimp_viewable_get_stock_id().

	* app/text/gimptextlayer.c: set a text icon as default stock_id.
2003-02-26 18:08:26 +00:00
305db405b2 added "gchar *stock_id" to the GimpViewable struct. It is used by the GUI
2003-02-26  Michael Natterer  <mitch@gimp.org>

	* app/core/gimpviewable.[ch]: added "gchar *stock_id" to the
	GimpViewable struct. It is used by the GUI if the get_preview()
	functions return NULL. Default to GTK_STOCK_DIALOG_QUESTION.

	* app/core/gimptoolinfo.[ch]: set the tool's stock_id. Removed
	the cached GdkPixbuf. Don't implement any preview function
	so the GUI uses the stock_id.

	* app/tools/tool_manager.c: removed GdkPixbuf creation, removed
	the #warning about the buggy way we created the pixbuf.

	* app/gui/dialogs-constructors.c
	* app/gui/image-menu.c
	* app/tools/gimpcroptool.c
	* app/tools/gimphistogramtool.c
	* app/tools/gimpimagemaptool.c
	* app/tools/gimpmeasuretool.c
	* app/tools/gimptransformtool.c
	* app/widgets/gimptoolbox.c: use viewable->stock_id instead
	of tool_info->stock_id.

	* app/core/gimpbrush.c
	* app/core/gimpgradient.c
	* app/core/gimpimagefile.c
	* app/core/gimpundo.c: simplified get_preview() implementations:

	- never scale previews up, only down.
	- don't render white or checks backgrounds but simply return
	  TempBufs with alpha and let the preview system do its job.
	- don't add padding but simply return previews smaller than
	  requested.

	* app/display/gimpdisplayshell-render.[ch]: added
	"render_blend_white", a 2d lookup table for blending on white,
	just as the check lookup tables. Added "render_white_buf".

	* app/widgets/gimppreview.[ch]: changed a lot:

	- don't render the preview's border into the buffer.
	- added "GdkGC *border_gc" and draw the preview's border in expose()
	  using gdk_draw_rectangle().
	- added "GdkPixbuf *no_preview_pixbuf" and create it in
	  gimp_preview_real_render() if gimp_viewable_get_preview()
	  returned NULL.
	- factored the actual preview rendering out to
	  gimp_preview_render_to_buffer(). Added configurable background
	  rendering for the preview itself and it's padding area
	  (the area the preview is larger than the buffer returned
	  by gimp_viewable_get_preview()).
	- changed gimp_preview_render_and_flush() to
	  gimp_preview_render_preview() and added "inside_bg" and
	  "outside_bg" parameters.
	- use the new render buffers for blending on white.

	* app/widgets/gimpbrushpreview.c
	* app/widgets/gimpbufferpreview.c
	* app/widgets/gimpdrawablepreview.c
	* app/widgets/gimpgradientpreview.c
	* app/widgets/gimpimagepreview.c
	* app/widgets/gimppalettepreview.c
	* app/widgets/gimppatternpreview.c: don't create large white
	TempBufs to center the previews in but simply set the TempBuf's
	offsets to get them centered. Simplified & cleaned up many preview
	render functions. Pass the correct GimpPreviewBG modes to
	gimp_preview_render_preview().

	* app/widgets/gimpcellrendererviewable.[ch]: new GtkCellRenderer
	class derived from GtkCellRendererPixbuf which knows how
	to use gimp_viewable_get_preview_size() and renders the
	viewable's stock item if no preview can be created.

	* app/widgets/gimpcontainertreeview.c: added a GtkTreeCellDataFunc
	which creates the preview pixbuf if needed so we don't create it
	unconditionally upon item insertion. Fixed preview size assertion
	to use GIMP_PREVIEW_MAX_SIZE, not "64". Block "selection_changed"
	while reordering the selected item.

	* app/widgets/gimpcontainerview.c: cosmetic.

	* app/widgets/gimpimagefilepreview.[ch]
	* app/widgets/gimptoolinfopreview.[ch]
	* app/widgets/gimpundopreview.[ch]: removed because the default
	implementation is good enough.

	* app/widgets/Makefile.am
	* app/widgets/widgets-types.h
	* app/widgets/gimppreview-utils.c: changed accordingly.

	* app/gui/dialogs-constructors.[ch]
	* app/gui/dialogs-menu.c
	* app/gui/dialogs.c
	* app/gui/image-menu.c
	* app/gui/toolbox-menu.c: register grid and tree view variants
	of the document history.

	Unrelated:

	* app/gui/gui.c (gui_exit_finish_callback): disconnect from
	signals earlier.

	* app/gui/user-install-dialog.c: create the "tool-options" subdir
	of the user's ~/.gimp-1.3 directory.
2003-02-26 16:17:10 +00:00
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
8d86ec25e0 Move away from creating all item_factories statically in menus_init() but
2003-01-10  Michael Natterer  <mitch@gimp.org>

	Move away from creating all item_factories statically in
	menus_init() but create a new one for each place where one is
	needed:

	* app/widgets/Makefile.am
	* app/widgets/widgets-types.h
	* app/widgets/gimpmenufactory.[ch]: new factory which creates and
	configures the GimpItemFactories it knows about on-the-fly.

	* app/widgets/gimpitemfactory.[ch]: added
	gimp_item_factory_update() which calls the "update_func". Added
	"gboolean update_on_popup" so item_factories can be configured to
	require manual updates (used for the <Image> factory).

	* app/gui/menus.[ch]: create a "global_menu_factory" and register
	all menus we have with it. Added various setup functions which
	do stuff like adding the "Open Recent" menu or reorder plug-in
	menu entries. Removed the debugging stuff...

	* app/gui/Makefile.am
	* app/gui/debug-commands.[ch]: ...and added it here.

	* app/gui/gui.c: create the <Toolbox>, the popup-<Image> and the
	<Paths> factories here because they are still global.

	* app/gui/plug-in-menus.[ch]: changed the "image_factory"
	parameters to "item_factory" and create/update the entries for the
	passed item_factory only. Makes the whole stuff much more
	straightforward.

	* app/plug-in/plug-ins.c: don't call plug_in_make_menu().

	* app/display/gimpdisplay.[ch]
	* app/display/gimpdisplayshell.[ch]: added "menu_factory" and
	"popup_factory" parameters to gimp_display_new() and
	gimp_display_shell_new(). Create the menubar_factory and the
	qmask_factory dynamically. Pass the shell, not a Gimp to the QMask
	callbacks. Changed gimp_display_shell_set_menu_sensitivity() to
	gimp_display_shell_menu_update() and don't call it directly (it's
	a GimpItemFactory update_func now). Call gimp_item_factory_update()
	on the resp. factories instead.

	* app/gui/qmask-commands.c
	* app/display/gimpdisplayshell-callbacks.c
	* app/tools/gimpimagemaptool.c: changed accordingly.

	* app/widgets/gimpbrusheditor.c
	* app/widgets/gimpbrushfactoryview.[ch]
	* app/widgets/gimpbufferview.[ch]
	* app/widgets/gimpcolormapeditor.[ch]
	* app/widgets/gimpcontainereditor.[ch]
	* app/widgets/gimpdataeditor.[ch]
	* app/widgets/gimpdatafactoryview.[ch]
	* app/widgets/gimpdialogfactory.[ch]
	* app/widgets/gimpdock.c
	* app/widgets/gimpdockbook.[ch]
	* app/widgets/gimpdocumentview.[ch]
	* app/widgets/gimpgradienteditor.[ch]
	* app/widgets/gimpimageview.[ch]
	* app/widgets/gimpitemlistview.[ch]
	* app/widgets/gimppaletteeditor.[ch]: pass around lots of
	GimpMenuFactory pointers and menu_identifiers so all views can
	create their item_factories themselves. Unref the factories when
	they are no longer needed because they belong to the views now.

	* app/gui/dialogs-commands.c
	* app/gui/dialogs-constructors.c
	* app/gui/dialogs.c
	* app/gui/brush-select.c
	* app/gui/gradient-select.c
	* app/gui/palette-select.c
	* app/gui/pattern-select.c: changed accordingly.

	* app/gui/file-dialog-utils.[ch] (file_dialog_new): require
	menu_factory and menu_identifier parameters.

	* app/gui/file-open-dialog.[ch]
	* app/gui/file-save-dialog.[ch]: removed file_*_dialog_menu_init()
	(they went to menus.c as setup_funcs). Added file_*_dialog_set_type()
	and moved the <Load> and <Save> factory callbacks to file-commands.c

	* app/gui/file-commands.[ch]: changed accordingly.

	* app/gui/view-commands.c: changed the statusbar, menubar, rulers
	and guides callbacks to do their job only if the setting has
	actually changed. Don't update whole item factories afterwards.
	Instead, just change the state of the items that actually need
	update.

	Unrelated:

	* app/core/gimpchannel.c (gimp_channel_init): set "bounds_known"
	and friends to FALSE since we don't know that the new channel will
	be empty (fixes QMask and probably other stuff).

	* app/gui/image-commands.c
	* app/gui/vectors-commands.c: cleanup.
2003-01-10 17:55:53 +00:00
1a44f2126c cleanup, removed unecessary G_OBJECT() casts. Should do the same for
2003-01-05  Manish Singh  <yosh@gimp.org>

        * many files in app, modules and libgimp*: cleanup, removed unecessary
        G_OBJECT() casts. Should do the same for plug-ins, when more of them
        get undeprecated.
2003-01-05 22:07:10 +00:00
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
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
1d1be9f079 use gdisp->gimage->gimp instead of the_gimp.
2002-12-14  Michael Natterer  <mitch@gimp.org>

	* app/gui/plug-in-commands.c (plug_in_repeat_cmd_callback):
	use gdisp->gimage->gimp instead of the_gimp.

	* app/tools/gimpimagemaptool.c: pass update_popup == FALSE to
	gimp_display_shell_set_menu_sensitivity().
2002-12-14 15:55:26 +00:00
78fb9db8cc made it compile after Mitch's changes.
2002-12-14  Sven Neumann  <sven@gimp.org>

	* app/tools/gimpimagemaptool.c: made it compile after Mitch's
	changes.
2002-12-14 14:30:50 +00:00
1f3bd28832 removed the old hack which sets tool->gdisp. Fixes bug #98056.
2002-11-14  Michael Natterer  <mitch@gimp.org>

	* app/gui/tools-commands.c (tools_select_cmd_callback): removed
	the old hack which sets tool->gdisp. Fixes bug #98056.

	* app/tools/gimpimagemaptool.c (gimp_image_map_tool_initialize):
	set tool->gdisp here because the hack was there for tools which
	implement initialize() and show dialogs when selected from the
	menu. Also fixed wrong paramater to gimp_viewable_dialog_new().
2002-11-14 11:08:40 +00:00
8ccbf199a8 app/gui/file-new-dialog.c app/gui/preferences-dialog.c
2002-09-17  Sven Neumann  <sven@gimp.org>

	* app/gui/file-new-dialog.c
	* app/gui/preferences-dialog.c
	* app/gui/resize-dialog.c
	* app/tools/gimpimagemaptool.c
	* app/widgets/gimpfontselection-dialog.c: place the Cancel button
	next to the confirmative button as suggested by the HIG.
2002-09-17 11:55:04 +00:00
5dc2b347d2 app/widgets/gimplayerlistview.c some more auto-sizing spinbuttons.
2002-09-08  Michael Natterer  <mitch@gimp.org>

	* app/widgets/gimplayerlistview.c
	* app/gui/channels-commands.c: some more auto-sizing spinbuttons.

	* app/gui/offset-dialog.c: added mnemonics for "X" and "Y".

	Dialog auto-hide cleanup:

	* app/widgets/gimpviewabledialog.c: close the dialog when the
	GimpViewable goes away (special cased GimpItems which become
	invisible on "removed"). Close the dialog by syntesizing a
	"delete_event" instead of simply hiding or destroying it so the
	closing method of the dialog's user gets invoked.

	* app/gui/resize-dialog.[ch]: don't do the same here. Simplifies
	the API even more as we don't have to pass the object to watch any
	more.

	* app/gui/image-commands.c
	* app/gui/layers-commands.c: changed accordingly.

	* app/undo_history.c
	* app/gui/convert-dialog.c
	* app/gui/qmask-commands.c
	* app/gui/vectors-commands.c: removed all dialog auto-hiding which
	is now done by GimpViewableDialog. Also connect more close
	callbacks to gtk_widget_destroy() and handle shell destruction
	accordingly, so these pseudo widgets behave more like real ones.

	Tool-dialog auto-hide fix:

	* app/tools/tool_manager.c: never call a tool's initialize()
	method with a NULL gdisp (I can't follow why we did this before
	because it's conceptually broken and makes the semantics of
	initialize() more than unclear).
	To be sure, added g_return_if_fail(GIMP_IS_DISPLAY(gdisp)) to
	tool_manager_initialize_active().

	* app/tools/gimpbrightnesscontrasttool.c
	* app/tools/gimpcolorbalancetool.c
	* app/tools/gimpcurvestool.c
	* app/tools/gimphistogramtool.c
	* app/tools/gimphuesaturationtool.c
	* app/tools/gimpimagemaptool.c
	* app/tools/gimplevelstool.c
	* app/tools/gimpposterizetool.c
	* app/tools/gimpthresholdtool.c: removed the recently added code
	for handling NULL displays in initialize().
2002-09-08 12:18:23 +00:00
163a3f4155 More color correction stuff cleanup:
2002-09-04  Michael Natterer  <mitch@gimp.org>

	More color correction stuff cleanup:

	* app/base/Makefile.am
	* app/base/base-types.h
	* app/base/levels.[ch]: new files containing levels_lut_func(), a
	new "Levels" parameter struct and the "auto levels" stuff.

	* app/base/lut-funcs.[ch]: removed the levels stuff here, added
	lots of g_return_if_fail().

	* app/base/color-balance.[ch]
	* app/base/hue-saturation.[ch]: added init() and reset() functions
	so we don't need to duplicate this code in the tool and the pdb
	wrappers.

	* app/base/curves.[ch]: s/gint/GimpHistogramChannel/g, made
	curves_channel_reset() initialize the curves array.

	* app/tools/gimpcolorbalancetool.[ch]: use the new functions,
	moved the "Range" frame to the top, added a per-range "Reset"
	button, made the global "Reset" button reset all ranges and
	the "Preserve Luminosity" toggle.

	* app/tools/gimpcurvestool.[ch]: don't initialize the curves
	array manually, as curves_channel_reset() does that,
	s/gint/GimpHistogramChannel/g.

	* app/tools/gimphuesaturationtool.c: use the new functions, added
	a per-channel "Reset" button and made the global "Reset" button
	reset all channels, cleaned up the GUI update function.

	* app/tools/gimplevelstool.[ch]: changed to use the new Levels
	parameter struct and it's utility functions. Removed stuff
	which now lives in base/levels.c

	* app/tools/gimpimagemaptool.c: align the "Preview" button
	bottom-left, not bottom-right.

	* tools/pdbgen/pdb/color.pdb: use the new stuff and removed
	uglyness because using the "Levels" struct makes the code more
	straightforward.

	* app/pdb/color_cmds.c: regenerated.
2002-09-04 15:25:15 +00:00
ce956702e5 GimpViewableDialogs everywhere, cleanup:
2002-09-01  Michael Natterer  <mitch@gimp.org>

	GimpViewableDialogs everywhere, cleanup:

	* libgimpwidgets/gimpstock.c: added texts for the RESIZE, SCALE
	and CROP stock items.

	* app/widgets/gimpviewabledialog.c: update the title when the
	viewable's name changes.

	* app/gui/color-notebook.[ch]: added color_notebook_viewable_new()
	which creates a GimpViewableDialog.

	* app/widgets/gimpgradienteditor.[ch]
	* app/gui/colormap-editor-commands.c
	* app/gui/file-new-dialog.c
	* app/gui/gradient-editor-commands.c
	* app/gui/palette-editor-commands.c
	* app/undo_history.c: use GimpViewableDialogs and the new
	color_notebook constructor.

	* app/gui/convert-dialog.c: #include "widgets/gimpviewabledialog.h"

	* app/gui/image-commands.c
	* app/gui/info-dialog.c
	* app/gui/resize-dialog.c: minor cleanups.

	* app/gui/info-window.c: cleaned up the whole thing, esp. the
	"Extended" page. Added HSV color display to the color picker
	frame.  Set the icons as frame titles, stuff...

	* app/tools/gimpimagemaptool.[ch]: removed "shell_title",
	"shell_name" and "stock_id" from the GimpImageMapTool struct
	because they can be obtained from the tool's GimpToolInfo object.

	* app/tools/gimpbrightnesscontrasttool.c
	* app/tools/gimpcolorbalancetool.c
	* app/tools/gimpcurvestool.c
	* app/tools/gimphuesaturationtool.c
	* app/tools/gimplevelstool.c
	* app/tools/gimpposterizetool.c
	* app/tools/gimpthresholdtool.c: changed accordingly.

	* app/tools/gimphistogramtool.c: same here: take values from
	tool->tool_info instead of hardcoding them.

	* app/tools/gimpcroptool.[ch]: removed the static crop dialog
	variables and added them to the GimpCropTool struct. Feels safer
	and makes the callback code much simpler. Use stock items for the
	dialog's "Resize" and "Crop" buttons.

	* app/tools/gimpmeasuretool.c
	* app/tools/gimprotatetool.c: for consistency don't name the tools
	"Blah Tool", also the dialog titles need to match the menu
	entries.

	Unrelated:

	* libgimpwidgets/gimpwidgets.c: the recently changed, gtk-doc
	comment was correct, as gtk-doc takes the parameter names from
	the header, not the .c file.

	* app/tools/gimptransformtool.c: set the transform tool's state to
	TRANSFORM_CREATING after changing displays, so the initial matrix
	components are saved correctly for the "Reset" function.
2002-09-01 08:44:57 +00:00
cc3bdec2c9 app/widgets/Makefile.am app/widgets/widgets-types.h new dialog widget
2002-08-30  Michael Natterer  <mitch@gimp.org>

	* app/widgets/Makefile.am
	* app/widgets/widgets-types.h
	* app/widgets/gimpviewabledialog.[ch]: new dialog widget featuring
	a title bar containing a stock icon, a description, the viewable's
	name and a preview. Will be used for all viewable related dialogs
	and serves as a common place to control their look & feel.

	* app/tools/gimpimagemaptool.[ch]: removed the code which did
	almost the same and use GimpViewableDialog.

	* app/gui/info-dialog.[ch]: extended the API so it has enough
	information to create a GimpViewableDialog.

	* app/gui/channels-commands.c
	* app/gui/convert-dialog.c
	* app/gui/gradient-editor-commands.c
	* app/gui/image-commands.c
	* app/gui/info-window.c
	* app/gui/layers-commands.c
	* app/gui/offset-dialog.c
	* app/gui/qmask-commands.c
	* app/gui/resize-dialog.c
	* app/gui/vectors-commands.c
	* app/tools/gimpcolorpickertool.c
	* app/tools/gimpcroptool.c
	* app/tools/gimphistogramtool.c
	* app/tools/gimpmeasuretool.c
	* app/tools/gimpperspectivetool.c
	* app/tools/gimprotatetool.c
	* app/tools/gimpscaletool.c
	* app/tools/gimpsheartool.c: use GimpViewableDialogs

	* themes/Default/gtkrc: apply the dialog style to "*Gimp*Dialog*",
	not only "*GimpDialog*" so it covers GimpViewableDialog.
2002-08-30 21:00:42 +00:00
14e0d0737b added a tool icon and descriptive string to the dialog's title box. Create
2002-08-28  Michael Natterer  <mitch@gimp.org>

	* app/tools/gimpimagemaptool.[ch]: added a tool icon and
	descriptive string to the dialog's title box. Create the
	drawable preview with is_popup == TRUE so it doesn't show
	layers in the image context. Still not perfect...

	* app/tools/gimpbrightnesscontrasttool.c
	* app/tools/gimpcolorbalancetool.c
	* app/tools/gimpcurvestool.c
	* app/tools/gimphuesaturationtool.c
	* app/tools/gimplevelstool.c
	* app/tools/gimpposterizetool.c
	* app/tools/gimpthresholdtool.c: Chain up early in initialize()
	and return if gdisp == NULL. Set stock_id and desc_text so
	GimpImageMapTool can display them. Added lots of mnemonics
	(#80804). Use gimp_size_entry_new() instead of manually creating
	the slider+spinbutton stuff.

	* app/tools/gimpcurvestool.c
	* app/tools/gimphistogramtool.c
	* app/tools/gimplevelstool.c: changed widgets packing to make them
	resizable without strange effects. Put the "Load", "Save" and
	"Auto" buttons into a frame.

	* app/tools/gimphuesaturationtool.c: use GimpColorAreas instead of
	deprecated GtkPreviews. Arranged the color previews and their
	radio buttons as a color wheel. Not the best solution maybe but
	IMHO better than the old GUI.
2002-08-28 19:47:07 +00:00
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
aa7be287dc Fix for #85201:
2002-06-16  Michael Natterer  <mitch@gimp.org>

	Fix for #85201:

	* app/tools/gimpfliptool.c: set the toggle_cursor correctly.

	* app/tools/gimptransformtool.c: if "use_grid" is FALSE, skip the
	cursor update stuff and chain up directly.

	Misc tool->control options fixes:

	* app/tools/gimppainttool.c: set "motion_mode" to
	GIMP_MOTION_MODE_EXACT.

	* app/tools/gimpairbrushtool.c
	* app/tools/gimpclonetool.c
	* app/tools/gimpconvolvetool.c
	* app/tools/gimpdodgeburntool.c
	* app/tools/gimperasertool.c
	* app/tools/gimppaintbrushtool.c
	* app/tools/gimpsmudgetool.c: don't touch "motion_mode" here.

	* app/tools/gimpimagemaptool.c
	* app/tools/gimptransformtool.c: set "scroll_lock" to TRUE and
	"preserve" to FALSE.

	* app/tools/gimpcurvestool.c
	* app/tools/gimphuesaturationtool.c
	* app/tools/gimplevelstool.c
	* app/tools/gimpfliptool.c
	* app/tools/gimpperspectivetool.c
	* app/tools/gimprotatetool.c
	* app/tools/gimpscaletool.c
	* app/tools/gimpsheartool.c: don't touch them here.

	* app/tools/gimphistogramtool.[ch]: derive it from GimpImageMapTool
	so it inherits it's control settings.

	* app/tools/gimpellipseselecttool.c: don't set "preserve" to TRUE.

	* app/tools/gimpmagnifytool.c
	* app/tools/gimpmovetool.c: code formating paranoia.

	* app/tools/gimptoolcontrol.c: fixed indentation.
2002-06-16 17:13:39 +00:00
810b983110 app/tools/gimptoolcontrol.[ch] resurrected the motion hints and cursor
* app/tools/gimptoolcontrol.[ch]
 	* libgimptool/gimptool.c: resurrected the motion hints and cursor
 	changing code.

 	app/tools/gimpairbrushtool.c
	app/tools/gimpbezierselecttool.c
 	app/tools/gimpblendtool.c
 	app/tools/gimpbucketfilltool.c
 	app/tools/gimpbycolorselecttool.c
 	app/tools/gimpclonetool.c
 	app/tools/gimpcolorbalancetool.c
 	app/tools/gimpcolorpickertool.c
 	app/tools/gimpconvolvetool.c
 	app/tools/gimpcroptool.c
 	app/tools/gimpcurvestool.c
 	app/tools/gimpdodgeburntool.c
 	app/tools/gimpeditselectiontool.c
 	app/tools/gimpellipseselecttool.c
 	app/tools/gimperasertool.c
 	app/tools/gimpfliptool.c
 	app/tools/gimpfuzzyselecttool.c
 	app/tools/gimphistogramtool.c
 	app/tools/gimphuesaturationtool.c
 	app/tools/gimpimagemaptool.c
 	app/tools/gimpinktool.c
 	app/tools/gimpiscissorstool.c
 	app/tools/gimplevelstool.c
 	app/tools/gimpmagnifytool.c
 	app/tools/gimpmeasuretool.c
 	app/tools/gimpmovetool.c
 	app/tools/gimppaintbrushtool.c
 	app/tools/gimppainttool.c
 	app/tools/gimppathtool.c
 	app/tools/gimppenciltool.c
 	app/tools/gimpperspectivetool.c
 	app/tools/gimprectselecttool.c
 	app/tools/gimprotatetool.c
 	app/tools/gimpscaletool.c
 	app/tools/gimpselectiontool.c
 	app/tools/gimpsheartool.c
 	app/tools/gimpsmudgetool.c
 	app/tools/gimptexttool.c
 	app/tools/gimptransformtool.c
 	app/tools/gimpvectortool.c: set the motion mode; fix a few parameters

 	* app/tools/gimpinktool.c (gimp_ink_tool_button_press): uncommented
 	some code I had temporarily commented out and didn't uncomment before
 	committing

 	* libgimptool/gimptoolcontrol.h
 	* app/tools/gimptoolcontrol-displayshell.[ch]: merged with
 	gimptoolcontrol.[ch].  The distinction was fairly arbitrary.

 	* plug-ins/tools/gimptoolcontrol.c: added some stubs

        * app/tools/Makefile.am
 	* app/tools/tool_manager.c
 	* app/display/gimpdisplayshell-callbacks.c: changed accordingly

 	* libgimp/gimpimage_pdb.c: applied a patch from Pippen to correct
 	documentation on the undo operations
2002-04-21 07:31:12 +00:00
69ccb4d370 massive tool plugin changes 2002-03-29 03:50:29 +00:00
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
170a9cbcab All tools are back :)
2001-05-25  Michael Natterer  <mitch@gimp.org>

	All tools are back :)

	* app/tools/Makefile.am
	* app/tools/brightness_contrast.[ch]
	* app/tools/color_balance.[ch]
	* app/tools/curves.[ch]
	* app/tools/histogram_tool.[ch]
	* app/tools/hue_saturation.[ch]
	* app/tools/levels.[ch]
	* app/tools/posterize.[ch]
	* app/tools/threshold.[ch]: removed...

	* app/tools/gimpbrightnesscontrasttool.[ch]
	* app/tools/gimpcolorbalancetool.[ch]
	* app/tools/gimpcurvestool.[ch]
	* app/tools/gimphistogramtool.[ch]
	* app/tools/gimphuesaturationtool.[ch]
	* app/tools/gimplevelstool.[ch]
	* app/tools/gimpposterizetool.[ch]
	* app/tools/gimpthresholdtool.[ch]: ...and ported to the new tool
	system. Yes, the toolbox looks strange right now.

	* app/tools/gimpimagemaptool.[ch]: base class for all image_map
	tools. Does nothing at all right now.

	* app/tools/gimpbucketfilltool.h: removed _new() function
	declaration.

	* app/tools/gimptool.c: removed obsolete stuff and STUB()s.

	* app/tools/tools.c: register the new tools.

	* app/menus.c: removed the #if 0 around the code which reorders
	the color tool menu entries.

	* app/app_procs.c
	* tools/pdbgen/Makefile.am
	* tools/pdbgen/enums.pl
	* tools/pdbgen/pdb/color.pdb
	* app/pdb/color_cmds.c
	* po/POTFILES.in: changed accordingly.
2001-05-24 23:57:08 +00:00