/[pspp]/psppire/src/data_sheet.c
ViewVC logotype

Diff of /psppire/src/data_sheet.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.19 by jmd, Sun Nov 13 12:40:13 2005 UTC revision 1.20 by jmd, Thu Nov 17 11:19:17 2005 UTC
# Line 42  extern GladeXML *xml; Line 42  extern GladeXML *xml;
42  static PSPP_Dict *pspp_dictionary ;  static PSPP_Dict *pspp_dictionary ;
43    
44  static gint last_populated_row = -1;  static gint last_populated_row = -1;
45  static gint n_variables;  static gint n_initial_columns = 10;
46    
47    
48  static void repopulate_columns(GtkSheet *sheet, PSPP_Dict *dict,  static void repopulate_columns(GtkSheet *sheet, PSPP_Dict *dict,
# Line 161  data_sheet_set_cell(GtkSheet *sheet, gin Line 161  data_sheet_set_cell(GtkSheet *sheet, gin
161    return FALSE;    return FALSE;
162  }  }
163    
164    
165  /* Update COLUMN of the data sheet */  /* Update COLUMN of the data sheet */
166  static gint  static gint
167  update_variable(GObject *obj, gint column, gpointer data)  update_variable(GObject *obj, gint column, gpointer data)
# Line 170  update_variable(GObject *obj, gint colum Line 171  update_variable(GObject *obj, gint colum
171    GtkSheetRange range;    GtkSheetRange range;
172    GtkSheet *sheet = GTK_SHEET(data);    GtkSheet *sheet = GTK_SHEET(data);
173    
174    if ( column >= n_variables)    if ( column >= gtk_sheet_get_columns_count(sheet) )
175      {      {
176      g_warning        gtk_sheet_add_column(sheet,
177        ("Sorry. Maximum of %d variables is all that\'s currently implemented\n",                             column - gtk_sheet_get_columns_count(sheet) + 1);
        n_variables);  
       return FALSE;  
178      }      }
179    
180    const struct variable *var = pspp_dict_get_var(dict, column);    const struct variable *var = pspp_dict_get_var(dict, column);
# Line 287  psppire_data_sheet_clear(GtkSheet *sheet Line 286  psppire_data_sheet_clear(GtkSheet *sheet
286  {  {
287    g_return_if_fail(sheet);    g_return_if_fail(sheet);
288    
289      gtk_sheet_set_active_cell(sheet, 0, 0);
290    
291    /* get rid of all the cells */    /* get rid of all the cells */
292    gtk_sheet_range_clear (sheet, NULL);    gtk_sheet_range_delete (sheet, NULL);
293    
294      /* Delete any excess columns */
295      gtk_sheet_delete_columns(sheet, 0,
296                               gtk_sheet_get_columns_count(sheet) - n_initial_columns);
297    
298    last_populated_row = -1;    last_populated_row = -1;
299    
# Line 384  value_format_func(gint row, gint col, co Line 388  value_format_func(gint row, gint col, co
388  static void  static void
389  value_encode_func(gint row, gint col, const gchar *text, GValue *dest)  value_encode_func(gint row, gint col, const gchar *text, GValue *dest)
390  {  {
391      if ( ! pspp_dictionary )
392        return;
393    
394    const struct variable *v = pspp_dict_get_var (pspp_dictionary, col);    const struct variable *v = pspp_dict_get_var (pspp_dictionary, col);
395    
396      if ( ! v )
397        return;
398    
399    struct ccase mycase;    struct ccase mycase;
400    
401    case_create(&mycase, dict_get_next_value_idx(pspp_dictionary->dict));    case_create(&mycase, dict_get_next_value_idx(pspp_dictionary->dict));
402    
403    union value *val = case_data_rw (&mycase, v->fv);    union value *val = case_data_rw (&mycase, v->fv);
404    
   
405    struct data_in d_in;    struct data_in d_in;
406    d_in.s = text;    d_in.s = text;
407    d_in.e = text + strlen(text);    d_in.e = text + strlen(text);
# Line 442  psppire_data_sheet_create (gchar *widget Line 451  psppire_data_sheet_create (gchar *widget
451    GtkWidget *sheet;    GtkWidget *sheet;
452    gint i;    gint i;
453    
454    n_variables = 10;    const gint rows = 46;
   const gint rows=46;  
455    
456    GtkSheetRange entire_sheet= {0,0,0,0};    GtkSheetRange entire_sheet= {0,0,0,0};
457    entire_sheet.rowi = rows - 1;    entire_sheet.rowi = rows - 1;
458    entire_sheet.coli = n_variables - 1;    entire_sheet.coli = n_initial_columns - 1;
459    
460    sheet = gtk_sheet_new(rows, n_variables, "data sheet");    sheet = gtk_sheet_new(rows, n_initial_columns, "data sheet");
461    
462    gtk_sheet_set_coding(GTK_SHEET(sheet),    gtk_sheet_set_coding(GTK_SHEET(sheet),
463                         value_encode_func, value_format_func, 0);                         value_encode_func, value_format_func, 0);
# Line 458  psppire_data_sheet_create (gchar *widget Line 466  psppire_data_sheet_create (gchar *widget
466                     G_CALLBACK(adjust_column_width), 0);                     G_CALLBACK(adjust_column_width), 0);
467    
468    gtk_sheet_columns_set_sensitivity(GTK_SHEET(sheet), FALSE);    gtk_sheet_columns_set_sensitivity(GTK_SHEET(sheet), FALSE);
469    for (i = 0 ; i < n_variables ; ++i )    for (i = 0 ; i < n_initial_columns ; ++i )
470      {      {
471        gtk_sheet_column_button_add_label (GTK_SHEET(sheet), i, _("var"));        gtk_sheet_column_button_add_label (GTK_SHEET(sheet), i, _("var"));
472      }      }
# Line 538  psppire_create_system_file(GtkSheet *she Line 546  psppire_create_system_file(GtkSheet *she
546                g_assert(G_VALUE_HOLDS(&gval, G_TYPE_DOUBLE));                g_assert(G_VALUE_HOLDS(&gval, G_TYPE_DOUBLE));
547                value->f = g_value_get_double(&gval);                value->f = g_value_get_double(&gval);
548              }              }
   
549          }          }
550    
551        if ( ! sfm_write_case(writer, &mycase) )        if ( ! sfm_write_case(writer, &mycase) )

Legend:
Removed from v.1.19  
changed lines
  Added in v.1.20

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26