Commit Graph

223 Commits

Author SHA1 Message Date
Sven Neumann d833630ad8 app/config/gimpcoreconfig.[ch] app/config/gimprc-blurbs.h keep a history
2006-02-20  Sven Neumann  <sven@gimp.org>

	* app/config/gimpcoreconfig.[ch]
	* app/config/gimprc-blurbs.h
	* app/core/gimp.[ch]: keep a history of recently used plug-ins.

	* app/plug-in/plug-in-run.[ch] (plug_in_repeat): pass an index
	into the plug-in history.

	* app/actions/plug-in-actions.c
	* app/actions/plug-in-commands.c
	* app/menus/plug-in-menus.c
	* menus/image-menu.xml.in: added a submenu with recently used
	plug-ins to the Filters menu. Fixes bug #148855.
2006-02-20 16:38:09 +00:00
Michael Natterer 0a5ce16b84 Added API to explicitly register dynamic menu items hierarchies. Fixes bug
2005-03-24  Michael Natterer  <mitch@gimp.org>

	Added API to explicitly register dynamic menu items hierarchies.
	Fixes bug #170623.

	* app/core/gimp.h: added "GSList *plug_in_menu_branches".

	* app/plug-in/plug-in-types.h

	* app/plug-in/plug-ins.[ch]: added API to register plug-in menu
	branches, just as for locale and help domans. Cleaned up handling
	of locale and help domains.

	(plug_ins_exit): free the registered menu branches.

	* app/actions/plug-in-actions.[ch] (plug_in_actions_add_branch):
	new function to explicitly add a menu branch action.

	(plug_in_actions_setup): add the registered menu branches to each
	new action group.

	(plug_in_actions_build_path): always strip the untranslated menu
	path from underlines before using it as hash table key or action
	name.

	* app/menus/plug-in-menus.c (plug_in_menus_add_proc): changed
	accordingly: strip underlines from untranslated menu paths before
	passing them to plug_in_menus_build_path().

	* app/core/gimp-gui.[ch]: added gimp_menus_create_branch() plus
	vtable entry to access the new stuff from the core. Renamed the
	functions desling with items from gimp_foo_entry() to
	gimp_foo_item().

	* app/gui/gui-vtable.c: implement create_branch() and add the
	branch action to all existing "plug-in" action groups. Note that
	we don't need to create any menus because that happens implicitly
	when adding menu items.

	* tools/pdbgen/pdb/plug_in.pdb (plugin_menu_branch_register): new
	PDB wrapper to access branch registering from plug-ins.

	* app/pdb/internal_procs.c
	* app/pdb/plug_in_cmds.c
	* libgimp/gimpplugin_pdb.[ch]: regenerated.

	* libgimp/gimp.def: changed accordingly.

	* plug-ins/script-fu/script-fu-scripts.c (script_fu_find_scripts):
	register the menu branches for all included scripts.
2005-03-24 16:08:04 +00:00
Michael Natterer f3e0792dcf Some cleanup to make plug-in menu creation less hackish and finally enable
2005-01-31  Michael Natterer  <mitch@gimp.org>

	Some cleanup to make plug-in menu creation less hackish and
	finally enable registering plug-in menu entries in much more UI
	managers (not only in the image and toolbox menus):

	* app/menus/menus.c: added a <Toolbox> UI manager instead of
	creating the toolbox menu from the <Image> UI manager.

	* app/widgets/gimpimagedock.[ch]: removed the ui_manager and the
	signal connections to update it...

	* app/widgets/gimpdock.[ch]: ...and added them here so all docks
	have their own UI manager. Determine which manager to create from
	looking at GimpDockClass::ui_manager_name (defaults to <Dock>).

	* app/widgets/gimptoolbox.c: set ui_manager_name to <Toolbox> and
	use the UI manager created by our parent class instead of using
	the <Image> one.

	(toolbox_create_tools): use gimp_action_get_accel_closure()
	instead of doing evil hacks.

	* app/gui/gui-vtable.c
	* app/menus/plug-in-menus.c: removed lots of special casing of the
	<Image> UI manager. The code is almost ready for allowing plug-in
	menus under <Layers>, <Channels>, <Brushes> etc.
2005-01-31 16:09:52 +00:00
Sven Neumann 9c65cb8f14 made the code a little more robust by not relying on certain properties of
2005-01-03  Sven Neumann  <sven@gimp.org>

	* app/menus/plug-in-menus.c: made the code a little more robust by
	not relying on certain properties of the menu path.
2005-01-03 21:02:38 +00:00
Michael Natterer 518ab86b64 create dynamic sub-menus using a separate, ui-manager-global merge_id
2004-11-23  Michael Natterer  <mitch@gimp.org>

	* app/menus/plug-in-menus.c (plug_in_menus_add_proc): create
	dynamic sub-menus using a separate, ui-manager-global merge_id
	instead of the procedure's merge_id. Has the effect that the ui
	manager keeps around these sub-menus forever, even if the
	procedure that initially registered them is unregistered.
	Fixes menu ordering after Script-Fu->Refresh.
2004-11-23 14:35:45 +00:00
Michael Natterer 9ffc00be80 app/plug-in/Makefile.am removed... ...and added with a new name.
2004-09-22  Michael Natterer  <mitch@gimp.org>

	* app/plug-in/Makefile.am
	* app/plug-in/plug-in-proc.[ch]: removed...
	* app/plug-in/plug-in-proc-def.[ch]: ...and added with a new name.

	* app/plug-in/plug-in-def.[ch]
	* app/plug-in/plug-in-message.[ch]
	* app/plug-in/plug-in-progress.[ch]
	* app/plug-in/plug-in-rc.[ch]
	* app/plug-in/plug-in-run.[ch]
	* app/plug-in/plug-in.[ch]
	* app/plug-in/plug-ins.[ch]
	* app/actions/plug-in-actions.c
	* app/actions/plug-in-commands.c
	* app/file/file-open.[ch]
	* app/file/file-save.[ch]
	* app/file/file-utils.[ch]
	* app/gui/gui-vtable.c
	* app/menus/plug-in-menus.c
	* app/widgets/gimpfiledialog.c
	* app/widgets/gimpfileprocview.c
	* app/widgets/gimppluginaction.c
	* app/xcf/xcf.c
	* tools/pdbgen/pdb/fileops.pdb
	* tools/pdbgen/pdb/plug_in.pdb: changed accordingly plus some
	minor cosmetic cleanups.

	* app/pdb/fileops_cmds.c
	* app/pdb/plug_in_cmds.c: regenerated.
2004-09-22 15:12:24 +00:00
Michael Natterer d03577fab2 Restored sane sorting order for menus which are created entirely by
2004-08-11  Michael Natterer  <mitch@gimp.org>

	Restored sane sorting order for menus which are created
	entirely by plug-ins (like Xtns/Script-Fu/...).

	* app/menus/plug-in-menus.c (plug_in_menus_build_path): made it
	return the built path. For each sub-menu created, add a "Menus"
	placeholder and a separator. Make sure all sub-menus end up in the
	"Menus" placeholder. More readable because we can use the path
	returned by the recursive invocation now.

	(plug_in_menus_add_proc): simplified by using the path
	plug_in_menus_build_path() returns.
