1 /* PSPPIRE - a graphical user interface for PSPP. 2 Copyright (C) 2008 Free Software Foundation 3 4 This program is free software: you can redistribute it and/or modify 5 it under the terms of the GNU General Public License as published by 6 the Free Software Foundation, either version 3 of the License, or 7 (at your option) any later version. 8 9 This program is distributed in the hope that it will be useful, 10 but WITHOUT ANY WARRANTY; without even the implied warranty of 11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 GNU General Public License for more details. 13 14 You should have received a copy of the GNU General Public License 15 along with this program. If not, see <http://www.gnu.org/licenses/>. */ 16 17 18 #include <glib-object.h> 19 #include <glib.h> 20 21 #include "psppire-window.h" 22 23 #ifndef __PSPPIRE_WINDOW_REGISTER_H__ 24 #define __PSPPIRE_WINDOW_REGISTER_H__ 25 26 G_BEGIN_DECLS 27 28 29 #define PSPPIRE_TYPE_WINDOW_REGISTER (psppire_window_register_get_type ()) 30 31 #define PSPPIRE_WINDOW_REGISTER(obj) \ 32 (G_TYPE_CHECK_INSTANCE_CAST ((obj), \ 33 PSPPIRE_TYPE_WINDOW_REGISTER, PsppireWindowRegister)) 34 35 #define PSPPIRE_WINDOW_REGISTER_CLASS(klass) \ 36 (G_TYPE_CHECK_CLASS_CAST ((klass), \ 37 PSPPIRE_TYPE_WINDOW_REGISTER, \ 38 PsppireWindowRegisterClass)) 39 40 41 #define PSPPIRE_IS_WINDOW_REGISTER(obj) \ 42 (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PSPPIRE_TYPE_WINDOW_REGISTER)) 43 44 #define PSPPIRE_IS_WINDOW_REGISTER_CLASS(klass) \ 45 (G_TYPE_CHECK_CLASS_TYPE ((klass), PSPPIRE_TYPE_WINDOW_REGISTER)) 46 47 48 #define PSPPIRE_WINDOW_REGISTER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), \ 49 PSPPIRE_TYPE_WINDOW_REGISTER, \ 50 PsppireWindowRegisterClass)) 51 52 typedef struct _PsppireWindowRegister PsppireWindowRegister; 53 typedef struct _PsppireWindowRegisterClass PsppireWindowRegisterClass; 54 55 56 struct _PsppireWindowRegister 57 { 58 GObject parent; 59 60 /*< private >*/ 61 GHashTable *name_table; 62 }; 63 64 65 struct _PsppireWindowRegisterClass 66 { 67 GObjectClass parent_class; 68 }; 69 70 71 GType psppire_window_register_get_type (void) G_GNUC_CONST; 72 73 PsppireWindowRegister * psppire_window_register_new (void); 74 75 void psppire_window_register_insert (PsppireWindowRegister *wr, PsppireWindow *window, 76 const gchar *name); 77 78 void psppire_window_register_remove (PsppireWindowRegister *wr, const gchar *name); 79 80 81 PsppireWindow *psppire_window_register_lookup (PsppireWindowRegister *wr, const gchar *name); 82 83 84 void psppire_window_register_foreach (PsppireWindowRegister *wr, GHFunc func, 85 gpointer); 86 87 gint psppire_window_register_n_items (PsppireWindowRegister *wr); 88 89 GtkWidget *create_windows_menu (GtkWindow *toplevel); 90 91 92 G_END_DECLS 93 94 #endif /* __PSPPIRE_WINDOW_REGISTER_H__ */ 95