/* PSPPIRE - a graphical user interface for PSPP.
- Copyright (C) 2008, 2009 Free Software Foundation
+ Copyright (C) 2008, 2009, 2010, 2011, 2013, 2014 Free Software Foundation
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
#include <glib.h>
#include <glib-object.h>
-#include <gtk/gtkwindow.h>
-#include <gtk/gtkaction.h>
-#include <gtk/gtkmenushell.h>
-#include <gtk/gtkrecentmanager.h>
+#include <gtk/gtk.h>
+#include "psppire-window-base.h"
G_BEGIN_DECLS
struct _PsppireWindow
{
- GtkWindow parent;
+ PsppireWindowBase parent;
/* <private> */
- gchar *name;
- gchar *description;
- gchar *basename;
+ gchar *filename; /* File name, in file name encoding, or NULL. */
+ gchar *basename; /* Last component of filename, in UTF-8 */
+ gchar *id; /* Dataset name, or NULL. */
+ gchar *description; /* e.g. "Data Editor" */
+ gchar *list_name; /* Name for "Windows" menu list. */
GHashTable *menuitem_table;
GtkMenuShell *menu;
guint insert_handler;
guint remove_handler;
- gboolean unsaved;
+
+ gboolean added_separator;
+ gboolean dirty;
+ GTimeVal savetime;
};
struct _PsppireWindowClass
{
- GtkWindowClass parent_class;
+ PsppireWindowBaseClass parent_class;
};
GTypeInterface g_iface;
void (*save) (PsppireWindow *w);
+ void (*pick_filename) (PsppireWindow *);
+ gboolean (*load) (PsppireWindow *w, const gchar *filename,
+ const gchar *encoding, gpointer hint);
};
void psppire_window_minimise_all (void);
-void psppire_window_set_unsaved (PsppireWindow *, gboolean );
+void psppire_window_set_unsaved (PsppireWindow *);
gboolean psppire_window_get_unsaved (PsppireWindow *);
gint psppire_window_query_save (PsppireWindow *);
void psppire_window_save (PsppireWindow *w);
-
-void add_most_recent (const char *file_name, GtkRecentManager *rm);
-void delete_recent (const char *file_name, GtkRecentManager *rm);
-
+void psppire_window_save_as (PsppireWindow *w);
+gboolean psppire_window_load (PsppireWindow *w, const gchar *file,
+ const gchar *encoding, gpointer hint);
+void psppire_window_open (PsppireWindow *de);
+GtkWidget *psppire_window_file_chooser_dialog (PsppireWindow *toplevel);
+
+void add_most_recent (const char *file_name, const char *mime_type,
+ const char *encoding);
G_END_DECLS