X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fui%2Fgui%2Fpsppire-data-store.h;h=ed4f0fd17c65f9f7ca4ea8942d0c47b7a34b7252;hb=32884aab5da9ba8455d482dc1f52989ff7de4ee6;hp=2f0d42ca102c8f93b17922d385c562451bbbb6ac;hpb=a19b858e0ac3c69e4a28c0ca6d8674427268a863;p=pspp-builds.git diff --git a/src/ui/gui/psppire-data-store.h b/src/ui/gui/psppire-data-store.h index 2f0d42ca..ed4f0fd1 100644 --- a/src/ui/gui/psppire-data-store.h +++ b/src/ui/gui/psppire-data-store.h @@ -1,12 +1,9 @@ -/* psppire-data-store.h - - PSPPIRE --- A Graphical User Interface for PSPP +/* 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 + 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 - the Free Software Foundation; either version 2 of the License, or + the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, @@ -15,16 +12,17 @@ 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., 51 Franklin Street, Fifth Floor, Boston, MA - 02110-1301, USA. */ + along with this program. If not, see . */ #ifndef __PSPPIRE_DATA_STORE_H__ #define __PSPPIRE_DATA_STORE_H__ #include #include "psppire-dict.h" -#include "psppire-case-array.h" +#include "psppire-case-file.h" + +#define FIRST_CASE_NUMBER 1 + #ifdef __cplusplus extern "C" { @@ -32,18 +30,24 @@ extern "C" { #define GTK_TYPE_DATA_STORE (psppire_data_store_get_type ()) -#define PSPPIRE_DATA_STORE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), \ +#define PSPPIRE_DATA_STORE(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST ((obj), \ GTK_TYPE_DATA_STORE, PsppireDataStore)) -#define PSPPIRE_DATA_STORE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), \ +#define PSPPIRE_DATA_STORE_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST ((klass), \ GTK_TYPE_DATA_STORE, \ PsppireDataStoreClass)) -#define PSPPIRE_IS_DATA_STORE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_DATA_STORE)) -#define PSPPIRE_IS_DATA_STORE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_DATA_STORE)) +#define PSPPIRE_IS_DATA_STORE(obj) \ + (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_DATA_STORE)) + +#define PSPPIRE_IS_DATA_STORE_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_DATA_STORE)) -#define PSPPIRE_DATA_STORE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), \ +#define PSPPIRE_DATA_STORE_GET_CLASS(obj) \ + (G_TYPE_INSTANCE_GET_CLASS ((obj), \ GTK_TYPE_DATA_STORE, \ PsppireDataStoreClass)) @@ -52,18 +56,45 @@ typedef struct _PsppireDataStoreClass PsppireDataStoreClass; struct dictionary; + +enum cf_signal_handler { + CASES_DELETED, + CASE_INSERTED, + CASE_CHANGED, + n_cf_signals +}; + + +enum dict_signal_handler { + VARIABLE_INSERTED, + VARIABLE_CHANGED, + VARIABLE_DELETED, + SIZE_CHANGED, + n_dict_signals +}; + +void do_this_thing (PsppireDict *, struct dictionary *, void *); + + struct _PsppireDataStore { GObject parent; /*< private >*/ PsppireDict *dict; - PsppireCaseArray *cases; - PangoFontDescription *font_desc; + PsppireCaseFile *case_file; + const PangoFontDescription *font_desc; + + /* The width of an upper case 'M' rendered in the current font */ + gint width_of_m ; + gboolean show_labels; /* Geometry */ gint margin_width; + + gint cf_handler_id [n_cf_signals]; + gint dict_handler_id [n_dict_signals]; }; struct _PsppireDataStoreClass @@ -79,19 +110,38 @@ struct _PsppireDataStoreClass inline GType psppire_data_store_get_type (void) G_GNUC_CONST; -PsppireDataStore *psppire_data_store_new (PsppireDict *dict, PsppireCaseArray *cases); +PsppireDataStore *psppire_data_store_new (PsppireDict *dict); + +void psppire_data_store_set_case_file (PsppireDataStore *data_store, + PsppireCaseFile *cf); + +void psppire_data_store_set_dictionary (PsppireDataStore *data_store, + PsppireDict *dict); + +void psppire_data_store_set_font (PsppireDataStore *store, + const PangoFontDescription *fd); + +void psppire_data_store_show_labels (PsppireDataStore *store, + gboolean show_labels); + +void psppire_data_store_clear (PsppireDataStore *data_store); + +gboolean psppire_data_store_insert_new_case (PsppireDataStore *ds, casenumber posn); + -void psppire_data_store_set_dictionary(PsppireDataStore *data_store, PsppireDict *dict); -void psppire_data_store_set_font(PsppireDataStore *store, PangoFontDescription *fd); +gboolean psppire_data_store_delete_cases (PsppireDataStore *ds, casenumber first, casenumber count); -void psppire_data_store_show_labels(PsppireDataStore *store, gboolean show_labels); +struct casereader * psppire_data_store_get_reader (PsppireDataStore *ds); -struct file_handle; +gchar * psppire_data_store_get_string (PsppireDataStore *ds, + casenumber row, glong column); -void psppire_data_store_create_system_file(PsppireDataStore *store, - struct file_handle *handle); +gboolean psppire_data_store_set_string (PsppireDataStore *ds, + const gchar *text, + glong row, glong column); +casenumber psppire_data_store_get_case_count (const PsppireDataStore *ds); #ifdef __cplusplus }