Added abstract factory to create casefiles. Updated procedures to use
[pspp-builds.git] / src / ui / gui / psppire-case-file.h
index 745b709898ea498f7e70255e27b67c47b3dabfde..e2b8252c289c16d43dd6b7a3ff645987678b9eda 100644 (file)
@@ -1,7 +1,6 @@
 /* 
     PSPPIRE --- A Graphical User Interface for PSPP
     Copyright (C) 2006  Free Software Foundation
-    Written by John Darrington
 
     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
@@ -26,6 +25,8 @@
 #include <glib-object.h>
 #include <glib.h>
 
+#include <libpspp/str.h>
+
 
 
 G_BEGIN_DECLS
@@ -47,7 +48,8 @@ typedef struct _PsppireCaseFile          PsppireCaseFile;
 typedef struct _PsppireCaseFileClass PsppireCaseFileClass;
 
 struct ccase;
-struct casefilefile;
+struct flexifile;
+struct casefile;
 
 struct _PsppireCaseFile
 {
@@ -67,9 +69,10 @@ struct _PsppireCaseFileClass
 GType          psppire_case_file_get_type (void);
 
 PsppireCaseFile *psppire_case_file_new (gint var_cnt);
+PsppireCaseFile* psppire_case_file_new_from_flexifile (struct flexifile *ff);
+
 
-gboolean psppire_case_file_append_case(PsppireCaseFile *cf, 
-                                            struct ccase *c);
+gboolean psppire_case_file_insert_case(PsppireCaseFile *cf, struct ccase *c, gint row);
 
 gint psppire_case_file_get_case_count(const PsppireCaseFile *cf);
 
@@ -77,10 +80,11 @@ gint psppire_case_file_get_case_count(const PsppireCaseFile *cf);
 const union value * psppire_case_file_get_value(const PsppireCaseFile *cf, 
                                              gint c, gint idx);
 
-struct data_in;
+struct fmt_spec;
 
 gboolean psppire_case_file_data_in(PsppireCaseFile *cf, gint c, gint idx,
-                                struct data_in *d_in);
+                                   struct substring input,
+                                   const struct fmt_spec *);
 
 gboolean psppire_case_file_set_value(PsppireCaseFile *cf, gint casenum, 
                                     gint idx, union value *v, gint width);
@@ -91,14 +95,14 @@ void psppire_case_file_clear(PsppireCaseFile *cf);
 gboolean psppire_case_file_delete_cases(PsppireCaseFile *cf, gint n_rows, 
                                        gint first);
 
-gboolean psppire_case_file_insert_case(PsppireCaseFile *cf, gint row);
-
-
 gboolean psppire_case_file_insert_values(PsppireCaseFile *cf, gint n_values, gint before);
 
 struct sort_criteria;
 void psppire_case_file_sort(PsppireCaseFile *cf, const struct sort_criteria *);
 
+gboolean psppire_case_file_get_case(const PsppireCaseFile *cf, gint casenum, 
+                                   struct ccase *c);
+
 
 G_END_DECLS