Commit graph

231 commits

Author SHA1 Message Date
Michael Natterer
a6dbb78dfa added GimpContext parameters and create the GimpView with that context.
2006-09-01  Michael Natterer  <mitch@gimp.org>

	* app/widgets/gimpviewabledialog.[ch]: added GimpContext
	parameters and create the GimpView with that context.

	* app/widgets/gimpcolordialog.[ch]
	* app/dialogs/convert-dialog.[ch]
	* app/dialogs/desaturate-dialog.[ch]
	* app/dialogs/grid-dialog.[ch]
	* app/dialogs/image-properties-dialog.[ch]
	* app/dialogs/layer-add-mask-dialog.[ch]
	* app/dialogs/offset-dialog.[ch]
	* app/dialogs/print-size-dialog.[ch]
	* app/dialogs/resize-dialog.[ch]
	* app/dialogs/scale-dialog.[ch]
	* app/dialogs/stroke-dialog.[ch]
	* app/dialogs/template-options-dialog.[ch]
	* app/dialogs/vectors-options-dialog.[ch]: added GimpContext
	parameters here too and pass them to gimp_viewable_dialog_new().

	* app/actions/colormap-editor-commands.c
	* app/actions/drawable-commands.c
	* app/actions/gradient-editor-commands.c
	* app/actions/image-commands.c
	* app/actions/layers-commands.c
	* app/actions/palette-editor-commands.c
	* app/actions/select-commands.c
	* app/actions/vectors-commands.c
	* app/actions/view-commands.c
	* app/dialogs/channel-options-dialog.c
	* app/dialogs/dialogs-constructors.c
	* app/dialogs/image-merge-layers-dialog.c
	* app/dialogs/image-scale-dialog.c
	* app/dialogs/layer-options-dialog.c
	* app/display/gimpdisplayshell-filter-dialog.c
	* app/display/gimpdisplayshell-scale.c
	* app/tools/gimpcolorpickertool.c
	* app/tools/gimpimagemaptool.c
	* app/tools/gimpmeasuretool.c
	* app/tools/gimptexttool.c
	* app/tools/gimptransformtool.c
	* app/tools/gimpvectortool.c
	* app/widgets/gimpcolorpanel.c
	* app/widgets/gimpcontrollereditor.c
	* app/widgets/gimpcontrollerlist.c
	* app/widgets/gimptoolbox-color-area.c: pass contexts to above
	dialog constructors.
2006-09-01 11:26:54 +00:00
Michael Natterer
b53aa45a76 Changed GimpViewable preview rendering to have a context to get
2006-08-29  Michael Natterer  <mitch@gimp.org>

	Changed GimpViewable preview rendering to have a context to get
	FG/BG/whatever from. Use the context to enable dynamic FG/BG
	colors in gradients. Fixes bug #127676 and bug #352214. Addresses
	bug #128367 (doesn't fix it because there's no loading/saving and
	no GUI yet).

	* app/core/core-enums.[ch]: added enum GimpGradientColor to enable
	specifying gradient colors in terms of foreground and background.

	* app/core/gimpgradient.[ch]: added color_type members to the
	GimpGradientSegment struct and honor them in
	gimp_gradient_get_color_at(). Added GimpContext parameters to all
	functions which finally call get_color_at().

	* app/core/gimp-gradients.c: use the new method to implement the
	builtin gradients.

	* app/core/gimpviewable.[ch]: added GimpContext parameters to all
	get_preview() and get_pixbuf() functions.

	* app/core/gimpbrush.c
	* app/core/gimpbuffer.c
	* app/core/gimpdrawable-preview.[ch]
	* app/core/gimpgradient.c
	* app/core/gimpimage-preview.[ch]
	* app/core/gimpimagefile.c
	* app/core/gimppalette.c
	* app/core/gimppattern.c
	* app/core/gimpundo.[ch]
	* app/text/gimpfont.c
	* app/vectors/gimpvectors-preview.[ch]: changed ::get_preview()
	and ::get_pixbuf() implementations accordingly.

	* app/core/gimpdrawable-blend.c
	* app/core/gimppalette-import.[ch]
	* app/dialogs/dialogs-constructors.c
	* app/dialogs/palette-import-dialog.c
	* app/dialogs/resize-dialog.c
	* app/display/gimpdisplayshell-layer-select.c
	* app/display/gimpdisplayshell.c
	* app/display/gimpnavigationeditor.c
	* app/paint/gimppaintoptions.c
	* app/tools/gimpeditselectiontool.c
	* app/tools/gimptexttool.c
	* app/actions/gradient-editor-commands.c
	* app/widgets/gimpaction.c
	* app/widgets/gimpbrusheditor.[ch]
	* app/widgets/gimpbufferview.c
	* app/widgets/gimpcellrendererviewable.c
	* app/widgets/gimpchanneltreeview.c
	* app/widgets/gimpclipboard.c
	* app/widgets/gimpcoloreditor.c
	* app/widgets/gimpcomponenteditor.c
	* app/widgets/gimpcontainerbox.c
	* app/widgets/gimpcontainercombobox.c
	* app/widgets/gimpcontainereditor.c
	* app/widgets/gimpcontainerentry.c
	* app/widgets/gimpcontainergridview.c
	* app/widgets/gimpcontainertreeview.[ch]
	* app/widgets/gimpdataeditor.[ch]
	* app/widgets/gimpdevicestatus.c
	* app/widgets/gimpdnd.[ch]
	* app/widgets/gimpdrawabletreeview.c
	* app/widgets/gimpfiledialog.c
	* app/widgets/gimpgradienteditor.[ch]
	* app/widgets/gimpgradientselect.c
	* app/widgets/gimpitemtreeview.c
	* app/widgets/gimplayertreeview.c
	* app/widgets/gimppaletteeditor.[ch]
	* app/widgets/gimppropwidgets.[ch]
	* app/widgets/gimpselectioneditor.c
	* app/widgets/gimpthumbbox.[ch]
	* app/widgets/gimptoolbox-image-area.c
	* app/widgets/gimptoolbox-indicator-area.c
	* app/widgets/gimptooloptionseditor.c
	* app/widgets/gimpundoeditor.c
	* app/widgets/gimpvectorstreeview.c
	* app/widgets/gimpview-popup.[ch]
	* app/widgets/gimpview.[ch]
	* app/widgets/gimpviewablebutton.c
	* app/widgets/gimpviewabledialog.c
	* app/widgets/gimpviewrenderer.[ch]
	* app/widgets/gimpviewrenderer-frame.c
	* app/widgets/gimpviewrendererbrush.c
	* app/widgets/gimpviewrendererbuffer.c
	* app/widgets/gimpviewrendererdrawable.c
	* app/widgets/gimpviewrenderergradient.c
	* app/widgets/gimpviewrendererimage.c
	* tools/pdbgen/pdb/drawable.pdb
	* tools/pdbgen/pdb/gradient.pdb
	* tools/pdbgen/pdb/gradients.pdb
	* tools/pdbgen/pdb/image.pdb: added tons of GimpContext members
	and parameters, implement GimpDocked::set_context() in many
	widgets. Pass these locally remembered contexts to GimpViewable
	functions. Did some minor cleanups on the way. There are still
	some minor FIXMEs around where the code uses a NULL context (which
	is allowed by the APIs)

	* app/pdb/drawable_cmds.c
	* app/pdb/gradient_cmds.c
	* app/pdb/gradients_cmds.c
	* app/pdb/image_cmds.c: regenerated.
2006-08-29 21:44:51 +00:00
Michael Natterer
17475c5fec Applied patch from David Gowers which adds actions to select palette and
2006-05-28  Michael Natterer  <mitch@gimp.org>

	Applied patch from David Gowers which adds actions to select
	palette and colormap colors with actions. Modified the patch quite
	a bit. Fixes bug #130123.

	* app/widgets/gimpcolormapeditor.[ch]
	* app/widgets/gimppaletteeditor.[ch]: add functions get_index()
	which gets the currently selected color's index (optionally the
	index of a passed color), set_index() which sets the selected
	color by index, and max_index() which returns the maximum possible
	color index.

	* app/dialogs/dialogs-constructors.c: changed accordingly.

	* app/actions/context-actions.c
	* app/actions/context-commands.[ch]: actions and callbacks which
	use the new functions.
2006-05-28 19:45:52 +00:00
Sven Neumann
049872b361 app/*.[ch] converted tabs to spaces.
2006-04-12  Sven Neumann  <sven@gimp.org>

	* app/*.[ch]
	* app/*/*.[ch]: converted tabs to spaces.
