Commit Graph

42 Commits

Author SHA1 Message Date
Sven Neumann 7c389ba534 don't report negative offsets, they would be interpreted wrongly.
2008-07-23  Sven Neumann  <sven@gimp.org>

	* app/widgets/gimpsessioninfo.c 
(gimp_session_info_get_geometry):
	don't report negative offsets, they would be interpreted 
wrongly.


svn path=/trunk/; revision=26292
2008-07-23 11:45:39 +00:00
Michael Natterer ff5310a4ea Implement the presistent menu of recently closed docks, still somewhat
2008-05-16  Michael Natterer  <mitch@gimp.org>

	Implement the presistent menu of recently closed docks, still
	somewhat hackish but fully functional. Fixes bug #132744.

	* app/actions/dialogs-actions.c
	* app/actions/dialogs-commands.[ch]
	* menus/image-menu.xml.in: remove the menu items that were
	creating the hardcoded preconfigured docks.

	* app/dialogs/dialogs.[ch]: add GimpContainer of recently closed
	docks and API to load and save it.

	* app/gui/session.c: call the recent dock load and save functions.

	* app/widgets/gimpsessioninfo.[ch]: implement the GimpConfig interface
	and (de)serialize via proper interface methods.

	* app/gui/session.c
	* app/widgets/gimpdialogfactory.c: use the GimpConfig API
	to (de)serialize session infos and added the code that was
	formerly in the info's (de)serialize functions but didn't belong
	there.

	* app/widgets/gimpaction.[ch]: add "max-width-chars" property and
	set it on proxy menu item labels.

	* app/actions/windows-actions.[ch]
	* app/actions/windows-commands.[ch]
	* app/menus/windows-menu.c: add actions and menu of recently
	closed docks and code to restore the dock when the menu items are
	selected. Use above new action property to ensure a minimum
	width of the menu.

	* app/widgets/gimpmenudock.c: use '-' instead of '|' for
	separating notebooks in the window title. Menu items don't like	'|'.

	* app/widgets/gimpdock.c: removed the confirmation dialog when
	closing docks and simply add them to the recent docks container.
	This code is totally misplaced and will move to another file soon.


svn path=/trunk/; revision=25671
2008-05-16 16:06:42 +00:00
Michael Natterer 5766498fff Made session info serialization independent from widgets so it can be used
2008-05-14  Michael Natterer  <mitch@gimp.org>

	Made session info serialization independent from widgets so it can
	be used on stored dock layouts which are not open:

	* app/widgets/gimpsessioninfo-book.[ch]
	* app/widgets/gimpsessioninfo-dock.[ch]
	* app/widgets/gimpsessioninfo-dockable.[ch]: add from_widget()
	functions which return newly allocated session info structs.
	Changed serialize() functions to take these structs instead of
	widgets. Changed deserialize() functions to return the structs
	instead of appending them to lists in their parent structs. Don't
	free anything in restore().

	* app/widgets/gimpsessioninfo-aux.[ch]
	(gimp_session_info_aux_serialize): take a GList of aux_info
	instead of a widget.

	* app/widgets/gimpsessioninfo.[ch]: add new functions get_info()
	which collects above session info details from dialogs and
	clear_info() which clears that info. Call clear_info() from
	finalize(). Don't free anything in restore().

	* app/widgets/gimpdialogfactory.c
	(gimp_dialog_factories_save_foreach): collect the session info
	detials from the dialogs before serializing because serialize()
	doesn't know about the widget any longer. Clear the infos after
	serializing.

	(gimp_dialog_factories_restore_foreach): clear the session info
	details after creating the dialogs because restore() doesn't clear
	the info by itself any longer.


svn path=/trunk/; revision=25657
2008-05-13 23:43:57 +00:00
Michael Natterer 24a7aa75bd turn "info != NULL" checks into "GIMP_IS_SESSION_INFO (info)".
2008-05-13  Michael Natterer  <mitch@gimp.org>

	* app/widgets/gimpsessioninfo.c: turn "info != NULL" checks into
	"GIMP_IS_SESSION_INFO (info)".


