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

Diff of /psppire/src/callbacks.c

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

revision 1.13 by jmd, Thu Nov 24 12:43:13 2005 UTC revision 1.14 by jmd, Fri Nov 25 12:04:10 2005 UTC
# Line 44  Line 44 
44    
45  extern GladeXML *xml;  extern GladeXML *xml;
46    
47  static struct file_handle *save_handle = 0;  static struct file_handle *psppire_handle = 0;
48    
49    static const gchar handle_name[] = "psppire_handle";
50    
51    static const gchar untitled[] = _("Untitled");
52    
53    static const gchar window_title[]=_("PSPP Data Editor");
54    
55    
56    static void
57    psppire_set_window_title(const gchar *text)
58    {
59      GtkWidget *window1 = glade_xml_get_widget(xml, "window1");
60      
61      gchar *title = g_strdup_printf("%s --- %s", text, window_title);
62    
63      gtk_window_set_title(GTK_WINDOW(window1), title);
64    
65      g_free(title);
66    }
67    
68    
69    gboolean
70    callbacks_on_init(gpointer data)
71    {
72      psppire_set_window_title(untitled);
73    
74      return FALSE;
75    }
76    
77  void  void
78  on_new1_activate                       (GtkMenuItem     *menuitem,  on_new1_activate                       (GtkMenuItem     *menuitem,
# Line 61  on_new1_activate                       ( Line 88  on_new1_activate                       (
88    psppire_var_sheet_clear(GTK_SHEET(var_sheet));    psppire_var_sheet_clear(GTK_SHEET(var_sheet));
89    psppire_data_sheet_clear(GTK_SHEET(data_sheet));    psppire_data_sheet_clear(GTK_SHEET(data_sheet));
90    
91    if (save_handle)    psppire_set_window_title(untitled);
92      destroy_file_handle(save_handle, 0);  
93    save_handle = 0 ;    if (psppire_handle)
94        destroy_file_handle(psppire_handle, 0);
95      psppire_handle = 0 ;
96  }  }
97    
98    
99    
100    
101  void  void
102  on_open1_activate                      (GtkMenuItem     *menuitem,  on_open1_activate                      (GtkMenuItem     *menuitem,
103                                          gpointer         user_data)                                          gpointer         user_data)
# Line 84  on_open1_activate                      ( Line 115  on_open1_activate                      (
115    
116    if (gtk_dialog_run (GTK_DIALOG (dialog)) == GTK_RESPONSE_ACCEPT)    if (gtk_dialog_run (GTK_DIALOG (dialog)) == GTK_RESPONSE_ACCEPT)
117      {      {
       struct file_handle *read_handle = 0;  
   
118        GtkWidget *data_sheet = glade_xml_get_widget(xml, "data_sheet");        GtkWidget *data_sheet = glade_xml_get_widget(xml, "data_sheet");
119        g_assert(data_sheet);        g_assert(data_sheet);
120    
# Line 95  on_open1_activate                      ( Line 124  on_open1_activate                      (
124        char *filename = gtk_file_chooser_get_filename        char *filename = gtk_file_chooser_get_filename
125          (GTK_FILE_CHOOSER (dialog));          (GTK_FILE_CHOOSER (dialog));
126    
127        read_handle =        if ( psppire_handle )
128          create_file_handle_with_defaults ("__read_handle", filename);          destroy_file_handle(psppire_handle, 0);
129        g_free (filename);  
130          psppire_handle =
131            create_file_handle_with_defaults (handle_name, filename);
132    
133        if ( !read_handle )        if ( !psppire_handle )
134          {          {
135            g_warning("Cannot read handle for reading system file \"%s\"\n",            g_warning("Cannot read handle for reading system file \"%s\"\n",
136                      filename);                      filename);
# Line 117  on_open1_activate                      ( Line 148  on_open1_activate                      (
148        struct sfm_read_info ri;        struct sfm_read_info ri;
149        struct sfm_reader *reader ;        struct sfm_reader *reader ;
150    
151        reader = sfm_open_reader (read_handle, &new_dict, &ri);        reader = sfm_open_reader (psppire_handle, &new_dict, &ri);
152        g_assert(reader);        g_assert(reader);
153    
154        dict = pspp_dict_new_from_dict(new_dict);        dict = pspp_dict_new_from_dict(new_dict);
# Line 125  on_open1_activate                      ( Line 156  on_open1_activate                      (
156        psppire_var_sheet_set_dictionary(GTK_SHEET(var_sheet), dict);        psppire_var_sheet_set_dictionary(GTK_SHEET(var_sheet), dict);
157        psppire_data_sheet_set_dictionary(GTK_SHEET(data_sheet), dict);        psppire_data_sheet_set_dictionary(GTK_SHEET(data_sheet), dict);
158    
159          psppire_set_window_title(basename(filename));
160    
161          g_free (filename);
162    
163        const int ni = dict_get_next_value_idx(dict->dict);        const int ni = dict_get_next_value_idx(dict->dict);
164        if ( ni == 0 )        if ( ni == 0 )
165          return;          return;
# Line 185  on_open1_activate                      ( Line 220  on_open1_activate                      (
220    
221        sfm_close_reader(reader);        sfm_close_reader(reader);
222    
       destroy_file_handle(read_handle, 0);  
   
       if (save_handle)  
         destroy_file_handle(save_handle, 0);  
       save_handle = 0;  
223      }      }
224    
225    gtk_widget_destroy (dialog);    gtk_widget_destroy (dialog);
# Line 218  recreate_save_handle(struct file_handle Line 248  recreate_save_handle(struct file_handle
248    
249        if ( *handle )        if ( *handle )
250          destroy_file_handle(*handle, 0);          destroy_file_handle(*handle, 0);
251        *handle = create_file_handle_with_defaults ("__psppire_save_handle",        *handle = create_file_handle_with_defaults (handle_name,
252                                                    filename);                                                    filename);
253    
254          psppire_set_window_title(basename(filename));
255    
256        g_free (filename);        g_free (filename);
257      }      }
258    
# Line 230  void Line 263  void
263  on_save1_activate                      (GtkMenuItem     *menuitem,  on_save1_activate                      (GtkMenuItem     *menuitem,
264                                          gpointer         user_data)                                          gpointer         user_data)
265  {  {
266    if ( ! save_handle )    if ( ! psppire_handle )
267      recreate_save_handle(&save_handle);      recreate_save_handle(&psppire_handle);
268        
269        
270    GtkWidget *data_sheet = glade_xml_get_widget(xml, "data_sheet");    GtkWidget *data_sheet = glade_xml_get_widget(xml, "data_sheet");
# Line 239  on_save1_activate                      ( Line 272  on_save1_activate                      (
272    
273    PSPP_Dict *dict = psppire_var_sheet_get_dictionary(var_sheet);    PSPP_Dict *dict = psppire_var_sheet_get_dictionary(var_sheet);
274        
275    if ( save_handle )    if ( psppire_handle )
276      psppire_create_system_file(data_sheet, dict, save_handle);      psppire_create_system_file(data_sheet, dict, psppire_handle);
277  }  }
278    
279    
# Line 248  void Line 281  void
281  on_save_as1_activate                   (GtkMenuItem     *menuitem,  on_save_as1_activate                   (GtkMenuItem     *menuitem,
282                                          gpointer         user_data)                                          gpointer         user_data)
283  {  {
284    recreate_save_handle(&save_handle);    recreate_save_handle(&psppire_handle);
285    if ( ! save_handle )    if ( ! psppire_handle )
286      return ;      return ;
287    
288    GtkWidget *data_sheet = glade_xml_get_widget(xml, "data_sheet");    GtkWidget *data_sheet = glade_xml_get_widget(xml, "data_sheet");
# Line 257  on_save_as1_activate                   ( Line 290  on_save_as1_activate                   (
290    
291    PSPP_Dict *dict = psppire_var_sheet_get_dictionary(var_sheet);    PSPP_Dict *dict = psppire_var_sheet_get_dictionary(var_sheet);
292    
293    if ( save_handle )    if ( psppire_handle )
294      psppire_create_system_file(data_sheet, dict, save_handle);      psppire_create_system_file(data_sheet, dict, psppire_handle);
295  }  }
296    
297    
# Line 337  void Line 370  void
370  on_about1_activate(GtkMenuItem     *menuitem,  on_about1_activate(GtkMenuItem     *menuitem,
371                     gpointer         user_data)                     gpointer         user_data)
372  {  {
373      GtkWidget *about =  glade_xml_get_widget(xml, "aboutdialog1");
374      
375      gtk_widget_show(about);
376    
377      gtk_window_set_transient_for(GTK_WINDOW(about),
378                                   GTK_WINDOW(glade_xml_get_widget(xml, "window1")));
379  }  }
380    
381    

Legend:
Removed from v.1.13  
changed lines
  Added in v.1.14

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