Whitespace changes only: Remove trailing whitespace
[pspp] / src / ui / gui / psppire-var-view.c
index 47c845cba2c1e496a51ec4005de66876e4c75a1a..e47b7b61e8d84dc37ef291cac4d3700fc7cc2f8d 100644 (file)
@@ -21,6 +21,7 @@
 #include "psppire-var-ptr.h"
 #include "psppire-select-dest.h"
 
+#include <libpspp/cast.h>
 #include <libpspp/str.h>
 #include <data/variable.h>
 
@@ -101,7 +102,7 @@ psppire_var_view_get_type (void)
   return psppire_var_view_type;
 }
 
-void 
+void
 psppire_var_view_clear (PsppireVarView *vv)
 {
   GtkListStore *l = gtk_list_store_newv  (vv->n_cols, vv->cols);
@@ -180,28 +181,28 @@ set_renderers (PsppireVarView *var_view)
 {
   gint c;
   var_view->nums = g_malloc (sizeof *var_view->nums * var_view->n_cols);
-  
+
   for (c = 0 ; c < var_view->n_cols; ++c)
     {
       GtkCellRenderer *renderer = gtk_cell_renderer_text_new ();
       GtkTreeViewColumn *col = gtk_tree_view_column_new ();
-      
+
       gchar *label = g_strdup_printf (_("Var%d"), c + 1);
-      
+
       gtk_tree_view_column_set_min_width (col, 100);
       gtk_tree_view_column_set_sizing (col, GTK_TREE_VIEW_COLUMN_FIXED);
       gtk_tree_view_column_set_resizable (col, TRUE);
       gtk_tree_view_column_set_title (col, label);
-      
+
       g_free (label);
-      
+
       var_view->nums[c] = c;
-      
+
       gtk_tree_view_column_pack_start (col, renderer, TRUE);
       gtk_tree_view_column_set_cell_data_func (col, renderer,
                                               display_cell_var_name,
                                               &var_view->nums[c], 0);
-      
+
       gtk_tree_view_append_column (GTK_TREE_VIEW (var_view), col);
     }
 }
@@ -289,7 +290,10 @@ psppire_var_view_base_finalize (PsppireVarViewClass *class,
 static void
 psppire_var_view_init (PsppireVarView *vv)
 {
+  GtkTreeSelection* selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (vv));
   vv->cols = 0;
+
+  gtk_tree_selection_set_mode (selection, GTK_SELECTION_MULTIPLE);
 }
 
 
@@ -368,12 +372,37 @@ psppire_var_view_append_names (PsppireVarView *vv, gint column, GString *string)
   return n_vars;
 }
 
+/* Return a linked list of struct variables which are
+   contained in VV.
+   The caller is responsible for freeing the returned list.
+   The variables however are owned by their dictionary
+   and should not be freed.
+  */
+GSList *
+psppire_var_view_list_names (PsppireVarView *vv, gint column)
+{
+  GtkTreeIter iter;
+  GSList *list = NULL;
+
+  if ( psppire_var_view_get_iter_first (vv, &iter) )
+    {
+      do
+       {
+         const struct variable *var = psppire_var_view_get_variable (vv, column, &iter);
+         list = g_slist_prepend (list, CONST_CAST (struct variable *, var));
+       }
+      while (psppire_var_view_get_iter_next (vv, &iter));
+    }
+
+  return list;
+}
+
 
 /*
   Append the names of selected variables to STR
   Returns the number of variables appended.
 */
-gint 
+gint
 psppire_var_view_append_names_str (PsppireVarView *vv, gint column, struct string *str)
 {
   gint n_vars = 0;