svn path=/trunk/; revision=25656
2008-05-13 21:29:00 +00:00
Michael Natterer 0b0d0aad78 turn into a GimpObject subclass. No logical changes yet.
2008-05-13  Michael Natterer  <mitch@gimp.org>

	* app/widgets/gimpsessioninfo.[ch]: turn into a GimpObject
	subclass. No logical changes yet.

	* app/widgets/widgets-types.h
	* app/widgets/gimpdialogfactory.c: changed accordingly.


svn path=/trunk/; revision=25655
2008-05-13 21:17:11 +00:00
Michael Natterer f720839757 use gdk_drawable_get_size() instead of looking at widget->allocation since
2008-03-23  Michael Natterer  <mitch@gimp.org>

	* app/widgets/gimpsessioninfo.c (gimp_session_info_get_geometry):
	use gdk_drawable_get_size() instead of looking at
	widget->allocation since the latter is not yet updated if this
	function is called from the dialog factory's "configure-event"
	callback. Fixes remembering of dialog sizes within one session.


svn path=/trunk/; revision=25175
2008-03-23 13:30:03 +00:00
Sven Neumann f8d1aba0e4 removed leftover debug output
svn path=/trunk/; revision=25170
2008-03-22 01:22:31 +00:00
Sven Neumann 39377e970e themes/Default/gtkrc reduced minimum dock width to 200 pixels.
2008-03-22  Sven Neumann  <sven@gimp.org>

	* themes/Default/gtkrc
	* app/widgets/gimpmenudock.c: reduced minimum dock width to 200
	pixels.

	* etc/sessionrc: use -0 instead of -1, just like in X geometry
	strings. Changed default dock sizes to be taller but less wide.

	* app/widgets/gimpsessioninfo.c: changed code to parse -0 from 
the
	sessionrc file and to deal more correctly with negative offsets.


svn path=/trunk/; revision=25169
2008-03-22 01:10:51 +00:00
Sven Neumann 17b27bc768 simplified the logic of gimp_session_info_set_geometry()
svn path=/trunk/; revision=25168
2008-03-21 23:54:46 +00:00
Sven Neumann 985015ca06 deal with negative positions read from the sessionrc file and interpret
2008-03-22  Sven Neumann  <sven@gimp.org>

	* app/widgets/gimpsessioninfo.c 
(gimp_session_info_set_geometry):
	deal with negative positions read from the sessionrc file and
	interpret them as a hint to align the window with the right,
	respective bottom edge of the screen.

	* etc/sessionrc: position the toolbox in the upper left, the
	additional dock in the upper right corner of the screen.


svn path=/trunk/; revision=25167
2008-03-21 23:43:21 +00:00
Michael Natterer 1a5cfac5e6 app/widgets/gimpsessioninfoaux.[ch] app/widgets/gimpsessioninfobook.[ch]
2007-05-25  Michael Natterer  <mitch@gimp.org>

	* app/widgets/gimpsessioninfoaux.[ch]
	* app/widgets/gimpsessioninfobook.[ch]
	* app/widgets/gimpsessioninfodock.[ch]
	* app/widgets/gimpsessioninfodockable.[ch]: renamed these...

	* app/widgets/gimpsessioninfo-aux.[ch]
	* app/widgets/gimpsessioninfo-book.[ch]
	* app/widgets/gimpsessioninfo-dock.[ch]
	* app/widgets/gimpsessioninfo-dockable.[ch]: ...to these.

	* app/widgets/Makefile.am
	* app/widgets/gimpcoloreditor.c
	* app/widgets/gimpcursorview.c
	* app/widgets/gimpdataeditor.c
	* app/widgets/gimpdocked.c
	* app/widgets/gimphistogrameditor.c
	* app/widgets/gimpmenudock.c
	* app/widgets/gimppaletteeditor.c
	* app/widgets/gimpsessioninfo.c: changed accordingly.


