+static gint
+psppire_var_store_get_row_count(const GSheetModel * model)
+{
+ gint rows = 0;
+ PsppireVarStore *vs = PSPPIRE_VAR_STORE(model);
+
+ if (vs->dict)
+ rows = psppire_dict_get_var_cnt(vs->dict);
+
+ return rows ;
+}
+
+/* Row related funcs */
+
+static gint
+geometry_get_row_count(const GSheetRow *geom, gpointer data)
+{
+ gint rows = 0;
+ PsppireVarStore *vs = PSPPIRE_VAR_STORE(geom);
+
+ if (vs->dict)
+ rows = psppire_dict_get_var_cnt(vs->dict);
+
+ return rows + TRAILING_ROWS;
+}
+
+
+static gint
+geometry_get_height(const GSheetRow *geom, gint row, gpointer data)
+{
+ return 25;
+}
+
+
+static gboolean
+geometry_is_sensitive(const GSheetRow *geom, gint row, gpointer data)
+{
+ PsppireVarStore *vs = PSPPIRE_VAR_STORE(geom);
+
+ if ( ! vs->dict)
+ return FALSE;
+
+ return row < psppire_dict_get_var_cnt(vs->dict);
+}
+
+static
+gboolean always_true()
+{
+ return TRUE;
+}
+
+
+static gchar *
+geometry_get_button_label(const GSheetRow *geom, gint unit, gpointer data)
+{
+ gchar *label = g_strdup_printf(_("%d"), unit);
+
+ return label;
+}
+