diff options
author | JP Rosevear <jpr@ximian.com> | 2002-05-27 00:21:28 +0800 |
---|---|---|
committer | JP Rosevear <jpr@src.gnome.org> | 2002-05-27 00:21:28 +0800 |
commit | fb1d17d150cb5178ca1d63431958d3df9dfc60b3 (patch) | |
tree | 5c17aae3a1d8b6a5d52909a30bcc5391c03f465f /calendar/gui/e-comp-editor-registry.h | |
parent | e6298a6cd5faa861d4185c1399fe627e6d70d8f8 (diff) | |
download | gsoc2013-evolution-fb1d17d150cb5178ca1d63431958d3df9dfc60b3.tar.gz gsoc2013-evolution-fb1d17d150cb5178ca1d63431958d3df9dfc60b3.tar.zst gsoc2013-evolution-fb1d17d150cb5178ca1d63431958d3df9dfc60b3.zip |
a registry of comp editors so we can close them all centrally
2002-05-26 JP Rosevear <jpr@ximian.com>
* gui/e-comp-editor-registry.[hc]: a registry of comp editors so
we can close them all centrally
* gui/gnome-cal.c (gnome_calendar_init): there is no editor hash
now
(gnome_calendar_destroy): ditto
(gnome_calendar_edit_object): look for the event editor in the
registry, if it isn't there, create it and add it to the registry
* gui/e-calendar-table.c (open_task): look for the task editor in
the registry, if it isn't there, create it and add it to the
registry
* gui/component-factory.c (request_quit): close all open editors
(create_object): add a request_quit function to the shell
component
* gui/comp-editor-factory.c (free_client): there is no
uid_comp_hash to free any more
(editor_destroy_cb): we get an OpenClient as callback data now,
reduce the editor count and destroy it if it is 0
(edit_existing): don't create the Component, add the new editor to
the registry, increase the editor count
(edit_new): ditto
(open_client): set the editor count to 0
(impl_editExisting): look in the registry for the editor
* gui/Makefile.am: Build new sources
* gui/main.c (main): create the registry
* gui/dialogs/comp-editor.c (comp_editor_close): prompt to save
and then close dialog
* gui/dialogs/comp-editor.h: new proto
* gui/GNOME_Evolution_Calendar.oaf.in: remove dead summary stuff
svn path=/trunk/; revision=17018
Diffstat (limited to 'calendar/gui/e-comp-editor-registry.h')
-rw-r--r-- | calendar/gui/e-comp-editor-registry.h | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/calendar/gui/e-comp-editor-registry.h b/calendar/gui/e-comp-editor-registry.h new file mode 100644 index 0000000000..13833e2357 --- /dev/null +++ b/calendar/gui/e-comp-editor-registry.h @@ -0,0 +1,79 @@ +/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ +/* e-comp-editor-registry.h + * + * Copyright (C) 2002 Ximian, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of version 2 of the GNU General Public + * License as published by the Free Software Foundation. + * + * 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. + * + * Author: JP Rosevear + */ + +#ifndef _E_COMP_EDITOR_REGISTRY_H_ +#define _E_COMP_EDITOR_REGISTRY_H_ + +#ifdef HAVE_CONFIG_H +#include <config.h> +#endif + +#include <gtk/gtk.h> +#include <dialogs/comp-editor.h> + +#ifdef __cplusplus +extern "C" { +#pragma } +#endif /* __cplusplus */ + +#define E_TYPE_COMP_EDITOR_REGISTRY (e_comp_editor_registry_get_type ()) +#define E_COMP_EDITOR_REGISTRY(obj) (GTK_CHECK_CAST ((obj), E_TYPE_COMP_EDITOR_REGISTRY, ECompEditorRegistry)) +#define E_COMP_EDITOR_REGISTRY_CLASS(klass) (GTK_CHECK_CLASS_CAST ((klass), E_TYPE_COMP_EDITOR_REGISTRY, ECompEditorRegistryClass)) +#define E_IS_COMP_EDITOR_REGISTRY(obj) (GTK_CHECK_TYPE ((obj), E_TYPE_COMP_EDITOR_REGISTRY)) +#define E_IS_COMP_EDITOR_REGISTRY_CLASS(klass) (GTK_CHECK_CLASS_TYPE ((obj), E_TYPE_COMP_EDITOR_REGISTRY)) + + +typedef struct _ECompEditorRegistry ECompEditorRegistry; +typedef struct _ECompEditorRegistryPrivate ECompEditorRegistryPrivate; +typedef struct _ECompEditorRegistryClass ECompEditorRegistryClass; + +struct _ECompEditorRegistry { + GtkObject parent; + + ECompEditorRegistryPrivate *priv; +}; + +struct _ECompEditorRegistryClass { + GtkObjectClass parent_class; +}; + +typedef void (* ECompEditorRegistryForeachFn) (CompEditor *editor, gpointer data); + + + + +GtkType e_comp_editor_registry_get_type (void); +GtkObject *e_comp_editor_registry_new (void); +void e_comp_editor_registry_add (ECompEditorRegistry *reg, + CompEditor *editor, + gboolean remote); +CompEditor *e_comp_editor_registry_find (ECompEditorRegistry *reg, + const char *uid); +void e_comp_editor_registry_close_all (ECompEditorRegistry *reg); + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* _E_COMP_EDITOR_REGISTRY_H_ */ + + |