Commit Graph

14 Commits

Author SHA1 Message Date
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 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 ef30cf315d app/gui/image-menu.c moved the convenience items which create new docks
2003-06-06  Michael Natterer  <mitch@gimp.org>

	* app/gui/image-menu.c
	* app/gui/toolbox-menu.c: moved the convenience items which
	create new docks from the "Dialogs/" level to a new
	"Dialogs/Create New Dock/" sub-menu.  Fixes bug #111278.

	* app/gui/dialogs-commands.[ch] (dialogs_create_data_cmd_callback):
	new convenience constructor callback. Factored out duplicated
	code to the new dialogs_create_dock() utility function.
2003-06-06 12:16:13 +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 b879840890 g_strdup() the stock_id passed to gimp_tool_info_new() because the
2002-03-14  Michael Natterer  <mitch@gimp.org>

	* app/core/gimptoolinfo.c: g_strdup() the stock_id passed to
	gimp_tool_info_new() because the caller's memory may disappear
	after registering the tool (tool modules).

	Made a GimpDock out of the toolbox:

	* app/gui/Makefile.am
	* app/gui/color-area.[ch]
	* app/gui/indicator-area.[ch]
	* app/gui/toolbox.[ch]: removed...

	* app/widgets/Makefile.am
	* app/widgets/widgets-types.h
	* app/widgets/gimptoolbox-color-area.[ch]
	* app/widgets/gimptoolbox-indicator-area.[ch]
	* app/widgets/gimptoolbox.[ch]: ...and added here.

	* app/widgets/gimpdock.[ch]: don't set a minimal width. Added a
	"destroy_if_empty" boolean so we can prevent destruction of the
	toolbox if it's last dockable is removed. Added gimp_dock_construct()
	which is called from GimpImageDock and GimpToolbox.

	* app/widgets/gimpimagedock.[ch]: Default to not showing the image
	menu, set a minimal width here, misc. minor cleanup.

	* app/widgets/gimpdockbook.c: some more GIMP_IS_IMAGE_DOCK()
	checks, fixed dnd widget creation.

	* app/widgets/gimpdialogfactory.[ch]: changed
	gimp_dialog_factories_toggle() to take just the toolbox_factory as
	parameter. When restoring the session use the created dock's
	dialog factory to create dockables, not the the factory we
	created the dock from (for the toolbox).

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

	* app/gui/dialogs.[ch]: create an own dialog factory for the toolbox
	and set dialogs_toolbox_new() as it's new_dock_func.

	* app/gui/dialogs-constructors.[ch]: changed dialogs_toolbox_get()
	accordingly.

	* app/gui/dialogs-commands.[ch]: added dialogs_show_toolbox(), ckeck
	if a dock is really a GimpImageDock before casting.

	* app/gui/gui.c
	* app/gui/menus.c
	* app/widgets/gimppaletteeditor.c: changed accordingly.

	* app/gui/color-notebook.c
	* app/gui/color-select.c
	* app/gui/colormap-dialog.c
	* app/gui/palette-editor-commands.c: removed useless inclusion of
	"gui/color-area.h".

	* themes/Default/gtkrc: set "gimp-dock-style" for GimpToolbox widgets.