2006-04-12 12:49:29 +00:00
Sven Neumann
905fdfcbed did a global gimage -> image substitution.
2006-03-28  Sven Neumann  <sven@gimp.org>

	* app/*: did a global gimage -> image substitution.
2006-03-28 17:08:36 +00:00
Michael Natterer
5236dc6f13 app/actions/dockable-actions.c app/actions/dockable-commands.[ch]
2006-01-17  Michael Natterer  <mitch@gimp.org>

	* app/actions/dockable-actions.c
	* app/actions/dockable-commands.[ch]
	* app/dialogs/dialogs-constructors.[ch]
	* app/dialogs/dialogs.c
	* app/display/gimpdisplayshell-layer-select.c
	* app/widgets/gimpbrusheditor.[ch]
	* app/widgets/gimpbrushfactoryview.h
	* app/widgets/gimpbufferview.[ch]
	* app/widgets/gimpchanneltreeview.c
	* app/widgets/gimpcomponenteditor.[ch]
	* app/widgets/gimpcontainerbox.c
	* app/widgets/gimpcontainercombobox.[ch]
	* app/widgets/gimpcontainereditor.[ch]
	* app/widgets/gimpcontainerentry.[ch]
	* app/widgets/gimpcontainergridview.[ch]
	* app/widgets/gimpcontainerpopup.[ch]
	* app/widgets/gimpcontainertreeview.[ch]
	* app/widgets/gimpcontainerview.[ch]
	* app/widgets/gimpdatafactoryview.[ch]
	* app/widgets/gimpdevicestatus.c
	* app/widgets/gimpdialogfactory.[ch]
	* app/widgets/gimpdocumentview.[ch]
	* app/widgets/gimpfontview.[ch]
	* app/widgets/gimpgradienteditor.[ch]
	* app/widgets/gimpimageview.[ch]
	* app/widgets/gimpitemtreeview.[ch]
	* app/widgets/gimplayertreeview.c
	* app/widgets/gimpmenudock.c
	* app/widgets/gimppatternfactoryview.[ch]
	* app/widgets/gimppropwidgets.[ch]
	* app/widgets/gimpselectioneditor.[ch]
	* app/widgets/gimpsessioninfo.[ch]
	* app/widgets/gimptemplateview.[ch]
	* app/widgets/gimptooloptionseditor.c
	* app/widgets/gimptoolview.[ch]
	* app/widgets/gimpundoeditor.[ch]
	* app/widgets/gimpviewablebox.c
	* app/widgets/gimpviewablebutton.[ch]
	* app/widgets/gimpviewabledialog.[ch]
	* app/widgets/gimpviewrenderer.c: change the word "preview" to
	"view" whereever we talk about GimpView or GimpViewRenderer
	objects or their sizes. Ther were renamed from "Preview" a long
	time ago and we had a preview/view naming mess ever since.
2006-01-17 10:08:50 +00:00
Michael Natterer
e3e53dca27 Fixed bug #316395:
2005-10-30  Michael Natterer  <mitch@gimp.org>

	Fixed bug #316395:

	* app/actions/dialogs-actions.c (dialogs_dockable_actions)
	* app/actions/quick-mask-actions.c (quick_mask_toggle_actions):
	added tooltips to action entries.

	* app/display/gimpdisplayshell.c (gimp_display_shell_new): use
	gimp_widget_set_accel_help() to set the tooltip so it contains
	the accelerator.

	* app/dialogs/dialogs-constructors.c (dialogs_dockable_constructor):
	attach the dialog's identifier to the dockable widget (hack).

	* app/widgets/gimpdockbook.c (gimp_dockbook_get_tab_widget): use
	the attached identifier to find the action for this dockable in
	the dock's UI manager (HACK HACK). Use the found action to set
	a tooltip with accelerator.

	* app/widgets/gimpwidgets-utils.c (gimp_widget_set_accel_help):
	fixed bug in fallback code what should never be used.
2005-10-30 18:41:18 +00:00
Michael Natterer
f546e1e701 Let the data editors optionally follow the active brush, palette and
2005-10-25  Michael Natterer  <mitch@gimp.org>

	Let the data editors optionally follow the active brush, palette
	and gradient. Still needs to be saved in sessionrc and probably
	be enabled by default. Addresses bug #313547.

	* app/widgets/gimpdataeditor.[ch]: added new functions
	gimp_data_editor_set,get_edit_active().

	Make it configurable from the palette and gradient editor menus:

	* app/actions/gradient-editor-actions.c
	* app/actions/palette-editor-actions.c: added actions...

	* app/actions/data-editor-commands.[ch]: ...and callbacks...
	(new file).

	* app/widgets/gimphelp-ids.h: ...help IDs...

	* menus/gradient-editor-menu.xml
	* menus/palette-editor-menu.xml: ...and menu items.

	Add menu to the brush editor and make it configurable there too:

	* app/actions/Makefile.am
	* app/actions/actions.c
	* app/actions/brush-editor-actions.[ch]
	* app/menus/menus.c
	* menus/Makefile.am
	* menus/brush-editor-menu.xml: added all the bits needed for
	the new menu.

	* app/widgets/gimpbrusheditor.[ch]: use the menu. Added menu_factory
	paramater to the contstructor.

	* app/dialogs/dialogs-constructors.c: changed accordingly.
2005-10-25 21:38:00 +00:00
Sven Neumann
3aa703e432 app/dialogs/dialogs-constructors.c include a check button for the
2005-10-06  Sven Neumann  <sven@gimp.org>

	* app/dialogs/dialogs-constructors.c
	* app/dialogs/keyboard-shortcuts-dialog.[ch]: include a check
	button for the "save-accels" gimprc property.
2005-10-05 23:01:45 +00:00
Sven Neumann
f3bfb29a03 app/actions/dialogs-actions.c app/dialogs/dialogs-constructors.[ch]
2005-09-30  Sven Neumann  <sven@gimp.org>

	* app/actions/dialogs-actions.c
	* app/dialogs/dialogs-constructors.[ch]
	* app/dialogs/dialogs.c
	* app/dialogs/keyboard-shortcuts-dialog.[ch]: register the keyboard
	shortcut dialog with the dialog factory as singleton toplevel dialog.

	* app/dialogs/preferences-dialog.c: changed accordingly.

	* menus/image-menu.xml.in: added a "Keyboard Shortcuts" entry to
	the Edit menu.
2005-09-30 00:40:45 +00:00
Michael Natterer
71cf9ee2c6 Applied (slightly modified) patch from Sylvain Foret which adds "Close
2005-09-24  Michael Natterer  <mitch@gimp.org>

	Applied (slightly modified) patch from Sylvain Foret which adds
	"Close All" menu entries and dialog. Fixes bug #163532.

	* app/actions/file-actions.c
	* app/actions/file-commands.[ch]: added "file-close-all" action
	and callback.

	* app/dialogs/dialogs-constructors.[ch]
	* app/dialogs/dialogs.c
	* app/dialogs/quit-dialog.[ch]: added close all dialog which is a
	modified quit dialog.

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

	* menus/image-menu.xml.in
	* menus/toolbox-menu.xml.in: add close all next to quit.
2005-09-24 19:30:08 +00:00
Sven Neumann
f142aa4e9a don't set a window icon, the dialog should be transient anyway.
2005-09-07  Sven Neumann  <sven@gimp.org>

	* app/widgets/gimperrordialog.[ch]: don't set a window icon, the
	dialog should be transient anyway.

	* app/dialogs/dialogs-constructors.c: changed accordingly.
2005-09-07 00:28:31 +00:00
Sven Neumann
fd7ed3dfd1 generate a NULL terminated array.
2005-08-19  Sven Neumann  <sven@gimp.org>

	* app/dialogs/authors.xsl: generate a NULL terminated array.

	* app/dialogs/authors.h: regenerated.

	* app/dialogs/about-dialog.[ch]: embedded the about box into a
	GtkAboutDialog.

	* app/dialogs/dialogs-constructors.c: pass a GimpContext to
	about_dialog_create().
2005-08-19 16:32:01 +00:00
Michael Natterer
2f7388db6f added boolean "sample-merged" property, API and GUI. Pick from the active
2005-07-09  Michael Natterer  <mitch@gimp.org>

	* app/widgets/gimpcursorview.[ch]: added boolean "sample-merged"
	property, API and GUI. Pick from the active drawable if it's
	FALSE.

	* app/actions/Makefile.am
	* app/actions/actions.c
	* app/actions/cursor-info-actions.[ch]
	* app/actions/cursor-info-commands.[ch]: new files with actions
	and callbacks for the cursor info dialog's menu.

	* app/widgets/gimphelp-ids.h: help IDs for above actions.

	* app/dialogs/dialogs.c: follow help ID change.

	* app/menus/menus.c
	* menus/Makefile.am
	* menus/cursor-info-menu.xml: add the cursor-info menu.

	* app/dialogs/dialogs-constructors.c: pass the menu factory to
	gimp_cursor_view_new().
2005-07-08 22:54:46 +00:00
Michael Natterer
1f1305c372 Some dock refactoring which separates the docking logic from active image
2005-05-11  Michael Natterer  <mitch@gimp.org>

	Some dock refactoring which separates the docking logic from
	active image and UI manager stuff:

	* app/widgets/gimpmenudock.[ch]: new widget renamed from
	GimpImageDock, zero changes except the name change.

	* app/widgets/gimpimagedock.[ch]: new widget derived from
	GimpDock. Keeps the UI manager.

	* app/widgets/gimpdock.[ch]: removed the UI manager. GimpDock only
	contains the basic docking logic again.

	* app/widgets/gimpmenudock.[ch]
	* app/widgets/gimptoolbox.[ch]: derive them from GimpImageDock.

	* app/widgets/Makefile.am
	* app/widgets/widgets-types.h
	* app/actions/dialogs-commands.c
	* app/actions/dock-actions.c
	* app/actions/dock-commands.c
	* app/actions/dockable-commands.c
	* app/dialogs/dialogs-constructors.c: changed accordingly.
2005-05-11 20:26:12 +00:00
Michael Natterer
ff1e1ba290 fixed spacings and update them in GtkWidget::style_set(). Removed lots of
2005-04-03  Michael Natterer  <mitch@gimp.org>

	* app/widgets/gimpcursorview.[ch]: fixed spacings and update them
	in GtkWidget::style_set(). Removed lots of cruft from the widget
	this files were copied from, including the GimpContext param
	to gimp_cursor_view_new(). Remember the state of the two color
	frames as aux-info in sessionrc.

	* app/dialogs/dialogs-constructors.c: changed accordingly.
2005-04-03 17:15:45 +00:00
Michael Natterer
0231374c86 added new signals "sample-point-added" and "sample-point-removed" and
2005-04-03  Michael Natterer  <mitch@gimp.org>

	* app/core/gimpimage.[ch]: added new signals "sample-point-added"
	and "sample-point-removed" and public functions to emit them.

	* app/core/gimpimage-sample-points.c (gimp_image_add_sample_point)
	(gimp_image_remove_sample_point): emit them accordingly.

	* app/core/gimpimage-undo-push.c (undo_pop_image_sample_point):
	ditto.

	(undo_pop_image_guide)
	(undo_pop_image_sample_point): added comments why we add/remove
	stuff manually instead of using the GimpImage APIs.

	* app/widgets/Makefile.am
	* app/widgets/widgets-types.h
	* app/widgets/gimpcursorview.[ch]
	* app/widgets/gimpsamplepointeditor.[ch]: new widgets.
	GimpCursorView is a replacement for the info window's "Cursor"
	page, GimpSamplePointEditor is a view on an image's sample points.
	The sample point editor does nothing yet except keeping a 2x2 grid
	of GimpColorFrames. Addresses bug #137776.

	* app/dialogs/dialogs.c
	* app/dialogs/dialogs-constructors.[ch]: register the new widgets
	as dockable dialogs.

	* app/actions/dialogs-actions.c (dialogs_dockable_actions)
	* menus/dialogs-menuitems.xml: added actions and menu items for
	the new dialogs.

	* app/display/gimpdisplayshell-cursor.c
	(gimp_display_shell_update_cursor)
	(gimp_display_shell_clear_cursor): update the new cursor view.

	* app/widgets/gimphelp-ids.h: help IDs for the new dialogs.

	* app/widgets/widgets-enums.[ch] (enum GimpColorFrameMode):
	changed description "Pixel values" to "Pixel" because the former
	was too long.
2005-04-03 15:48:03 +00:00
Michael Natterer
9f6c4515bd should save before comitting... 2004-10-16 20:19:26 +00:00
Michael Natterer
c84475c989 moved "item_type" and "signal_name" from GimpItemTreeView to
2004-10-16  Michael Natterer  <mitch@gimp.org>

	* app/widgets/gimpitemtreeview.[ch]: moved "item_type" and
	"signal_name" from GimpItemTreeView to GimpItemTreeViewClass.
	Removed them from gimp_item_tree_view_new(). Require the view_type
	instead of item_type in gimp_item_tree_view_new().

	* app/widgets/gimpitemtreeview.c
	* app/widgets/gimpdrawabletreeview.c (get_type): made them
	abstract base classes.

	* app/widgets/gimpchanneltreeview.c
	* app/widgets/gimplayertreeview.c
	* app/widgets/gimpvectorstreeview.c (class_init): set the
	item_type and signal_name members if GimpItemTreeViewClass.

	* app/dialogs/dialogs-constructors.c: changed accordingly.
2004-10-16 20:17:30 +00:00
Michael Natterer
8effb0cfaf Ported the layers, channels and paths dialogs from
2004-10-16  Michael Natterer  <mitch@gimp.org>

	Ported the layers, channels and paths dialogs from
	gimp_editor_add_button() to gimp_editor_add_action_button(),
	removing a massive amount of duplicated code, sensitivity logic
	and confusing utility functions.

	* app/actions/channels-actions.c
	* app/actions/channels-commands.[ch]
	* app/actions/layers-actions.c
	* app/actions/layers-commands.[ch]
	* app/actions/vectors-actions.c
	* app/actions/vectors-commands.[ch]: added "foo-new-default"
	actions and callbacks which create items without a dialog,
	optionally using default values from a passed template. Removed
	all public utility function that were passed as function pointers
	to widget construtors. Added tooltips to all actions which are now
	used for dialog buttons.

	* app/widgets/gimpeditor.c (gimp_editor_add_action_button):
	automatically create multi-line tooltips showing the modifiers for
	extended action buttons. Removes the need for lots of insane
	format strings that need to be translated correctly.

	* app/widgets/gimpitemtreeview.[ch] (struct GimpItemTreeViewClass):
	replaced tooltip and help_id strings by action names.

	(struct GimpItemTreeView)
	(gimp_item_tree_view_new): removed "edit", "new" and "activate"
	function pointers.

	(gimp_item_tree_view_constructor): create all buttons
	with gimp_editor_add_action_button(), using the action names
	from GimpItemTreeViewClass.

	Removed tons of "clicked" callbacks and all code which sets the
	buttons' sensitivity. They are not needed any longer.

	Require all subclasses to implement GimpItemTreeView::new_item(),
	a new virtual function which creates a plain new item without
	showing a dialog.

	* app/widgets/gimpdrawabletreeview.c
	* app/widgets/gimpchanneltreeview.c
	* app/widgets/gimplayertreeview.c
	* app/widgets/gimpvectorstreeview.c: fill in the action names and
	implement GimpItemTreeView::new_item(). Removed all button
	sensitivity logic.

	* app/dialogs/dialogs-constructors.c: changed accordingly. Doesn't
	include anything from actions/ any more.
2004-10-16 15:48:23 +00:00
Michael Natterer
96a27b59cf app/actions/brushes-actions.c app/actions/gradients-actions.c
2004-09-27  Michael Natterer  <mitch@gimp.org>

	* app/actions/brushes-actions.c
	* app/actions/gradients-actions.c
	* app/actions/palettes-actions.c
	* app/actions/patterns-actions.c: made the "foo-edit" actions
	GimpStringActions and pass the identifier of the editor dialog
	to the callback.

	* app/actions/data-commands.[ch] (data_edit_data_cmd_callback):
	show the editor dialog here instead of calling view->edit_func().

	* app/dialogs/dialogs-constructors.[ch]: removed the brush,
	gradient and palette edit_funcs.

	* app/widgets/widgets-types.h: removed typedef GimpDataEditFunc.

	* app/widgets/gimpdatafactoryview.[ch]: removed the edit_func
	member and parameters and create the edit button unconditionally.

	* app/widgets/gimpbrushfactoryview.[ch]
	* app/widgets/gimppatternfactoryview.[ch]: changed accordingly.

	* app/widgets/Makefile.am
	* app/widgets/gimpdataselect.[ch]: removed this class, it's not
	needed any longer.

	* app/widgets/gimpbrushselect.[ch]
	* app/widgets/gimpgradientselect.[ch]
	* app/widgets/gimppaletteselect.[ch]
	* app/widgets/gimppatternselect.[ch]: derive them from GimpPdbDialog
	and follow the edit_func removal.

	* app/gui/gui-vtable.c (gui_pdb_dialog_new): removed edit_func
	stuff.

	* app/widgets/gimpcontainereditor.c: minor unrelated cleanup.
2004-09-27 10:45:49 +00:00
Michael Natterer
f097d88662 renamed some constructors for consistency and added a (useless) template
2004-09-27  Michael Natterer  <mitch@gimp.org>

	* app/dialogs/dialogs-constrcutors.[ch]: renamed some constructors
	for consistency and added a (useless) template grid.

	* app/dialogs/dialogs.c: make the arrays of GimpDialogFactoryEntries
	more readable by using macros to define them.
2004-09-27 09:38:32 +00:00
Sven Neumann
ab269fc645 removed conversion to TempBuf. Instead implement
2004-09-27  Sven Neumann  <sven@gimp.org>

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

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

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

	* app/dialogs/dialogs-constructors.c: create the document history
	dockable with a zero borderwidth.
2004-09-26 23:44:24 +00:00
Michael Natterer
6a50c27047 added "name", "blurb", "stock_id" and "help_id" to struct
2004-09-26  Michael Natterer  <mitch@gimp.org>

	* app/widgets/gimpdialogfactory.[ch]: added "name", "blurb",
	"stock_id" and "help_id" to struct GimpDialogFactoryEntry and to
	gimp_dialog_factory_dialog_register(). Added typedef
	GimpDialogConstructor which takes a GimpDialogFactoryEntry in
	addition to the parameters GimpDialogNewFunc takes. Added a
	constructor function pointer to GimpDialogFactory which defaults
	to a function that just returns entry->new_func(). Use that
	constructor instead of entry->new_func() for creating
	dialogs. Added public API gimp_dialog_factory_set_constructor().

	* app/dialogs/dialogs.c: register name, blurb, stock_id and
	help_id for all dockables so all the dialog info lives in one huge
	ugly table now. For the global_toolbox_factory and the
	global_dock_factory, set a constructor which creates a dockable
	around the widget returned by entry->new_func().

	* app/dialogs/dialogs-constructors.[ch]: don't create the dockable
	in each dialog constructor. Removes tons of code and reduces most
	constructors to a "return gimp_foo_new(...)" one-liner. Got rid of
	all static variables, they were from a time when GimpDialogFactory
	was unable to manage singletons.

	* app/widgets/gimpbrusheditor.[ch]
	* app/widgets/gimpgradienteditor.[ch]
	* app/widgets/gimppaletteeditor.[ch]: return GtkWidget, not
	GimpDataEditor from gimp_foo_editor_new().

	* app/widgets/gimpdataeditor.c: minor cleanups.
2004-09-26 18:41:29 +00:00
Michael Natterer
b4ea222c23 Ported GimpNavigationView to use actions for its buttons:
2004-09-26  Michael Natterer  <mitch@gimp.org>

	Ported GimpNavigationView to use actions for its buttons:

	* app/menus/menus.c (menus_init): register a <GimpNaviagaionEditor>
	UI manager containing the "view" action group.

	* app/actions/actions.c (action_data_get_foo): handle "data" being
	a GimpNavigationEditor.

	* app/actions/view-actions.c (view_actions): added tooltips for
	the actions used in the editor.

	(view_actions_update): use action_data_get_display() instead of
	checking the type of "data" manually.

	* app/widgets/gimpeditor.c (gimp_editor_add_action_button): use
	a GtkToggleButton instead of GimpButton for GtkToggleActions.

	* app/display/gimpnavigationeditor.[ch]: added a GimpMenuFactory
	parameter to the public constructor and removed all other
	parameters. Simplified gimp_navigation_editor_new_private() and
	use gimp_editor_add_action_button() instead of just add_button()
	for creating the buttons. Made gimp_navigation_view_set_shell()
	private. Update the UI manager when the shell zooms or scrolls.

	* app/dialogs/dialogs-constructors.c (dialogs_navigation_view_new):
	pass the menu_factory to gimp_navigation_editor_new().

	Removed #includes which are not needed any more.
2004-09-26 15:21:44 +00:00
Michael Natterer
28f7c94dbf app/widgets/gimpcolormapeditor.[ch] app/widgets/gimphistogrameditor.[ch]
2004-09-25  Michael Natterer  <mitch@gimp.org>

	* app/widgets/gimpcolormapeditor.[ch]
	* app/widgets/gimphistogrameditor.[ch]
	* app/widgets/gimpselectioneditor.[ch]: removed redundant "gimage"
	parameters from public constructors. They are all GimpImageEditor
	widgets which get their image via gimp_docked_set_context() and
	gimp_image_editor_set_image() later anyway. Fixes uglyness as well
	as problems where the editors had an image but no context, causing
	strange behavior in their foo_actions_update() functions.

	* app/dialogs/dialogs-constructors.c: changed accordingly. Removed
	redundant calls to gimp_dockable_set_context() on newly created
	dockables because they will get a context when added to their
	containers.
2004-09-25 12:48:41 +00:00
Michael Natterer
451958d7f2 removed useless #includes.
2004-09-20  Michael Natterer  <mitch@gimp.org>

	* app/dialogs/dialogs-constructors.c: removed useless #includes.
2004-09-20 14:50:42 +00:00
Sven Neumann
d6c4830027 app/dialogs/dialogs-constructors.[ch] app/dialogs/dialogs.c let the dialog
2004-09-14  Sven Neumann  <sven@gimp.org>

	* app/dialogs/dialogs-constructors.[ch]
	* app/dialogs/dialogs.c
	* app/gui/gui.c: let the dialog factory handle the quit dialog
	as singleton. Fixes bug #151914.

	* app/dialogs/quit-dialog.c: added a warning here. We need a
	container of dirty images for the above change to work correctly.
2004-09-13 23:09:10 +00:00
Michael Natterer
582a096604 app/dialogs/Makefile.am removed these files.
2004-09-13  Michael Natterer  <mitch@gimp.org>

	* app/dialogs/Makefile.am
	* app/dialogs/file-dialog-utils.[ch]: removed these files.

	* app/dialogs/file-save-dialog.[ch]: removed functions
	file_save_dialog_show() and file_save_a_copy_dialog_show() and
	changed internal function file_save_dialog_create() to
	file_save_dialog_new().

	* app/dialogs/dialogs.c
	* app/dialogs/dialogs-constructors.[ch]: made it completely
	managed by the dialog factory.

	* app/actions/file-commands.c: create it using the dialog
	factory. Attach it to the image so we open only one save
	dialog per image.

	* app/dialogs/file-open-dialog.c: added precondition checks
	to file_open_dialog_new().
2004-09-13 16:37:01 +00:00
Michael Natterer
593e98c6de removed function file_open_dialog_show() and changed internal function
2004-09-13  Michael Natterer  <mitch@gimp.org>

	* app/dialogs/file-open-dialog.[ch]: removed function
	file_open_dialog_show() and changed internal function
	file_open_dialog_create() to file_open_dialog_new().

	* app/dialogs/dialogs.c
	* app/dialogs/dialogs-constructors.[ch]: made it completely
	managed by the dialog factory.

	* app/actions/file-commands.c: create it using the dialog factory.
2004-09-13 16:01:52 +00:00
Michael Natterer
7d065360c7 configure.in added new directory app/dialogs and link libappdialogs.c into
2004-09-13  Michael Natterer  <mitch@gimp.org>

	* configure.in
	* app/Makefile.am: added new directory app/dialogs and link
	libappdialogs.c into the gimp binary.

	* app/gui/Makefile.am
	* app/gui/gui-types.h
	* app/gui/gui-vtable.c
	* app/gui/gui.c

	* app/gui/about-dialog.[ch]
	* app/gui/authors.h
	* app/gui/color-notebook.[ch]
	* app/gui/convert-dialog.[ch]
	* app/gui/dialogs-constructors.[ch]
	* app/gui/dialogs.[ch]
	* app/gui/file-dialog-utils.[ch]
	* app/gui/file-new-dialog.[ch]
	* app/gui/file-open-dialog.[ch]
	* app/gui/file-open-location-dialog.[ch]
	* app/gui/file-save-dialog.[ch]
	* app/gui/grid-dialog.[ch]
	* app/gui/info-dialog.[ch]
	* app/gui/info-window.[ch]
	* app/gui/module-browser.[ch]
	* app/gui/offset-dialog.[ch]
	* app/gui/palette-import-dialog.[ch]
	* app/gui/preferences-dialog.[ch]
	* app/gui/quit-dialog.[ch]
	* app/gui/resize-dialog.[ch]
	* app/gui/resolution-calibrate-dialog.[ch]
	* app/gui/stroke-dialog.[ch]
	* app/gui/tips-dialog.[ch]
	* app/gui/tips-parser.[ch]
	* app/gui/user-install-dialog.[ch]: removed these files...

	* app/dialogs/Makefile.am
	* app/dialogs/dialogs-types.h

	* app/dialogs/*.[ch]: ...and added them here. Changed some
	filenames like module-browser -> module-dialog.

	* app/app_procs.c
	* app/actions/actions-types.h
	* app/actions/actions.c
	* app/actions/dialogs-actions.c
	* app/actions/dialogs-commands.c
	* app/actions/dockable-commands.c
	* app/actions/drawable-commands.c
	* app/actions/edit-commands.c
	* app/actions/file-commands.c
	* app/actions/gradient-editor-commands.c
	* app/actions/image-commands.c
	* app/actions/layers-commands.c
	* app/actions/palettes-commands.c
	* app/actions/select-commands.c
	* app/actions/templates-commands.c
	* app/actions/templates-commands.h
	* app/actions/vectors-commands.c
	* app/actions/view-commands.c
	* app/display/gimpdisplayshell-cursor.c
	* app/display/gimpdisplayshell-title.c
	* app/display/gimpdisplayshell.[ch]
	* app/tools/gimpcroptool.c
	* app/tools/gimpperspectivetool.c
	* app/tools/gimprotatetool.c
	* app/tools/gimpscaletool.c
	* app/tools/gimpsheartool.c
	* app/tools/gimptransformtool.[ch]
	* app/tools/gimpvectortool.c
	* app/widgets/gimpcolormapeditor.[ch]
	* app/widgets/gimpcolorpanel.c
	* app/widgets/gimpgradienteditor.[ch]
	* app/widgets/gimppaletteeditor.[ch]
	* app/widgets/gimptoolbox-color-area.c
	* menus/toolbox-menu.xml.in
	* tools/authorsgen/authorsgen.pl: changed accordingly.
2004-09-13 15:15:23 +00:00
Michael Natterer
ff6ee61780 changed file_open_location_dialog_show() to
2004-09-09  Michael Natterer  <mitch@gimp.org>

	* app/gui/file-open-location-dialog.[ch]: changed
	file_open_location_dialog_show() to
	file_open_location_dialog_new() and return the dialog.

	* app/gui/dialogs.c
	* app/gui/dialogs-constructors.[ch]: added a constructor for it
	and let the dialog factory manage it entirely.

	* app/actions/file-commands.c
	(file_open_location_dialog_cmd_callback): use the dialog factory
	to create it.
2004-09-09 09:47:33 +00:00
Sven Neumann
80531ec936 added gimp_message_box_repeat().
2004-08-25  Sven Neumann  <sven@gimp.org>

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

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

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

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

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

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

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

	* app/widgets/gimperrorconsole.c (gimp_error_console_add): fail
	when being called with a NULL domain.
2004-08-25 17:58:52 +00:00
David Odin
f168881c18 app/display/gimpnavigationview.c renamed these files to...
* app/display/gimpnavigationview.c
* app/display/gimpnavigationview.h: renamed these files to...

* app/display/gimpnavigationeditor.c
* app/display/gimpnavigationeditor.h: ... these files, and of course
  changed GimpNavigationView to GimpNavigationEditor since it is really
  inherited from GimpEditor anyway.

This will leave the gimp_navigation_view namespace for the renaming
from gimp_navigation_preview.

* app/display/Makefile.am
* app/display/display-types.h
* app/display/gimpdisplayshell-callbacks.c
* app/gui/dialogs-constructors.c: Changed accordlingly.
2004-08-25 16:02:10 +00:00
Michael Natterer
2632cd8f64 app/actions/documents-actions.c app/actions/documents-commands.c
2004-05-12  Michael Natterer  <mitch@gimp.org>

	* app/actions/documents-actions.c
	* app/actions/documents-commands.c
	* app/actions/edit-actions.c
	* app/actions/edit-commands.[ch]
	* app/actions/layers-actions.c
	* app/actions/layers-commands.c
	* app/actions/select-actions.c
	* app/actions/select-commands.[ch]
	* app/actions/vectors-actions.c
	* app/actions/vectors-commands.[ch]: added tooltips for actions
	which are now used for dialog buttons, added callback
	implementations which formerly lived in various widgets, moved
	some actions around and did some general cleanups.

	* menus/image-menu.xml.in: s/edit-stroke/select-stroke/

	* menus/Makefile.am
	* menus/selection-editor-menu.xml: new popup menu.

	* app/menus/menus.c: register <SelectionEditor> and <UndoEditor>
	UI managers.

	* app/widgets/gimpeditor.[ch]: added construct properties
	"menu-factory", "menu-identifier", "ui-path" and "popup-data".
	Implement GObject::constructor() and create the UI manager
	if all needed properties were set. Enables creating action
	buttons at widget construction time because they need a
	UI manager.

	(gimp_editor_add_action_button): changed to take a va_list of
	"extended" actions which are invoked if the resp. button emits
	"extended_clicked". Store the actions and their modifier masks in
	a list attached to the button.

	* app/widgets/gimpcontainerview.c
	(gimp_container_view_item_selected): if the view has container
	*and* context, simply change the context and return.

	(gimp_container_view_context_changed): don't emit "select_item"
	manually but simply call gimp_container_view_select_item().

	(gimp_container_view_viewable_dropped): use
	gimp_container_view_item_selected() instead of changing the
	context directly.

	* app/widgets/gimpcontainereditor.c
	(gimp_container_editor_select_item): update the UI manager.

	* app/widgets/gimpdockable.c: don't try to fiddle with the
	dialog's menu if it doesn't have a ui_path (happens if the UI
	manager is just a collection of actions for the dialog buttons and
	has no menu registered).

	* app/widgets/gimpimageeditor.c: connect to the image's "flush"
	signal and update the UI manager in the callback.

	* app/widgets/gimpitemtreeview.c: use GimpEditor's construct
	properties to create the UI manager so GimpItemTreeView subclasses
	can have action buttons. Update the UI manager in
	gimp_item_tree_view_select_item().

	* app/widgets/gimpbufferview.c
	* app/widgets/gimpcolormapeditor.c
	* app/widgets/gimpcontainergridview.c
	* app/widgets/gimpdatafactoryview.c
	* app/widgets/gimpfontview.c
	* app/widgets/gimpimageview.c
	* app/widgets/gimptemplateview.c
	* app/widgets/gimptoolview.c: changed calls to
	gimp_editor_add_action_button() accordingly and removed some
	unneeded select_item() implementations.

	* app/widgets/gimpchanneltreeview.c
	* app/widgets/gimpvectorstreeview.[ch]
	* app/widgets/gimpdocumentview.[ch]
	* app/widgets/gimplayertreeview.c
	* app/widgets/gimpselectioneditor.[ch]
	* app/widgets/gimpundoeditor.[ch]: use action buttons and removed
	lots of callbacks which went to the resp. action callbacks.

	* app/widgets/widgets-types.h: removed some now unneeded function
	prototypes.

	* app/gui/dialogs-constructors.c: changed (simplified) many dialog
	constructors accordingly.
2004-05-12 18:36:33 +00:00
Michael Natterer
11fa092588 added action_data_get_context() and macro return_if_no_context().
2004-05-11  Michael Natterer  <mitch@gimp.org>

	* app/actions/actions.[ch]: added action_data_get_context() and
	macro return_if_no_context().

	* app/actions/brushes-actions.c
	* app/actions/buffers-actions.c
	* app/actions/buffers-commands.c
	* app/actions/data-commands.c
	* app/actions/fonts-actions.c
	* app/actions/fonts-commands.c
	* app/actions/gradients-actions.c
	* app/actions/images-actions.c
	* app/actions/images-commands.c
	* app/actions/palettes-actions.c
	* app/actions/patterns-actions.c
	* app/actions/templates-actions.c
	* app/actions/templates-commands.[ch]
	* app/actions/tools-actions.c
	* app/actions/tools-commands.c: moved lots of code from widgets/
	to the resp. action callbacks.

	* app/widgets/gimpeditor.[ch]: added gimp_editor_add_action_button()
	which creates a GtkButton connected to the resp. action.

	* app/widgets/gimpdatafactoryview.[ch]: added "action_group"
	parameters so we can distinguish brushes, patterns etc. actions.

	* app/widgets/gimpimageview.[ch]
	* app/widgets/gimpbrushfactoryview.c
	* app/widgets/gimpbufferview.c
	* app/widgets/gimpfontview.c
	* app/widgets/gimpgradienteditor.c
	* app/widgets/gimppatternfactoryview.c
	* app/widgets/gimptemplateview.[ch]
	* app/widgets/gimptoolview.c: removed tons of GtkButton::clicked()
	callbacks and use gimp_editor_add_action_button() instead
	of simply _add_button().

	* app/gui/dialogs-constructors.c
	* app/gui/gradient-select.c
	* app/gui/palette-select.c
	* app/gui/pattern-select.c: changed accordingly.
2004-05-11 16:05:21 +00:00
Michael Natterer
da0de0873f Started making the toolbox configurable. Addresses bug #105764. Not
2004-05-10  Michael Natterer  <mitch@gimp.org>

	Started making the toolbox configurable.
	Addresses bug #105764. Not finished yet.

	* app/core/gimptoolinfo.[ch]: renamed "in_toolbox" to "visible"
	and made it a GObject property.

	* app/tools/gimp-tools.[ch]: added new function
	gimp_tools_get_default_order() which returns a GList of tool
	identifiers.

	* app/actions/tools-actions.c
	* app/actions/tools-commands.[ch]: added actions & callbacks for
	toggling the "visible" boolean and for resetting all tools.

	* app/widgets/Makefile.am
	* app/widgets/widgets-types.h
	* app/widgets/gimptoolview.[ch]: new widget which allows to
	toggle a tool's visibility and to reorder the tools.

	* app/widgets/gimptoolbox.[ch]: removed member "GtkWidget *trash"
	and pack all tool buttons into the same wrap box. Connect to
	"reoder" of the tool container and to "notify::visible" of all
	tool infos and update the toolbox accordingly.

	* app/gui/dialogs-constructors.c: create a GimpToolView for the
	tools list/grid.

	* app/menus/menus.c: register a <Tools> menu for the dialog above.

	* menus/Makefile.am
	* menus/tools-menu.xml: added the menu.
2004-05-10 00:41:57 +00:00
Sven Neumann
1afe796075 app/gui/dialogs-constructors.c silent the compiler.
2004-04-22  Sven Neumann  <sven@gimp.org>

	* app/gui/dialogs-constructors.c
	* app/gui/preferences-dialog.c: silent the compiler.

	* plug-ins/winicon/icodialog.c: simplified by using a
	GimpIntComboBox.
2004-04-22 17:38:14 +00:00
Michael Natterer
0b8c4b3ec9 app/widgets/Makefile.am app/widgets/widgets-types.h new GtkUIManager
2004-04-21  Michael Natterer  <mitch@gimp.org>

	* app/widgets/Makefile.am
	* app/widgets/widgets-types.h
	* app/widgets/gimpuimanager.[ch]: new GtkUIManager subclass. Adds
	API to update all action groups and knows which UIs it can create
	from which XML files.

	* app/widgets/gimpmenufactory.[ch]: register the XML file
	basenames along with path of their toplevel menus. Create
	GimpUIManagers instead of GtkUIManagers and register the
	XML files and menu paths with them.

	* app/gui/menus.c: register all XML files and their toplevel
	menu paths.

	* app/widgets/gimpeditor.[ch]: also create a GimpUIManager when
	creating the GtkItemFactory. Added "const gchar *ui_identifier"
	parameter to gimp_editor_create_menu().

	* app/widgets/gimpcontainereditor.[ch]
	* app/widgets/gimpdataeditor.[ch]
	* app/widgets/gimpdatafactoryview.[ch]
	* app/widgets/gimpitemtreeview.[ch]: added "ui_identifier"
	parameters to all constructors.

	* app/widgets/gimpbrusheditor.c
	* app/widgets/gimpbrushfactoryview.c
	* app/widgets/gimpbufferview.c
	* app/widgets/gimpcolormapeditor.c
	* app/widgets/gimpcomponenteditor.c
	* app/widgets/gimpcontainerpopup.c
	* app/widgets/gimpdocumentview.c
	* app/widgets/gimperrorconsole.c
	* app/widgets/gimpfontview.c
	* app/widgets/gimpgradienteditor.c
	* app/widgets/gimpimageview.c
	* app/widgets/gimppaletteeditor.c
	* app/widgets/gimppatternfactoryview.c
	* app/widgets/gimptemplateview.c
	* app/widgets/gimptooloptionseditor.c
	* app/gui/dialogs-constructors.c
	* app/gui/gradient-select.c
	* app/gui/palette-select.c
	* app/gui/pattern-select.c: pass UI identifiers to the changed
	functions above.

	* app/display/gimpdisplayshell.[ch]: added a GimpUIManager for
	the menubar (menubar creating code still commented out).

	* app/display/gimpdisplay.c
	* app/gui/gui-vtable.c: update the ui manager.
2004-04-21 16:33:17 +00:00
Michael Natterer
661f6ddeb8 removed...
2004-04-20  Michael Natterer  <mitch@gimp.org>

	* app/gui/*-commands.[ch]: removed...

	* app/actions/*-commands.[ch]: ...and added here.

	* app/gui/Makefile.am
	* app/gui/*-menu.c
	* app/gui/dialogs-constructors.c
	* app/gui/gui.c
	* app/gui/menus.c
	* app/actions/Makefile.am
	* app/actions/*-actions.c: changed accordingly.

	* app/actions/plug-in-actions.[ch]
	* app/actions/tools-actions.[ch]: new files.

	* app/Makefile.am: had to add more -u evilness because gui/
	and actions/ have cyclic dependencies.

	* menus/image-menu.xml: added some more items.
2004-04-20 13:25:55 +00:00
Simon Budig
bcd96047f8 Sort the plugin menu entries with the mnemonics stripped. Avoids weird
2004-03-17  Simon Budig  <simon@gimp.org>

	* app/gui/plug-in-menus.c: Sort the plugin menu entries with
	the mnemonics stripped. Avoids weird ordering in the "C" and
	"POSIX" locales.

	* app/widgets/gimpitemtreeview.c: make a simple click on the
	"New" Button use defaults and use shift-click for the new-dialog
	invocation.

	Some more useless button cleanup:

	* app/widgets/gimpdatafactoryview.c: only create an Edit button
	when the edit_function is set.

	* app/core/gimp.c: don't set an edit func for the patterns.

	* app/gui/patterns-menu.c: Don't create the "New", "Edit" and
	"Duplicate" Menu entries for the patterns.

	* app/widgets/Makefile.am
	* app/widgets/widgets-types.h
	* app/widgets/gimppatternfactoryview.[ch]: New widget:
	gimp_pattern_factory_view. Necessary to be able to hide the
	"duplicate" button...

	* app/gui/dialogs-constructors.c: Use it.
2004-03-17 14:14:18 +00:00
Sven Neumann
28bb855aae Made size of undo previews configurable. Not dynamic for now, but at least
2004-03-07  Sven Neumann  <sven@gimp.org>

	Made size of undo previews configurable. Not dynamic for now, but
	at least not hardcoded any longer. Fixes bug #119905:

	* app/config/gimpcoreconfig.[ch]
	* app/config/gimprc-blurbs.h: added "undo-preview-size" property.

	* app/core/gimpundo.[ch]: use the new property instead of a
	hardcoded value.

	* app/widgets/gimpundoeditor.[ch]: added a "preview-size"
	construct property.

	* app/gui/dialogs-constructors.c: changed accordingly.

	* app/gui/preferences-dialog.c: added a widget to control the undo
	preview size.
2004-03-07 15:33:04 +00:00
Sven Neumann
e21dc0ee93 marked new strings for translation.
2004-03-04  Sven Neumann  <sven@gimp.org>

	* app/config/gimprc-blurbs.h: marked new strings for translation.

	* libgimpwidgets/gimpstock.h: added #defines for missing icons.
	This allows us to replace them later without changing the API.

	* app/gui/dialogs-constructors.c
	* app/gui/dialogs-menu.c
	* app/gui/gradient-editor-commands.c
	* app/gui/image-menu.c
	* app/gui/toolbox-menu.c
	* app/tools/gimppaintoptions-gui.c
	* app/tools/gimptextoptions.c
	* app/widgets/gimppaletteeditor.c: use the new stock icon names
	instead of abusing GTK+ and GIMP tool stock icons.

	* app/gui/preferences-dialog.c (prefs_dialog_new): added icons
	to the new check buttons.
2004-03-04 16:10:57 +00:00
Michael Natterer
3bee156b6e Allow invoking the text tool by double clicking a text layer in the layers
2004-01-13  Michael Natterer  <mitch@gimp.org>

	Allow invoking the text tool by double clicking a text layer in
	the layers dialog, just like the path tool is invoked when double
	clicking a path.

	* app/tools/gimptexttool.[ch]: added empty
	gimp_text_tool_set_layer() stub. Sven, your turn...

	* app/gui/layers-commands.[ch]: added layers_text_tool() which
	invokes the text tool on text layers and falls back to
	layers_edit_layer_query() otherwise.
	Added layers_text_tool_cmd_callback() for the layers menu.

	* app/gui/layers-menu.c: added "Text Tool" menu item and hide
	it for layers which are no text layers.

	* app/gui/dialogs-constructors.c (dialogs_layer_list_view_new):
	use layers_text_tool() as "activate" function.
2004-01-13 19:08:16 +00:00
Michael Natterer
32bc599dc3 forgot to declare gimp_color_display_stack_clone().
2003-11-21  Michael Natterer  <mitch@gimp.org>

	* libgimpwidgets/gimpcolordisplaystack.h: forgot to declare
	gimp_color_display_stack_clone().

	* app/display/gimpdisplayshell.[ch]: replaced the GList of
	GimpColorDisplays by a single GimpColorDisplayStack.

	* app/display/gimpdisplayshell-render.c
	(gimp_display_shell_render): changed accordingly.

	* app/display/gimpdisplayshell-filter.[ch]: reduced API to a
	single function, gimp_display_shell_filter_set(), which exchanges
	the whole filter stack. Idle update the display on
	GimpColorDisplayStack::update().

	* app/display/gimpdisplayshell-filter-dialog.[ch]: changed
	accordingly.  Return the created dialog instead of assigning
	shell->filters_dialog.

	* app/gui/view-commands.c (view_display_filters_cmd_callback): set
	shell->filters_dialog here and raise it it if already
	exists. Don't use the dialog factory to create it because it's a
	transient dialog for the display which does not need to be session
	managed.

	* app/gui/dialogs-constructors.[ch]
	* app/gui/dialogs.c: removed display filter dialog stuff.
2003-11-21 22:52:36 +00:00
Michael Natterer
799661194a app/gui/dialogs-constructors.c app/gui/images-commands.[ch] implemented
2003-11-16  Michael Natterer  <mitch@gimp.org>

	* app/gui/dialogs-constructors.c
	* app/gui/images-commands.[ch]
	* app/widgets/gimpimageview.[ch]: implemented the "Raise Displays"
	button's functionality. Fixes bug #127079.
2003-11-16 12:07:03 +00:00
Michael Natterer
4d095af4db use gtk_widget_get_screen() instead of gdk_screen_get_default().
2003-11-08  Michael Natterer  <mitch@gimp.org>

	* app/widgets/gimptooloptionseditor.c
	(gimp_tool_options_editor_get_preview): use
	gtk_widget_get_screen() instead of gdk_screen_get_default().

	* app/widgets/gimpdatafactoryview.[ch]: added "GtkWidget *parent"
	to GimpDataEditFunc.

	* app/gui/dialogs-constructors.[ch]
	(dialogs_edit_brush,gradient,palette_func): use the passed parent
	widget for finding the right screen instead of
	gdk_screen_get_deafault().

	* app/gui/gui.c: minor cleanup.
2003-11-08 18:16:25 +00:00
Michael Natterer
bcd9794a99 To be multihead safe, each new window or menu needs to be associated with
2003-11-08  Michael Natterer  <mitch@gimp.org>

	To be multihead safe, each new window or menu needs to be
	associated with a GdkScreen or it will pop up on the default
	screen.

	* libgimpwidgets/gimpquerybox.[ch]
	* app/display/gimpdisplayshell-layer-select.[ch]
	* app/widgets/widgets-types.h
	* app/widgets/gimpitemfactory.[ch]
	* app/widgets/gimpitemtreeview.[ch]
	* app/widgets/gimptemplateview.[ch]
	* app/widgets/gimptooldialog.[ch]
	* app/widgets/gimpviewabledialog.[ch]
	* app/gui/channels-commands.[ch]
	* app/gui/color-notebook.[ch]
	* app/gui/convert-dialog.[ch]
	* app/gui/edit-commands.[ch]
	* app/gui/grid-dialog.[ch]
	* app/gui/image-commands.[ch]
	* app/gui/info-dialog.[ch]
	* app/gui/layers-commands.[ch]
	* app/gui/offset-dialog.[ch]
	* app/gui/resize-dialog.[ch]
	* app/gui/stroke-dialog.[ch]
	* app/gui/templates-commands.[ch]
	* app/gui/vectors-commands.[ch]: added "GtkWidget *parent"
	paramaters to all functions which create menus, popups or windows
	and pass "parent" to gimp_dialog_new() or one of the various
	wrappers around it. As a side effect, this fixes bug #61092.

	* app/widgets/gimpdialogfactory.[ch]: added "GdkScreen *screen"
	instead of "parent" here since there are no possible parent
	windows on startup.

	* app/display/gimpdisplayshell-callbacks.c
	(gimp_display_shell_origin_button_press): added a quick hack to
	send a display to another screen: click the origin button with the
	middle mouse button.

	* app/display/gimpdisplayshell.c
	(gimp_display_shell_screen_changed): don't chain up
	undonditionally (don't crash).

	* libgimpwidgets/gimpdialog.c (gimp_dialog_new_valist): set the
	dialog's screen from a non-GtkWidget parent widget. The rest of
	non-window parent widget handling is still unimplemented.

	* libgimpwidgets/gimpcolorbutton.c
	* app/widgets/gimpcolormapeditor.c
	* app/widgets/gimpcolorpanel.c
	* app/widgets/gimpcomponenteditor.c
	* app/widgets/gimpcontainereditor.c
	* app/widgets/gimpcontainergridview.c
	* app/widgets/gimpcontainerpopup.c
	* app/widgets/gimpcontainertreeview.c
	* app/widgets/gimpdatafactoryview.c
	* app/widgets/gimpdevicestatus.c
	* app/widgets/gimpdockable.c
	* app/widgets/gimpdrawabletreeview.c
	* app/widgets/gimperrorconsole.c
	* app/widgets/gimpgradienteditor.c
	* app/widgets/gimphelp.c
	* app/widgets/gimppaletteeditor.c
	* app/widgets/gimppreview-popup.c
	* app/widgets/gimpselectioneditor.c
	* app/widgets/gimpsessioninfo.c
	* app/widgets/gimptoolbox-color-area.c
	* app/widgets/gimptoolbox-indicator-area.c
	* app/widgets/gimptoolbox.c
	* app/widgets/gimptooloptionseditor.c
	* app/widgets/gimpvectorstreeview.c
	* app/widgets/gimpwidgets-utils.c
	* app/display/gimpdisplayshell-scale.c
	* app/display/gimpnavigationview.c
	* app/gui/module-browser.c
	* app/gui/dialogs-commands.c
	* app/gui/dialogs-constructors.c
	* app/gui/drawable-commands.c
	* app/gui/file-commands.c
	* app/gui/file-new-dialog.c
	* app/gui/file-save-dialog.c
	* app/gui/gradient-editor-commands.c
	* app/gui/gui-vtable.c
	* app/gui/gui.c
	* app/gui/info-window.c
	* app/gui/palette-import-dialog.c
	* app/gui/palettes-commands.c
	* app/gui/qmask-commands.c
	* app/gui/select-commands.c
	* app/gui/tool-options-commands.c
	* app/gui/view-commands.c
	* app/tools/gimpcolorpickertool.c
	* app/tools/gimpcroptool.c
	* app/tools/gimpimagemaptool.c
	* app/tools/gimpmeasuretool.c
	* app/tools/gimptransformtool.c
	* plug-ins/FractalExplorer/FractalExplorer.c
	* plug-ins/gfig/gfig.c
	* plug-ins/gflare/gflare.c: changed addordingly. Changed all
	menu_position funcs to place the menu on the right screen.
2003-11-08 15:29:47 +00:00
Sven Neumann
dcf50dc2a9 Replaced the histogram tool by a histogram dialog:
2003-11-01  Sven Neumann  <sven@gimp.org>

	Replaced the histogram tool by a histogram dialog:

	* themes/Default/images/Makefile.am
	* themes/Default/images/tools/stock-tool-histogram-[16|22].png:
	removed here ...

	* themes/Default/images/stock-histogram-[16|22].png: ,,, and added
	under these new names.

	* libgimpwidgets/gimpstock.[ch]: register the icons as
	GIMP_STOCK_HISTOGRAM and removed the histogram tool stock icons.

	* app/base/gimphistogram.c: don't crash when uncalculated values
	are requested from a GimpHistogram. Allow to reset the histogram
	by calling gimp_histogram_calculate() with a NULL region.

	* app/widgets/gimphistogrambox.[ch]: renamed the GimpHistogramView
	struct member to "view".

	* app/tools/gimpthresholdtool.c: changed accordingly.

	* app/widgets/gimphistogramview.[ch] (gimp_histogram_view_events):
	return TRUE when events were handled.

	* app/tools/Makefile.am
	* app/tools/gimp-tools.c
	* app/tools/gimphistogramtool.[ch]: removed the histogram tool.

	* app/widgets/Makefile.am
	* app/widgets/gimphelp-ids.h
	* app/widgets/widgets-types.h
	* app/widgets/gimphistogrameditor.[ch]: added GimpHistogramEditor.
	Has some rough edges still...

	* app/gui/dialogs-constructors.[ch]
	* app/gui/dialogs.c
	* app/gui/image-menu.c: register the new dialog instead of the
	histogram tool.
2003-11-01 02:39:34 +00:00
Sven Neumann
03b90ade98 themes/Default/images/Makefile.am
2003-10-23  Sven Neumann  <sven@gimp.org>

	* themes/Default/images/Makefile.am
	* themes/Default/images/stock-tools-[16|24].png
	* themes/Default/images/stock-device-status-24.png
	* themes/Default/images/stock-tool-options-24.png: new icons drawn
	by Jimmac.

	* libgimpwidgets/gimpstock.[ch]: register the new icons.

	* app/gui/dialogs-constructors.c
	* app/gui/dialogs-menu.c: use the new GIMP_STOCK_TOOLS icon.

	* app/gui/image-menu.c
	* app/gui/toolbox-menu.c: add the Tools dialog entry here as well.

	* app/widgets/gimphelp-ids: s/TOOL_DIALOG/TOOLS_DIALOG/.
2003-10-23 13:04:44 +00:00
Michael Natterer
78b6153301 added gimp_container_freeze() / _thaw() around font list reloading.
2003-10-18  Michael Natterer  <mitch@gimp.org>

	* app/text/gimp-fonts.c (gimp_fonts_load): added
	gimp_container_freeze() / _thaw() around font list reloading.

	* app/tools/gimp-tools.c (gimp_tools_init): added missing
	gimp_container_freeze().

	* app/widgets/gimpcontainerview.c: connect to the container's
	"freeze" and "thaw" signals and empty / refill the view
	accordingly. Ignore "add", "remove" and "reorder" signals while
	the container is frozen. Fixes font list sorting after refresh and
	speeds up refreshing of fonts, brushes, patterns etc.

	* app/widgets/Makefile.am
	* app/widgets/widgets-types.h
	* app/widgets/gimpfontview.[ch]: new widget for the font list/grid.

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

	* app/gui/dialogs-constructors.c: changed accordingly.

	* app/gui/Makefile.am
	* app/gui/fonts-commands.[ch]
	* app/gui/fonts-menu.[ch]: new files: a menu for the font view.

	* app/gui/menus.c (menus_init): register the new <Fonts> menu.

	* app/gui/preferences-dialog.c (prefs_dialog_new): removed the
	fonts refreshing hack from the "Environment" page.
2003-10-18 16:23:15 +00:00
Sven Neumann
cff08b64ae app/config/gimpconfig-utils.c (gimp_config_diff) (gimp_config_sync)
2003-10-15  Sven Neumann  <sven@gimp.org>

	* app/config/gimpconfig-utils.c (gimp_config_diff) (gimp_config_sync)
	* app/config/gimpconfig.c (gimp_config_iface_equal): compare and sync
	aggregate objects recursively.

	* app/core/gimptemplate.c (gimp_template_finalize): don't leak the
	filename.

	* app/display/gimpdisplayshell-title.c
	* app/config/gimpconfig-dump.c: added %L format identifier for
	verbose layer count. Renamed former %L to %n (layer name).

	* app/config/gimpdisplayconfig.c: changed default image title and
	image status format strings.

	* app/gui/dialogs-constructors.c: added a blurb for Templates
	dockables.

	* app/display/gimpdisplayshell.h: fixed typo.
2003-10-14 23:00:16 +00:00
Michael Natterer
99746e1d6c app/widgets/Makefile.am app/widgets/widgets-types.h new files implementing
2003-10-10  Michael Natterer  <mitch@gimp.org>

	* app/widgets/Makefile.am
	* app/widgets/widgets-types.h
	* app/widgets/gimpdocked.[ch]: new files implementing
	GimpDockedInterface, a GTypeInterface which must be implemented by
	all widgets which want to be packed into a GimpDockable. Has
	virtual functions similar to the ones GimpDockable had.

	* app/widgets/gimpdockable.[ch]: removed all virtual functions and
	all function pointers from the instance struct (also the ones just
	added in the commit below). Make sure only widgets implementing
	the GimpDockedIface are added and simply call the child's
	GimpDocked functions where we used to call our own virtual
	functions and function pointers.

	* app/widgets/gimpcoloreditor.c
	* app/widgets/gimpcontainereditor.c
	* app/widgets/gimpcontainergridview.c
	* app/widgets/gimpcontainerview.c
	* app/widgets/gimpeditor.c
	* app/widgets/gimpimageeditor.c
	* app/widgets/gimpitemtreeview.c
	* app/widgets/gimpsessioninfo.c
	* app/widgets/gimptooloptionseditor.c
	* app/display/gimpnavigationview.c: implement GimpDockedIface.

	* app/gui/dialogs-constructors.c: removed all that get_preview_func(),
	set_context_func() etc. cruft since that's done by GimpDockedIface.
	It's really a file of constructors now.

	* app/gui/dialogs-menu.c: changed accordingly.

	* app/widgets/gimpimagedock.c: forgotten in the commit below.
2003-10-10 21:24:12 +00:00
Sven Neumann
1667acd36d accept NULL as blurb and use the name as fallback for a missing blurb.
2003-09-30  Sven Neumann  <sven@gimp.org>

	* app/widgets/gimpdockable.c (gimp_dockable_new): accept NULL
	as blurb and use the name as fallback for a missing blurb.

	* app/gui/dialogs-constructors.c: removed the "Foo List" and "Foo
	Grid" blurbs. Only left blurbs where the longer name makes sense.
2003-09-30 18:50:55 +00:00
Michael Natterer
d0e1c1c661 cleanup.
2003-09-30  Michael Natterer  <mitch@gimp.org>

	* app/paint/gimppaintcore-stroke.c: cleanup.

	(gimp_paint_core_stroke_boundary): don't push a separate undo
	for each part of the boundary.

	* app/core/gimpdrawable-stroke.[ch]: added empty stub
	gimp_drawable_stroke_boundary(). Changed
	gimp_drawable_stroke_vectors() to take the GimpStrokeOptions as
	second parameter.

	* app/core/gimpchannel.c (gimp_channel_stroke): use it. No need
	to push an undo group around gimp_paint_core_stroke_boundary().

	* app/vectors/gimpvectors.c: changed accordingly.

	* app/widgets/gimpselectioneditor.[ch]: added a GimpStrokeItemFunc
	pointer and use it for stroking.

	* app/gui/edit-commands.[ch] (edit_stroke_selection): a
	GimpStrokeItemFunc which strokes the selection using the
	stroke-dialog.

	* app/gui/dialogs-constructors.c: use it for the selection editor.
2003-09-30 02:44:17 +00:00
Michael Natterer
d1ba870458 added a GimpContainer of tool options presets.
2003-09-29  Michael Natterer  <mitch@gimp.org>

	* app/core/gimptoolinfo.[ch]: added a GimpContainer of tool
	options presets.

	* app/core/gimptooloptions.[ch] (gimp_tool_options_set_property):
	silently accept setting the *same* tool_info again.

	(gimp_tool_options_build_filename): is public now.

	* app/tools/gimp-tools.c (gimp_tools_restore,save): load and save
	the presets container.

	* app/gui/tool-options-dialog.[ch]: removed.

	* app/gui/tool-options-commands.[ch]
	* app/gui/tool-options-menu.[ch]: new files implementing a menu
	for the new GimpToolOptionsEditor widget. Has submenus for saving,
	loading, and deleting tool options to/from the
	tool_info->options_presets container.

	* app/gui/Makefile.am
	* app/gui/dialogs-constructors.c
	* app/gui/menus.c: changed accordingly.

	* app/widgets/Makefile.am
	* app/widgets/widgets-types.h
	* app/widgets/gimptooloptionseditor.[ch]: the tool options dialog
	as proper widget. The "Load" and "Save" buttons still do the same
	stuff as before. Will make them use the new presets since making
	them do something useful was the reason for this whole change.

	* app/widgets/gimphelp-ids.h: added missing help IDs for the tool
	options dialog.
2003-09-29 20:26:09 +00:00
Michael Natterer
d2b8494a29 derive it from GimpViewable.
2003-09-27  Michael Natterer  <mitch@gimp.org>

	* app/core/gimppaintinfo.[ch]: derive it from GimpViewable.

	* app/core/gimptoolinfo.c (gimp_tool_info_new): set the
	paint_info's stock_id from the tool_info's stock_id.

	* app/widgets/widgets-types.h: resurrected GimpItemStrokeFunc.

	* app/widgets/gimpvectorstreeview.[ch]: added a item_stroke_func
	pointer and use it instead of implementing stroking here.

	* app/gui/vectors-commands.[ch]: added vectors_stroke_vectors()
	which has the signature of a GimpItemStrokeFunc.

	* app/gui/dialogs-constructors.c: use it for the paths dialog.

	* app/gui/stroke-dialog.[ch]: extended to handle both libart and
	GimpPaintCore stroking. Use a GimpContainerMenu view on the
	gimp->paint_info_list container to select the paint core to use.
2003-09-27 13:46:30 +00:00
Michael Natterer
e13afaf260 Cleaned up all places which pick colors to work consistently: the concept
2003-09-26  Michael Natterer  <mitch@gimp.org>

	Cleaned up all places which pick colors to work consistently: the
	concept of an "active color" has disappeared, instead <ctrl> picks
	the BG color all over the place (fixes bug #122931).

	* app/tools/tools-enums.[ch]: added enum GimpColorPickMode which
	can be one of { FOREGROUND, BACKGROUND }. Reordered enums so
	non-registered ones are at the end of the file. Removed trailing
	whitespace.

	* app/tools/gimpcolorpickeroptions.[ch]: added a "pick-mode"
	property and a GUI for it. Renamed the "update-active" property to
	"update-toolbox".

	* app/tools/gimpcolorpickertool.c: honor the new option. Toggle
	pick-mode on <ctrl>.

	* app/tools/gimpcolortool.[ch]: added pick_mode member and change
	the cursor accordingly.

	* app/widgets/gimpcolormapeditor.[ch]: added "GdkModifierType
	state" to the "selected" signal. Removed the signal's default
	implementation.

	* app/gui/dialogs-constructors.c: fixed the signal handler which
	lives here and set BG if <ctrl> was pressed.

	* app/widgets/gimppaletteeditor.c: removed weird <ctrl> <->
	active_color interaction and pick BG on <ctrl>. Don't change the
	toolbox color when editing a color in the palette.

	* app/widgets/gimptoolbox-color-area.[ch]: made the whole
	active_color stuff private. Will remove these artefacts soon...

	* app/gui/colormap-editor-menu.c
	* app/gui/palette-editor-menu.c: added separate menu entries
	for adding a color from the current FG and BG.

	* app/gui/colormap-editor-commands.c
	* app/gui/palette-editor-commands.[ch]: changed callbacks
	accordingly.

	* cursors/background.xbm
	* cursors/background_mask.xbm
	* cursors/foreground.xbm
	* cursors/foreground_mask.xbm
	* cursors/gimp-tool-cursors.xcf: moved the FG/BG cursor modifiers
	closer to the upper right corner.

	* app/widgets/gimpcursor.c: ignore the cursor modifiers' hotspots
	since they are not relevant and I didn't save the hotspot in the
	updated cursor files for that reason.
2003-09-26 13:33:54 +00:00
Michael Natterer
55f938fa01 using gimp_container_view_get_by_dockable() was a bad idea since not all
2003-09-24  Michael Natterer  <mitch@gimp.org>

	* app/gui/dialogs-constructors.c (dialogs_get_view_menu_func):
	using gimp_container_view_get_by_dockable() was a bad idea since
	not all our GimpEditor subclasses actually are GimpContainerViews.
	Find the right GimpEditor manually instead (fixes missing popup
	menus).

	* app/gui/colormap-editor-menu.c (colormap_editor_menu_update):
	make the menu entries insensitive if the image is not indexed.
	fixes bug #123066.
2003-09-24 15:11:29 +00:00
Michael Natterer
c5fd48f2fb added a "menu_title" which is registered with each menu.
2003-09-23  Michael Natterer  <mitch@gimp.org>

	* app/widgets/gimpmenufactory.[ch]: added a "menu_title" which is
	registered with each menu.

	* app/widgets/gimpitemfactory.[ch]: added the title to the
	constructor and to the GimpItemFactory struct.

	* app/gui/menus.c: register titles with all menus.

	* app/widgets/gimpdockable.[ch]: show the tab menu, not the
	contained dialog's menu when clicking on the menu button.
	Embed the dialog's menu as submenu. Use the item_factory's
	title and the dockable's stock_id for the submenu entry.

	* app/widgets/gimpeditor.c: removed GtkWidget:popup_menu()
	implementation since that's done by GimpDockable now.

	* app/widgets/gimpdockbook.c: set the new menu item invisible
	when showing the menu as tab menu.

	* app/widgets/gimphelp-ids.h: added GIMP_HELP_DOCK_TAB_DETACH
	and renamed _TAB_REMOVE to _TAB_CLOSE.

	* app/gui/dialogs-menu.c: added the new menu entry for showing the
	dialog's sub-menu. Added a "Detach" menu item, renamed "Remove" to
	"Close". Accept both a GimpDockbook and a GimpDockable pointer as
	"data" in dialogs_menu_update().

	* app/gui/dialogs-commands.[ch]: changed accordingly. Never use
	gtk_item_factory_popup_data_from_widget() but always the "data"
	passed to the callbacks. Take care to not set the already active
	preview_size, tab_style and list/grid type in the resp. callbacks
	to avoid being called from dialogs_menu_update().

	* app/gui/dialogs-constructors.c: removed separate
	set_context_funcs and get_menu_funcs for GimpContainerView and
	GimpContainerEditor widgets and simply use
	gimp_container_view_get_by_dockable() to find the right widget.
2003-09-23 16:17:25 +00:00
Michael Natterer
47b1e3eef8 added a title bar showing the dockable's name, a "close" and a "menu"
2003-09-21  Michael Natterer  <mitch@gimp.org>

	* app/widgets/gimpdockable.[ch]: added a title bar showing the
	dockable's name, a "close" and a "menu" button. Not quite
	finished, but almost...

	* app/gui/dialogs-constructors.c: changed accordingly.

	* themes/Default/images/Makefile.am
	* themes/Default/images/stock-close-12.png
	* themes/Default/images/stock-menu-12.png: new icons for the above.

	* libgimpwidgets/gimpstock.[ch]: register them.

	* themes/Default/gtkrc: remove any focus spacing from the
	dockables' new buttons since they can't get the focus anyway.
2003-09-21 19:35:54 +00:00
Michael Natterer
5ebce856b5 app/widgets/gimpdatafactoryview.[ch] app/widgets/gimpitemtreeview.[ch]
2003-09-18  Michael Natterer  <mitch@gimp.org>

	* app/widgets/gimpdatafactoryview.[ch]
	* app/widgets/gimpitemtreeview.[ch]
	* app/widgets/gimppaletteeditor.[ch]
	* app/widgets/gimptemplateview.[ch]: order the button boxes in
	these dialogs like the entries their popup menus: The default
	(double click) action is the first menu entry / button. In an
	attack of consistency, also reordered functions and function
	parameters all over the place to match the new order.

	* app/widgets/gimpchanneltreeview.c
	* app/widgets/gimplayertreeview.c
	* app/widgets/gimpvectorstreeview.c
	* app/gui/dialogs-constructors.c: changed accordingly.
2003-09-17 22:54:48 +00:00
Michael Natterer
dcb6f225d9 added new virtual function GimpItem::stroke().
2003-09-01  Michael Natterer  <mitch@gimp.org>

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

	* app/core/gimpchannel.c
	* app/vectors/gimpvectors.c: implement GimpItem::stroke().

	* app/core/gimpimage-mask.[ch] (gimp_image_mask_stroke): changed
	signature to match gimp_item_stroke() (the selection mask *really*
	should be a GimpChannel subclass).
	Removed global variable "gboolean gimp_image_mask_stroking"...

	* app/core/gimpimage.[ch]: ...and added "gboolean mask_stroking"
	to the GimpImage struct.

	* app/gui/vectors-commands.[ch]: removed vectors_stroke_vectors().

	* app/widgets/widgets-types.h: removed GimpStrokeItemFunc typedef.

	* app/widgets/gimpvectorstreeview.[ch]: removed "stroke_item_func"
	member and use gimp_item_stroke() instead.

	* app/gui/dialogs-constructors.c (dialogs_vectors_list_view_new)
	* app/gui/edit-commands.c (edit_stroke_cmd_callback)
	* app/gui/vectors-commands. (vectors_stroke_cmd_callback)
	* app/widgets/gimpselectioneditor.c
	(gimp_selection_editor_stroke_clicked)
	* tools/pdbgen/pdb/edit.pdb (gimp_edit_stroke): changed accordingly.

	* app/pdb/edit_cmds.c: regenerated.

	Note that there is no GUI for "stroke channel", although it would
	be utterly cool to have one, since currently slelection stroking
	cannot be masked by a selection (because we stroke the selection).
	Anyway, if anyone has an idea how to trigger "stroke channel" with
	another drawable active (the one to stroke to), please let me
	know...
2003-09-01 17:56:44 +00:00
Michael Natterer
8c8274e27d added "gchar *help_id" member to the GimpDockable struct and "const gchar
2003-08-25  Michael Natterer  <mitch@gimp.org>

	* app/widgets/gimpdockable.[ch]: added "gchar *help_id" member to
	the GimpDockable struct and "const gchar *help_id" parameter to
	gimp_dockable_new().

	* app/widgets/gimphelp-ids.h: added help IDs for the tool list/grid
	and the palette editor.

	* app/widgets/gimpdockbook.c
	* app/gui/dialogs-constructors.c
	* app/gui/dialogs-menu.c: changed accordingly.
2003-08-25 14:18:33 +00:00
Michael Natterer
ba70ce9a10 changed GimpHelpFunc typedef: - renamed "const gchar *help_data" to "const
2003-08-23  Michael Natterer  <mitch@gimp.org>

	* libgimpwidgets/gimpwidgetstypes.h: changed GimpHelpFunc typedef:
	- renamed "const gchar *help_data" to "const gchar *help_id".
	- added "gpointer help_data".

	* libgimpwidgets/gimphelpui.[ch]: added "gpointer help_data" to
	gimp_help_connect(). Removed all fiddling with html links and
	treat all help IDs as opaque identifiers.

	* app/core/gimptoolinfo.[ch]: changed "help_data" member to
	"help_id".

	* app/widgets/gimpitemfactory.[ch]: removed the "help_path"
	parameter from gimp_item_factory_new() since we don't fiddle with
	html file paths any more. Simplifies menu item help a lot.
	Renamed "help_data" member of struct GimpItemFactoryEntry to
	"help_id".

	* app/gui/plug-in-menus.c: changed accordingly. 3rd party
	plug-ins' menu item help IDs are now encoded as
	"help_path:help_id".

	* app/gui/file-open-menu.c
	* app/gui/file-save-menu.c: when constructing the <Load> and
	<Save> menus, take the resp. procedures' locale_domain and
	help_path into account. Fixes translation of 3rd party menu items.
	Also do the right thing for load/save procs which are implemented
	as temporary procedures (they are impossible to implement
	currently but it's nice to do the right thing anyway...).

	* app/widgets/gimphelp-ids.h: added GIMP_HELP_MAIN identifier.

	* libgimpwidgets/gimpdialog.[ch]
	* libgimpwidgets/gimpwidgets.[ch]
	* libgimp/gimpui.c
	* app/display/gimpdisplayshell.c
	* app/gui/gui.c
	* app/gui/about-dialog.c
	* app/gui/color-notebook.c
	* app/gui/dialogs-constructors.c
	* app/gui/file-dialog-utils.[ch]
	* app/gui/gradients-commands.c
	* app/gui/help-commands.c
	* app/gui/image-menu.c
	* app/gui/menus.c
	* app/gui/preferences-dialog.c
	* app/gui/tips-dialog.c
	* app/tools/gimpcolorpickertool.c
	* app/tools/gimpcroptool.c
	* app/tools/gimpcurvestool.c
	* app/tools/gimphistogramtool.c
	* app/tools/gimpimagemaptool.c
	* app/tools/gimplevelstool.c
	* app/tools/gimpmeasuretool.c
	* app/tools/gimptransformtool.c
	* app/widgets/gimperrorconsole.c
	* app/widgets/gimphelp.[ch]
	* app/widgets/gimpmenufactory.[ch]
	* app/widgets/gimptexteditor.c
	* app/widgets/gimptoolbox.c
	* app/widgets/gimpviewabledialog.[ch]
	* plug-ins/common/CEL.c
	* plug-ins/common/CML_explorer.c
	* plug-ins/common/gee.c
	* plug-ins/common/gee_zoom.c
	* plug-ins/common/gqbist.c
	* plug-ins/common/spheredesigner.c
	* plug-ins/flame/flame.c
	* plug-ins/fp/fp_gtk.c
	* plug-ins/helpbrowser/helpbrowser.c
	* plug-ins/ifscompose/ifscompose.c
	* plug-ins/imagemap/imap_main.c: changed accordingly. Removed
	trailing whitespace all over the place.
2003-08-23 19:35:05 +00:00
Sven Neumann
1f39a82962 themes/Default/images/Makefile.am
2003-08-19  Sven Neumann  <sven@gimp.org>

	* themes/Default/images/Makefile.am
	* themes/Default/images/stock-indexed-palette-[16|24].png
	* themes/Default/images/stock-undo-history-[16|24].png: added new
	icons drawn by Jimmac.

	* libgimpwidgets/gimpstock.[ch]
	* app/gui/dialogs-constructors.c
	* app/gui/dialogs-menu.c
	* app/gui/image-menu.c: register and use them.
2003-08-19 17:08:06 +00:00
Michael Natterer
375d479dad extended GimpTabStyle enum so we are able to distinguish icon and preview
2003-08-15  Michael Natterer  <mitch@gimp.org>

	* app/widgets/widgets-enums.[ch]: extended GimpTabStyle enum so we
	are able to distinguish icon and preview tabs.

	* app/widgets/gimpdockable.[ch]: renamed GimpDockableGetIconFunc
	to GimpDockableGetPreviewFunc. Always create stock icons for
	"icon" tab styles and use the get_preview_func only for "preview"
	tab styles.

	* app/gui/dialogs-constructors.c: changed accordingly.

	* app/gui/dialogs-menu.c: Added "Current Status" options to the
	"Tab Style" menu and grey them out if the dockable has no
	get_preview_func.
2003-08-15 15:03:03 +00:00
Michael Natterer
6fabca2e17 Added configurable styles for dockable tabs (fixes bug #87376):
2003-07-08  Michael Natterer  <mitch@gimp.org>

	Added configurable styles for dockable tabs (fixes bug #87376):

	* app/widgets/widgets-enums.[ch]: added new enum GimpTabStyle
	which can be one on { ICON, NAME, ICON_NAME, ICON_BLURB }.

	* app/widgets/gimpdockable.[ch]: added a GimpTabStyle member to
	the GimpDockable struct which defaults to GIMP_TAB_STYLE_ICON.
	Renamed "short_name" to "name" and "name" to "blurb". Renamed
	GimpDockableGetTabFunc to GimpDockableGetIconFunc. Implemented all
	tab styles in gimp_dockable_real_get_tab_widget() and use the
	"get_icon_func" only for creating the tab's icon, not the entire
	tab widget.

	* app/widgets/gimpdockbook.[ch]: changed accordingly. Create the
	menu widgets and the DND icon using gimp_dockable_get_tab_widget()
	with tab_style == GIMP_TAB_STYLE_ICON_BLURB instead of duplicating
	tons of code. Made gimp_dockbook_get_tab_widget() public because
	it's needed for exchanging tabs on-the-fly.

	* app/widgets/gimpimagedock.c: changed accordingly.

	* app/widgets/gimpdialogfactory.c: remember the dockables' tab
	style in sessionrc.

	* app/gui/dialogs-menu.c: added a submenu to select the tab style
	for each dockable.

	* app/gui/dialogs-commands.[ch]: new callback
	dialogs_tab_style_cmd_callback().

	* app/gui/dialogs-constructors.[ch]: added stock_ids to all
	dockables, swapped the "name" and "blurb" parameters, reordered
	functions, cleanup.

	* app/gui/dialogs-menu.c
	* app/gui/image-menu.c
	* app/gui/toolbox-menu.c: use GIMP_STOCK_DEFAULT_COLORS for the
	color editor dockable and renamed it to "FG/BG Color".
2003-07-08 15:07:56 +00:00
Michael Natterer
878ee7b03e app/gui/Makefile.am removed...
2003-07-07  Michael Natterer  <mitch@gimp.org>

	* app/gui/Makefile.am
	* app/gui/device-status-dialog.[ch]: removed...

	* app/widgets/Makefile.am
	* app/widgets/widgets-types.h
	* app/widgets/gimpdevicestatus.[ch]: ...added here as widget. The
	thing is narrower now but not nicer and needs some polishing.

	* app/widgets/gimppropwidgets.[ch]: added gimp_prop_color_area_new()
	and gimp_prop_stock_image_new() (the latter is still unused).

	* app/gui/dialogs-constructors.[ch]
	* app/gui/dialogs.c: made the device status a dockable.

	* app/gui/dialogs-menu.c
	* app/gui/image-menu.c
	* app/gui/toolbox-menu.c: changed accordingly.

	* app/gui/gui.c: update the device status dialog indirectly now
	using the new gui_device_change_notify() callback.
2003-07-07 13:37:19 +00:00
Michael Natterer
5e950b5501 Cleaned up and improved the message system:
2003-06-13  Michael Natterer  <mitch@gimp.org>

	Cleaned up and improved the message system:

	* app/core/gimp.[ch]: added "const gchar *domain" to
	GimpMessageFunc (a NULL domain means the message is from the GIMP
	core, everything else is a plug-in).

	* app/errors.c: pass "domain == NULL" to gimp_message().

	* tools/pdbgen/pdb/message.pdb: derive the message domain from the
	current plug-in's menu_path (evil hack but works reasonably well).

	* app/pdb/message_cmds.c: regenerated.

	* app/widgets/gimpwidgets-utils.[ch] (gimp_message_box): added a
	header showing the message domain and changed the dialog layout to
	follow the HIG more closely.

	* app/gui/error-console-dialog.[ch]: removed.

	* app/widgets/gimperrorconsole.[ch]
	* app/gui/error-console-commands.[ch]
	* app/gui/error-console-menu.[ch]: new files containing a
	re-implementation of the error console dialog.

	* app/gui/Makefile.am
	* app/gui/dialogs-constructors.c
	* app/gui/gui.c
	* app/gui/menus.c
	* app/widgets/Makefile.am
	* app/widgets/widgets-types.h: changed accordingly.

	* app/display/gimpprogress.c: added more spacing and removed the
	separator (more HIG compliant).

	* plug-ins/[most plug-ins].c: Changed lots of messages and
	progress strings:

	- Removed plug-in names from messages since that's automatically
	  covered by "domain" now.
	- Put all filenames in ''.
	- Changed "Loading" to "Opening".
	- Added "..." to all progress messages.
	- Cleaned up all file open/save error messages to look the
	  same and include g_strerror(errno).
	- Removed special casing for progress bars and *always* show them,
	  not only if run_mode != GIMP_RUN_NONINTERACTIVE (we can't expect
	  all plug-ins to do this correctly but need to hack the core to
	  sort out unwanted progress bars).

	Unrelated:

	- Cleaned up indentation, spacing, #includes, coding style and
	  other stuff while I was at all these files.
2003-06-13 14:37:00 +00:00
Sven Neumann
46d726d098 app/widgets/gimpvectorstreeview.h moved function definitions to the
2003-06-02  Sven Neumann  <sven@gimp.org>

	* app/widgets/gimpvectorstreeview.h
	* app/widgets/widgets-types.h: moved function definitions to the
	widgets-types header file.

	* app/gui/dialogs-constructors.c
	* app/widgets/gimpselectioneditor.[ch]: added a "Selection to
	Path" button as suggested in bug #112448.
2003-06-02 17:57:11 +00:00
Michael Natterer
487f71ba05 Removed the old paths and the remaining legacy stuff it needed. Fixes bug
2003-05-21  Michael Natterer  <mitch@gimp.org>

	Removed the old paths and the remaining legacy stuff it needed.
	Fixes bug #104471.

	* Makefile.am
	* configure.in
	* pixmaps/*: removed the pixmaps/ directory.

	* app/ops_buttons.[ch]
	* app/path.[ch]
	* app/pathP.h
	* app/path_transform.h
	* app/gui/paths-dialog.[ch]
	* app/tools/gimpbezierselecttool.[ch]: removed these files.

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

	* app/core/core-types.h: removed the Path* types.

	* app/core/gimpimage.[ch]
	* app/core/gimpimage-duplicate.c: removed gimage->paths.

	* app/gui/about-dialog.c: inline wilber2_xpm for now.

	* app/gui/dialogs-constructors.c
	* app/gui/dialogs-menu.c
	* app/gui/dialogs.c
	* app/gui/menus.c: removed the old paths dialog.

	* app/gui/gui.c: removed gui_rotate_the_shield_harmonics() hack
	which was broken anyway.

	* app/tools/gimptransformtool.c: #if 0 path_transform preview stuff.

	* app/tools/gimpiscissorstool.c: removed useless include.

	* app/tools/tools.c: removed the bezier select tool.

	* app/vectors/gimpvectors.c (gimp_vectors_real_stroke_add): use
	g_list_append(), not g_list_prepend() so some ugly side conditions
	of legacy path loading are honored.

	* app/xcf/xcf-load.c
	* app/xcf/xcf-save.c: load and save only GimpVectors.
2003-05-21 17:38:14 +00:00
Michael Natterer
984eef2500 added new function vectors_selection_to_vectors() which invokes the
2003-05-15  Michael Natterer  <mitch@gimp.org>

	* app/gui/vectors-commands.[ch]: added new function
	vectors_selection_to_vectors() which invokes the sel2path Plug-In.

	* app/gui/dialogs-constructors.c: make the new function known to
	GimpVectorTreeView.

	* app/widgets/gimpvectorstreeview.[ch]: Added a "Selection to Path"
	button anc call the new function.
2003-05-15 14:31:22 +00:00
Michael Natterer
fefaf61b28 added new function gimp_dialog_factory_add_foreign() which adds a dialog
2003-05-02  Michael Natterer  <mitch@gimp.org>

	* app/widgets/gimpdialogfactory.[ch]: added new function
	gimp_dialog_factory_add_foreign() which adds a dialog that was not
	created by the factory itself. Its identifier however must be
	registered with the factory. Connect to all toplevel dialogs'
	"configure_event" and remember the resulting window geometry so we
	get session management for *all* dialogs, not only for those which
	were open on exit.

	* app/gui/dialogs.c: added the "File New" dialog. Added foreign
	entries (without constructor) for all dialogs opened by tools.

	* app/gui/dialogs-constructors.[ch]: added a constructor for
	the file_new dialog.

	* app/gui/file-new-dialog.[ch]: renamed file_new_dialog_create()
	to file_new_dialog_new() and removed the gimage and template
	paramaters. Adder new function file_new_dialog_set() to set
	gimage and template after creation.

	* app/gui/file-commands.c
	* app/gui/templates-commands.c: changed accordingly.

	* app/tools/gimpimagemaptool.[ch]
	* app/tools/gimptransformtool.[ch]: added
	"const gchar *shell_identifier" to the tool structs. Register the
	tool dialogs using gimp_dialog_factory_add_foreign().

	* app/tools/gimpbrightnesscontrasttool.c
	* app/tools/gimpcolorbalancetool.c
	* app/tools/gimpcurvestool.c
	* app/tools/gimphuesaturationtool.c
	* app/tools/gimplevelstool.c
	* app/tools/gimpperspectivetool.c
	* app/tools/gimpposterizetool.c
	* app/tools/gimprotatetool.c
	* app/tools/gimpscaletool.c
	* app/tools/gimpsheartool.c
	* app/tools/gimpthresholdtool.c: set "shell_identifier" so the
	dialogs become session managed. Fixes bug #61091.

	* app/tools/gimpcroptool.c: register the crop dialog with the
	dialog factory. Fixes bug #52849.

	* app/tools/gimpcolorpickertool.c: ditto.

	Unrelated:

	* app/tools/gimptool.c: no need to cast the return value of
	g_object_new().
2003-05-02 18:43:15 +00:00
Michael Natterer
6663cee5f3 invalidate the preview when the stock_id changes.
2003-04-13  Michael Natterer  <mitch@gimp.org>

	* app/core/gimptemplate.c (gimp_template_notify): invalidate
	the preview when the stock_id changes.

	* app/widgets/gimptemplateeditor.[ch]: added an optional entry
	to edit the template's name.

	* app/widgets/gimptemplateview.[ch]: added a "duplicate" button and
	function pointers for creating templates, editing templates and
	creating images from templates.

	* app/gui/file-new-dialog.[ch] (file_new_dialog_create): added an
	optional template parameter.

	* app/gui/file-commands.c: pass template == NULL.

	* app/gui/templates-menu.c: added a "Duplicate Template" menu entry.

	* app/gui/templates-commands.[ch]: added the callback for the
	duplicate menu item. Added "New Template" and "Edit Template"
	dialogs. Added a function which opens a file_new_dialog with
	a template preselected.

	* app/gui/dialogs-constructors.c: let GimpTemplateView know
	about the functions.
2003-04-13 16:25:14 +00:00
Sven Neumann
a8697d3e02 app/widgets/gimppreview.[ch] moved background functionality into the
2003-04-11  Sven Neumann  <sven@gimp.org>

	* app/widgets/gimppreview.[ch]
	* app/widgets/gimppreviewrenderer.[ch]: moved background
	functionality into the renderer. Removed some GimpPreview
	functions that used to wrap GimpPreviewRenderer functionality.

	* app/display/gimpdisplayshell-layer-select.c
	* app/display/gimpnavigationview.c
	* app/gui/dialogs-constructors.c
	* app/widgets/gimpcontainergridview.c
	* app/widgets/gimpcontainermenuimpl.c
	* app/widgets/gimppreview-popup.c
	* app/widgets/gimpselectioneditor.[ch]: changed accordingly.
2003-04-11 11:18:12 +00:00
Michael Natterer
e9d617b5f2 Added "gpointer get_tab_data" to GimpDockableGetTabFunc and to
2003-04-08  Michael Natterer  <mitch@gimp.org>

	* app/widgets/gimpdockable.[ch]: Added "gpointer get_tab_data" to
	GimpDockableGetTabFunc and to gimp_dockable_new().

	* app/gui/dialogs-constructors.c: changed accordingly. Replaced
	dialogs_[brush,pattern,gradient,palette,font]_tab_func() by
	dialogs_viewable_tab_func() which gets passed the GType as
	get_tab_data.
2003-04-08 19:54:22 +00:00
Michael Natterer
f20e559bbf app/widgets/gimpbrushfactoryview.[ch] app/widgets/gimpbufferview.[ch]
2003-04-08  Michael Natterer  <mitch@gimp.org>

	* app/widgets/gimpbrushfactoryview.[ch]
	* app/widgets/gimpbufferview.[ch]
	* app/widgets/gimpcontainereditor.[ch]
	* app/widgets/gimpcontainergridview.[ch]
	* app/widgets/gimpcontainertreeview.[ch]
	* app/widgets/gimpcontainerview.[ch]
	* app/widgets/gimpdatafactoryview.[ch]
	* app/widgets/gimpdocumentview.[ch]
	* app/widgets/gimpimageview.[ch]
	* app/widgets/gimpitemtreeview.[ch]
	* app/widgets/gimptemplateview.[ch]: removed "min_item_x" and
	"min_item_y" parameters all over the place. Added
	"preview_border_width" instead.

	* app/widgets/gimpmenuitem.c: ensure that all menu items have the
	same height.

	* app/widgets/gimpcontainerpopup.c
	* app/widgets/gimplayertreeview.c
	* app/widgets/gimpundoeditor.c
	* app/gui/brush-select.c
	* app/gui/dialogs-commands.c
	* app/gui/dialogs-constructors.c
	* app/gui/font-select.c
	* app/gui/gradient-select.c
	* app/gui/palette-select.c
	* app/gui/pattern-select.c: changed accordingly.

	* app/gui/dialogs-constructors.c: removed the borders from the tool
	and template lists.
2003-04-08 12:39:02 +00:00
Michael Natterer
9827ceac0e added gimp_list_uniquefy_name() utility function.
2003-04-06  Michael Natterer  <mitch@gimp.org>

	* app/core/gimplist.[ch]: added gimp_list_uniquefy_name() utility
	function.

	* app/core/gimpdatalist.c
	* app/core/gimpitem.c: use it here instead of duplicating almost
	the same code.

	* app/widgets/Makefile.am
	* app/widgets/widgets-types.h
	* app/widgets/gimptemplateview.[ch]: new widget for editing the
	template list.

	* app/gui/dialogs-constructors.c: use it.

	* app/gui/Makefile.am
	* app/gui/templates-commands.[ch]
	* app/gui/templates-menu.[ch]: new files implementing the context
	menu for the template list.

	* app/gui/menus.c: register the new menu with the menu factory.

	* app/gui/file-commands.c (file_new_template_callback): uniquefy
	the new template's name.

	* app/gui/documents-commands.c: fixed typo.
2003-04-06 11:21:56 +00:00
Michael Natterer
e7fbd8106f reset object properties only if they are GIMP_PARAM_SERIALIZABLE.
2003-04-05  Michael Natterer  <mitch@gimp.org>

	* app/config/gimpconfig-utils.c (gimp_config_reset_properties):
	reset object properties only if they are GIMP_PARAM_SERIALIZABLE.

	* app/core/gimpcontext.[ch]: added a GimpTemplate property.

	* app/gui/dialogs-constructors.[ch]
	* app/gui/dialogs.c: added a template dialog.

	* app/gui/dialogs-menu.c
	* app/gui/image-menu.c
	* app/gui/toolbox-menu.c: and menu entries to open it.

	* app/widgets/gimpdnd.[ch]: added DND for GimpTemplates.
2003-04-05 19:56:38 +00:00
Sven Neumann
c556c957a2 themes/Default/images/Makefile.am
2003-04-03  Sven Neumann  <sven@gimp.org>

	* themes/Default/images/Makefile.am
	* themes/Default/images/stock-template-16.png
	* themes/Default/images/stock-texture-64.png: new icons by Jimmac.

	* libgimpwidgets/gimpstock.[ch]: register the new icons.

	* app/widgets/gimppreview.[ch]: added the possibility to set a
	background pixmap on the preview widget.

	* app/gui/dialogs-constructors.c
	* app/display/gimpnavigationview.[ch]
	* app/widgets/gimpselectioneditor.[ch]: set a background on the
	navigation and selection previews when layer previews are disabled
	in the preferences.
2003-04-03 16:13:12 +00:00
Michael Natterer
c2a22d5d52 added gimp_font_list_restore() which loads the fonts (not yet).
2003-03-25  Michael Natterer  <mitch@gimp.org>

	* app/text/gimpfontlist.[ch]: added gimp_font_list_restore()
	which loads the fonts (not yet).

	* app/core/gimp.c: call it.

	* app/gui/dialogs-constructors.[ch]
	* app/gui/dialogs-menu.c
	* app/gui/dialogs.c
	* app/gui/image-menu.c
	* app/gui/toolbox-menu.c: added font list and grid views.

	* app/gui/menus.c: cosmetic.
2003-03-25 22:53:10 +00:00
Sven Neumann
28fddfd554 Makefile.am removed this header file.
2003-03-25  Sven Neumann  <sven@gimp.org>

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

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

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

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

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

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

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

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

	* plug-ins/script-fu/scripts/test-sphere.scm: fixed typos.
2003-03-25 16:38:19 +00:00
Michael Natterer
c1dffc05e0 Removed deprecated and broken list views based on GtkList[Item] (fixes bug
2003-03-20  Michael Natterer  <mitch@gimp.org>

	Removed deprecated and broken list views
	based on GtkList[Item] (fixes bug #90965):

	* app/widgets/gimpchannellistitem.[ch]
	* app/widgets/gimpchannellistview.[ch]
	* app/widgets/gimpcontainerlistview.[ch]
	* app/widgets/gimpdrawablelistitem.[ch]
	* app/widgets/gimpdrawablelistview.[ch]
	* app/widgets/gimpitemlistitem.[ch]
	* app/widgets/gimpitemlistview.[ch]
	* app/widgets/gimplayerlistitem.[ch]
	* app/widgets/gimplayerlistview.[ch]
	* app/widgets/gimplistitem.[ch]
	* app/widgets/gimpvectorslistview.[ch]: removed.

	* app/widgets/Makefile.am
	* app/widgets/widgets-types.h
	* app/widgets/widgets-enums.h
	* app/widgets/gimpcontainereditor.c
	* app/widgets/gimpcontainerview-utils.c
	* app/widgets/gimpdatafactoryview.c
	* app/gui/channels-commands.c
	* app/gui/channels-menu.c
	* app/gui/drawable-commands.c
	* app/gui/layers-commands.c
	* app/gui/layers-menu.c
	* app/gui/palettes-commands.c
	* app/gui/test-commands.c
	* app/gui/vectors-commands.c
	* app/gui/vectors-menu.c: changed accordingly.

	* app/gui/dialogs-commands.c
	* app/gui/dialogs-constructors.[ch]
	* app/gui/dialogs-menu.c
	* app/gui/dialogs.c: removed the term "tree" from all user visible
	places and create tree views when lists are requested.

2003-03-20  Michael Natterer  <mitch@gimp.org>

	* POTFILES.in: app/widgets/*list* -> *tree*
2003-03-20 13:05:52 +00:00
Michael Natterer
205cdf1353 Added GtkTreeView versions of layers/channels/vectors:
2003-03-16  Michael Natterer  <mitch@gimp.org>

	Added GtkTreeView versions of layers/channels/vectors:

	* app/core/core-enums.[ch]: renamed GIMP_UNDO_GROUP_LAYER_PROPERTIES
	to GIMP_UNDO_GROUP_ITEM_PROPERTIES.

	* app/core/gimpcontainer.c (gimp_container_reorder): don't try
	to reorder containers with num_children == 1.

	* app/core/gimpmarshal.list: added VOID: STRING, UINT marshaller.

	* app/widgets/Makefile.am
	* app/widgets/widgets-types.h
	* app/widgets/gimpchanneltreeview.[ch]
	* app/widgets/gimpdrawabletreeview.[ch]
	* app/widgets/gimpitemtreeview.[ch]
	* app/widgets/gimplayertreeview.[ch]
	* app/widgets/gimpvectorstreeview.[ch]: new widgets.

	* app/widgets/gimpcellrenderertoggle.c: draw the frame only if the
	cell is prelit.

	* app/widgets/gimpcellrendererviewable.[ch]: added "clicked"
	signal, unref the renderer in finalize(). Set the renderer's
	border color to black if the cell is not selected (a hack that
	saves tons of code in GimpLayerTreeView).

	* app/widgets/gimpcomponenteditor.c: no need to gtk_list_store_set()
	stuff we just got from the store.

	* app/widgets/gimpcontainertreeview.[ch]: added lots of state used
	by the new subclasses to the GimpContainerTreeView struct.  Create
	the GtkListStore/GtkTreeView in GObject::constructor() and only
	collect parameters in init() so subclasses can modify store/view
	creation. Do most of the button_press_event stuff manually and
	return TRUE from the handler.

	* app/widgets/gimpcontainerview.c: cleanup.

	* app/widgets/gimpitemlistview.h
	* app/widgets/gimpvectorslistview.h: temp hacks before they die.

	* app/widgets/gimppreviewrenderer.[ch]: added
	gimp_preview_renderer_update_idle() which idle-emits "update"
	without invalidating.

	* app/gui/dialogs-constructors.[ch]
	* app/gui/dialogs.c: added constructors for the new dialogs.

	* app/gui/channels-commands.c
	* app/gui/channels-menu.c
	* app/gui/layers-commands.c
	* app/gui/layers-menu.c
	* app/gui/vectors-commands.c
	* app/gui/vectors-menu.c: accept tree views as callback data.
2003-03-16 11:14:29 +00:00
Michael Natterer
a00a565c8c added GimpData::duplicate() implementation so read-only palettes can be
2003-03-10  Michael Natterer  <mitch@gimp.org>

	* app/core/gimppalette.[ch]: added GimpData::duplicate()
	implementation so read-only palettes can be edited again by
	duplicating them first.

	* app/gui/dialogs-constructors.c: pass the <Palettes>, not the
	<Gradients> menu identifier to the palette grid and tree view
	constructors (spotted by Tigert).
2003-03-10 17:35:42 +00:00
Michael Natterer
3c33140fc1 themes/Default/images/stock-delete-16.png
2003-03-06  Michael Natterer  <mitch@gimp.org>

	* themes/Default/images/stock-delete-16.png
	* themes/Default/images/stock-lower-16.png
	* themes/Default/images/stock-new-16.png
	* themes/Default/images/stock-paste-16.png
	* themes/Default/images/stock-raise-16.png
	* themes/Default/images/stock-refresh-16.png: removed these files
	since we use the icons provided by GTK+ now.

	* themes/Default/gtkrc
	* themes/Default/images/Makefile.am: removed them here hoo.

	* libgimpwidgets/gimpstock.[ch]: reordered stuff to be consistent
	in the header and the .c file. Added GIMP_STOCK_ERROR and
	GIMP_STOCK_QUESTION which are available in all sizes (unlike
	GTK_STOCK_DIALOG_ERROR and GTK_STOCK_DIALOG_QUESTION).

	* app/core/gimpviewable.c
	* app/display/gimpdisplayshell.c
	* app/gui/file-commands.c
	* app/gui/file-new-dialog.c
	* app/gui/file-save-dialog.c
	* app/widgets/gimpwidgets-utils.c
	* app/widgets/gimpdatafactoryview.c: use the new stock IDs.

	* app/config/gimpcoreconfig.[ch]: renamed "preview_size" to
	"layer_preview_size" and added "gboolean layer_previews" which
	switches layer previews on/off independent of their size.

	* app/config/gimprc-blurbs.h: added/changed their blurbs.

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

	* app/core/gimpdrawable-preview.c
	* app/core/gimpdrawable.c
	* app/core/gimpimage.c: return NULL previews if
	core_config->layer_previews is FALSE. Invalidate all layer/channel
	previews whenever "layer_previews" changes.

	* app/widgets/gimppreviewrendererdrawable.c
	* app/widgets/gimppreviewrendererimage.c: render the stock_id
	if the drawable/image returns a NULL preview. Fixes bug #107242.

	* app/display/gimpdisplayshell-handlers.c: don't set the
	sensitivity of the navigation button because it can no longer be
	disabled.

	* app/display/gimpdisplayshell-layer-select.c
	* app/gui/dialogs-constructors.c
	* app/gui/dialogs.c
	* app/gui/paths-dialog.c: changed accordingly.

	* app/gui/preferences-dialog.c: added a toggle button for the new
	"layer_previews" boolean.

	* app/widgets/gimpcontainergridview.c
	* app/widgets/gimpcontainerlistview.c: chain up unconditionally
	in GimpContainerView::clear_items().

	* app/widgets/gimpcontainertreeview.c: ditto. Made the reorder()
	implementation lengthy and eeky (but working) again... Stop signal
	emission on double clicks so GtkTreeView doesn't re-select the
	item we are about change.

	* app/widgets/gimpcontainerview.c
	(gimp_container_view_real_clear_items): need to use
	g_hash_table_new_full() here too or everything will b0rk.

	* app/widgets/gimppreviewrenderer.c
	(gimp_preview_renderer_default_render_stock): use
	gtk_widget_render_icon() instead of gtk_icon_set_render_icon().

	* tools/pdbgen/enums.pl: this file wanted to be regenerated...
2003-03-06 16:47:34 +00:00
Sven Neumann
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
Michael Natterer
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
Michael Natterer
9ee632a656 Started migration from GtkList to GtkTreeView:
2003-02-21  Michael Natterer  <mitch@gimp.org>

	Started migration from GtkList to GtkTreeView:

	* app/widgets/Makefile.am
	* app/widgets/widgets-types.h
	* app/widgets/gimpcontainertreeview.[ch]; new GimpContainerView
	subclass using GtkListStore/GtkTreeView.

	* app/widgets/widgets-enums.h: added GIMP_VIEW_TYPE_TREE to
	thje GimpViewType enum.

	* app/widgets/gimpcontainereditor.c: added GimpContainerTreeView
	to the switch() which selects the view type.

	* app/gui/dialogs-commands.c
	* app/gui/dialogs-constructors.[ch]
	* app/gui/dialogs-menu.c
	* app/gui/dialogs.c: added tree view versions of many dialogs.

	* app/widgets/gimppreview.[ch]: removed the get_size() virtual
	function and gimp_preview_calc_size().

	* app/core/gimpviewable.[ch]: added virtual function
	get_preview_size() and gimp_viewable_calc_preview_size().

	* app/core/gimpbuffer.c
	* app/core/gimpdrawable-preview.[ch]
	* app/core/gimpdrawable.c
	* app/core/gimpgradient.c
	* app/core/gimpimage.c
	* app/core/gimppalette.c: added get_preview_size() implementations.

	* app/widgets/gimpbufferpreview.c
	* app/widgets/gimpdrawablepreview.c
	* app/widgets/gimpgradientpreview.c
	* app/widgets/gimpimagepreview.c
	* app/widgets/gimppalettepreview.c
	* app/widgets/gimpselectioneditor.c
	* app/widgets/gimpundopreview.c
	* app/display/gimpnavigationview.c: changed accordingly, removed
	get_size() implementations.

	* app/widgets/widgets-types.h: changed the first param of
	GimpItemGetNameFunc from GtkWidget to GObject.

	* app/widgets/gimpcontainerview-utils.c: accept a GimpViewable as
	object in the built-in get_name funcs.

	* app/widgets/gimpcomponentlistitem.c
	* app/widgets/gimpcontainergridview.c
	* app/widgets/gimplistitem.c
	* app/widgets/gimpmenuitem.c: changed accordingly.
2003-02-21 19:03:19 +00:00
Michael Natterer
94bdcbcc01 app/widgets/Makefile.am app/widgets/widgets-types.h new GimpEditor
2003-02-20  Michael Natterer  <mitch@gimp.org>

	* app/widgets/Makefile.am
	* app/widgets/widgets-types.h
	* app/widgets/gimpimageeditor.[ch]: new GimpEditor subclass adding
	a GimpImage pointer and a virtual set_image() function.

	* app/widgets/gimpcolormapeditor.[ch]
	* app/widgets/gimpselectioneditor.[ch]
	* app/widgets/gimpundoeditor.[ch]: derive them from GimpImageEditor.
	Removed the public set_image() functions.

	* app/gui/colormap-editor-commands.c
	* app/gui/colormap-editor-menu.c: changed accordingly.

	* app/gui/dialogs-constructors.c: removed lots of code duplication
	and use the uniform GimpImageEditor API. Misc cleanups.
2003-02-20 15:40:15 +00:00
Michael Natterer
c8b4394d71 Reimplemented the undo history:
2003-02-20  Michael Natterer  <mitch@gimp.org>

	Reimplemented the undo history:

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

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

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

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

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

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

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

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

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

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

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

	New undo history implementation:

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

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

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

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

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

	* app/widgets/gimpselectioneditor.h: removed unneeded inclusion of
	"gui/gui-types.h".
2003-02-20 12:47:42 +00:00
Michael Natterer
fefaa3092f added "undo_desc" parameters.
2003-02-17  Michael Natterer  <mitch@gimp.org>

	* app/core/gimpimage.[ch] (gimp_image_position_*): added
	"undo_desc" parameters.

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

	* app/widgets/gimpitemlistview.[ch]: moved the item stack
	manipulation function pointers from the instance to the class
	struct. Added lots of descriptive strings to be used by tooltips
	and undo steps.

	* app/widgets/gimpchannellistview.c
	* app/widgets/gimpitemlistitem.c
	* app/widgets/gimplayerlistview.[ch]
	* app/widgets/gimpvectorslistview.c
	* app/gui/dialogs-constructors.c
	* app/gui/layers-commands.[ch]
	* app/gui/vectors-commands.c: changed accordingly. Cleanup.
2003-02-17 13:33:29 +00:00
Michael Natterer
436ed648e8 added new virtual function duplicate() as replacement for all
2003-02-11  Michael Natterer  <mitch@gimp.org>

	* app/core/gimpitem.[ch]: added new virtual function duplicate()
	as replacement for all gimp_*_copy() functions.

	* app/core/gimpchannel.[ch]
	* app/core/gimpdrawable.[ch]
	* app/core/gimplayer.[ch]
	* app/core/gimplayermask.[ch]
	* app/vectors/gimpvectors.[ch]: replaced public copy() functions
	by duplicate() implementations.

	* app/text/gimptextlayer.c: added a duplicate() implementation.

	* app/widgets/gimpitemlistview.[ch]: removed the "copy_item_func"
	and simply call gimp_item_duplicate().

	* app/undo.c
	* app/core/gimpimage-duplicate.c
	* app/core/gimpimage-mask.c
	* app/core/gimpimage-qmask.c
	* app/gui/channels-commands.c
	* app/gui/dialogs-constructors.c
	* app/gui/layers-commands.c
	* app/gui/vectors-commands.c
	* app/widgets/gimptoolbox.c
	* tools/pdbgen/pdb/channel.pdb
	* tools/pdbgen/pdb/layer.pdb
	* tools/pdbgen/pdb/selection.pdb: changed accordingly.

	* app/pdb/channel_cmds.c
	* app/pdb/layer_cmds.c
	* app/pdb/selection_cmds.c: regenerated.
2003-02-11 13:52:47 +00:00
Michael Natterer
794885e297 added gimp_item_configure() and gimp_item_copy().
2003-01-31  Michael Natterer  <mitch@gimp.org>

	* app/core/gimpitem.[ch]: added gimp_item_configure() and
	gimp_item_copy().

	* app/core/gimpdrawable.c (gimp_drawable_configure,copy): use them.

	* app/vectors/gimpvectors.[ch]: added gimp_vectors_new(),
	gimp_vectors_copy() and gimp_vectors_copy_points(). Use the new
	GimpItem functions just as GimpDrawable does. Added a
	get_memsize() implementation.

	* app/vectors/gimpstroke.[ch]: made it a GimpObject and added
	a get_memsize() implementation.

	* app/undo.c: implemented vectors undo as if the new GimpVectors
	functions above worked.

	* app/gui/dialogs-constructors.c
	* app/gui/vectors-commands.c
	* app/tools/gimpvectortool.c: use gimp_vectors_new,copy().
2003-01-31 18:08:32 +00:00
Michael Natterer
6f29b766e8 app/gui/brushes-menu.[ch] app/gui/buffers-menu.[ch]
2003-01-13  Michael Natterer  <mitch@gimp.org>

	* app/gui/brushes-menu.[ch]
	* app/gui/buffers-menu.[ch]
	* app/gui/channels-menu.[ch]
	* app/gui/colormap-editor-menu.[ch]
	* app/gui/dialogs-menu.[ch]
	* app/gui/documents-menu.[ch]
	* app/gui/file-open-menu.[ch]
	* app/gui/file-save-menu.[ch]
	* app/gui/gradient-editor-menu.[ch]
	* app/gui/gradients-menu.[ch]
	* app/gui/image-menu.[ch]
	* app/gui/images-menu.[ch]
	* app/gui/layers-menu.[ch]
	* app/gui/palette-editor-menu.[ch]
	* app/gui/palettes-menu.[ch]
	* app/gui/patterns-menu.[ch]
	* app/gui/qmask-menu.[ch]
	* app/gui/toolbox-menu.[ch]
	* app/gui/vectors-menu.[ch]: new files, one per GimpItemFactory,
	containing the menu entries and their setup and update funcs.

	* app/gui/brushes-commands.[ch]
	* app/gui/patterns-commands.[ch]: removed because they contained
	only update funcs.

	* app/gui/Makefile.am: changed accordingly. Split the huge
	SOURCES list in smaller ones for menus and dialogs.

	* app/gui/menus.[ch]: removed the menu entries and setup funcs.
	Added MENU_SEPARATOR() and MENU_BRANCH() macros to the header.
	Made some utility functions public.

	* app/display/gimpdisplayshell.[ch]
	* app/gui/buffers-commands.[ch]
	* app/gui/channels-commands.[ch]
	* app/gui/colormap-editor-commands.[ch]
	* app/gui/dialogs-commands.[ch]
	* app/gui/documents-commands.[ch]
	* app/gui/gradient-editor-commands.[ch]
	* app/gui/gradients-commands.[ch]
	* app/gui/images-commands.[ch]
	* app/gui/layers-commands.[ch]
	* app/gui/palette-editor-commands.[ch]
	* app/gui/palettes-commands.[ch]
	* app/gui/qmask-commands.[ch]
	* app/gui/vectors-commands.[ch]: removed the update funcs.

	* app/gui/plug-in-menus.[ch]: renamed plug_in_set_menu_sensitivity()
	to plug_in_menus_update(). Cleanup.

	* app/gui/paths-dialog.[ch]: added the <Paths> entries here
	so they will go away together with these files.

	* app/gui/dialogs-constructors.c
	* app/gui/drawable-commands.c: removed useless #includes.
2003-01-13 14:08:10 +00:00
Michael Natterer
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
Manish Singh
1a44f2126c cleanup, removed unecessary G_OBJECT() casts. Should do the same for
2003-01-05  Manish Singh  <yosh@gimp.org>

        * many files in app, modules and libgimp*: cleanup, removed unecessary
        G_OBJECT() casts. Should do the same for plug-ins, when more of them
        get undeprecated.
2003-01-05 22:07:10 +00:00
Michael Natterer
b1ebd9cddf The unbelievable happened: a menu bar per display (optionally)
2002-12-10  Michael Natterer  <mitch@gimp.org>

	The unbelievable happened: a menu bar per display (optionally)

	* app/widgets/gimpitemfactory.[ch]: Added the possibility to have
	more than one item factory per <Prefix>. Added
	gimp_item_factories_set_foobar() variants of all functions which
	set menu item properties (label, sensitive, ...). Removed
	the #ifndef ENABLE_NLS code since that's no longer possible.

	* app/widgets/gimptoolbox.c: made it robust againt the <Image>
	factory not existing at the time of toolbox creation.

	* app/config/gimpconfig-blurbs.h
	* app/config/gimpdisplayconfig.[ch]: added boolean
	"menu_bar_per_display" property.

	* app/gui/preferences-dialog.c: added a toggle for the new option.

	* app/gui/menus.[ch]: added menus_get_new_image_factory() as
	temporary solution. Will add a GimpMenuFactory which creates the
	item factories soon.

	* app/display/gimpdisplayshell.c: add the menu bar if requested.
	Changed widget packing slightly for the menu bar case.

	* app/display/gimpdisplayshell-callbacks.c: changed accordingly.
	Currently there is no right-click popup menu when we have a menu
	bar. This will change soon.

	* app/gui/file-dialog-utils.c
	* app/gui/gui.c: use gimp_item_factories_set_foo().

	* app/gui/channels-commands.c
	* app/gui/dialogs-commands.c
	* app/gui/dialogs-constructors.c
	* app/gui/drawable-commands.c
	* app/gui/edit-commands.c
	* app/gui/file-commands.c
	* app/gui/image-commands.c
	* app/gui/layers-commands.c
	* app/gui/plug-in-commands.c
	* app/gui/select-commands.c
	* app/gui/tools-commands.c
	* app/gui/vectors-commands.c
	* app/gui/view-commands.c: per-display item factories pass the
	GimpDisplay as user_data to callbacks, not a Gimp. Changed all
	return_if_no_foo() macros to handle both cases.

	Cleaned up the plug-in menu stuff:

	* app/plug-in/plug-in-types.h: removed PlugInMenuEntry type.

	* app/plug-in/plug-ins.[ch]: added plug_ins_proc_def_add() as
	counterpart to plug_ins_proc_def_remove(). Added
	plug_ins_locale_domain() as counterpart to plug_ins_help_path().
	Remember the locale domains just as the help paths. Changed
	plug-in initialization so that their menus can be created multiple
	times.

	* app/plug-in/plug-in.[ch]: use plug_ins_proc_def_add() instead of
	doing it manually.

	* app/gui/plug-in-menus.[ch]: added plug_in_menus_init() which
	just registers the locale domains. Changed plug_in_make_menu() to
	take a list of proc_defs, not plug_ins_defs so it can be used
	after plug-in query.
2002-12-10 16:38:16 +00:00
Michael Natterer
0005b5d2e5 app/widgets/Makefile.am new files containing constructors for views on
2002-11-20  Michael Natterer  <mitch@gimp.org>

	* app/widgets/Makefile.am
	* app/widgets/gimppropwidgets.[ch]: new files containing
	constructors for views on GObject properties.

	* app/gui/Makefile.am: the build preferences-dialog again.

	* app/gui/dialogs-constructors.c
	* app/gui/dialogs.c
	* app/gui/menus.c: added it back to the dialog system (as a non
	signleton to get the new model <-> view stuff some testing).

	* app/gui/preferences-dialog.c: here it is again, using property
	view widgets. Lots of stuff removed & simplified. Some things
	still #if 0'ed and/or non-working. No saving yet, stuff...
2002-11-20 19:45:03 +00:00