use struct design_matrix
[pspp-builds.git] / lib / gtksheet / gsheetmodel.h
index 2865e78385f037830cf75971075a38ff4616a78d..39ab173f3593a3e4582b0e71ab0e7a4f7a858da0 100644 (file)
@@ -15,6 +15,7 @@
  * License along with this library; if not, write to the Free Software
  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
  */
+
 #ifndef __G_SHEET_MODEL_H__
 #define __G_SHEET_MODEL_H__
 
@@ -70,6 +71,8 @@ struct _GSheetModelIface
 {
   GTypeInterface g_iface;
 
+  gboolean free_strings;
+
   /* Signals */
   void         (* range_changed)    (GSheetModel *sheet_model,
                                     gint row0, gint col0, 
@@ -81,10 +84,18 @@ struct _GSheetModelIface
   void         (* rows_deleted)     (GSheetModel *sheet_model,
                                     gint row, gint n_rows);
 
+  void         (* columns_inserted)    (GSheetModel *sheet_model,
+                                    gint column, gint n_columns);
+
+  void         (* columns_deleted)     (GSheetModel *sheet_model,
+                                    gint column, gint n_columns);
+
+
 
 
   /* Virtual Table */
-  const gchar *const      (* get_string)      (const GSheetModel *sheet_model, 
+
+  gchar *      (* get_string)      (const GSheetModel *sheet_model, 
                                               gint row, gint column);
 
   gboolean  (* set_string) (GSheetModel *sheet_model, 
@@ -111,6 +122,11 @@ struct _GSheetModelIface
   const GtkSheetCellBorder *  (* get_cell_border) (const GSheetModel *sheet_model, 
                                                   gint row, gint column);
 
+
+  gint (*get_column_count) (const GSheetModel *model);
+
+  gint (*get_row_count) (const GSheetModel *model);
+
 };
 
 
@@ -118,7 +134,7 @@ struct _GSheetModelIface
 GType              g_sheet_model_get_type   (void) G_GNUC_CONST;
 
 
-inline const gchar *const g_sheet_model_get_string (const GSheetModel *sheet_model, 
+inline  gchar * g_sheet_model_get_string (const GSheetModel *sheet_model, 
                                               gint row, gint column);
 
 inline gboolean  g_sheet_model_set_string (GSheetModel *sheet_model, 
@@ -139,6 +155,13 @@ inline void g_sheet_model_rows_deleted (GSheetModel *sheet_model,
 inline void g_sheet_model_rows_inserted (GSheetModel *sheet_model,
                                    gint row, gint n_rows);
 
+inline void g_sheet_model_columns_inserted (GSheetModel *sheet_model,
+                                           gint column, gint n_columns);
+
+inline void g_sheet_model_columns_deleted (GSheetModel *sheet_model,
+                                          gint column, gint n_columns);
+
+
 inline gboolean g_sheet_model_is_editable (const GSheetModel *model, 
                                      gint row, gint column);
 
@@ -163,8 +186,11 @@ inline const PangoFontDescription *g_sheet_model_get_font_desc
 inline const GtkSheetCellBorder * g_sheet_model_get_cell_border 
                    (const GSheetModel *model, gint row, gint column);
 
+inline  gboolean g_sheet_model_free_strings (const GSheetModel *sheet_model);
 
+inline gint g_sheet_model_get_column_count(const GSheetModel *sheet_model);
 
+inline gint g_sheet_model_get_row_count(const GSheetModel *sheet_model);
 
 G_END_DECLS