2004-08-11 10:45:47 +00:00
Sven Neumann e5a0ae9b1b sort the menus by the translated menu path stripped from underscores.
2004-06-07  Sven Neumann  <sven@gimp.org>

	* app/menus/plug-in-menus.c (plug_in_menus_setup): sort the menus
	by the translated menu path stripped from underscores.
2004-06-07 10:45:05 +00:00
Sven Neumann d714307f9a populate the tree with collation keys and use strcmp() instead of
2004-06-04  Sven Neumann  <sven@gimp.org>

	* app/menus/plug-in-menus.c (plug_in_menus_setup): populate the
	tree with collation keys and use strcmp() instead of
	g_utf8_collate() as the tree's sort function.
2004-06-04 11:47:15 +00:00
Michael Natterer cf3533ba9c put the image popup menu into a dummy menubar to work around the silly
2004-05-17  Michael Natterer  <mitch@gimp.org>

	* menus/menus.xsl: put the image popup menu into a dummy menubar
	to work around the silly GtkUIManager restriction that popup menus
	can't have tearoff items.

	* app/menus/menus.c
	* app/menus/image-menu.c
	* app/display/gimpdisplayshell-callbacks.c
	* app/gui/gui-vtable.c
	* app/menus/plug-in-menus.c: changed accordingly.

	* app/gui/gui.c (gui_restore_after_callback): connect to
	"notify::tearoff-menus" of GimpGuiConfig and reconfigure the
	global image UI manager accordingly.

	* app/config/gimpguiconfig.c: removed GIMP_PARAM_RESTART from the
	"tearoff-menus" property because GtkUIManager can change this on
	the fly.

	* app/display/gimpdisplayshell.[ch]: added the menubar to the
	GimpDisplayShell struct. Some cleanup in gimp_display_shell_new().

	* app/display/gimpdisplayshell-appearance.c
	(gimp_display_shell_set_show_menubar): use shell->menubar instead
	of asking the UI manager.

	* app/widgets/gimpuimanager.[ch]: changed gimp_ui_manager_ui_get()
	to transparently load the XML files even if a sub-widget was
	requested. Reordered parameters of gimp_ui_manager_ui_popup().
	Lots of internal cleanups.

	* app/widgets/gimpdockable.c
	* app/widgets/gimptooloptionseditor.c: simplified accordingly.

	* app/widgets/gimpeditor.[ch]: added new function
	gimp_editor_popup_menu() which takes a GimpMenuPositionFunc and
	updates/shows the editor's menu.

	* app/widgets/gimpcolormapeditor.c
	* app/widgets/gimpcomponenteditor.c
	* app/widgets/gimpcontainereditor.c
	* app/widgets/gimpcontainergridview.c
	* app/widgets/gimpcontainertreeview.c
	* app/widgets/gimperrorconsole.c
	* app/widgets/gimpgradienteditor.c
	* app/widgets/gimpitemtreeview.c
	* app/widgets/gimppaletteeditor.c: use gimp_editor_popup_menu().

	* app/widgets/gimptoolbox.c: moved all code from
	gimp_toolbox_new() to GObject::constructor().
2004-05-17 13:38:03 +00:00
Michael Natterer 4b6adc4c8a changed warnings to include the invalid menu path. Added check that makes
2004-05-15  Michael Natterer  <mitch@gimp.org>

	* app/plug-in/plug-in-params.c (plug_in_proc_args_check): changed
	warnings to include the invalid menu path. Added check that makes
	sure menu paths are either "<Prefix>" or "<Prefix>/foo" but *not*
	"<Prefix>foo".

	* app/actions/plug-in-actions.c: added function
	plug_in_actions_check_translation() which validates both the
	original and translated menu paths and spits detailed error
	messages if any of them is broken. Made action creation simpler
	(?) and more robust.

	* app/menus/plug-in-menus.c: argh, the translated menu path must
	be a sorting criteria *only*. Fixed the whole stuff to always use
	the original menu path because translation is done entirely by
	plug-in-actions.c. Fixes bad crashes for all locales. Added
	boolean return value to plug_in_menus_build_path() and don't try
	to create the menu item in an invalid location if creating the
	submenus failed.
