moved knowledge of pspp_linreg_cache out of pspp_coeff_init
[pspp-builds.git] / lib / gtksheet / gsheetmodel.c
index 704b86e23f71a599b34f71afaff758dc3fcd2715..e6a60afc57539446bc67c40c009e7b7286066f89 100644 (file)
@@ -24,6 +24,8 @@ enum {
   RANGE_CHANGED,
   ROWS_INSERTED,
   ROWS_DELETED,
+  COLUMNS_INSERTED,
+  COLUMNS_DELETED,
   LAST_SIGNAL
 };
 
@@ -108,11 +110,51 @@ g_sheet_model_base_init (gpointer g_class)
                      G_TYPE_INT,
                      G_TYPE_INT);
 
+      sheet_model_signals[COLUMNS_INSERTED] =
+       g_signal_new ("columns_inserted",
+                     G_TYPE_SHEET_MODEL,
+                     G_SIGNAL_RUN_LAST,
+                     G_STRUCT_OFFSET (GSheetModelIface, columns_inserted),
+                     NULL, NULL,
+                     gtkextra_VOID__INT_INT,
+                     G_TYPE_NONE, 2,
+                     G_TYPE_INT,
+                     G_TYPE_INT);
+
+
+      sheet_model_signals[COLUMNS_DELETED] =
+       g_signal_new ("columns_deleted",
+                     G_TYPE_SHEET_MODEL,
+                     G_SIGNAL_RUN_LAST,
+                     G_STRUCT_OFFSET (GSheetModelIface, columns_deleted),
+                     NULL, NULL,
+                     gtkextra_VOID__INT_INT,
+                     G_TYPE_NONE, 2,
+                     G_TYPE_INT,
+                     G_TYPE_INT);
+
                    
       initialized = TRUE;
     }
 }
 
+
+/**
+ * g_sheet_model_free_strings
+ * @sheet_model: A #GSheetModel
+ * 
+ * Returns: True if strings obtained with get_string should be freed by the 
+ * sheet when no longer required.
+ **/
+inline  gboolean 
+g_sheet_model_free_strings (const GSheetModel *sheet_model)
+{
+  g_return_val_if_fail (G_IS_SHEET_MODEL (sheet_model), FALSE);
+
+  return G_SHEET_MODEL_GET_IFACE (sheet_model)->free_strings;
+}
+
+
 /**
  * g_sheet_model_get_string:
  * @sheet_model: A #GSheetModel
@@ -122,7 +164,7 @@ g_sheet_model_base_init (gpointer g_class)
  * Retrieves the datum at location ROW, COLUMN in the form of a string.
  * Returns: The string representation of the datum, or NULL on error.
  **/
-inline const gchar *const      
+inline gchar *
 g_sheet_model_get_string (const GSheetModel *sheet_model, 
                          gint row, gint column)
 {
@@ -220,6 +262,25 @@ g_sheet_model_rows_inserted (GSheetModel *sheet_model,
 }
 
 
+/**
+ * g_sheet_model_columns_inserted:
+ * @sheet_model: A #GSheetModel
+ * @column: The column before which the new columns should be inserted.
+ * @n_columns: The number of columns to insert.
+ * 
+ * Emits the "columns_inserted" signal on @sheet_model.
+ **/
+void
+g_sheet_model_columns_inserted (GSheetModel *sheet_model,
+                              gint column, gint n_columns)
+{
+  g_return_if_fail (G_IS_SHEET_MODEL (sheet_model));
+
+  g_signal_emit (sheet_model, sheet_model_signals[COLUMNS_INSERTED], 0, 
+                column, n_columns);
+}
+
+
 
 
 /**
@@ -242,6 +303,27 @@ g_sheet_model_rows_deleted (GSheetModel *sheet_model,
 
 
 
+/**
+ * g_sheet_model_columns_deleted:
+ * @sheet_model: A #GSheetModel
+ * @column: The first column to be deleted.
+ * @n_columns: The number of columns to delete.
+ * 
+ * Emits the "columns_deleted" signal on @sheet_model.
+ **/
+void
+g_sheet_model_columns_deleted (GSheetModel *sheet_model,
+                              gint column, gint n_columns)
+{
+  g_return_if_fail (G_IS_SHEET_MODEL (sheet_model));
+
+  g_signal_emit (sheet_model, sheet_model_signals[COLUMNS_DELETED], 0, 
+                column, n_columns);
+}
+
+
+
+
 
 /**
  * g_sheet_model_is_editable:
@@ -393,3 +475,34 @@ g_sheet_model_get_cell_border (const GSheetModel *model,
   return G_SHEET_MODEL_GET_IFACE (model)->get_cell_border (model, 
                                                           row, column);
 }
+
+
+
+/**
+ * g_sheet_model_get_column_count:
+ * @model: A #GSheetModel
+ *
+ * Returns the total number of columns represented by the model
+ **/
+inline gint 
+g_sheet_model_get_column_count(const GSheetModel *model)
+{
+  g_return_val_if_fail (G_IS_SHEET_MODEL (model), -1);
+
+  return G_SHEET_MODEL_GET_IFACE (model)->get_column_count (model);
+}
+
+/**
+ * g_sheet_model_get_row_count:
+ * @model: A #GSheetModel
+ *
+ * Returns the total number of rows represented by the model
+ **/
+inline gint 
+g_sheet_model_get_row_count(const GSheetModel *model)
+{
+  g_return_val_if_fail (G_IS_SHEET_MODEL (model), -1);
+
+
+  return G_SHEET_MODEL_GET_IFACE (model)->get_row_count (model);
+}