2002-03-14 17:07:02 +00:00
Michael Natterer bba8413773 app/core/Makefile.am new files: the QMask stuff stripped from GUI code.
2001-11-30  Michael Natterer  <mitch@gimp.org>

	* app/core/Makefile.am
	* app/core/gimpimage-qmask.[ch]: new files: the QMask stuff
	stripped from GUI code. Added gimp_image_qmask_invert().

	* app/core/gimpimage.[ch]: removed the QMask functions.

	* app/display/Makefile.am
	* app/display/gimpdisplayshell-qmask.[ch]: removed.

	* app/gui/Makefile.am
	* app/gui/qmask-commands.[ch]: new files for the new QMask item
	factory callbacks and the qmask query dialog.

	* app/gui/menus.c: added a context menu for the QMask button.

	* app/display/gimpdisplayshell.c
	* app/display/gimpdisplayshell-handlers.c: don't include the qmask
	stuff.

	* app/display/gimpdisplayshell-callbacks.[ch]: Moved the 2 qmask
	callbacks here. Don't popup the dialog on double_click. Show
	the contect menu on right-click.

	* app/display/gimpdisplayshell-callbacks.[ch]:
	gimp_display_shell_canvas_events(): removed the hack of
	conntecting "key_press_event" to gtk_true() while a tool is
	active. Instead, check for (event & GDK_BUTTON1_MASK) in the
	key_press and key_release handlers and stop signal emission. Save
	the modifier state on "button_press" and restore it after
	"button_release".

	Changed the way context menus are updated/shown:

	- removed GimpContainerContextFunc.
	- pass around item factory identifiers (e.g. "<Brushes>")
	- added voodoo to update the menus before showing them.

	* app/widgets/gimpitemfactory.[ch]: gimp_item_factory_new(): take
	a GimpItemFactoryUpdateFunc parameter, attach it as data to the
	factory and use it to update the menu in
	gimp_item_factory_popup_with_date().

	* app/widgets/gimpwidgets-utils.[ch]: removed
	gimp_item_factory_popup_with_data() here.

	* app/widgets/gimpbrushfactoryview.[ch]
	* app/widgets/gimpbufferview.[ch]
	* app/widgets/gimpcontainereditor.[ch]
	* app/widgets/gimpdatafactoryview.[ch]
	* app/widgets/gimpdocumentview.[ch]
	* app/widgets/gimpdrawablelistview.[ch]: use item_factory
	identifier strings all over the place.

	* app/widgets/gimpdockbook.c: removed the menu update code, it's
	now in gui/dialogs-commands.c.

	* app/gui/brushes-commands.[ch]
	* app/gui/buffers-commands.[c]
	* app/gui/channels-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/layers-commands.[ch]
	* app/gui/palettes-commands.[ch]
	* app/gui/patterns-commands.[ch]: removed all show_context_menu()
	functions and made the update functions public. Changed all
	update functions to use the gimp_item_factory_set_foo() methods
	instead of gimp_menu_item_set_foo().

	* app/gui/menus.c: pass the update functions to the
	gimp_item_factory_new().

	* app/gui/dialogs-constructors.c: pass item factory identifiers to
	all view constructors.

	* app/gui/gradient-editor.c: show the context menu using the new
	method.

	* app/gui/toolbox.c: no need to include "dialogs-commands.h".
2001-11-30 14:41:56 +00:00
Michael Natterer b017fa1538 put the last_opened menu entries in a submenu called "Open Recent", added
2001-11-29  Michael Natterer  <mitch@gimp.org>

	* app/gui/menus.c: put the last_opened menu entries in a
	submenu called "Open Recent", added items to create a dock
	with some useful tabs in it ("Brushes, Patterns & Stuff..."),

	* app/gui/dialogs-commands.[ch]: added a callback for the new
	"Stuff" menu entry.

	* app/gui/dialogs-constructors.h: removed dialogs_lc_get()
	declaration because it doesn't exist.
2001-11-29 18:11:31 +00:00
Michael Natterer d463a5efdf removed a useless g_return_if_fail().
2001-11-23  Michael Natterer  <mitch@gimp.org>

	* app/core/gimpcontainer.c: removed a useless g_return_if_fail().

	* app/widgets/gimpcontainereditor.h: removed GimpViewType enum.

	* app/widgets/widgets-types.h: added it here.

	* app/widgets/gimpcontainerview-utils.[ch]: added a utility function
	which gets the GimpContainerView out of a GimpDockable.

	* app/widgets/gimpdialogfactory.[ch]: added support for saving and
	loading of each GimpDockable's preview size. Store the dialog's
	default preview size in the GimpDialogFactoryEntry.  Pass the
	preview_size to each created dialog.

	* app/gui/menus.c: added menu items for setting the preview_size
	and switching between list and grid view. Removed the item
	overkill in the "Add Tab" submenu.

	* app/gui/dialogs-commands.[ch]: added callbacks for the new items.

	* app/widgets/gimpdockbook.c: set the item's state before showing
	the menu.

	* app/errors.c
	* app/gui/dialogs-constructors.[ch]
	* app/gui/dialogs.c
	* app/gui/edit-commands.c
	* app/gui/gui.c
	* app/gui/indicator-area.c
	* app/gui/toolbox.c: changed accordingly.

	* app/tools/selection_options.[ch]: cleaned up the selection
	options and added some tooltips. Much more to do...
2001-11-23 16:25:01 +00:00
Michael Natterer b280b493c7 don't use the global "the_gimp" variable.
2001-07-15  Michael Natterer  <mitch@gimp.org>

	* app/core/gimp.c: don't use the global "the_gimp" variable.

	* app/core/gimpimage-convert.c: don't update the display here.

	* app/gui/gui.c: connect to the images' "mode_changed" signal
	and update here.

	* app/gui/brush-editor.[ch]
	* app/gui/gradient-editor.[ch]
	* app/gui/palette-editor.[ch]: pass a "Gimp" pointer to all
	editors. Added an palette_name entry to the palette editor.

	* app/gui/colormap-dialog.[ch]: removed all the dialog stuff and
	made the constructor return a vbox so it can be integrated in a
	dockable. Lots of cleanup and removal of anqiuqe aretfacts.

	* app/gui/dialogs-constructors.[ch]: wrap the colormap dialog in
	a dockable.

	* app/gui/dialogs-commands.[ch]
	* app/gui/dialogs.c
	* app/gui/menus.c: integrate the new dockable, made the "Brushes.."
	etc. menu entries create dockbles. Moved the old dialogs and the
	test menu entries to "Old + Testing" and removed N_() so the .po
	files stay cruft-free.

	* app/gui/test-commands.[ch]: removed lots of stuff which is not
	"testing" any more.
