1 /* PSPPIRE - a graphical user interface for PSPP.
2 Copyright (C) 2008, 2009, 2010, 2011 Free Software Foundation
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.
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.
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/>. */
18 #ifndef __PSPPIRE_WINDOW_H__
19 #define __PSPPIRE_WINDOW_H__
23 #include <glib-object.h>
25 #include "psppire-window-base.h"
30 #define PSPPIRE_TYPE_WINDOW (psppire_window_get_type ())
32 #define PSPPIRE_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), \
33 PSPPIRE_TYPE_WINDOW, PsppireWindow))
35 #define PSPPIRE_WINDOW_CLASS(class) (G_TYPE_CHECK_CLASS_CAST ((class), \
36 PSPPIRE_TYPE_WINDOW, PsppireWindowClass))
38 #define PSPPIRE_IS_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), \
41 #define PSPPIRE_IS_WINDOW_CLASS(class) (G_TYPE_CHECK_CLASS_TYPE ((class), \
46 #define PSPPIRE_TYPE_WINDOW_MODEL (psppire_window_model_get_type ())
48 #define PSPPIRE_IS_WINDOW_MODEL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PSPPIRE_TYPE_WINDOW_MODEL))
50 #define PSPPIRE_WINDOW_MODEL_GET_IFACE(obj) \
51 (G_TYPE_INSTANCE_GET_INTERFACE ((obj), PSPPIRE_TYPE_WINDOW_MODEL, PsppireWindowIface))
54 typedef struct _PsppireWindow PsppireWindow;
55 typedef struct _PsppireWindowClass PsppireWindowClass;
56 typedef struct _PsppireWindowIface PsppireWindowIface;
61 PsppireWindowBase parent;
64 gchar *filename; /* File name, in file name encoding, or NULL. */
65 gchar *basename; /* Last component of filename, in UTF-8 */
66 gchar *id; /* Dataset name, or NULL. */
67 gchar *description; /* e.g. "Data Editor" */
68 gchar *list_name; /* Name for "Windows" menu list. */
70 GHashTable *menuitem_table;
81 struct _PsppireWindowClass
83 PsppireWindowBaseClass parent_class;
87 struct _PsppireWindowIface
89 GTypeInterface g_iface;
91 void (*save) (PsppireWindow *w);
92 void (*pick_filename) (PsppireWindow *);
93 gboolean (*load) (PsppireWindow *w, const gchar *);
97 GType psppire_window_get_type (void);
98 GType psppire_window_model_get_type (void);
100 const gchar * psppire_window_get_filename (PsppireWindow *);
102 void psppire_window_set_filename (PsppireWindow *w, const gchar *filename);
104 void psppire_window_minimise_all (void);
106 void psppire_window_set_unsaved (PsppireWindow *);
108 gboolean psppire_window_get_unsaved (PsppireWindow *);
110 gint psppire_window_query_save (PsppireWindow *);
112 void psppire_window_save (PsppireWindow *w);
113 void psppire_window_save_as (PsppireWindow *w);
114 gboolean psppire_window_load (PsppireWindow *w, const gchar *file);
115 void psppire_window_open (PsppireWindow *de);
116 GtkWidget *psppire_window_file_chooser_dialog (PsppireWindow *toplevel);
118 void add_most_recent (const char *file_name, const char *mime_type);
122 #endif /* __PSPPIRE_WINDOW_H__ */