Replace gsheet-column interface by psppire-axis
[pspp-builds.git] / lib / gtksheet / gsheetmodel.h
index ae5a372bb697e3eba83faebdb7b48f0d33e01d2c..eb661c99c267a88d0c330eab96297ae621948b30 100644 (file)
@@ -26,7 +26,7 @@
 #include <glib-object.h>
 #include <gdk/gdk.h>
 #include <gtk/gtk.h>
-
+#include "gtkextra-sheet.h"
 
 G_BEGIN_DECLS
 
@@ -51,8 +51,8 @@ typedef struct _GtkSheetCellBorder     GtkSheetCellBorder;
 
 struct _GtkSheetRange
 {
-  glong row0,col0; /* upper-left cell */
-  glong rowi,coli; /* lower-right cell */
+  glong row0, col0; /* upper-left cell */
+  glong rowi, coli; /* lower-right cell */
 };
 
 struct _GtkSheetCellBorder
@@ -85,10 +85,12 @@ struct _GSheetModelIface
                                     glong row, glong n_rows);
 
   void         (* columns_inserted)    (GSheetModel *sheet_model,
-                                    glong column, glong n_columns);
+                                       glong column, glong n_columns);
 
   void         (* columns_deleted)     (GSheetModel *sheet_model,
-                                    glong column, glong n_columns);
+                                       glong column, glong n_columns);
+
+
 
 
 
@@ -96,7 +98,7 @@ struct _GSheetModelIface
   /* Virtual Table */
 
   gchar *      (* get_string)      (const GSheetModel *sheet_model,
-                                              glong row, glong column);
+                                   glong row, glong column);
 
   gboolean  (* set_string) (GSheetModel *sheet_model,
                            const gchar *s, glong row, glong column);
@@ -108,10 +110,10 @@ struct _GSheetModelIface
   gboolean (* is_editable) (const GSheetModel *sheet_model, glong row, glong column);
 
   GdkColor *  (* get_foreground) (const GSheetModel *sheet_model,
-                           glong row, glong column);
+                                 glong row, glong column);
 
   GdkColor *  (* get_background) (const GSheetModel *sheet_model,
-                                   glong row, glong column);
+                                 glong row, glong column);
 
   const GtkJustification *  (* get_justification) (const GSheetModel *sheet_model,
                                                   glong row, glong column);
@@ -123,10 +125,20 @@ struct _GSheetModelIface
                                                   glong row, glong column);
 
 
+
+  /* column related metadata */
+
+  gchar * (*get_column_title) (const GSheetModel *mode, gint col);
+  gchar * (*get_column_subtitle) (const GSheetModel *mode, gint col);
+  gboolean * (*get_column_sensitivity) (const GSheetModel *mode, gint col);
+  GtkJustification (*get_column_justification) (const GSheetModel *mode, gint col);
+  const GtkSheetButton * (* get_button) (const GSheetModel *model, gint col);
+
   glong (*get_column_count) (const GSheetModel *model);
 
-  glong (*get_row_count) (const GSheetModel *model);
 
+  /* row related metadata */
+  glong (*get_row_count) (const GSheetModel *model);
 };
 
 
@@ -134,63 +146,77 @@ struct _GSheetModelIface
 GType              g_sheet_model_get_type   (void) G_GNUC_CONST;
 
 
-inline  gchar * g_sheet_model_get_string (const GSheetModel *sheet_model,
-                                              glong row, glong column);
+gchar * g_sheet_model_get_string (const GSheetModel *sheet_model,
+                                 glong row, glong column);
+
+gboolean  g_sheet_model_set_string (GSheetModel *sheet_model,
+                                   const gchar *s,
+                                   glong row, glong column);
+
+gboolean g_sheet_model_datum_clear    (GSheetModel *sheet_model,
+                                      glong row, glong column);
+
 
-inline gboolean  g_sheet_model_set_string (GSheetModel *sheet_model,
-                                     const gchar *s,
-                                     glong row, glong column);
+void g_sheet_model_range_changed (GSheetModel *sheet_model,
+                                 glong row0, glong col0,
+                                 glong rowi, glong coli);
 