2001-07-15 14:32:44 +00:00
Michael Natterer 8a6f5a104d app/gui/dialogs-commands.[ch] added dialogs_toggle_auto_cmd_callback()
2001-07-02  Michael Natterer  <mitch@gimp.org>

	* app/gui/dialogs-commands.[ch]
	* app/gui/menus.c: added dialogs_toggle_auto_cmd_callback() which
	toggles GimpImageDock's "Auto" button.

	* app/gui/dialogs.c: ref/sink the global dialog factories.

	* app/widgets/gimpdialogfactory.[ch]: added some comments, some
	cleanups and additional checks. Factored out the "aux-info" stuff
	to separate functions.

	* app/widgets/gimpdockbook.c: set the state of the "Auto Follow
	Active Image" menu item.

	* app/widgets/gimpimagedock.[ch]: added a gboolean for
	"show_image_menu" so we don't need to fiddle around with the
	widgets to get this info. Added
	gimp_image_dock_set_auto_follow_active().
2001-07-02 14:58:02 +00:00
Michael Natterer d81b47ce70 removed GimpFillType.
2001-06-29  Michael Natterer  <mitch@gimp.org>

	* app/appenums.h: removed GimpFillType.

	* app/gimprc.c: parse the session-info's new "aux-info" field.

	* app/global_edit.[ch]: removed the old "Paste Named" dialog and
	prefixed all functions with "gimp_".

	* app/core/core-types.h: added GimpFillType.

	* app/core/gimpbrush.[ch]: new signal "spacing_changed".

	* app/gui/Makefile.am
	* app/gui/tools-commands.[ch]: one more file cut out of commands.[ch].

	* app/gui/commands.[ch]: removed the tools stuff here.

	* app/gui/brush-select.[ch]
	* app/gui/dialogs-constructors.c: use the new GimpBrushFactoryView
	(see below).

	* app/gui/dialogs-commands.[ch]
	* app/gui/menus.[ch]:

	- Made it 64bit safe again by passing the dialog factory's
	  identifiers as GQuarks, not as guints created by GPOINTER_TO_UINT().
	- Added a "gchar *quark_string" field to GimpItemFactoryEntry
	  which gets transformed into a GQuark by menus_create_item().
	- Added SEPARATOR() and BRANCH() macros which make the *_entries[]
	  arrays more readable.
	- Added a menu item to show/hide GimpImageDock's image menu.
	- Removed file_last_opened_cmd_callback().

	* app/gui/edit-commands.c: the global_edit functions are "gimp_"
	prefixed now.

	* app/gui/file-commands.[ch]: added file_last_opened_cmd_callback()
	here.

	* app/widgets/Makefile.am
	* app/widgets/widgets-types.h
	* app/widgets/gimpbrushfactoryview.[ch]: new widget: a
	GimpDataFactory subclass with a "spacing" scale.

	* app/widgets/gimpcontainereditor.[ch]:

	- Connect to the GimpContainerView's "select_item",
	  "activate_item" and "context_item" signals here once instead of
	  in each subclass and dispatch them via new virtual functions.
	- Added a convenience function which makes DND to the buttons much
	  less painful for subclasses.

	* app/widgets/gimpbufferview.c
	* app/widgets/gimpdatafactoryview.[ch]: changed accordingly.

	* app/widgets/gimpdialogfactory.[ch]:

	- Added gimp_dialog_factory_dialog_raise() which can raise
	  toplevel dialogs _and_ dockables (and creates them if they are
	  not open yet).
	- Keep track of all created dialogs (not only toplevels).
	- Added an "aux_info" field to GimpSessionInfo which is a GList of
	  gchar* and is saved in sessionrc.
	- Remember if GimpImageDock's image menu is visible by using an
	  aux_info string.
	- The code did not become nicer with all those new constraints. I
	  have to add comments before I forget how it works.

	* app/widgets/gimpdockbook.c: set the state of the "Show Image Menu"
	menu item before popping up the item factory.

	* app/widgets/gimpimagedock.[ch]: added
	gimp_image_dock_set_show_image_meu().

	* plug-ins/gdyntext/gdyntext.c
	* plug-ins/perl/examples/fit-text
	* plug-ins/perl/examples/terral_text
	* plug-ins/perl/examples/tex-to-float: register all text rendering
	plug-ins under <Image>/Filters/Text

	* app/pdb/brush_select_cmds.c
	* app/pdb/drawable_cmds.c
	* app/pdb/edit_cmds.c
	* tools/pdbgen/pdb/brush_select.pdb
	* tools/pdbgen/pdb/edit.pdb
	* tools/pdbgen/enums.pl
	* po/POTFILES.in: changed according to all the stuff above.