svn path=/trunk/; revision=22614
2007-05-25 11:42:28 +00:00
Michael Natterer 736b651d24 app/widgets/gimpsessioninfo.[ch] app/widgets/gimpsessioninfoaux.[ch]
2007-05-24  Michael Natterer  <mitch@gimp.org>

	* app/widgets/gimpsessioninfo.[ch]
	* app/widgets/gimpsessioninfoaux.[ch]
	* app/widgets/gimpsessioninfobook.[ch]
	* app/widgets/gimpsessioninfodock.c
	* app/widgets/gimpsessioninfodockable.[ch]: cleanup.


svn path=/trunk/; revision=22606
2007-05-24 20:42:56 +00:00
Michael Natterer 2bf21338a3 removed more code and cleaned up the API.
2007-05-24  Michael Natterer  <mitch@gimp.org>

	* app/widgets/gimpsessioninfo.[ch]: removed more code and cleaned
	up the API.

	* app/widgets/Makefile.am
	* app/widgets/gimpsessioninfodock.[ch]: added the removed code here.

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


svn path=/trunk/; revision=22604
2007-05-24 20:06:34 +00:00
Michael Natterer 616ba659f3 removed lots of code...
2007-05-24  Michael Natterer  <mitch@gimp.org>

	* app/widgets/gimpsessioninfo.[ch]: removed lots of code...

	* app/widgets/Makefile.am
	* app/widgets/gimpsessioninfoaux.[ch]
	* app/widgets/gimpsessioninfobook.[ch]
	* app/widgets/gimpsessioninfodockable.[ch]: ...and added it here.
	Also allocate all structs using GSLice.

	* app/widgets/gimpcoloreditor.c
	* app/widgets/gimpcursorview.c
	* app/widgets/gimpdataeditor.c
	* app/widgets/gimpdialogfactory.c
	* app/widgets/gimpdocked.c
	* app/widgets/gimphistogrameditor.c
	* app/widgets/gimpmenudock.c
	* app/widgets/gimppaletteeditor.c: changed accordingly.


svn path=/trunk/; revision=22603
2007-05-24 19:22:06 +00:00
Michael Natterer ada79e533a app/actions/data-commands.c app/base/boundary.c app/base/gimphistogram.c
2007-05-22  Michael Natterer  <mitch@gimp.org>

	* app/actions/data-commands.c
	* app/base/boundary.c
	* app/base/gimphistogram.c
	* app/base/gimplut.c
	* app/base/temp-buf.c
	* app/core/gimpcontainer.c
	* app/core/gimpgradient.c
	* app/core/gimpparamspecs.c
	* app/core/gimpundo.c
	* app/plug-in/gimpplugin-cleanup.c
	* app/plug-in/gimppluginmanager-data.c
	* app/plug-in/gimppluginmanager-help-domain.c
	* app/plug-in/gimppluginmanager-locale-domain.c
	* app/plug-in/gimppluginmanager-menu-branch.c
	* app/plug-in/gimppluginprocframe.c
	* app/vectors/gimpanchor.c
	* app/widgets/gimpsessioninfo.c: use GSlice instead of g_new/g_free
	for structs of fixed size.


svn path=/trunk/; revision=22558
2007-05-22 10:43:48 +00:00
Sven Neumann 41237259c9 In all files, changed the standard copyright notice to say "GIMP - The GNU
2006-12-09  Sven Neumann  <sven@gimp.org>

        * In all files, changed the standard copyright notice to say
        "GIMP - The GNU Image Manipulation Program".
2006-12-09 21:33:38 +00:00
Sven Neumann 03923a12ba eliminate compiler warning.
2006-10-30  Sven Neumann  <sven@gimp.org>

	* app/widgets/gimpsessioninfo.c (gimp_session_info_save):
	eliminate compiler warning.