-inline gboolean g_sheet_model_datum_clear    (GSheetModel *sheet_model,
-                                        glong row, glong column);
+void g_sheet_model_rows_deleted (GSheetModel *sheet_model,
+                                glong row, glong n_rows);
 
+void g_sheet_model_rows_inserted (GSheetModel *sheet_model,
+                                 glong row, glong n_rows);
 
-inline void g_sheet_model_range_changed (GSheetModel *sheet_model,
-                                   glong row0, glong col0,
-                                   glong rowi, glong coli);
+void g_sheet_model_columns_inserted (GSheetModel *sheet_model,
+                                    glong column, glong n_columns);
+
+void g_sheet_model_columns_deleted (GSheetModel *sheet_model,
+                                   glong column, glong n_columns);
+
+
+gboolean g_sheet_model_is_editable (const GSheetModel *model,
+                                   glong row, glong column);
 
-inline void g_sheet_model_rows_deleted (GSheetModel *sheet_model,
                                 glong row, glong n_rows);
+gboolean g_sheet_model_is_visible
(const GSheetModel *model, glong row, glong column);
 
-inline void g_sheet_model_rows_inserted (GSheetModel *sheet_model,
-                                   glong row, glong n_rows);
 
-inline void g_sheet_model_columns_inserted (GSheetModel *sheet_model,
                                          glong column, glong n_columns);
+GdkColor *g_sheet_model_get_foreground
(const GSheetModel *model, glong row, glong column);
 
-inline void g_sheet_model_columns_deleted (GSheetModel *sheet_model,
                                         glong column, glong n_columns);
+GdkColor *g_sheet_model_get_background
(const GSheetModel *model, glong row, glong column);
 
 
-inline gboolean g_sheet_model_is_editable (const GSheetModel *model,
                                    glong row, glong column);
+const GtkJustification *g_sheet_model_get_justification
(const GSheetModel *model, glong row, glong column);
 
-inline gboolean g_sheet_model_is_visible
-                   (const GSheetModel *model, glong row, glong column);
 
+const PangoFontDescription *g_sheet_model_get_font_desc
+ (const GSheetModel *model, glong row, glong column);
 
-inline GdkColor *g_sheet_model_get_foreground
            (const GSheetModel *model, glong row, glong column);
+const GtkSheetCellBorder * g_sheet_model_get_cell_border
+ (const GSheetModel *model, glong row, glong column);
 
-inline GdkColor *g_sheet_model_get_background
-                   (const GSheetModel *model, glong row, glong column);
+gboolean g_sheet_model_free_strings (const GSheetModel *sheet_model);
 
+glong g_sheet_model_get_column_count (const GSheetModel *sheet_model);
 
-inline const GtkJustification *g_sheet_model_get_justification
-                   (const GSheetModel *model, glong row, glong column);
+gint g_sheet_model_get_row_count (const GSheetModel *sheet_model);
 
+\f
 
-inline const PangoFontDescription *g_sheet_model_get_font_desc
-                   (const GSheetModel *model, glong row, glong column);
+gboolean g_sheet_model_get_column_sensitivity (const GSheetModel *model,
+                                              gint col);
 
-inline const GtkSheetCellBorder * g_sheet_model_get_cell_border
-                   (const GSheetModel *model, glong row, glong column);
+gchar * g_sheet_model_get_column_subtitle (const GSheetModel *model,
+                                           gint col);
 
-inline  gboolean g_sheet_model_free_strings (const GSheetModel *sheet_model);
+GtkSheetButton * g_sheet_model_get_column_button (const GSheetModel *, gint);
 
-inline glong g_sheet_model_get_column_count (const GSheetModel *sheet_model);
+GtkJustification g_sheet_model_get_column_justification (const GSheetModel *,
+                                                        gint);
 
-inline  gint g_sheet_model_get_row_count (const GSheetModel *sheet_model);
 
 G_END_DECLS