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

Diff of /psppire/src/var_sheet.c

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

revision 1.6 by jmd, Fri Oct 28 12:05:39 2005 UTC revision 1.7 by jmd, Sun Oct 30 03:29:13 2005 UTC
# Line 35  Line 35 
35  #define N_(A) A  #define N_(A) A
36    
37    
38  extern PSPP_Dict *pspp_dictionary;  static struct G_Object *pspp_dictionary;
39  extern GtkWindow *window1;  extern GtkWindow *window1;
40    
41    
# Line 97  enum {COL_NAME, Line 97  enum {COL_NAME,
97        n_COLS};        n_COLS};
98    
99    
100  #if 1  
101  static gint exit_column = -1;  static gint exit_column = -1;
102    
103    
# Line 129  var_sheet_cell_leave (GtkSheet * sheet, Line 129  var_sheet_cell_leave (GtkSheet * sheet,
129  }  }
130    
131    
 #endif  
   
132  void  void
133  psppire_construct_entry(GtkSheet *sheet)  psppire_construct_entry(GtkSheet *sheet)
134  {  {
# Line 221  var_sheet_set_next_row(GtkSheet *sheet, Line 219  var_sheet_set_next_row(GtkSheet *sheet,
219    
220  /* Makes a row non editable */  /* Makes a row non editable */
221  void  void
222  var_sheet_row_close(GtkSheet *sheet,gint row)  var_sheet_row_close(GtkSheet *sheet, gint row)
223  {  {
224    GtkSheetRange range;    GtkSheetRange range;
225    const gint columns =  gtk_sheet_get_columns_count(sheet);    const gint columns =  gtk_sheet_get_columns_count(sheet);
# Line 244  var_sheet_row_close(GtkSheet *sheet,gint Line 242  var_sheet_row_close(GtkSheet *sheet,gint
242  }  }
243    
244    
245    /* Closes the entire sheet, ready for new input */
246    void
247    var_sheet_close_all(GtkSheet *sheet)
248    {
249      GtkSheetRange range;
250      const gint columns =  gtk_sheet_get_columns_count(sheet);
251      const gint rows =  gtk_sheet_get_rows_count(sheet);
252      gint c;
253    
254      range.row0 = 0 ; range.rowi = rows - 1;
255      range.col0 = 0 ; range.coli = columns - 1;
256    
257      gtk_sheet_range_set_editable (sheet, &range, FALSE);
258    
259      gtk_sheet_range_set_background (sheet,&range,&colour_disabled);
260    
261    
262      gtk_sheet_range_clear (sheet, NULL);
263    
264      /* Set row 0 ready for input */
265      var_sheet_set_next_row(sheet, 0);
266    
267    }
268    
269    
270    
271    
272    
273  static GString *  static GString *
274  gint_to_gstring(gint x)  gint_to_gstring(gint x)
275  {  {
# Line 337  psppire_variable_sheet_create (gchar *wi Line 363  psppire_variable_sheet_create (gchar *wi
363    GtkWidget *sheet;    GtkWidget *sheet;
364    GtkWidget *entry;    GtkWidget *entry;
365    gint i;    gint i;
366    const gint columns=10;    const gint columns = 10;
367    const gint rows= 25;    const gint rows = 25;
368    
369    sheet = gtk_sheet_new(rows,columns,"variable sheet");    sheet = gtk_sheet_new(rows,columns,"variable sheet");
370    
# Line 353  psppire_variable_sheet_create (gchar *wi Line 379  psppire_variable_sheet_create (gchar *wi
379                                     &colour_enabled,FALSE,TRUE);                                     &colour_enabled,FALSE,TRUE);
380    
381    
   g_signal_connect(pspp_dictionary, "variable_changed",  
                    G_CALLBACK(var_sheet_update_callback), sheet);  
   
   g_signal_connect(pspp_dictionary, "variable_deleted",  
                    G_CALLBACK(remove_variable), sheet);  
   
   
382    g_signal_connect (GTK_OBJECT (sheet), "activate",    g_signal_connect (GTK_OBJECT (sheet), "activate",
383                      GTK_SIGNAL_FUNC (var_sheet_cell_enter),                      GTK_SIGNAL_FUNC (var_sheet_cell_enter),
384                      0);                      0);
# Line 401  update_variable(GtkSheet *sheet, gint ro Line 420  update_variable(GtkSheet *sheet, gint ro
420    
421    struct variable *old_var = pspp_dict_get_var(pspp_dictionary, row);    struct variable *old_var = pspp_dict_get_var(pspp_dictionary, row);
422        
423  switch (col)    switch (col)
424      {      {
425      case COL_NAME:      case COL_NAME:
426        {        {
427          const gchar *name = gtk_sheet_cell_get_text(sheet, row, col);          const gchar *name = gtk_sheet_cell_get_text(sheet, row, col);
428    
429          if ( old_var && (0 == strcmp(old_var->name, name)))          if ( old_var && (0 == strcmp(old_var->name, name)))
430              return FALSE;            return FALSE;
431    
432          if ( ! var_is_valid_name(name, 0 ) )          if ( ! var_is_valid_name(name, 0 ) )
433            {            {
# Line 418  switch (col) Line 437  switch (col)
437              else              else
438                gtk_sheet_cell_clear(sheet, row, col);                gtk_sheet_cell_clear(sheet, row, col);
439            }            }
440          else if ( pspp_dict_lookup_var(pspp_dictionary, name))          else if (
441                     pspp_dict_lookup_var(pspp_dictionary, name)
442                     && ( !old_var ||
443                          0 != strncasecmp(old_var->name, name))
444                     )
445            {            {
446              g_print("Duplicate variable name\n");              g_print("Duplicate variable name\n");
447              gtk_sheet_set_cell_text(sheet, row, col, old_var->name);              gtk_sheet_set_cell_text(sheet, row, col, old_var->name);
# Line 462  var_sheet_update_callback(GObject *obj, Line 485  var_sheet_update_callback(GObject *obj,
485    
486    return FALSE;    return FALSE;
487  }  }
488    
489    
490    
491    
492    
493    /* Associate a  dictionary with the var sheet */
494    void
495    psppire_var_sheet_set_dictionary(GtkWidget *sheet, PSPP_Dict *d)
496    {
497      pspp_dictionary  = d;
498    
499      g_signal_connect(pspp_dictionary, "variable_changed",
500                       G_CALLBACK(var_sheet_update_callback), sheet);
501    
502      g_signal_connect(pspp_dictionary, "variable_deleted",
503                       G_CALLBACK(remove_variable), sheet);
504    
505    }
506    

Legend:
Removed from v.1.6  
changed lines
  Added in v.1.7

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