2006-10-30 12:01:16 +00:00
Sven Neumann 090974f235 app/base/curves.c minor code cleanup, removed trailing whitespace.
2006-04-21  Sven Neumann  <sven@gimp.org>

	* app/base/curves.c
	* app/widgets/gimpsessioninfo.c: minor code cleanup, removed
	trailing whitespace.
2006-04-21 07:02:42 +00:00
Tor Lillqvist 94d8a4131b New helper function. Same functionality as
2006-04-20  Tor Lillqvist  <tml@novell.com>

	* app/widgets/gimpsessioninfo.c (get_appropriate_monitor): New
	helper function. Same functionality as
	gdk_screen_get_monitor_at_window(), except that it takes a window
	geometry as parameter and not the window itself.
	(gimp_session_info_set_geometry): Make sure the window is
	completely inside a monitor. (#339099, #324254)
2006-04-20 18:41:38 +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
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 078c3c8c3c always set the current page of dockbooks, also if it's the first one.
2006-01-14  Michael Natterer  <mitch@gimp.org>

	* app/widgets/gimpsessioninfo.c (gimp_session_info_restore): always
	set the current page of dockbooks, also if it's the first one.
2006-01-13 23:55:39 +00:00
William Skaggs 1cee9b7298 continuing commit after broken pipe 2005-01-25 19:11:26 +00:00
Sven Neumann a24047788c be more tolerant and silently skip entries that the dialog factory doesn't
2004-11-04  Sven Neumann  <sven@gimp.org>

	* app/widgets/gimpsessioninfo.c: be more tolerant and silently
	skip entries that the dialog factory doesn't recognize.

	* app/widgets/gimpdialogfactory.c: minor cleanup.
2004-11-04 21:02:34 +00:00
Sven Neumann ce1370bb2e added a boolean parameter to gimp_dialog_factory_dialog_new() to let the
2004-09-01  Sven Neumann  <sven@gimp.org>

	* app/widgets/gimpdialogfactory.[ch]: added a boolean parameter to
	gimp_dialog_factory_dialog_new() to let the caller decide whether
	the window should be presented or not.

	* app/actions/dialogs-commands.c
	* app/actions/image-commands.c
	* app/actions/templates-commands.c
	* app/gui/gui-vtable.c
	* app/gui/gui.c
	* app/widgets/gimpsessioninfo.c: changed accordingly. Do not let
	gimp_dialog_factory_dialog_new() present the dialog if we need to
	change it after creation. This avoids annoying resizes, noticeable
	especially with the error dialog.
2004-08-31 22:41:15 +00:00
David Odin b7f58e163e Renamed GimpPreviewSize to GimpViewSize.
* app/core/core-enums.h: Renamed GimpPreviewSize to GimpViewSize.

* app/core/core-enums.c: Regenerated.

* app/actions/dockable-actions.c

* app/config/gimpcoreconfig.c
* app/config/gimpcoreconfig.h
* app/config/gimpdisplayconfig.c
* app/config/gimpdisplayconfig.h

* app/core/gimpundo.c

* app/display/gimpnavigationeditor.c

* app/gui/dialogs.c
* app/gui/file-open-location-dialog.c

* app/tools/gimppaintoptions-gui.c
* app/tools/gimptextoptions.c

* app/widgets/gimpbrushselect.c
* app/widgets/gimpcontainerpopup.c
* app/widgets/gimpcontainerview.c
* app/widgets/gimpdialogfactory.c
* app/widgets/gimpfontselect.c
* app/widgets/gimpgradientselect.c
* app/widgets/gimppaletteselect.c
* app/widgets/gimppatternselect.c
* app/widgets/gimpselectioneditor.c
* app/widgets/gimpsessioninfo.c
* app/widgets/gimptemplateeditor.c
* app/widgets/gimpundoeditor.c
* app/widgets/gimpundoeditor.h
* app/widgets/gimpviewablebutton.c: Changed accordingly.
2004-08-29 11:58:05 +00:00
Sven Neumann 8bc46f69f3 only write aux-info for properties that have been changed from their
2004-07-08  Sven Neumann  <sven@gimp.org>

	* app/widgets/gimpsessioninfo.c: only write aux-info for properties
	that have been changed from their default values.

	* app/widgets/gimphistogrameditor.c: some code cleanup.
2004-07-08 12:04:15 +00:00
Sven Neumann a4ac4de072 app/config/gimpconfig-deserialize.c removed redundant casts.
2004-07-08  Sven Neumann  <sven@gimp.org>

	* app/config/gimpconfig-deserialize.c
	* app/config/gimpconfig-serialize.c: removed redundant casts.

	* app/widgets/gimpsessioninfo.[ch]: added convenience functions to
	get and set aux-info based on object properties.

	* app/widgets/gimphistogrameditor.c: use the new functions to save
	a histogram's channel and scale in the sessionrc.
2004-07-08 00:09:41 +00:00
Michael Natterer f826916828 added a horrible hack that sets the paned's position after the first
2004-06-01  Michael Natterer  <mitch@gimp.org>

	* app/widgets/gimpsessioninfo.c (gimp_session_info_restore): added
	a horrible hack that sets the paned's position after the first
	"size-allocate" after "map". Makes position remembering work for
	the toolbox and fixes bug #142697.

	* app/widgets/gimpdockable.[ch]: added new function
	gimp_dockable_set_tab_style()

	* app/actions/dockable-commands.c (dockable_tab_style_cmd_callback)
	* app/widgets/gimpsessioninfo.c (gimp_session_info_restore):
	use gimp_dockable_set_tab_style().
2004-06-01 12:31:44 +00:00
Michael Natterer 3adc0816e6 More GimpContainerView chopping:
2004-05-10  Michael Natterer  <mitch@gimp.org>

	More GimpContainerView chopping:

	* app/widgets/gimpcontainerview.[ch]: added
	GimpContainerViewPrivate struct (which is currently puclic :-) and
	removed all members from the GimpContainerView struct. Added
	accessors for "context", "container" and "preview_size /
	preview_border_width". Added macro to get the private struct
	(*not* via G_TYPE_INSTANCE_GET_PRIVATE because that's unavailable
	for interfaces).

	* app/widgets/gimpbrushfactoryview.c
	* app/widgets/gimpbufferview.c
	* app/widgets/gimpchanneltreeview.c
	* app/widgets/gimpcontainerbox.c
	* app/widgets/gimpcontainereditor.c
	* app/widgets/gimpcontainergridview.c
	* app/widgets/gimpcontainerpopup.c
	* app/widgets/gimpcontainertreeview-dnd.c
	* app/widgets/gimpcontainertreeview.c
	* app/widgets/gimpdatafactoryview.c
	* app/widgets/gimpdocumentview.c
	* app/widgets/gimpfontview.c
	* app/widgets/gimpimageview.c
	* app/widgets/gimpitemtreeview.c
	* app/widgets/gimplayertreeview.c
	* app/widgets/gimpsessioninfo.c
	* app/widgets/gimptemplateview.c
	* app/widgets/gimptoolview.c
	* app/actions/brushes-actions.c
	* app/actions/buffers-actions.c
	* app/actions/dockable-actions.c
	* app/actions/dockable-commands.c
	* app/actions/documents-actions.c
	* app/actions/fonts-actions.c
	* app/actions/gradients-actions.c
	* app/actions/gradients-commands.c
	* app/actions/images-actions.c
	* app/actions/palettes-actions.c
	* app/actions/palettes-commands.c
	* app/actions/patterns-actions.c
	* app/actions/templates-actions.c
	* app/actions/tools-actions.c
	* app/actions/tools-commands.c: changed accordingly.
2004-05-10 17:16:50 +00:00
Michael Natterer 6f1612db55 made enum GimpDialogVisibilityState and GIMP_DIALOG_VISIBILITY_KEY public.
2004-03-13  Michael Natterer  <mitch@gimp.org>

	* app/widgets/gimpdialogfactory.[ch]: made enum
	GimpDialogVisibilityState and GIMP_DIALOG_VISIBILITY_KEY public.

	* app/widgets/gimpsessioninfo.c (gimp_session_info_get_geometry):
	only look at GTK_WIDGET_VISIBLE(info->widget) if the dialog's
	visibility state is GIMP_DIALOG_VISIBILITY_UNKNOWN and map the
	visibility state to info->open otherwise.

	Fixes bug #137076.
2004-03-13 18:19:46 +00:00
Michael Natterer e36c2a96c7 free GimpSessionInfoAux structs using gimp_session_info_aux_free() instead
2003-12-16  Michael Natterer  <mitch@gimp.org>

	* app/widgets/gimpsessioninfo.c (gimp_session_info_restore): free
	GimpSessionInfoAux structs using gimp_session_info_aux_free()
	instead of g_free() so we don't leak its members.
2003-12-16 18:06:41 +00:00
Sven Neumann 5ea47f728f take a guint64 parameter and handle values beyond a gigabyte.
2003-11-14  Sven Neumann  <sven@gimp.org>

	* libgimpbase/gimputils.[ch] (gimp_memsize_to_string): take a
	guint64 parameter and handle values beyond a gigabyte.

	* app/core/gimptemplate.[ch]: use a guint64 for the initial memory
	size and removed the gboolean that used to indicate a gulong
	overflow.

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

	* app/gui/file-new-dialog.c: don't set the OK button insensitive
	when the initial memory size exceeds GULONG_MAX.

	* app/widgets/gimpsessioninfo.c (gimp_session_info_deserialize):
	replaced a misleading comment.
2003-11-14 12:05:13 +00:00
Sven Neumann 4c6d623f4d only save the screen number to the sessionrc if the screen is not the
2003-11-13  Sven Neumann  <sven@gimp.org>

	* app/widgets/gimpsessioninfo.c: only save the screen number to
	the sessionrc if the screen is not the default screen.
2003-11-13 20:57:59 +00:00
Sven Neumann 98864daedb restore compatibility with older sessionrc format. No need to break
2003-11-13  Sven Neumann  <sven@gimp.org>

	* app/widgets/gimpsessioninfo.c (gimp_session_info_deserialize):
	restore compatibility with older sessionrc format. No need to
	break everyone's sessionrc again.
2003-11-13 17:44:41 +00:00
Michael Natterer 47f5d86688 Made session management multiscreen aware:
2003-11-13  Michael Natterer  <mitch@gimp.org>

	Made session management multiscreen aware:

	* app/widgets/gimpsessioninfo.[ch]: added "gint screen" member
	to struct GimpSessionInfo.

	(gimp_session_info_get_geometry): ask the window for its screen.
	(gimp_session_info_restore): place the window on the remembered
	screen if the screen exists.

	(gimp_session_info_save)
	(gimp_session_info_deserialize): extended "open-on-exit" property
	to include the screen number (e.g. "(open-on-exit 1)" for screen 1).

	This change breaks everybody's sessionrc again...
2003-11-13 15:50:23 +00:00
Michael Natterer b62f8e9a75 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 accordingly. Changed all
	menu_position funcs to place the menu on the right screen.
2003-11-08 15:32:38 +00:00
Michael Natterer 2b0c05131f renamed gimp_dialog_factories_idle() and _unidle() to
2003-10-13  Michael Natterer  <mitch@gimp.org>

	* app/widgets/gimpdialogfactory.[ch]: renamed
	gimp_dialog_factories_idle() and _unidle() to
	gimp_dialog_factories_set_busy() and _unset_busy().
	Added utility function gimp_dialog_factory_set_widget_data() and
	public API gimp_dialog_factory_from_widget() so we don't need to
	g_object_[set|get]_data() with magic keys all over the place.

	* app/widgets/gimpsessioninfo.c
	* app/gui/dialogs-commands.c
	* app/gui/dialogs-menu.c
	* app/gui/gui-vtable.c: changed accordingly.

	* app/widgets/gimpsessioninfo.c: remember active page of all dock
	notebooks in sessionrc.

	* app/widgets/gimpsessioninfo.h: cleaned up the session info structs.
2003-10-13 11:57:50 +00:00
Michael Natterer 158aa7f2b3 added utility function gimp_session_info_aux_new().
2003-10-11  Michael Natterer  <mitch@gimp.org>

	* app/widgets/gimpsessioninfo.[ch]: added utility function
	gimp_session_info_aux_new().

	* app/widgets/gimpcoloreditor.c
	* app/widgets/gimpdataeditor.c
	* app/widgets/gimpimagedock.c (get_aux_info): use it.
2003-10-11 17:05:48 +00:00
Michael Natterer b136228de9 app/widgets/widgets-types.h added new struct GimpSessionInfoAux which
2003-10-11  Michael Natterer  <mitch@gimp.org>

	* app/widgets/widgets-types.h
	* app/widgets/gimpsessioninfo.[ch]: added new struct
	GimpSessionInfoAux which contains "gchar *name" and "gchar *value".
	Changed sessionrc "aux-info" format again to be really extendable
	this time. Also breaks everybody's sessionrc again.

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

	Implemented the stuff suggested in bug #122964. Fixes bug #122964
	and bug #52206:

	* app/widgets/gimpdataeditor.[ch]: replaced the "Gimp" member by a
	"GimpDataFactory" and changed gimp_data_editor_construct()
	accordingly. Implement GimpDockedInterface::set_aux_info() and
	get_aux_info() and remember the currently edited data across
	sessions.

	* app/gui/gradient-editor-commands.c
	* app/gui/gradient-editor-menu.c
	* app/widgets/gimpbrusheditor.c
	* app/widgets/gimpgradienteditor.c
	* app/widgets/gimppaletteeditor.c: changed accordingly.

	* app/widgets/gimpcoloreditor.c: remember the active color
	selector across sessions.
2003-10-11 16:50:35 +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
Michael Natterer 87480880c3 Cleaned up session management and changed the format of sessionrc in a way
2003-10-10  Michael Natterer  <mitch@gimp.org>

	Cleaned up session management and changed the format of sessionrc
	in a way that allows extensions without changing the format during
	the 2.0 cycle:

	* app/widgets/Makefile.am
	* app/widgets/widgets-types.h
	* app/widgets/gimpsessioninfo.[ch]: new files implementing the whole
	GimpSessionInfo stuff (parsing, saving, restoring, utility functions).
	Save / parse the position of GimpDock's panes (bug #122964).

	* app/widgets/gimpdialogfactory.[ch]: removed saving, restoring
	and session related utility functions and use the ones from
	the new files above.

	* app/gui/session.c: removed parsing and use the new stuff.

	* app/widgets/gimpdock.[ch]: added new virtual functions
	GimpDock::set_aux_info() and GimpDock::get_aux_info():

	* app/widgets/gimpimagedock.c: implement them and handle the
	"auto_follow_active" and "show_image_menu" properties.

	* app/widgets/gimpdockable.[ch]: added the same virtual functions
	to the GimpDockable class. Enables forward-compatible per-dockable
	session management (bug #122964).

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

	* etc/sessionrc: ditto. Look at this file and update your own
	sessionrc manually if you don't want to lose it.
2003-10-10 15:59:12 +00:00