Replace gsheet-column interface by psppire-axis
[pspp-builds.git] / src / ui / gui / psppire-var-store.c
index 7edc665a21cee5cd843e990d312d28648889ae30..4575bd3bcb90fc6c1d60a4c6ba7fb72574f72275 100644 (file)
@@ -33,6 +33,7 @@
 
 #include <data/dictionary.h>
 #include <data/variable.h>
+#include <data/format.h>
 #include <data/missing-values.h>
 
 #include "val-labs-dialog.h"
@@ -238,14 +239,13 @@ psppire_var_store_class_init (PsppireVarStoreClass *class)
                                    pspec);
 }
 
+#define DISABLED_COLOR "gray"
+
 static void
 psppire_var_store_init (PsppireVarStore *var_store)
 {
-  GdkColormap *colormap = gdk_colormap_get_system ();
-
-  g_assert (gdk_color_parse ("gray", &var_store->disabled));
-
-  gdk_colormap_alloc_color (colormap, &var_store->disabled, FALSE, TRUE);
+  if ( ! gdk_color_parse (DISABLED_COLOR, &var_store->disabled))
+       g_critical ("Could not parse color \"%s\"", DISABLED_COLOR);
 
   var_store->dict = 0;
   var_store->trailing_rows = 40;
@@ -307,7 +307,7 @@ psppire_var_store_is_editable (const GSheetModel *model, glong row, glong column
 }
 
 
-static const GdkColor *
+static GdkColor *
 psppire_var_store_get_foreground (const GSheetModel *model, glong row, glong column)
 {
   PsppireVarStore *store = PSPPIRE_VAR_STORE (model);
@@ -329,7 +329,7 @@ psppire_var_store_get_font_desc (const GSheetModel *model,
 }
 
 
-
+static gchar *get_column_title (const GSheetModel *model, gint col);
 
 static void
 psppire_var_store_sheet_model_init (GSheetModelIface *iface)
@@ -346,9 +346,10 @@ psppire_var_store_sheet_model_init (GSheetModelIface *iface)
   iface->get_background = NULL;
   iface->get_font_desc = psppire_var_store_get_font_desc;
   iface->get_cell_border = NULL;
-}
-
+  iface->get_justification = NULL;
 
+  iface->get_column_title = get_column_title;
+}
 
 /**
  * psppire_var_store_new:
@@ -796,7 +797,7 @@ psppire_var_store_get_column_count (const GSheetModel * model)
 /* Row related funcs */
 
 static glong
-geometry_get_row_count (const GSheetRow *geom, gpointer data)
+geometry_get_row_count (const GSheetRow *geom)
 {
   gint rows = 0;
   PsppireVarStore *vs = PSPPIRE_VAR_STORE (geom);
@@ -809,14 +810,14 @@ geometry_get_row_count (const GSheetRow *geom, gpointer data)
 
 
 static gint
-geometry_get_height (const GSheetRow *geom, glong row, gpointer data)
+geometry_get_height (const GSheetRow *geom, glong row)
 {
   return 25;
 }
 
 
 static gboolean
-geometry_is_sensitive (const GSheetRow *geom, glong row, gpointer data)
+geometry_is_sensitive (const GSheetRow *geom, glong row)
 {
   PsppireVarStore *vs = PSPPIRE_VAR_STORE (geom);
 
@@ -826,15 +827,8 @@ geometry_is_sensitive (const GSheetRow *geom, glong row, gpointer data)
   return  row < psppire_dict_get_var_cnt (vs->dict);
 }
 
-static
-gboolean always_true ()
-{
-  return TRUE;
-}
-
-
 static gchar *
-geometry_get_button_label (const GSheetRow *geom, glong unit, gpointer data)
+geometry_get_button_label (const GSheetRow *geom, glong unit)
 {
   gchar *label = g_strdup_printf (_("%ld"), unit + 1);
 
@@ -846,12 +840,33 @@ psppire_var_store_sheet_row_init (GSheetRowIface *iface)
 {
   iface->get_row_count =     geometry_get_row_count;
   iface->get_height =        geometry_get_height;
-  iface->set_height =        0;
-  iface->get_visibility =    always_true;
+  iface->set_height =        NULL;
   iface->get_sensitivity =   geometry_is_sensitive;
 
   iface->get_button_label = geometry_get_button_label;
 }
 
 
+\f
+
+static const gchar *column_titles[] = {
+  N_("Name"),
+  N_("Type"),
+  N_("Width"),
+  N_("Decimals"),
+  N_("Label"),
+  N_("Values"),
+  N_("Missing"),
+  N_("Columns"),
+  N_("Align"),
+  N_("Measure"),
+};
 
+
+static gchar *
+get_column_title (const GSheetModel *model, gint col)
+{
+  if ( col >= 10)
+    return NULL;
+  return g_strdup (gettext (column_titles[col]));
+}