2004-05-15 11:26:59 +00:00
Michael Natterer ca179a7757 Changed plug-in menu registration again to allow passing just the menu
2004-05-07  Michael Natterer  <mitch@gimp.org>

	Changed plug-in menu registration again to allow passing just the
	menu item's label (not the full path) in gimp_install_procedure()
	and only the path (excluding the item's label) in
	gimp_plugin_menu_register(). Matches the internal action system
	better and makes translating the menu paths much easier.

	(Of yourse it's still possible to use the old syntax for backward
	compatibility).

	* app/plug-in/plug-in-proc.[ch]: added "gchar *menu_label".

	* app/plug-in/plug-in-params.[ch]: added new functions
	plug_in_param_defs_check() and plug_in_proc_args_check() which
	check if a procedure's parameters match its menu location
	(e.g. <Image> needs RUN-MODE, IMAGE, DRAWABLE).

	* app/plug-in/plug-in-message.c (plug_in_handle_proc_install): if
	registering an old-style (full) menu_path, use
	plug_in_param_defs_check(), set proc_def->menu_label otherwise.

	* tools/pdbgen/pdb/plug_in.pdb (plugin_menu_register): use
	plug_in_proc_args_check() on the passed menu_path and make sugre
	old and new style menu registration are not mixed.

	* app/pdb/plug_in_cmds.c: regenerated.

	* app/plug-in/plug-in-rc.c: save/restore "menu_label".

	* app/actions/file-dialog-actions.c
	* app/actions/plug-in-actions.c
	* app/menus/plug-in-menus.c: changed action/menu creation
	accordingly. Some hacks needed to allow both old and new style
	menu_label/menu_paths.

	* app/plug-in/plug-in.c
	* app/widgets/gimpfiledialog.c
	* app/xcf/xcf.c: changed accordingly.

	* plug-ins/common/align_layers.c
	* plug-ins/common/animationplay.c
	* plug-ins/common/animoptimize.c
	* plug-ins/common/apply_lens.c
	* plug-ins/common/autocrop.c
	* plug-ins/common/autostretch_hsv.c
	* plug-ins/common/blinds.c
	* plug-ins/common/blur.c
	* plug-ins/common/borderaverage.c
	* plug-ins/common/bumpmap.c
	* plug-ins/common/c_astretch.c
	* plug-ins/common/ccanalyze.c
	* plug-ins/common/channel_mixer.c
	* plug-ins/common/checkerboard.c
	* plug-ins/common/color_enhance.c
	* plug-ins/common/colorify.c
	* plug-ins/common/colortoalpha.c
	* plug-ins/common/compose.c
	* plug-ins/common/convmatrix.c
	* plug-ins/common/cubism.c
	* plug-ins/common/curve_bend.c
	* plug-ins/common/decompose.c
	* plug-ins/common/deinterlace.c
	* plug-ins/common/depthmerge.c
	* plug-ins/common/destripe.c
	* plug-ins/common/diffraction.c
	* plug-ins/common/displace.c
	* plug-ins/common/edge.c
	* plug-ins/common/emboss.c
	* plug-ins/common/engrave.c
	* plug-ins/common/exchange.c
	* plug-ins/common/film.c
	* plug-ins/common/flarefx.c
	* plug-ins/common/fractaltrace.c
	* plug-ins/common/screenshot.c: ported the first few plug-ins
	to the new registration scheme.
2004-05-07 00:30:24 +00:00
Michael Natterer 7b943b64b0 Enabled multiple menu entries per plug-in procedure:
2004-05-06  Michael Natterer  <mitch@gimp.org>

	Enabled multiple menu entries per plug-in procedure:

	* app/plug-in/plug-in-proc.[ch]: changed "gchar *menu_path" to
	"GList *menu_paths".

	* app/plug-in/plug-in-message.c
	* app/plug-in/plug-in-rc.c
	* app/plug-in/plug-in.c
	* app/plug-in/plug-ins.c
	* app/menus/menus.c
	* app/widgets/gimpfiledialog.c
	* app/xcf/xcf.c: changed accordingly.

	* app/actions/file-dialog-actions.c
	* app/actions/plug-in-actions.c: create an action for the first
	element of proc_def->menu_paths.

	* app/gui/gui-vtable.c
	* app/menus/plug-in-menus.[ch]: create proxy widgets for each
	element of proc_def->menu_paths.

	* tools/pdbgen/pdb/plug_in.pdb: added new function
	gimp_plugin_menu_add() which can be called during query() and adds
	a menu path to a procedure registered by the calling plugin.

	* app/pdb/internal_procs.c
	* app/pdb/plug_in_cmds.c
	* libgimp/gimpplugin_pdb.[ch]: regenerated.

	* menus/image-menu.xml.in
	* menus/toolbox-menu.xml.in: added lots of <placeholder>s for
	logical groups (like Image/Resize, Image/Scale, Image/Crop
	etc.). Added empty placeholder File/Send for stuff like print and
	mail. Added an "Acquire" menu under <Image>/File

	* plug-ins/common/mail.c
	* plug-ins/print/print.c
	* plug-ins/common/winprint.c: register under File/Send.

	* plug-ins/common/screenshot.c
	* plug-ins/winsnap/winsnap.c: also register under
	<Image>/File/Acquire.

	* plug-ins/common/autocrop.c
	* plug-ins/common/ccanalyze.c
	* plug-ins/common/colortoalpha.c
	* plug-ins/common/threshold_alpha.c
	* plug-ins/common/zealouscrop.c: register additional menu entries
	under placeholders in the "Image" and "Layer" menus. This is not
	meant to be final but just a hint to keep in mind when
	reorganizing the plug-in menus.
2004-05-06 13:51:56 +00:00
Michael Natterer d3439fc3af configure.in app/Makefile.am app/menus/.cvsignore app/menus/Makefile.am
2004-05-06  Michael Natterer  <mitch@gimp.org>

	* configure.in
	* app/Makefile.am
	* app/menus/.cvsignore
	* app/menus/Makefile.am
	* app/menus/menus-types.h
	* app/menus/menus.[ch]
	* app/menus/file-open-menu.[ch]
	* app/menus/file-save-menu.[ch]
	* app/menus/image-menu.[ch]
	* app/menus/plug-in-menus.[ch]
	* app/menus/tool-options-menu.[ch]
	* app/menus/toolbox-menu.[ch]: moved all menus files to their
	own directory.

	* app/gui/Makefile.am
	* app/gui/menus.[ch]
	* app/gui/file-open-menu.[ch]
	* app/gui/file-save-menu.[ch]
	* app/gui/image-menu.[ch]
	* app/gui/plug-in-menus.[ch]
	* app/gui/tool-options-menu.[ch]
	* app/gui/toolbox-menu.[ch]: removed them here.

	* app/actions/debug-commands.c
	* app/actions/file-commands.c
	* app/gui/brush-select.c
	* app/gui/dialogs.c
	* app/gui/font-select.c
	* app/gui/gradient-select.c
	* app/gui/gui-vtable.c
	* app/gui/gui.c
	* app/gui/palette-select.c
	* app/gui/pattern-select.c
	* app/gui/preferences-dialog.c: changed #includes accordingly.
2004-05-06 07:41:53 +00:00
Michael Natterer 03d8d8278e fixed bug which would have leaked broken menu translations.
2004-05-05  Michael Natterer  <mitch@gimp.org>

	* app/actions/plug-in-actions.c (plug_in_actions_add_proc): fixed
	bug which would have leaked broken menu translations.

	* app/gui/plug-in-menus.c: removed useless #includes.
2004-05-05 15:34:11 +00:00
Michael Natterer 4654280114 Switch from GtkItemFactory to GtkUIManager. The migration is almost
2004-04-29  Michael Natterer  <mitch@gimp.org>

	Switch from GtkItemFactory to GtkUIManager. The migration is
	almost complete, still stuff missing/incomplete, definitely added
	a bunch of new bugs...

	* app/actions/*-commands.[ch]: converted all callback from
	GtkItemFactory callbacks to GtkAction callbacks.

	* app/actions/debug-actions.c
	* app/actions/gradient-editor-actions.c
	* app/actions/help-actions.c
	* app/actions/plug-in-actions.c
	* app/actions/qmask-actions.c
	* app/actions/tool-options-actions.c: various fixes.

	* app/display/gimpdisplay.[ch]
	* app/display/gimpdisplayshell-appearance.[ch]
	* app/display/gimpdisplayshell-callbacks.c
	* app/display/gimpdisplayshell.[ch]: move everything from
	GtkItemFactory to GtkUIManager.

	* app/gui/dialogs.[ch]: added new function dialogs_get_toolbox().
	Needed because the action callbacks don't have a widget parameter
	and sometimes we need a parent window for showing dialogs.

	* app/gui/Makefile.am
	* 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/error-console-menu.[ch]
	* app/gui/fonts-menu.[ch]
	* app/gui/gradient-editor-menu.[ch]
	* app/gui/gradients-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/templates-menu.[ch]
	* app/gui/vectors-menu.[ch]: removed these files.

	* app/gui/gui.c: create a global UI manager for the image popup
	menu and the toolbox menubar.

	* app/gui/menus.[ch]: removed all GtkItemFactory code.

	* app/gui/image-menu.[ch]
	* app/gui/toolbox-menu.[ch]: removed everything except the trivial
	setup_funcs.

	* app/gui/file-open-menu.c
	* app/gui/file-save-menu.c
	* app/gui/tool-options-menu.c: don't use the macros from menus.h
	any more, they are gone.

	* app/gui/gui-vtable.c
	* app/gui/plug-in-menus.[ch]: create/destroy the dynamic plug-in
	menu entries.

	* app/tools/gimpimagemaptool.c: s/gimp_item_factory_update/
	gimp_ui_manager_update/g

	* app/widgets/gimpuimanager.[ch]: added API to get an action
	group by name.

	* app/widgets/gimpmenufactory.c: don't choke on the item_factory
	entries being NULL.

	* app/widgets/gimpactiongroup.c: make sure booleans set using
	g_object_set() only have TRUE or FALSE values.

	* app/widgets/gimpcolormapeditor.c
	* app/widgets/gimpcomponenteditor.c
	* app/widgets/gimpcontainereditor.[ch]
	* app/widgets/gimpcontainergridview.c
	* app/widgets/gimpcontainertreeview.c
	* app/widgets/gimpdockable.[ch]
	* app/widgets/gimpdocked.[ch]
	* app/widgets/gimpeditor.[ch]
	* app/widgets/gimperrorconsole.c
	* app/widgets/gimpgradienteditor.c
	* app/widgets/gimpitemtreeview.c
	* app/widgets/gimppaletteeditor.c
	* app/widgets/gimptoolbox.c
	* app/widgets/gimptooloptionseditor.c: removed all GtkItemFactory
	code and enable the #if 0'ed UI manager stuff.

	* menus/gradient-editor-menu.xml: fixed typos.

	* menus/image-menu.xml: duplicate everything so we have both
	an image menubar and an image popup menu. Badly cries for an
	XSL processor.

	* menus/toolbox-menu.xml: added an "Extensions" placeholder.
2004-04-29 12:52:29 +00:00
Michael Natterer aae726ee94 app/widgets/Makefile.am app/widgets/widgets-types.h new GtkAction subclass
2004-04-27  Michael Natterer  <mitch@gimp.org>

	* app/widgets/Makefile.am
	* app/widgets/widgets-types.h
	* app/widgets/gimppluginaction.[ch]: new GtkAction subclass which
	remembers the PlugInProcDef.

	* app/widgets/gimpactiongroup.[ch]: added "gpointer user_data" to
	the GimpActionGroup struct and to gimp_action_group_new(). Removed
	the user_data parameter from gimp_action_group_add_*_actions().

	* app/widgets/gimpactionfactory.[ch]: changed accordingly.

	* app/actions/*-actions.[ch]: removed user_data from all setup_funcs.

	* app/actions/plug-in-actions.c: use a GimpPlugInAction and
	finally use the right user_data for the callback so plug-in
	callbacks have a proper context.

	* app/gui/plug-in-menus.[ch]: renamed plug_in_menus_create2() to
	plug_in_menus_setup().

	* app/gui/image-menu.c
	* app/gui/toolbox-menu.c: changed accordingly.
2004-04-27 13:55:26 +00:00
Michael Natterer 4e8105c12f Correctly translated & sorted plug-in actions & menu entries:
2004-04-27  Michael Natterer  <mitch@gimp.org>

	Correctly translated & sorted plug-in actions & menu entries:

	* app/widgets/gimpuimanager.[ch]: added a "gchar *name" property
	and a hash table which keeps all created UI managers (similar to
	GimpActionGroup's hash table). Added function
	gimp_ui_managers_from_name() which returns a list of all managers
	with the given name.

	* app/widgets/gimpmenufactory.c: register a name per UI manager
	and pass the name to gimp_ui_manager_new().

	* app/actions/plug-in-actions.c: added code which correctly
	translates the created plug-in actions and also creates translated
	menu actions for the plug-in's menu_path elements.

	* app/gui/plug-in-menus.[ch]: sort the plug-ins' menu entries
	using a GTree. For each entry, recursivlely create submenus
	from the dynamic menu actions created above before creating
	the plug-in's menu entry itself.

	* app/gui/image-menu.c (image_menu_setup2)
	* app/gui/toolbox-menu.c (toolbox_menu_setup2): call
	plug_in_menus_create2().

	* app/gui/gui-vtable.c (gui_menus_create_entry)
	(gui_menus_delete_entry): added some uglyness which maps old <Prefix>
	menu identifiers to new-style UI manager plus ui_path tuples and
	call plug_in_menus_add,remove_proc() accordingly.

	* menus/image-menu.xml
	* menus/toolbox-menu.xml: added name="Foo" attributes to all menus
	so plug-in entries find their place.
2004-04-27 12:28:27 +00:00
Michael Natterer af517f93aa changed GimpMenusDeleteFunc to take a PlugInProcDef* instead of a const
2004-04-25  Michael Natterer  <mitch@gimp.org>

	* app/core/gimp.[ch]: changed GimpMenusDeleteFunc to take
	a PlugInProcDef* instead of a const gchar*.

	* app/plug-in/plug-ins.c
	* app/gui/gui-vtable.c
	* app/gui/plug-in-menus.[ch]: changed accordingly.
2004-04-25 08:22:22 +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
Michael Natterer cf13615514 app/gui/file-open-menu.c app/gui/file-save-menu.c app/gui/image-menu.c
2004-01-20  Michael Natterer  <mitch@gimp.org>

	* app/gui/file-open-menu.c
	* app/gui/file-save-menu.c
	* app/gui/image-menu.c
	* app/gui/menus.c
	* app/gui/plug-in-menus.c: when dynamically creating menu entries,
	pass static_entry == FALSE to gimp_item_factory_create_item() so a
	*copy* of the the help_id is attached to the menu item.
	Fixes help for plug-in menu entries.
2004-01-20 02:37:28 +00:00
Sven Neumann 9a2173a432 only call bind_textdomain_codeset() when it is available. Spotted by
2004-01-12  Sven Neumann  <sven@gimp.org>

	* app/gui/plug-in-menus.c (plug_in_menus_init): only call
	bind_textdomain_codeset() when it is available. Spotted by
	Reinhard Geissler (bug #131215).
2004-01-12 11:33:28 +00:00
Michael Natterer c947f0b297 remember the "create_tearoff" passed to gimp_item_factory_new() in the
2003-11-08  Michael Natterer  <mitch@gimp.org>

	* app/widgets/gimpitemfactory.[ch]: remember the "create_tearoff"
	passed to gimp_item_factory_new() in the GimpItemFactory struct
	and removed "create_tearoff" from the create_item functions
	(it makes no sense to pass this per create_item).

	* app/gui/file-open-menu.c
	* app/gui/file-save-menu.c
	* app/gui/image-menu.c
	* app/gui/menus.c
	* app/gui/plug-in-menus.c
	* app/gui/tool-options-menu.c: changed accordingly.

	* app/display/gimpdisplayshell.c (gimp_display_shell_new): create
	the menu bar without tearoff entries. It is very confusing to have
	both the popup menu (which is global and works on the active
	display) and the menu bar submenus (which are specific to this
	display) be torn off at the same time.
2003-11-08 18:07:33 +00:00
Sven Neumann 555038debf app/composite/gimp-composite-generic.c app/composite/gimp-composite-mmx.c
2003-09-16  Sven Neumann  <sven@gimp.org>

	* app/composite/gimp-composite-generic.c
	* app/composite/gimp-composite-mmx.c
	* app/composite/gimp-composite-sse.c
	* app/composite/gimp-composite-sse2.c
	* app/config/gimpconfig-deserialize.c
	* app/config/gimpconfig-path.c
	* app/config/gimpconfig-serialize.c
	* app/core/cpercep.c
	* app/core/gimpunit.c
	* app/gui/palette-import-dialog.c
	* app/gui/plug-in-menus.c
	* app/paint-funcs/paint-funcs-generic.h
	* app/paint-funcs/paint-funcs.c
	* app/pdb/procedural_db.c
	* app/text/gimptextlayout-render.c
	* app/tools/gimpfuzzyselecttool.c
	* app/widgets/gimpcursor.c: some trivial code cleanups: avoid
	casts that discard const qualifiers and avoid useless comparisons
	on unsigned variables. Also reordered qualifiers in function
	declarations (static comes before const).
2003-09-16 13:12:50 +00:00
Manish Singh 8caca0bf68 added a prominent comment for translators to make sure they have all 4 po
2003-08-31  Manish Singh  <yosh@gimp.org>

        * configure.in: added a prominent comment for translators to make
        sure they have all 4 po files before adding to ALL_LINGUAS.

        * app/gui/plug-in-menus.c: remove redudant #include of gimpenv.h

        * tools/pdbgen/pdb/plug_in.pdb: gimp_strip_uline menu_path before
        passing it up.

        * app/pdb/plug_in_cmds.c: regenerated.

        * plug-ins/common/mng.c
        * plug-ins/common/psd_save.c
        * plug-ins/common/psp.c: use G_N_ELEMENTS

        * plug-ins/common/screenshot.c: use GDK_WINDOWING_* for #includes
        too. GDK cursor enums are ok to pass to XCreateFontCursor.

        * plug-ins/dbbrowser/dbbrowser_utils.c: minor cleanups, also use
        gtk_cell_renderer_text_set_fixed_height_from_font as an optimization.

        * plug-ins/libgck/gck/gckcolor.c: #undef GDK_DISABLE_DEPRECATED and
        add warning.

        * plug-ins/pygimp/gimpfu.py: remove some redundant import gtk's
2003-08-31 17:23:01 +00:00
Michael Natterer 1f2c75e507 Completed the new help infrastructure. Needs some polishing but basically
2003-08-28  Michael Natterer  <mitch@gimp.org>

	Completed the new help infrastructure. Needs some polishing but
	basically works as proposed:

	* tools/pdbgen/pdb/plug_in.pdb: changed gimp_plugin_help_register()
	to take a "domain_name" (which is the XML namespace) and a
	"domain_uri" (which is the root of the plug-in's help pages).

	* tools/pdbgen/pdb/help.pdb: changed gimp_help() to take help_id
	instead of a non-UTF-8 help_path.

	* app/plug-in/plug-in-def.[ch]
	* app/plug-in/plug-in-proc.[ch]
	* app/plug-in/plug-in-rc.c
	* app/plug-in/plug-ins.[ch]: remember the plug-ins' help_domain
	and help_uri instead of just help_path. Changed all plug-in APIs
	to reflect this change.

	* app/widgets/gimphelp.[ch]: on helpbrowser startup, pass it the
	whole list of help domains. The actual help request is now made
	using the browser's temporary procedure.

	* app/core/gimp.h
	* app/gui/file-open-menu.c
	* app/gui/file-save-menu.c
	* app/gui/plug-in-menus.[ch]
	* app/widgets/gimpitemfactory.c: changed accordingly.

	* app/pdb/help_cmds.c
	* app/pdb/plug_in_cmds.c
	* libgimp/gimphelp_pdb.[ch]
	* libgimp/gimpplugin_pdb.[ch]: regenerated.

	Changed the help broser to load the pages according to the
	new system:

	- moved the browser window stuff to dialog.[ch]
	- moved help domain handling to domain.[ch]
	- added gimp-help.xml parsing to domain.c
	- tons of cleanup

	* plug-ins/helpbrowser/Makefile.am
	* plug-ins/helpbrowser/dialog.[ch]
	* plug-ins/helpbrowser/domain.[ch]: new files.
	* plug-ins/helpbrowser/helpbrowser.c: chopped.
2003-08-28 18:49:11 +00:00
Michael Natterer 86662cd66b Bye bye, "crappy/foo.html":
2003-08-26  Michael Natterer  <mitch@gimp.org>

	Bye bye, "crappy/foo.html":

	* app/widgets/gimphelp-ids.h: replaced "crappy/foo.html" by
	"gimp-proper-identifier".

	* app/plug-in/plug-in-proc.[ch] (plug_in_proc_def_get_help_id):
	added "const gchar *help_path" parameter and return a help ID
	ready for attaching to a menu item.

	The help ID is no longer constructed from the plug-in's executable
	name but from the *procedure* name with '_' replaced by '-'. This
	means we can now have help for each script-fu script and for each
	of a plug-in's individual procedures.

	* app/gui/plug-in-menus.c: removed even more duplicated wrong code
	since plug_in_proc_def_get_help_id() is implemented correctly now.

	* app/gui/file-open-menu.c
	* app/gui/file-save-menu.c: ditto. Reorder the "XCF" menu item
	before the separator and added GIMP_STOCK_WILBER.

	* app/gui/file-dialog-utils.c: added a mnemonic to the
	"Determine File Type:" label.
2003-08-26 15:12:47 +00:00
Michael Natterer dec69db166 removed the "locale_domain" and "help_path" parameters since the function
2003-08-25  Michael Natterer  <mitch@gimp.org>

	* app/plug-in/plug-ins.[ch] (plug_ins_temp_proc_def_add): removed
	the "locale_domain" and "help_path" parameters since the function
	can figure them by itself.

	* app/plug-in/plug-in-message.c (plug_in_handle_proc_install):
	changed accordingly.

	* app/plug-in/plug-in-proc.[ch] (plug_in_proc_def_get_help_id):
	new function which will soon be implemented correctly :-)

	* app/gui/file-open-menu.c (file_open_menu_setup)
	* app/gui/file-save-menu.c (file_save_menu_setup)
	* app/gui/plug-in-menus.c (plug_in_menus_create_entry): use it
	here instead of duplicating broken code.
2003-08-25 16:28:46 +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
Henrik Brix Andersen f36a63f68c removed function gimp_menu_path_strip_uline() ...
2003-08-09 Henrik Brix Andersen <brix@gimp.org>

* gimp/app/widgets/gimpwidgets-utils.[ch]: removed function
gimp_menu_path_strip_uline() ...

* gimp/libgimpbase/gimputils.[ch]: ... and added it here under the
name gimp_strip_uline()

* gimp/devel-docs/libgimpbase/libgimpbase-sections.txt: added
gimp_strip_uline to gimputils section

* gimp/app/plug-in/plug-in.c
* gimp/app/widgets/gimpitemfactory.c
* gimp/app/widgets/gimptoolbox.
* gimp/app/gui/plug-in-menus.c: changed accordingly

* gimp/plug-ins/script-fu/script-fu-scripts.c
(script_fu_interface): use gimp_strip_uline() to strip mnemonics
from script-fu menu paths

* gimp/app/gui/vectors-menu.c
* gimp/app/gui/templates-menu.c
* gimp/app/gui/qmask-menu.c
* gimp/app/gui/palettes-menu.c
* gimp/app/gui/palette-editor-menu.c
* gimp/app/gui/images-menu.c
* gimp/app/gui/gradients-menu.c
* gimp/app/gui/gradient-editor-menu.c
* gimp/app/gui/documents-menu.c
* gimp/app/gui/dialogs-menu.c
* gimp/app/gui/colormap-editor-menu.c
* gimp/app/gui/channels-menu.c
* gimp/app/gui/buffers-menu.c
* gimp/app/gui/brushes-menu.c
* gimp/app/gui/layers-menu.c
* gimp/plug-ins/pygimp/plug-ins/clothify.py
* gimp/plug-ins/pygimp/plug-ins/shadow_bevel.py
* gimp/plug-ins/pygimp/plug-ins/whirlpinch.py
* gimp/plug-ins/pygimp/plug-ins/foggify.py
* gimp/plug-ins/script-fu/scripts/*.scm
* gimp/plug-ins/script-fu/script-fu.c: added mnemonics fixing more
of bug #106991

* gimp/app/gui/error-console-menu.c (error_console_menu_update):
updated menu item names, added mnemonics

* gimp/plug-ins/common/animoptimize.c *
gimp/plug-ins/common/animationplay.c: don't prepend every menu
entry with "Animation"
2003-08-11 17:14:32 +00:00
Henrik Brix Andersen 65b2130a9a app/gui/plug-in-menus.c (plug_in_menus_update) use
2003-08-04 Henrik Brix Andersen <brix@gimp.org>

* app/gui/plug-in-menus.c (plug_in_menus_update)
* app/plug-in/plug-in.c (plug_in_get_undo_desc): use
gimp_menu_path_strip_uline() to strip plug-in mnemonics from
undo/redo, repeat and re-show menu entries
2003-08-04 19:16:18 +00:00
Michael Natterer 9f530a3021 new function which takes menu_paths with mnemonics and removes them so
2003-07-02  Michael Natterer  <mitch@gimp.org>

	* app/widgets/gimpwidgets-utils.[ch] (gimp_menu_path_strip_uline):
	new function which takes menu_paths with mnemonics and removes
	them so they can be used as identifiers.

	* app/gui/plug-in-menus.c: use the new function. Enables mnemonics
	for plug-in menu entries. Removed plug_in_escape_uline() which
	implemented disabling them.

	* app/widgets/gimptoolbox.c (toolbox_create_tools): use it here
	too, made the function more robust.
2003-07-02 09:54:48 +00:00
Jakub Steiner 7e6b71c8fd app/gui/image-menu.c app/gui/plug-in-menus.c app/gui/toolbox-menu.c Added
2003-07-01  Jakub Steiner <jimmac@ximian.com>

* app/gui/image-menu.c
* app/gui/plug-in-menus.c
* app/gui/toolbox-menu.c
* app/tools/gimp*tool.c: Added mnemonics (bug #106991).
  Plug-ins and Script-Fus next.
2003-07-01 16:22:03 +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 4a8118070a added plug_ins_proc_def_find() which takes a ProcRecord and returns the
2003-02-18  Michael Natterer  <mitch@gimp.org>

	* app/plug-in/plug-ins.[ch]: added plug_ins_proc_def_find() which
	takes a ProcRecord and returns the corresponding PlugInProcDef.

	* app/plug-in/plug-in.[ch]: added a ProcRecord pointer to the
	PlugIn struct so we know which procedure the plug-in is
	executing. Replaced "gboolean in_temp_proc" by
	"ProcRecord *current_temp_proc". Added plug_in_get_undo_desc()
	which uses the new ProcRecord members and plug_ins_proc_def_find()
	to return a human readable string.

	* app/plug-in/plug-in-run.c: pass the ProcRecord to plug_in_new().
	Set plug_in->current_temp_proc while executing a temp_proc.
	(The latter won't work since we don't run temp_procs recursively
	at the moment).

	* app/gui/plug-in-menus.c: translate the plug-in's menu_path
	before chopping it for the "Repeat" and "Reshow" menu items.

	* tools/pdbgen/pdb/drawable.pdb
	* tools/pdbgen/pdb/undo.pdb: use plug_in_get_undo_desc() when
	pushing plug-in undos.

	* app/pdb/drawable_cmds.c
	* app/pdb/undo_cmds.c: regenerated.
2003-02-18 14:08:14 +00:00
Michael Natterer af330e9659 added lots of members for the complete state of the plug-ins.
2003-02-11  Michael Natterer  <mitch@gimp.org>

	* app/core/gimp.h: added lots of members for the complete
	state of the plug-ins.

	* app/plug-in/plug-in-types.h: added PlugInShm typedef.

	* app/plug-in/plug-in-message.c
	* app/plug-in/plug-in-rc.[ch]
	* app/plug-in/plug-in-run.[ch]
	* app/plug-in/plug-in-shm.c
	* app/plug-in/plug-in.[ch]
	* app/plug-in/plug-ins.[ch]: removed all global & static variables
	and pass around more "Gimp" pointers.

	* app/plug-in/plug-in-debug.c: use G_N_ELEMENTS().

	* app/gui/image-menu.c
	* app/gui/plug-in-commands.c
	* app/gui/plug-in-menus.c
	* app/gui/toolbox-menu.c
	* app/xcf/xcf.c
	* tools/pdbgen/pdb/fileops.pdb
	* tools/pdbgen/pdb/plug_in.pdb: changed accordingly.

	* app/pdb/fileops_cmds.c
	* app/pdb/plug_in_cmds.c: regenerated.
2003-02-11 12:07:31 +00:00
Michael Natterer a3c388149d renamed plug_in->busy to plug_in->in_temp_proc. Added a stack of
2003-01-30  Michael Natterer  <mitch@gimp.org>

	* app/plug-in/plug-in.[ch]: renamed plug_in->busy to
	plug_in->in_temp_proc. Added a stack of GMainLoops to each
	plug-in. Added the "current_return_vals" to the PlugIn
	struct. Renamed plug_in_kill() to plug_in_exit(). Removed
	the stuff added below. Cleanup.

	* app/plug-in/Makefile.am
	* app/plug-in/plug-in-message.[ch]
	* app/plug-in/plug-in-run.[ch]
	* app/plug-in/plug-in-shm.[ch]: new files taking out functionality
	from the overloaded plug-in.c. Added the code back in that implements
	temp proc return messages (inside an #ifdef) because i don't
	really get why it was removed on Sep 19 1998.

	* app/plug-in/plug-ins.c: changed accordingly.

	* app/plug-in/plug-in-def.c
	* app/plug-in/plug-in-params.c: removed inclusion of <gtk/gtk.h>.

	* app/gui/file-save-dialog.c
	* app/gui/paths-dialog.c
	* app/gui/plug-in-commands.c
	* app/gui/plug-in-menus.c
	* app/pdb/procedural_db.c
	* app/widgets/gimphelp.c: changed plug-in includes accordingly.

	* app/gui/plug-in-commands.c: don't use "the_gimp" from
	"app_procs.h" but get it from the GimpItemFactory that invoked the
	plug-in callback.
2003-01-30 11:20:12 +00:00
Michael Natterer a31c0f7d19 One more Plug-In cleanup, it's still a mess...
2003-01-17  Michael Natterer  <mitch@gimp.org>

	One more Plug-In cleanup, it's still a mess...

	* app/plug-in/plug-in-def.[ch]: renamed "gboolean query" field
	to "needs_query". Added setters for all values. Added
	g_return_if_fail() stuff to all functions.

	* app/plug-in/plug-in-proc.[ch]: added plug_in_proc_def_new().
	Removed the "gboolean data_only" parameter from
	plug_in_proc_def_destroy() and renamed it to
	plug_in_proc_def_free().  Added plug_in_proc_def_get_progname()
	which handles GIMP_TEMPORARY procedures correctly.

	* app/plug-in/plug-in-rc.c: use the new stuff above.

	* app/plug-in/plug-in.[ch]: renamed field "user_data" to
	"plug_in_def" and added a comment that it is valid only during
	query() and init().  Use the new APIs above. Pass meaningful
	locale_domains and help_paths when adding temporary procedures
	(fixes Scrip-Fu menu translation the right way (TM)). Cleanup.

	* app/plug-in/plug-ins.[ch]: renamed plug_ins_def_add() to
	plug_ins_def_add_from_rc(). Renamed plug_ins_proc_def_[add|remove]()
	to plug_ins_temp_proc_def_[add|remove](). Added "Gimp" parameters
	to plug_ins_help_path() and plug_ins_locale_domain(). Removed
	unused pre-1.2 cruft "gimprc_prof_defs" and plug_ins_image_types().
	Reverse gimp->load_procs and gimp->save_procs after all procedures
	are registered. Removed Script-Fu translation hack. Reordered stuff.

	* app/gui/plug-in-menus.[ch]: changed accordingly. Named all
	public functions plug_in_menus_*(). Fixed Script-Fu menu translation
	by using plug_in_proc_def_get_progname(). Cleanup.

	* app/gui/file-open-menu.c
	* app/gui/file-save-menu.c: don't g_slist_reverse() gimp->load_procs
	and gimp->save_procs here.

	* app/gui/toolbox-menu.c
	* app/gui/image-menu.c
	* tools/pdbgen/pdb/help.pdb
	* tools/pdbgen/pdb/plug_in.pdb: changed accordingly.

	* app/pdb/help_cmds.c
	* app/pdb/plug_in_cmds.c: regenerated.

	Unrelated:

	* app/gui/image-menu.c
	* app/widgets/gimpitemfactory.c: s/"tearoff1"/"tearoff"/g. I don't
	get why the "1" was there. Minor cleanup.
2003-01-17 18:07:37 +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
Sven Neumann 1f47a470b3 app/app_procs.c app/core/gimp.c app/gui/gui.c removed debugging output.
2002-12-30  Sven Neumann  <sven@gimp.org>

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

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

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

	* plug-ins/imagemap/Makefile.am (EXTRA_DIST): removed references
	to files that were removed some time ago.
2002-12-30 00:01:30 +00:00
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 80357a00c0 added a "const gchar *textdomain" parameter so g_object_[set|get]_data()
2002-09-25  Michael Natterer  <mitch@gimp.org>

	* app/widgets/gimpitemfactory.[ch] (gimp_item_factory_create_item):
	added a "const gchar *textdomain" parameter so
	g_object_[set|get]_data() hacks needed for translation are private
	stuff of GimpItemFactory. Use more qdata instead of just data,
	minor cleanup.

	* app/gui/plug-in-menus.c: pass the textdomain as paramater
	instead of g_object_setting it on the item_factory.

	* app/gui/file-open-dialog.c
	* app/gui/file-save-dialog.c
	* app/gui/menus.c: pass NULL as textdomain.
2002-09-25 10:39:41 +00:00
Michael Natterer faeee02752 escape underscores in plug-in menu entries so they don't end up as
2002-09-23  Michael Natterer  <mitch@gimp.org>

	* app/gui/plug-in-menus.c: escape underscores in plug-in menu
	entries so they don't end up as mnemonics.
2002-09-23 09:48:52 +00:00
Michael Natterer d8088f9996 g_strdup(entry->help_path) if static_entry == FALSE.
2002-08-27  Michael Natterer  <mitch@gimp.org>

	* app/widgets/gimpitemfactory.c: g_strdup(entry->help_path) if
	static_entry == FALSE.

	* app/gui/file-open-dialog.c
	* app/gui/file-save-dialog.c
	* app/gui/plug-in-menus.c: free the help string after adding
	a menu item with static_entry == FALSE.
2002-08-27 14:45:05 +00:00
Hans Breuer 8522a8470d add appconfig.lib. Statically link libgimptool/gimptool.lib.
2001-05-11  Hans Breuer  <hans@breuer.org>

	* app/makefile.msc : add appconfig.lib. Statically
	link libgimptool/gimptool.lib.

	* app/main.c : use gimp_locale_directory()

	* app/config/gimpconfig-utils.c : <string.h>

	* app/config/makefile.msc : add gimpscanner

	* app/core/gimpimagefile.c : some G_OS_WIN32 mess to get
	mkdir() and chmod()

	* app/display/gimpdisplayshell.c
	  app/plug-in/plug-in-progrss.c
	  app/tool/gimpcolorpickertool.c
	  app/tool/gimpcroptool.c
	  app/tool/gimpmeasuretool.c
	  app/tool/gimpperspectivetool.c
	  app/tool/gimprotatetool.c
	  app/tool/gimpscaletool.c
	  app/tool/gimpsheartool.c
	  app/tool/gimptransformtool.c
	  app/widgets/gimpcolormapeditor.c
	  app/widgets/gimpcolorpanel.c
	  app/widgets/gimptoolbox-color-area.c
	add #ifdef __GNUC__ to avoid breaking on non standard
	pragma #warning

	* app/tools/makefile.msc : add gimptoolcontrol remove
	tools-enum

	* app/tools/tool_manager.c : need to include
	libgimptool/gimptoolcontrol.h after core includes
	otherwise we would compile without prototypes or
	break miserably

	* app/gui/plug-in-menus.c : replace LOCALEDIR with
	gimp_locale_directory ()

	* app/gui/preferences-dialog.c (prefs_notebook_append_page) :
	only try to gdk_pixbuf_new_from_file() with a valid filename.
	It should simply return NULL otherwise, but fails if the
	filename is an empty string.

	* app/paint-funcs/makefile.msc : add -FImsvc_recommended_pragmas.h

	* app/widgets/gimpcolormapeditor.c : the 'row'
	allocated needs to be 'xn * cellsize * 2' (to avoid
	accessing unowned memory) not only width, which has
	become allocation.width by someone commenting out
	the correct size calculation

	* app/widgets/gimpdialogfactory.c : varargs to macros
	are GCCism or at least non standard. #define DEBUG
	to g_print or nothing - without arguments - does fix
	it somewhat dirty as the compiler needs to tolerate
	the '(blah, foo, bar);' statement than

	* app/widgets/makefile.msc : updated

	* app/xcf/makefile.msc : add -FImsvc_recommended_pragmas.h

	* etc/gimprc.win32 : use ';' to separate theme-path

	* libgimpbase/gimpenv.c : #include <stdio.h>
	for sprintf()

	* app/widgets/gimpdnd.c (gimp_dnd_set_file_data) :
	the passed in vals chunk is not always null-terminated
	(at least not on win32). Use the length parameter too
	to avoid reading junk filenames.

	* libgimp/gimp.def : export gimp_image_get_name()

	* libgimpbase/gimpbase.def : export gimp_locale_directory()
	* libgimpbase/gimpenv.[ch] : added gimp_locale_directory ()

	* libgimpbase/makefile.msc : define DATADIR and SYSCONFDIR
	to empty string to let gimp find its files in the common
	place (win32: relative to the top level gimp dir)

	* plug-ins/common/pixelize.c : <string.h>

	* plug-ins/flame/cmap.c : #include <glib.h> for g_random_int()

	* plug-ins/makefile.msc : -FImsvc_recommended_pragams.h
	and a little hack to give imagemap the prototypes it
	desires without changing the lexed source

	* themes/Default/images/makefile.msc : now added (see below)

	* themes/Default/images/stock-button-reset.png : made it binary
2002-05-10 23:30:09 +00:00
Sven Neumann f8de6fe33f removed (wrong) definition of LOCALEDIR.
2002-05-07  Sven Neumann  <sven@gimp.org>

	* libgimp/gimpintl.h: removed (wrong) definition of LOCALEDIR.

	* libgimp/stdplugins-intl.h: fixed typo in domainname that broke i18n
	of plug-ins.

	* app/gui/Makefile.am: define LOCALEDIR.

	* app/gui/plug-in-menus.c
	* app/plug-in/plug-in.h
	* app/plug-in/plug-ins.[ch]: declared translation domain and help path
	as const strings.

	* plug-ins/print/print.c
	* plug-ins/print/print_gimp.h: minor cleanups.
2002-05-07 11:33:58 +00:00
Michael Natterer 47c5473e46 badly chopped into the new files below. Pass around much more "PlugIn" and
2002-03-20  Michael Natterer  <mitch@gimp.org>

	* app/plug-in/plug-in.[ch]: badly chopped into the new files below.
	Pass around much more "PlugIn" and "Gimp" pointers instead of
	using "current_plug_in" and "the_gimp". Needs much more hacking
	though... :(

	* app/plug-in/Makefile.am
	* app/plug-in/plug-in-def.[ch]
	* app/plug-in/plug-in-params.[ch]
	* app/plug-in/plug-in-progress.[ch]
	* app/plug-in/plug-ins.[ch]: new files.

	* app/gui/Makefile.am
	* app/gui/plug-in-commands.[ch]
	* app/gui/plug-in-menus.[ch]: ditto.

	* app/plug-in/plug-in-rc.c
	* app/plug-in/plug-in-types.h: changed accordingly.

	* app/pdb/procedural_db.c: changed procedural_db_destroy_args()
	so it can be used from plug_in_args_destroy(). Fixed a parasite
	memory leak (or introduced a new SEGV, we'll see...).

	* app/display/Makefile.am: another "truly ugly hack" until the
	plug-in menu stuff is chopped even more...

	* app/gui/commands.[ch]: removed filters_repeat_cmd_callback() here,
	it is now in plug-in-commands.[ch].

	* app/widgets/gimpitemfactory.[ch]: removed all gimp_menu_item_*()
	hacks. We have a GimpItemFactory available in most cases we used
	to call this functions, and can use gimp_item_factors_from_path()
	in all other cases. The item factory stuff needs more work
	anyway...

	* app/app_procs.c
	* app/gimphelp.c
	* app/display/gimpdisplayshell.c
	* app/gui/file-dialog-utils.c
	* app/gui/file-open-dialog.[ch]
	* app/gui/file-save-dialog.[ch]
	* app/gui/gui.c
	* app/gui/menus.c
	* app/gui/paths-dialog.c
	* app/xcf/xcf.c
	* tools/pdbgen/pdb/fileops.pdb
	* tools/pdbgen/pdb/help.pdb
	* tools/pdbgen/pdb/plug_in.pdb: changed accordingly (includes,
	renamed functions and gimp_menu_item_*() removal).

	* app/pdb/fileops_cmds.c
	* app/pdb/help_cmds.c
	* app/pdb/plug_in_cmds.c: regenerated.
2002-03-20 17:46:13 +00:00
Michael Natterer 17d655c1c3 app/gimprc.[ch] app/gui/preferences-dialog.c
2002-03-12  Michael Natterer  <mitch@gimp.org>

	* app/gimprc.[ch]
	* app/gui/preferences-dialog.c
	* app/paint/gimppaintoptions.[ch]
	* app/tools/paint_options.[ch]
	* app/tools/tool_manager.[ch]: removed the "global_paint_options"
	gimprc option because it doesn't quite fit the new dockable dialog
	architecture.

	* app/gui/brush-select.[ch]
	* app/gui/gradient-select.[ch]
	* app/gui/palette-select.[ch]
	* app/gui/pattern-select.[ch]: removed the "Global Brush/Pattern/...
	Selection" part of them. They are now only used for temp popup
	selections and the PDB. *Lots* of cleanup.

	* app/gui/convert-dialog.c
	* app/gui/dialogs-constructors.[ch]
	* app/gui/dialogs.c
	* app/gui/gui.c
	* app/gui/menus.c
	* app/gui/palette-import-dialog.c
	* app/plug-in/plug-in.c: changed accordingly.

	Cleaned up the palette and other data PDB stuff:

	* tools/pdbgen/Makefile.am
	* tools/pdbgen/groups.pl: added "palette_select" and "palettes".

	* tools/pdbgen/pdb/palette_select.pdb: new file. Makes the palette
	selection PDB controllable.

	* tools/pdbgen/pdb/palettes.pdb: new file cut out of palette.pdb
	because of API symmetry with brushes, patterns, ...

	* tools/pdbgen/pdb/palette.pdb: removed from here.

	* tools/pdbgen/pdb/brush_select.pdb
	* tools/pdbgen/pdb/brushes.pdb
	* tools/pdbgen/pdb/gradient_select.pdb
	* tools/pdbgen/pdb/gradients.pdb
	* tools/pdbgen/pdb/palette.pdb
	* tools/pdbgen/pdb/pattern_select.pdb
	* tools/pdbgen/pdb/patterns.pdb: lots of cleanup.

	Autogenerated stuff:

	* app/pdb/Makefile.am
	* app/pdb/palette_select_cmds.c
	* app/pdb/palettes_cmds.c: new files.

	* app/pdb/brush_select_cmds.c
	* app/pdb/brushes_cmds.c
	* app/pdb/gradient_select_cmds.c
	* app/pdb/gradients_cmds.c
	* app/pdb/internal_procs.c
	* app/pdb/palette_cmds.c
	* app/pdb/pattern_select_cmds.c
	* app/pdb/patterns_cmds.c: regenerated.

	* libgimp/Makefile.am
	* libgimp/gimp_pdb.h
	* libgimp/gimppalettes_pdb.[ch]
	* libgimp/gimppaletteselect_pdb.[ch]: new files.

	* libgimp/gimpgradientselect_pdb.[ch]
	* libgimp/gimppalette_pdb.[ch]
	* libgimp/gimppatterns_pdb.c: regenerated.

	* devel-docs/libgimp/tmpl/gimpgradients.sgml
	* devel-docs/libgimp/tmpl/gimppalette.sgml: regenerated.
2002-03-12 21:02:10 +00:00