mirror of
https://gitlab.gnome.org/GNOME/gimp
synced 2024-10-22 04:22:29 +00:00
5766498fff
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
40 lines
1.7 KiB
C
40 lines
1.7 KiB
C
/* GIMP - The GNU Image Manipulation Program
|
|
* Copyright (C) 1995 Spencer Kimball and Peter Mattis
|
|
*
|
|
* gimpsessioninfo-dock.h
|
|
* Copyright (C) 2001-2007 Michael Natterer <mitch@gimp.org>
|
|
*
|
|
* This program is free software; you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License as published by
|
|
* the Free Software Foundation; either version 2 of the License, or
|
|
* (at your option) any later version.
|
|
*
|
|
* This program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License
|
|
* along with this program; if not, write to the Free Software
|
|
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
|
*/
|
|
|
|
#ifndef __GIMP_SESSION_INFO_DOCK_H__
|
|
#define __GIMP_SESSION_INFO_DOCK_H__
|
|
|
|
|
|
void gimp_session_info_dock_serialize (GimpConfigWriter *writer,
|
|
GList *books);
|
|
GTokenType gimp_session_info_dock_deserialize (GScanner *scanner,
|
|
gint scope,
|
|
GimpSessionInfo *info);
|
|
|
|
GList * gimp_session_info_dock_from_widget (GimpDock *dock);
|
|
|
|
void gimp_session_info_dock_restore (GimpSessionInfo *info,
|
|
GimpDialogFactory *factory,
|
|
GdkScreen *screen);
|
|
|
|
|
|
#endif /* __GIMP_SESSION_INFO_DOCK_H__ */
|