2001-06-29 19:25:03 +00:00
Michael Natterer 3bd0b97ec3 app/Makefile.am taken behind the curtain and shot. (famous words of Seth
2001-05-11  Michael Natterer  <mitch@gimp.org>

	* app/Makefile.am
	* app/lc_dialog.[ch]: taken behind the curtain and shot.
	(famous words of Seth Burgess on #gimp)

	* app/app_procs.c
	* app/gdisplay.c
	* app/gimage.c
	* app/gui/commands.c
	* app/gui/gui.c
	* app/gui/menus.c
	* app/gui/preferences-dialog.c: don't #include it or call it's
	functions any more.

	* app/gui/dialogs-commands.[ch]: added a constructor for a dock
	which looks like the old L&C dialog (taken from test-commands.*)

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

	* app/gui/dialogs-constructors.[ch]: wrapped the old
	paths-dialog.* stuff in a dockable which can be created only
	once. Will go away as soon as the new path stuff is there.

	* app/gui/dialogs.c: added the paths dockable, removed lc_dialog.

	* app/gui/paths-dialog.c: some changes to make it work without the
	lc_dialog around it. Will probably crash randomly and refuse to
	update it's contents properly (scheduled for removal).
2001-05-11 17:02:30 +00:00
Michael Natterer f283b957b1 app/session.[ch] removed the old dialog session management code...
2001-04-17  Michael Natterer  <mitch@gimp.org>

	* app/session.[ch]
	* app/gimprc.c: removed the old dialog session management code...

	* app/widgets/gimpdialogfactory.[ch]: ...and manage all dialogs here.

	* app/gui/dialogs-constructors.[ch]: dialog factory compliant
	constructors for all session managed toplevel dialogs.

	* app/brush_select.[ch]
	* app/devices.[ch]
	* app/docindex.[ch]
	* app/errorconsole.[ch]
	* app/gradient_select.[ch]
	* app/info_dialog.c
	* app/lc_dialog.[ch]
	* app/palette.[ch]
	* app/pattern_select.[ch]
	* app/toolbox.[ch]
	* app/tools/tool_options_dialog.[ch]: all dialog constructors have
	to return the dialog now (even the legacy ones that will go away).
	Removed the session management code as this is now done for the
	dialogs, not by them.

	* app/app_procs.c
	* app/color_select.c
	* app/commands.[ch]
	* app/indicator_area.c
	* app/menus.c
	* app/palette_select.c
	* app/preferences_dialog.c
	* app/gui/dialogs.c
	* app/gui/dialogs-commands.[ch]
	* app/gui/gui.c
	* app/tools/gimptool.c
	* app/widgets/gimpdock.c: changed accordingly.
2001-04-17 16:00:27 +00:00
Michael Natterer 517de92aa7 configure.in app/Makefile.am new directory which will contain all gui code
2001-04-14  Michael Natterer  <mitch@gimp.org>

	* configure.in
	* app/Makefile.am
	* app/gui/Makefile.am: new directory which will contain all gui code
	except widgets (I was tired off adding new files to app/).

	* app/apptypes.h
	* app/gui/gimpdialogfactory.[ch]: factory which produces dialogs
	from string descriptions. Should maybe go to widgets/.

	* app/gui/dialogs-commands.[ch]: callbacks for the new menu
	factory below.

	* app/gui/dialogs-constructors.[ch]: dialog constructors which are
	registered with the dialog factory.

	* app/gui/dialogs.[ch]: register the dialogs with the factory.

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

	* app/menus.[ch]: a new item factory for creating dialogs.

	* app/test_commands.c
	* app/widgets/gimpdock.[ch]: added a dialog factory pointer to the
	GimpDock struct.

	* app/widgets/gimpdockbook.[ch]: badly (badly!) fiddle around with
	GtkNotebook's menu to get it integrated in the GtkItemFactory
	which produces new dialogs.
2001-04-14 15:21:45 +00:00