/[graveman]/graveman/current/src/callbacks.c
ViewVC logotype

Diff of /graveman/current/src/callbacks.c

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

revision 1.18 by scresto, Sat Feb 12 16:41:07 2005 UTC revision 1.19 by scresto, Sat Feb 19 17:49:08 2005 UTC
# Line 37  gboolean on_closeabout (GtkWidget *Awidg Line 37  gboolean on_closeabout (GtkWidget *Awidg
37  }  }
38    
39  /* callback appele pour l'ajout d'une piste audio */  /* callback appele pour l'ajout d'une piste audio */
40  void _add_a_piste(gchar *Anom, GtkListStore *Aliststore, GHashTable *Ahash)  void _add_a_piste(gchar *Anom, GtkListStore *Aliststore, Tgrave *Ag)
41  {  {
42    guint32 *Laudiolen = (guint32 *)g_hash_table_lookup(Ahash, "audiolen");    guint32 *Laudiolen = (guint32 *)sc_grave_get_data(Ag, "audiolen");
43    GtkTreeIter Liter;    GtkTreeIter Liter;
44    gchar *LTitle = NULL, *LAlbum = NULL, *LArtist = NULL;    gchar *LTitle = NULL, *LAlbum = NULL, *LArtist = NULL;
45    guint32 Llennbr = 0;    guint32 Llennbr = 0;
# Line 106  void _add_a_piste(gchar *Anom, GtkListSt Line 106  void _add_a_piste(gchar *Anom, GtkListSt
106  }  }
107    
108  /* callback appele pour l'ajout de chaques fichiers */  /* callback appele pour l'ajout de chaques fichiers */
109  void _add_a_file(gchar *Anom, GtkTreeStore *ATreeStore, GtkTreeIter *Aparent, GHashTable *Ahash, guint64 *Adatasize)  void _add_a_file(gchar *Anom, GtkTreeStore *ATreeStore, GtkTreeIter *Aparent, Tgrave *Ag, guint64 *Adatasize)
110  {  {
111    GtkTreeIter Liter;    GtkTreeIter Liter;
112    gchar *LOnlyName;    gchar *LOnlyName;
# Line 150  void _add_a_file(gchar *Anom, GtkTreeSto Line 150  void _add_a_file(gchar *Anom, GtkTreeSto
150        if (!strcmp(Lcurfic->d_name, ".") || !strcmp(Lcurfic->d_name, "..")) continue;        if (!strcmp(Lcurfic->d_name, ".") || !strcmp(Lcurfic->d_name, "..")) continue;
151                    
152        Lfullname = g_strdup_printf("%s/%s", Anom, Lcurfic->d_name);        Lfullname = g_strdup_printf("%s/%s", Anom, Lcurfic->d_name);
153        _add_a_file(Lfullname, ATreeStore, &Liter, Ahash, Adatasize);        _add_a_file(Lfullname, ATreeStore, &Liter, Ag, Adatasize);
154        g_free(Lfullname);        g_free(Lfullname);
155      }      }
156      closedir(Ldir);      closedir(Ldir);
# Line 172  void _add_a_file(gchar *Anom, GtkTreeSto Line 172  void _add_a_file(gchar *Anom, GtkTreeSto
172  /* creer un repertoire */  /* creer un repertoire */
173  void gtk_data_creerrepertoire(GtkWidget *btn, gpointer Adata)  void gtk_data_creerrepertoire(GtkWidget *btn, gpointer Adata)
174  {  {
175    GHashTable *Lhash = (GHashTable *)Adata;    Tgrave *Lg = (Tgrave *)Adata;
176    GtkTreeView *Lliste = GTK_TREE_VIEW(g_hash_table_lookup(Lhash, "_current_list"));    GtkTreeView *Lliste = GTK_TREE_VIEW(sc_grave_get_data(Lg, "_current_list"));
177    GtkTreeModel *Ltreemodel = gtk_tree_view_get_model(Lliste);    GtkTreeModel *Ltreemodel = gtk_tree_view_get_model(Lliste);
178    GtkTreeIter Liter, Lparent;    GtkTreeIter Liter, Lparent;
179    GtkWidget *Lboite, *Lentry;    GtkWidget *Lboite, *Lentry;
# Line 214  void gtk_data_creerrepertoire(GtkWidget Line 214  void gtk_data_creerrepertoire(GtkWidget
214  /* developper tout le contenu de l'arbre */  /* developper tout le contenu de l'arbre */
215  void gtk_data_expandelement(GtkWidget *btn, gpointer Adata)  void gtk_data_expandelement(GtkWidget *btn, gpointer Adata)
216  {  {
217    GHashTable *Lhash = (GHashTable *)Adata;    Tgrave *Lg = (Tgrave *)Adata;
218    GtkTreeView *Lliste = GTK_TREE_VIEW(g_hash_table_lookup(Lhash, "_current_list"));    GtkTreeView *Lliste = GTK_TREE_VIEW(sc_grave_get_data(Lg, "_current_list"));
219    GtkTreePath *Lpath = NULL;    GtkTreePath *Lpath = NULL;
220    
221    gtk_tree_view_get_cursor(Lliste, &Lpath, NULL);    gtk_tree_view_get_cursor(Lliste, &Lpath, NULL);
# Line 228  void gtk_data_expandelement(GtkWidget *b Line 228  void gtk_data_expandelement(GtkWidget *b
228  /* renommer un element (fichier ou repertoire) */  /* renommer un element (fichier ou repertoire) */
229  void gtk_data_renommerelement(GtkWidget *Abtn, gpointer Adata)  void gtk_data_renommerelement(GtkWidget *Abtn, gpointer Adata)
230  {  {
231    GHashTable *Lhash = (GHashTable *)Adata;    Tgrave *Lg = (Tgrave *)Adata;
232    GtkTreeView *Lliste = GTK_TREE_VIEW(g_hash_table_lookup(Lhash, "_current_list"));    GtkTreeView *Lliste = GTK_TREE_VIEW(sc_grave_get_data(Lg, "_current_list"));
233    GtkWidget *Lboite, *Lentry;    GtkWidget *Lboite, *Lentry;
234    GtkTreeModel *Ltreemodel = gtk_tree_view_get_model(Lliste);    GtkTreeModel *Ltreemodel = gtk_tree_view_get_model(Lliste);
235    GtkTreePath *Lpath = NULL;    GtkTreePath *Lpath = NULL;
# Line 301  void get_parent_iter(GtkTreeView *Aliste Line 301  void get_parent_iter(GtkTreeView *Aliste
301  /* enlever des pistes a graver */  /* enlever des pistes a graver */
302  void gtk_audio_removetrack(GtkWidget *Abtn, gpointer Adata)  void gtk_audio_removetrack(GtkWidget *Abtn, gpointer Adata)
303  {  {
304    GHashTable *Lhash = (GHashTable *)Adata;    Tgrave *Lg = (Tgrave *)Adata;
305    GtkTreeView *Lliste = GTK_TREE_VIEW(g_hash_table_lookup(Lhash, "LISTEAUDIO"));    GtkTreeView *Lliste = GTK_TREE_VIEW(sc_grave_get_data(Lg, "LISTEAUDIO"));
306    GtkTreeSelection *Lselection = gtk_tree_view_get_selection(GTK_TREE_VIEW(Lliste));    GtkTreeSelection *Lselection = gtk_tree_view_get_selection(GTK_TREE_VIEW(Lliste));
307    GtkProgressBar *Lcontenance = GTK_PROGRESS_BAR(g_hash_table_lookup(Lhash, "audiolenbar"));    GtkProgressBar *Lcontenance = GTK_PROGRESS_BAR(sc_grave_get_data(Lg, "audiolenbar"));
308    guint32 *Laudiolen = (guint32 *)g_hash_table_lookup(Lhash, "audiolen");    guint32 *Laudiolen = (guint32 *)sc_grave_get_data(Lg, "audiolen");
309    guint32 *Laudiomaxlen = (guint32 *)g_hash_table_lookup(Lhash, "audiomaxlen");    guint32 *Laudiomaxlen = (guint32 *)sc_grave_get_data(Lg, "audiomaxlen");
310    GtkTreeIter Liter;    GtkTreeIter Liter;
311    GtkTreeModel *Ltreemodel = gtk_tree_view_get_model(Lliste);    GtkTreeModel *Ltreemodel = gtk_tree_view_get_model(Lliste);
312    guint32 Llennbr = 0;    guint32 Llennbr = 0;
# Line 342  void gtk_audio_removetrack(GtkWidget *Ab Line 342  void gtk_audio_removetrack(GtkWidget *Ab
342  }  }
343    
344  /* parcourir tous les fils d'un element et recuperer leur taille que l'on enleve de "cursize" */  /* parcourir tous les fils d'un element et recuperer leur taille que l'on enleve de "cursize" */
345  void remove_children_size(GtkTreeModel *Atreedata, GtkTreeIter *Aiter, guint64 *Acursize, GHashTable *Ahash);  void remove_children_size(GtkTreeModel *Atreedata, GtkTreeIter *Aiter, guint64 *Acursize, Tgrave *Ag);
346  void remove_children_size(GtkTreeModel *Atreedata, GtkTreeIter *Aiter, guint64 *Acursize, GHashTable *Ahash)  void remove_children_size(GtkTreeModel *Atreedata, GtkTreeIter *Aiter, guint64 *Acursize, Tgrave *Ag)
347  {  {
348    GtkTreeIter Lcuriter;    GtkTreeIter Lcuriter;
349    guint64 Lsizenbr = 0;    guint64 Lsizenbr = 0;
# Line 355  void remove_children_size(GtkTreeModel * Line 355  void remove_children_size(GtkTreeModel *
355        *Acursize-=Lsizenbr;        *Acursize-=Lsizenbr;
356  #if 0  #if 0
357        if (Ltype == TYPE_IMAGEBOOT) {        if (Ltype == TYPE_IMAGEBOOT) {
358          g_hash_table_replace(Lhash, "file_imageboot", gtk_tree_iter_copy(&Lnewiter));          g_hash_table_replace(Lg, "file_imageboot", gtk_tree_iter_copy(&Lnewiter));
359        }        }
360  #endif  #endif
361    
362        remove_children_size(Atreedata, &Lcuriter, Acursize, Ahash);        remove_children_size(Atreedata, &Lcuriter, Acursize, Ag);
363      } while (gtk_tree_model_iter_next(Atreedata, &Lcuriter));      } while (gtk_tree_model_iter_next(Atreedata, &Lcuriter));
364    }    }
365  }  }
# Line 368  void remove_children_size(GtkTreeModel * Line 368  void remove_children_size(GtkTreeModel *
368  void gtk_display_updatesize(GtkWidget *Abtn, gpointer Adata)  void gtk_display_updatesize(GtkWidget *Abtn, gpointer Adata)
369  {  {
370    const gchar *Lname = glade_get_widget_name(Abtn);    const gchar *Lname = glade_get_widget_name(Abtn);
371    GHashTable *Lhash = (GHashTable *) Adata;    Tgrave *Lg = (Tgrave *) Adata;
372    gchar *Lsize = strrchr(Lname, '_');    gchar *Lsize = strrchr(Lname, '_');
373    
374    g_assert(Lsize);    g_assert(Lsize);
375    
376    conf_store_value("iconsize", ++Lsize);    conf_store_value("iconsize", ++Lsize);
377    
378    manage_interface(Lhash, MENU_UPDATE);    manage_interface(Lg, MENU_UPDATE);
379  }  }
380    
381  /* clique sur le popup pour l'affichage ou non de la status bar */  /* clique sur le popup pour l'affichage ou non de la status bar */
382  void gtk_display_switchstatusbar(GtkWidget *Abtn, gpointer Adata)  void gtk_display_switchstatusbar(GtkWidget *Abtn, gpointer Adata)
383  {  {
384    GHashTable *Lhash = (GHashTable *) Adata;    Tgrave *Lg = (Tgrave *) Adata;
385    gboolean Ldispsb = conf_get_boolean("statusbar");    gboolean Ldispsb = conf_get_boolean("statusbar");
386    
387    conf_store_value("statusbar", Ldispsb ? "0" : "1");    conf_store_value("statusbar", Ldispsb ? "0" : "1");
388    
389    update_status_bar_display(Lhash);    update_status_bar_display(Lg);
390  }  }
391    
392  /* enlever des fichiers a graver */  /* enlever des fichiers a graver */
393  void gtk_data_removefiles(GtkWidget *Abtn, gpointer Adata)  void gtk_data_removefiles(GtkWidget *Abtn, gpointer Adata)
394  {  {
395    GHashTable *Lhash = (GHashTable *)Adata;    Tgrave *Lg = (Tgrave *)Adata;
396    GtkTreeView *Lliste = GTK_TREE_VIEW(g_hash_table_lookup(Lhash, "_current_list"));    GtkTreeView *Lliste = GTK_TREE_VIEW(sc_grave_get_data(Lg, "_current_list"));
397  //  gchar *Lprefix = (!strcmp(glade_get_widget_name(Lliste), "LISTEDATA") ? "data" : "dvddata");    GtkProgressBar *Lcontenance;
398    GtkProgressBar *Lcontenance; // = GTK_PROGRESS_BAR(sc_hash_table_lookupv(Lhash, "%ssizebar", Lprefix));    guint64 *Ldatasize;
399    guint64 *Ldatasize; // = (guint64 *)g_hash_table_lookup(Lhash, "%ssize", Lprefix);    guint64 *Ldatamaxsize;
   guint64 *Ldatamaxsize; // = (guint64 *)g_hash_table_lookup(Lhash, "%smaxsize", Lprefix);  
400    
401    _REMPLISSAGE_VALUE(Lhash, Lliste, Ldatasize, Ldatamaxsize, Lcontenance);    _REMPLISSAGE_VALUE(Lg, Lliste, Ldatasize, Ldatamaxsize, Lcontenance);
402        
403    /* image de boot */    /* image de boot */
404  #if 0    #if 0  
405    GtkTreeIter *Literboot = g_hash_table_lookup(Lhash, "file_imageboot");    GtkTreeIter *Literboot = sc_grave_get_data(Lg, "file_imageboot");
406  #endif  #endif
407    GtkTreeModel *Ltreedata = gtk_tree_view_get_model(GTK_TREE_VIEW(Lliste));    GtkTreeModel *Ltreedata = gtk_tree_view_get_model(GTK_TREE_VIEW(Lliste));
408    GtkTreeSelection *Lselection = gtk_tree_view_get_selection(GTK_TREE_VIEW(Lliste));    GtkTreeSelection *Lselection = gtk_tree_view_get_selection(GTK_TREE_VIEW(Lliste));
# Line 435  void gtk_data_removefiles(GtkWidget *Abt Line 434  void gtk_data_removefiles(GtkWidget *Abt
434          g_assert((*Ldatasize) >= 0);          g_assert((*Ldatasize) >= 0);
435    
436          /* on enleve la taille des eventuels enfants */          /* on enleve la taille des eventuels enfants */
437          remove_children_size(Ltreedata, &Liter, Ldatasize, Lhash);          remove_children_size(Ltreedata, &Liter, Ldatasize, Lg);
438    
439          gtk_tree_store_remove(GTK_TREE_STORE(Ltreedata), &Liter);          gtk_tree_store_remove(GTK_TREE_STORE(Ltreedata), &Liter);
440          gtk_tree_row_reference_deleted(Lproxy, Lpath);          gtk_tree_row_reference_deleted(Lproxy, Lpath);
# Line 460  void gtk_data_removefiles(GtkWidget *Abt Line 459  void gtk_data_removefiles(GtkWidget *Abt
459  /* ajouter des pistes a graver */  /* ajouter des pistes a graver */
460  void gtk_audio_addtrack(GtkWidget *Abtn, gpointer Adata)  void gtk_audio_addtrack(GtkWidget *Abtn, gpointer Adata)
461  {  {
462    GHashTable *Lhash = (GHashTable *)Adata;    Tgrave *Lg = (Tgrave *)Adata;
463    GtkWidget *Lwindow1 = GTK_WIDGET(g_hash_table_lookup(Lhash, "topwindow"));    GtkWidget *Lwindow1 = GTK_WIDGET(sc_grave_get_widget(Lg, "topwindow"));
464    GtkTreeView *Lliste = GTK_TREE_VIEW(g_hash_table_lookup(Lhash, "LISTEAUDIO"));    GtkTreeView *Lliste = GTK_TREE_VIEW(sc_grave_get_widget(Lg, "LISTEAUDIO"));
465    guint32 *Laudiolen = (guint32 *)g_hash_table_lookup(Lhash, "audiolen");    guint32 *Laudiolen = (guint32 *)sc_grave_get_data(Lg, "audiolen");
466    guint32 *Laudiomaxlen = (guint32 *)g_hash_table_lookup(Lhash, "audiomaxlen");    guint32 *Laudiomaxlen = (guint32 *)sc_grave_get_data(Lg, "audiomaxlen");
467    GtkProgressBar *Lcontenance = GTK_PROGRESS_BAR(g_hash_table_lookup(Lhash, "audiolenbar"));    GtkProgressBar *Lcontenance = GTK_PROGRESS_BAR(sc_grave_get_widget(Lg, "audiolenbar"));
468    GtkTreeModel *Ltreemodel = gtk_tree_view_get_model(Lliste);    GtkTreeModel *Ltreemodel = gtk_tree_view_get_model(Lliste);
469    GtkWidget *Lpistesel = create_addpisteselection(NULL);    GtkWidget *Lpistesel = create_addpisteselection(NULL);
470    GSList *Lfiles, *Lcur;    GSList *Lfiles, *Lcur;
# Line 478  void gtk_audio_addtrack(GtkWidget *Abtn, Line 477  void gtk_audio_addtrack(GtkWidget *Abtn,
477    
478      set_cursor(Lwindow1, GDK_WATCH);      set_cursor(Lwindow1, GDK_WATCH);
479      for (Lcur = Lfiles; Lcur && Lcur->data; Lcur = Lcur->next) {      for (Lcur = Lfiles; Lcur && Lcur->data; Lcur = Lcur->next) {
480        _add_a_piste((gchar *) Lcur->data, GTK_LIST_STORE(Ltreemodel), Lhash);        _add_a_piste((gchar *) Lcur->data, GTK_LIST_STORE(Ltreemodel), Lg);
481      }      }
482      unset_cursor(Lwindow1);      unset_cursor(Lwindow1);
483    
# Line 493  void gtk_audio_addtrack(GtkWidget *Abtn, Line 492  void gtk_audio_addtrack(GtkWidget *Abtn,
492  /* ajouter des repertoires a graver */  /* ajouter des repertoires a graver */
493  void gtk_data_adddirectory(GtkWidget *btn, gpointer Adata)  void gtk_data_adddirectory(GtkWidget *btn, gpointer Adata)
494  {  {
495    GHashTable *Lhash = (GHashTable *)Adata;    Tgrave *Lg = (Tgrave *)Adata;
496    GtkWidget *Lwindow1 = GTK_WIDGET(g_hash_table_lookup(Lhash, "topwindow"));    GtkWidget *Lwindow1 = GTK_WIDGET(sc_grave_get_widget(Lg, "topwindow"));
497    GtkTreeView *Lliste = GTK_TREE_VIEW(g_hash_table_lookup(Lhash, "_current_list"));    GtkTreeView *Lliste = GTK_TREE_VIEW(sc_grave_get_data(Lg, "_current_list"));
498    GtkTreeSelection *Lselection = gtk_tree_view_get_selection(GTK_TREE_VIEW(Lliste));    GtkTreeSelection *Lselection = gtk_tree_view_get_selection(GTK_TREE_VIEW(Lliste));
499    GtkTreeModel *Ltreemodel = gtk_tree_view_get_model(GTK_TREE_VIEW(Lliste));    GtkTreeModel *Ltreemodel = gtk_tree_view_get_model(GTK_TREE_VIEW(Lliste));
500    GtkWidget *Lfilesel = create_adddirselection(NULL);    GtkWidget *Lfilesel = create_adddirselection(NULL);
# Line 508  void gtk_data_adddirectory(GtkWidget *bt Line 507  void gtk_data_adddirectory(GtkWidget *bt
507    gint Ltype;    gint Ltype;
508    GtkTreePath *Lpath = NULL;    GtkTreePath *Lpath = NULL;
509    
510    _REMPLISSAGE_VALUE(Lhash, Lliste, Ldatasize, Ldatamaxsize, Lcontenance);    _REMPLISSAGE_VALUE(Lg, Lliste, Ldatasize, Ldatamaxsize, Lcontenance);
511    
512    /* focus sur le premier element si pas de focus */    /* focus sur le premier element si pas de focus */
513    if (!Lnumsel) {    if (!Lnumsel) {
# Line 538  void gtk_data_adddirectory(GtkWidget *bt Line 537  void gtk_data_adddirectory(GtkWidget *bt
537      Lfiles = gtk_file_chooser_get_filenames(GTK_FILE_CHOOSER(Lfilesel));      Lfiles = gtk_file_chooser_get_filenames(GTK_FILE_CHOOSER(Lfilesel));
538                    
539      for (Lcur = Lfiles; Lcur && Lcur->data; Lcur = Lcur->next) {      for (Lcur = Lfiles; Lcur && Lcur->data; Lcur = Lcur->next) {
540        _add_a_file((gchar *) Lcur->data, (GtkTreeStore *)Ltreemodel, &Liter, Lhash, Ldatasize);        _add_a_file((gchar *) Lcur->data, (GtkTreeStore *)Ltreemodel, &Liter, Lg, Ldatasize);
541    
542      }      }
543      g_slist_free(Lfiles);      g_slist_free(Lfiles);
# Line 558  void gtk_data_adddirectory(GtkWidget *bt Line 557  void gtk_data_adddirectory(GtkWidget *bt
557  /* ajouter des fichiers a graver */  /* ajouter des fichiers a graver */
558  void gtk_data_addfile(GtkWidget *btn, gpointer Adata)  void gtk_data_addfile(GtkWidget *btn, gpointer Adata)
559  {  {
560    GHashTable *Lhash = (GHashTable *)Adata;    Tgrave *Lg = (Tgrave *)Adata;
561    GtkTreeView *Lliste = GTK_TREE_VIEW(g_hash_table_lookup(Lhash, "_current_list"));    GtkTreeView *Lliste = GTK_TREE_VIEW(sc_grave_get_data(Lg, "_current_list"));
562    GtkTreeSelection *Lselection = gtk_tree_view_get_selection(GTK_TREE_VIEW(Lliste));    GtkTreeSelection *Lselection = gtk_tree_view_get_selection(GTK_TREE_VIEW(Lliste));
563    guint64 *Ldatasize;    guint64 *Ldatasize;
564    guint64 *Ldatamaxsize;    guint64 *Ldatamaxsize;
# Line 572  void gtk_data_addfile(GtkWidget *btn, gp Line 571  void gtk_data_addfile(GtkWidget *btn, gp
571    gint Lnumsel = gtk_tree_selection_count_selected_rows(Lselection);    gint Lnumsel = gtk_tree_selection_count_selected_rows(Lselection);
572    GtkTreePath *Lpath = NULL;    GtkTreePath *Lpath = NULL;
573    
574    _REMPLISSAGE_VALUE(Lhash, Lliste, Ldatasize, Ldatamaxsize, Lcontenance);    _REMPLISSAGE_VALUE(Lg, Lliste, Ldatasize, Ldatamaxsize, Lcontenance);
575    
576    /* focus sur le premier element si pas de focus */    /* focus sur le premier element si pas de focus */
577    if (!Lnumsel) {    if (!Lnumsel) {
# Line 600  void gtk_data_addfile(GtkWidget *btn, gp Line 599  void gtk_data_addfile(GtkWidget *btn, gp
599    
600      Lfiles = gtk_file_chooser_get_filenames(GTK_FILE_CHOOSER(Lfilesel));      Lfiles = gtk_file_chooser_get_filenames(GTK_FILE_CHOOSER(Lfilesel));
601      for (Lcur = Lfiles; Lcur && Lcur->data; Lcur = Lcur->next) {      for (Lcur = Lfiles; Lcur && Lcur->data; Lcur = Lcur->next) {
602        _add_a_file((gchar *) Lcur->data, GTK_TREE_STORE(Ltreemodel), &Liter, Lhash, Ldatasize);        _add_a_file((gchar *) Lcur->data, GTK_TREE_STORE(Ltreemodel), &Liter, Lg, Ldatasize);
603    
604      }      }
605      g_slist_free(Lfiles);      g_slist_free(Lfiles);
# Line 618  void gtk_data_addfile(GtkWidget *btn, gp Line 617  void gtk_data_addfile(GtkWidget *btn, gp
617  /* l'utilisateur veut editer un device */  /* l'utilisateur veut editer un device */
618  void gtk_devices_edit(GtkWidget *Abtn, gpointer Adata)  void gtk_devices_edit(GtkWidget *Abtn, gpointer Adata)
619  {  {
620    GHashTable *Lhash = (GHashTable *) Adata;    Tgrave *Lg = (Tgrave *) Adata;
621    GtkWidget *Lparent = GTK_WIDGET(g_hash_table_lookup(Lhash, "window"));    GtkWidget *Lparent = GTK_WIDGET(sc_grave_get_widget(Lg, "window"));
622    GtkTreeView *Lliste = GTK_TREE_VIEW(g_hash_table_lookup(Lhash, "periphdata"));    GtkTreeView *Lliste = GTK_TREE_VIEW(sc_grave_get_widget(Lg, "periphdata"));
623    GtkTreeSelection *Lselection = gtk_tree_view_get_selection(GTK_TREE_VIEW(Lliste));    GtkTreeSelection *Lselection = gtk_tree_view_get_selection(GTK_TREE_VIEW(Lliste));
624    GtkTreeIter Liter;    GtkTreeIter Liter;
625    GtkTreeModel *Ltreemodel;    GtkTreeModel *Ltreemodel;
626    
627    if (gtk_tree_selection_get_selected(Lselection, &Ltreemodel, &Liter)) {    if (gtk_tree_selection_get_selected(Lselection, &Ltreemodel, &Liter)) {
628      GHashTable *Ldialoghash;      Tgrave *Ldialoghash;
629      GtkWidget *Lwineditdevice;      GtkWidget *Lwineditdevice;
630      Tdriveinfo *Ldrive;      Tdriveinfo *Ldrive;
631      gint Lnum;      gint Lnum;
# Line 635  void gtk_devices_edit(GtkWidget *Abtn, g Line 634  void gtk_devices_edit(GtkWidget *Abtn, g
634      gtk_tree_model_get(Ltreemodel, &Liter, 0, &Lnum, -1);      gtk_tree_model_get(Ltreemodel, &Liter, 0, &Lnum, -1);
635      Ldrive = (Tdriveinfo *)g_slist_nth_data(Glistdrives, Lnum);      Ldrive = (Tdriveinfo *)g_slist_nth_data(Glistdrives, Lnum);
636      Ldialoghash = create_dialog_edit_device(Lparent, Ldrive);      Ldialoghash = create_dialog_edit_device(Lparent, Ldrive);
637      Lwineditdevice = g_hash_table_lookup(Ldialoghash, "window");      Lwineditdevice = sc_grave_get_widget(Ldialoghash, "window");
638    
639      if (gtk_dialog_run(GTK_DIALOG(Lwineditdevice)) != GTK_RESPONSE_CANCEL) {      if (gtk_dialog_run(GTK_DIALOG(Lwineditdevice)) != GTK_RESPONSE_CANCEL) {
640        GtkEntry *Ldevicename = g_hash_table_lookup(Ldialoghash, "devicename");        GtkEntry *Ldevicename = GTK_ENTRY(sc_grave_get_widget(Ldialoghash, "devicename"));
641    
642        Lbus = get_combo_intvalue(g_hash_table_lookup(Ldialoghash, "devicebus"));        Lbus = get_combo_intvalue(sc_grave_get_widget(Ldialoghash, "devicebus"));
643        Ldrive->actuperiph = Lbus;        Ldrive->actuperiph = Lbus;
644    
645        /* on remplace le nom dans la liste des lecteurs */        /* on remplace le nom dans la liste des lecteurs */
# Line 651  void gtk_devices_edit(GtkWidget *Abtn, g Line 650  void gtk_devices_edit(GtkWidget *Abtn, g
650            4, Ldrive->name, -1);            4, Ldrive->name, -1);
651      }      }
652      gtk_widget_destroy(Lwineditdevice);      gtk_widget_destroy(Lwineditdevice);
653      g_hash_table_destroy(Ldialoghash);      sc_grave_destroy(Ldialoghash);
654    }    }
655    
656  }  }
# Line 659  void gtk_devices_edit(GtkWidget *Abtn, g Line 658  void gtk_devices_edit(GtkWidget *Abtn, g
658  /* l'utilisateur a cliquer sur supprimer un device */  /* l'utilisateur a cliquer sur supprimer un device */
659  void gtk_devices_remove(GtkWidget *Abtn, gpointer Adata)  void gtk_devices_remove(GtkWidget *Abtn, gpointer Adata)
660  {  {
661    GHashTable *Lhash = (GHashTable *)Adata;    Tgrave *Lg = (Tgrave *)Adata;
662    GtkWidget *Lwindow1 = GTK_WIDGET(g_hash_table_lookup(Lhash, "topwindow"));    GtkWidget *Lwindow1 = GTK_WIDGET(sc_grave_get_widget(Lg, "topwindow"));
663    GtkWidget *Lconfirm;    GtkWidget *Lconfirm;
664    gint Lrep;    gint Lrep;
665        
# Line 674  void gtk_devices_remove(GtkWidget *Abtn, Line 673  void gtk_devices_remove(GtkWidget *Abtn,
673    
674    if (Lrep == GTK_RESPONSE_YES) {    if (Lrep == GTK_RESPONSE_YES) {
675      /* oui on supprime un device */      /* oui on supprime un device */
676      GtkTreeView *Lliste = GTK_TREE_VIEW(g_hash_table_lookup(Lhash, "periphdata"));      GtkTreeView *Lliste = GTK_TREE_VIEW(sc_grave_get_widget(Lg, "periphdata"));
677      GtkTreeSelection *Lselection = gtk_tree_view_get_selection(GTK_TREE_VIEW(Lliste));      GtkTreeSelection *Lselection = gtk_tree_view_get_selection(GTK_TREE_VIEW(Lliste));
678      GtkTreeIter Liter;      GtkTreeIter Liter;
679      GtkTreeModel *Ltreemodel;      GtkTreeModel *Ltreemodel;
# Line 694  void gtk_devices_remove(GtkWidget *Abtn, Line 693  void gtk_devices_remove(GtkWidget *Abtn,
693  /* ajouter manuelement un device */  /* ajouter manuelement un device */
694  void gtk_devices_add(GtkWidget *Abtn, gpointer Adata)  void gtk_devices_add(GtkWidget *Abtn, gpointer Adata)
695  {  {
696    GHashTable *Lhash = (GHashTable *) Adata;    Tgrave *Lg = (Tgrave *) Adata;
697    GtkWidget *Lparent = GTK_WIDGET(g_hash_table_lookup(Lhash, "window"));    GtkWidget *Lparent = GTK_WIDGET(sc_grave_get_widget(Lg, "window"));
698    GtkTreeView *Lliste = GTK_TREE_VIEW(g_hash_table_lookup(Lhash, "periphdata"));    GtkTreeView *Lliste = GTK_TREE_VIEW(sc_grave_get_widget(Lg, "periphdata"));
699    GHashTable *Ldialoghash = create_dialog_add_device(Lparent);    Tgrave *Ldialoghash = create_dialog_add_device(Lparent);
700    GtkWidget *Lwinadddevice = g_hash_table_lookup(Ldialoghash, "window");    GtkWidget *Lwinadddevice = sc_grave_get_widget(Ldialoghash, "window");
701    GtkWidget *Lmessage;    GtkWidget *Lmessage;
702    
703    while (1) {    while (1) {
704      if (gtk_dialog_run(GTK_DIALOG(Lwinadddevice)) != GTK_RESPONSE_CANCEL) {      if (gtk_dialog_run(GTK_DIALOG(Lwinadddevice)) != GTK_RESPONSE_CANCEL) {
705        GtkEntry *Ldevicebus = GTK_ENTRY(g_hash_table_lookup(Ldialoghash, "devicebus"));        GtkEntry *Ldevicebus = GTK_ENTRY(sc_grave_get_widget(Ldialoghash, "devicebus"));
706        GtkEntry *Ldevicename = GTK_ENTRY(g_hash_table_lookup(Ldialoghash, "devicename"));        GtkEntry *Ldevicename = GTK_ENTRY(sc_grave_get_widget(Ldialoghash, "devicename"));
707        gchar *Lbus = (gchar *)gtk_entry_get_text(Ldevicebus);        gchar *Lbus = (gchar *)gtk_entry_get_text(Ldevicebus);
708        Tdriveinfo *Ldrive = g_malloc0(sizeof(Tdriveinfo));        Tdriveinfo *Ldrive = g_malloc0(sizeof(Tdriveinfo));
709            
# Line 743  void gtk_devices_add(GtkWidget *Abtn, gp Line 742  void gtk_devices_add(GtkWidget *Abtn, gp
742      }      }
743    }    }
744    gtk_widget_destroy(Lwinadddevice);    gtk_widget_destroy(Lwinadddevice);
745    g_hash_table_destroy(Ldialoghash);    sc_grave_destroy(Ldialoghash);
746  }  }
747    
748        
749  /* selection d'une image iso */  /* selection d'une image iso */
750  void gtk_file_sel(GtkWidget *Abtn, gpointer Adata)  void gtk_file_sel(GtkWidget *Abtn, gpointer Adata)
751  {  {
752    GHashTable *Lhash = (GHashTable *)Adata;    Tgrave *Lg = (Tgrave *)Adata;
753    const gchar *Lname = glade_get_widget_name(Abtn);    const gchar *Lname = glade_get_widget_name(Abtn);
754    GtkWidget *Ltextdest = (GtkWidget *) sc_hash_table_lookupv(Lhash, "%svalue", Lname);    GtkWidget *Ltextdest = (GtkWidget *) sc_grave_get_widgetv(Lg, "%svalue", Lname);
755    gint resp;    gint resp;
756    GtkWidget *Lfilesel;    GtkWidget *Lfilesel;
757    GtkFileChooserAction Ldialogtype = !strncmp(Lname, "src", 3) ?    GtkFileChooserAction Ldialogtype = !strncmp(Lname, "src", 3) ?
# Line 783  _DEB("=>%s\n", Lname); Line 782  _DEB("=>%s\n", Lname);
782  /* lors de la selection d'un lecteur / graveur */  /* lors de la selection d'un lecteur / graveur */
783  void on_selectgraveur(GtkWidget *Acombo, gpointer Adata)  void on_selectgraveur(GtkWidget *Acombo, gpointer Adata)
784  {  {
785    GHashTable *Lhash = (GHashTable *)Adata;    Tgrave *Lg = (Tgrave *)Adata;
786    GtkWidget *Lpanel;    GtkWidget *Lpanel;
787    GtkWidget *Lvitesse, *Lobj;    GtkWidget *Lvitesse, *Lobj;
788    GtkTreeModel *Lmodel = gtk_combo_box_get_model(GTK_COMBO_BOX(Acombo));    GtkTreeModel *Lmodel = gtk_combo_box_get_model(GTK_COMBO_BOX(Acombo));
# Line 807  void on_selectgraveur(GtkWidget *Acombo, Line 806  void on_selectgraveur(GtkWidget *Acombo,
806    
807    Lspeedname = g_strdup(Lname);    Lspeedname = g_strdup(Lname);
808    _SWAP_COMBO(Lspeedname, "speed");    _SWAP_COMBO(Lspeedname, "speed");
809    Lvitesse = (GtkWidget *)g_hash_table_lookup(Lhash, Lspeedname);    Lvitesse = (GtkWidget *)sc_grave_get_widget(Lg, Lspeedname);
810    
811    Laskname = g_strdup(Lname);    Laskname = g_strdup(Lname);
812    _SWAP_COMBO(Laskname, "table");    _SWAP_COMBO(Laskname, "table");
813    Lpanel = (GtkWidget *)g_hash_table_lookup(Lhash, Laskname);    Lpanel = (GtkWidget *)sc_grave_get_widget(Lg, Laskname);
814    g_free(Laskname);    g_free(Laskname);
815    
816        
# Line 835  void on_selectgraveur(GtkWidget *Acombo, Line 834  void on_selectgraveur(GtkWidget *Acombo,
834      remplire_combo_vitesse(GTK_COMBO_BOX(Lvitesse), Llecteur, conf_get_string(Lspeedname));      remplire_combo_vitesse(GTK_COMBO_BOX(Lvitesse), Llecteur, conf_get_string(Lspeedname));
835    }    }
836    
837    for (i=0; ((Lobj = sc_hash_table_lookupv(Lhash, "%s_isotodisabled%d", Lname, i)) && GTK_IS_WIDGET(Lobj)); i++) {    for (i=0; ((Lobj = sc_grave_get_datav(Lg, "%s_isotodisabled%d", Lname, i)) && GTK_IS_WIDGET(Lobj)); i++) {
838      /* disable si image iso, enable sinon */      /* disable si image iso, enable sinon */
839      gtk_widget_set_sensitive (Lobj, !Lisimgiso);      gtk_widget_set_sensitive (Lobj, !Lisimgiso);
840    }    }
841    
842    for (i=0; ((Lobj = sc_hash_table_lookupv(Lhash, "%s_notcdrwtodisabled%d", Lname, i)) && GTK_IS_WIDGET(Lobj)); i++) {    for (i=0; ((Lobj = sc_grave_get_datav(Lg, "%s_notcdrwtodisabled%d", Lname, i)) && GTK_IS_WIDGET(Lobj)); i++) {
843      /* disable si lecteur non cdrw */      /* disable si lecteur non cdrw */
844      gtk_widget_set_sensitive (Lobj, DRIVE_WRITER(Ldrive));      gtk_widget_set_sensitive (Lobj, DRIVE_WRITER(Ldrive));
845    }    }
846    
847    for (i=0; ((Lobj = sc_hash_table_lookupv(Lhash, "%s_notdvdrwtodisabled%d", Lname, i)) && GTK_IS_WIDGET(Lobj)); i++) {    for (i=0; ((Lobj = sc_grave_get_datav(Lg, "%s_notdvdrwtodisabled%d", Lname, i)) && GTK_IS_WIDGET(Lobj)); i++) {
848      /* disable si lecteur non dvdrw */      /* disable si lecteur non dvdrw */
849      gtk_widget_set_sensitive (Lobj, DRIVE_DVDWRITER(Ldrive));      gtk_widget_set_sensitive (Lobj, DRIVE_DVDWRITER(Ldrive));
850    }    }
# Line 857  void on_selectgraveur(GtkWidget *Acombo, Line 856  void on_selectgraveur(GtkWidget *Acombo,
856  /* confirmer l'annulation de la gravure */  /* confirmer l'annulation de la gravure */
857  gboolean abort_gravure(GtkWidget *Abtn, gpointer Adata)  gboolean abort_gravure(GtkWidget *Abtn, gpointer Adata)
858  {  {
859    GHashTable *Lhash = (GHashTable *) Adata;    Tgrave *Lg = (Tgrave *) Adata;
860    gboolean *Labort = (gboolean *)g_hash_table_lookup(Lhash, "gabort");    gboolean *Labort = (gboolean *)sc_grave_get_data(Lg, "gabort");
861    GtkWidget *Lwindow = GTK_WIDGET(g_hash_table_lookup(Lhash, "window_burn"));    GtkWidget *Lwindow = GTK_WIDGET(sc_grave_get_widget(Lg, "window_burn"));
862    gint Lret;    gint Lret;
863    
864    g_assert(Labort);    g_assert(Labort);
# Line 871  gboolean abort_gravure(GtkWidget *Abtn, Line 870  gboolean abort_gravure(GtkWidget *Abtn,
870    Lret = gtk_dialog_run(GTK_DIALOG(Lconfirm));    Lret = gtk_dialog_run(GTK_DIALOG(Lconfirm));
871                
872    if (Lret == GTK_RESPONSE_YES) {    if (Lret == GTK_RESPONSE_YES) {
873      gint *Lpid = (gint *)g_hash_table_lookup(Lhash, "pid");      gint *Lpid = (gint *)sc_grave_get_data(Lg, "pid");
874      if (*Lpid) {      if (*Lpid) {
875        /* on envoi un TERM au process (cdrecord...) pour qu'il s'arrete ! */        /* on envoi un TERM au process (cdrecord...) pour qu'il s'arrete ! */
876  _DEB("kill de %d\n", *Lpid);        _DEB("kill de %d\n", *Lpid);      
# Line 896  gboolean on_deleteevent_gravure(GtkWidge Line 895  gboolean on_deleteevent_gravure(GtkWidge
895  /* confirmer la cloture d'un cd */  /* confirmer la cloture d'un cd */
896  void confirm_fixcd(GtkWidget *Abtn, gpointer Adata)  void confirm_fixcd(GtkWidget *Abtn, gpointer Adata)
897  {  {
898    GHashTable *Lhash = (GHashTable *)Adata;    Tgrave *Lg = (Tgrave *)Adata;
899    GtkWidget *Lwindow1 = GTK_WIDGET(g_hash_table_lookup(Lhash, "topwindow"));    GtkWidget *Lwindow1 = GTK_WIDGET(sc_grave_get_widget(Lg, "topwindow"));
900    GtkWidget *Lconfirm;    GtkWidget *Lconfirm;
901    gint Lrep;    gint Lrep;
902    
# Line 912  void confirm_fixcd(GtkWidget *Abtn, gpoi Line 911  void confirm_fixcd(GtkWidget *Abtn, gpoi
911    
912    if (Lrep == GTK_RESPONSE_YES) {    if (Lrep == GTK_RESPONSE_YES) {
913      /* ok go ! */      /* ok go ! */
914      show_fixcdwindow(Lhash);      show_fixcdwindow(Lg);
915    }    }
916  }  }
917    
# Line 930  void gtk_confirm_dvdoperation(GtkWidget Line 929  void gtk_confirm_dvdoperation(GtkWidget
929    const gchar *Lname = glade_get_widget_name(Abtn);    const gchar *Lname = glade_get_widget_name(Abtn);
930    gchar *s, *Ltitle, *Lmessage;    gchar *s, *Ltitle, *Lmessage;
931    GtkWidget *Lconfirm;    GtkWidget *Lconfirm;
932    GHashTable *Lhash = (GHashTable *)Adata;    Tgrave *Lg = (Tgrave *)Adata;
933    GtkWidget *Lwindow1 = GTK_WIDGET(g_hash_table_lookup(Lhash, "topwindow"));    GtkWidget *Lwindow1 = GTK_WIDGET(sc_grave_get_widget(Lg, "topwindow"));
934    gint Lrep;    gint Lrep;
935    Ttypeformatdvd Lcode;    Ttypeformatdvd Lcode;
936    
# Line 961  void gtk_confirm_dvdoperation(GtkWidget Line 960  void gtk_confirm_dvdoperation(GtkWidget
960    Lrep = gtk_dialog_run(GTK_DIALOG(Lconfirm));    Lrep = gtk_dialog_run(GTK_DIALOG(Lconfirm));
961    gtk_widget_destroy(Lconfirm);    gtk_widget_destroy(Lconfirm);
962    if (Lrep == GTK_RESPONSE_YES) {    if (Lrep == GTK_RESPONSE_YES) {
963      show_dvdformatwindow(Lhash, Ltitle, Lcode);      show_dvdformatwindow(Lg, Ltitle, Lcode);
964    }    }
965  }  }
966    
967  /* confirmer l'effacement d'un cdrw */  /* confirmer l'effacement d'un cdrw */
968  void confirm_erasecdrw(GtkWidget *Abtn, gpointer Adata)  void confirm_erasecdrw(GtkWidget *Abtn, gpointer Adata)
969  {  {
970    GHashTable *Lhash = (GHashTable *)Adata;    Tgrave *Lg = (Tgrave *)Adata;
971    GtkWidget *Lwindow1 = GTK_WIDGET(g_hash_table_lookup(Lhash, "topwindow"));    GtkWidget *Lwindow1 = GTK_WIDGET(sc_grave_get_widget(Lg, "topwindow"));
972    GHashTable *Ldialoghash = create_dialog_confirm_operation(Lwindow1, _("Do you really want to erase the CD-RW ?"),    Tgrave *Ldialoghash = create_dialog_confirm_operation(Lwindow1, _("Do you really want to erase the CD-RW ?"),
973          _("_Fast blank disk when erasing CD-RW"), conf_get_boolean("fastblank"));          _("_Fast blank disk when erasing CD-RW"), conf_get_boolean("fastblank"));
974    GtkWidget *Lconfirm = g_hash_table_lookup(Ldialoghash, "window");    GtkWidget *Lconfirm = sc_grave_get_widget(Ldialoghash, "window");
975    
976    /* confirmation debut de l'operation */    /* confirmation debut de l'operation */
977    if (gtk_dialog_run(GTK_DIALOG(Lconfirm)) == GTK_RESPONSE_YES) {    if (gtk_dialog_run(GTK_DIALOG(Lconfirm)) == GTK_RESPONSE_YES) {
978      gboolean Lusefastblank = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(g_hash_table_lookup(Ldialoghash, "checkbox")));      gboolean Lusefastblank = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(sc_grave_get_widget(Ldialoghash, "checkbox")));
979      gtk_widget_destroy(Lconfirm);      gtk_widget_destroy(Lconfirm);
980            
981      g_hash_table_insert(Lhash, "usefastblank", &Lusefastblank);      sc_grave_set_data(Lg, &Lusefastblank, "usefastblank");
982      show_erasecdrwwindow(Lhash);      show_erasecdrwwindow(Lg);
983      g_hash_table_remove(Lhash, "usefastblank");      sc_grave_del_data(Lg, "usefastblank");
984    } else {    } else {
985      gtk_widget_destroy(Lconfirm);      gtk_widget_destroy(Lconfirm);
986    }    }
987    g_hash_table_destroy(Ldialoghash);    sc_grave_destroy(Ldialoghash);
988    
989  }  }
990    
991  /* confirmer la debut de la gravure */  /* confirmer la debut de la gravure */
992  void confirm_burn (GtkWidget *Abtn, gpointer Adata)  void confirm_burn (GtkWidget *Abtn, gpointer Adata)
993  {  {
994    GHashTable *Lhash = (GHashTable *)Adata;    Tgrave *Lg = (Tgrave *)Adata;
995    GHashTable *Ldialoghash;    Tgrave *Ldialoghash;
996    GtkWidget *Lconfirm;    GtkWidget *Lconfirm;
997    gint Lrep;    gint Lrep;
998    gboolean Luseautoblank = FALSE;    gboolean Luseautoblank = FALSE;
# Line 1001  void confirm_burn (GtkWidget *Abtn, gpoi Line 1000  void confirm_burn (GtkWidget *Abtn, gpoi
1000    const gchar *Lname;    const gchar *Lname;
1001    gchar *Ltxt = NULL;    gchar *Ltxt = NULL;
1002    gchar *Ltitle = NULL;    gchar *Ltitle = NULL;
1003    GtkWidget *Lwindow1 = GTK_WIDGET(g_hash_table_lookup(Lhash, "topwindow"));    GtkWidget *Lwindow1 = GTK_WIDGET(sc_grave_get_widget(Lg, "topwindow"));
1004    GtkWidget *Ldevice;    GtkWidget *Ldevice;
1005    gboolean Lwritercdrw;    gboolean Lwritercdrw;
1006    Ttypeoperation Loperation = WRITE_CD;    Ttypeoperation Loperation = WRITE_CD;
# Line 1012  void confirm_burn (GtkWidget *Abtn, gpoi Line 1011  void confirm_burn (GtkWidget *Abtn, gpoi
1011    if (g_str_has_prefix(Lname, "btnburnaudio")) {    if (g_str_has_prefix(Lname, "btnburnaudio")) {
1012      GtkTreeIter Liter;      GtkTreeIter Liter;
1013      GtkTreeModel *Ltreemodel = gtk_tree_view_get_model(      GtkTreeModel *Ltreemodel = gtk_tree_view_get_model(
1014          GTK_TREE_VIEW(g_hash_table_lookup(Lhash, "LISTEAUDIO")));          GTK_TREE_VIEW(sc_grave_get_widget(Lg, "LISTEAUDIO")));
1015            
1016      /* gravure cd audio, on verifie d'abord qu'il y ai au      /* gravure cd audio, on verifie d'abord qu'il y ai au
1017       * moins une piste dans la liste .. */       * moins une piste dans la liste .. */
# Line 1027  void confirm_burn (GtkWidget *Abtn, gpoi Line 1026  void confirm_burn (GtkWidget *Abtn, gpoi
1026      }      }
1027      Ltxt = _("Do you really want to create an audio cd ?");      Ltxt = _("Do you really want to create an audio cd ?");
1028      Ltitle = _("Writing audio cd in progress...");      Ltitle = _("Writing audio cd in progress...");
1029      Ldevice = g_hash_table_lookup(Lhash, "dstaudiocombo");      Ldevice = sc_grave_get_widget(Lg, "dstaudiocombo");
1030    } else if (g_str_has_prefix(Lname, "btnburndata") || g_str_has_prefix(Lname, "btnburndvddata")) {    } else if (g_str_has_prefix(Lname, "btnburndata") || g_str_has_prefix(Lname, "btnburndvddata")) {
1031      GtkTreeIter Liter;      GtkTreeIter Liter;
1032      GtkTreeModel *Ltreemodel = gtk_tree_view_get_model(GTK_TREE_VIEW(g_hash_table_lookup(Lhash, "_current_list")));      GtkTreeModel *Ltreemodel = gtk_tree_view_get_model(GTK_TREE_VIEW(sc_grave_get_data(Lg, "_current_list")));
1033      /* gravure cd de donnee, on verifie qu'il y ai au      /* gravure cd de donnee, on verifie qu'il y ai au
1034       * moins un fichier/repertoire dans la liste */       * moins un fichier/repertoire dans la liste */
1035    
# Line 1053  void confirm_burn (GtkWidget *Abtn, gpoi Line 1052  void confirm_burn (GtkWidget *Abtn, gpoi
1052      if (Loperation == WRITE_CD) {      if (Loperation == WRITE_CD) {
1053        Ltxt = _("Do you really want to create a data cd ?");        Ltxt = _("Do you really want to create a data cd ?");
1054        Ltitle = _("Writing data cd in progress...");        Ltitle = _("Writing data cd in progress...");
1055        Ldevice = g_hash_table_lookup(Lhash, "dstdatacombo");        Ldevice = sc_grave_get_widget(Lg, "dstdatacombo");
1056      } else {      } else {
1057        Ltxt = _("Do you really want to create a data dvd ?");        Ltxt = _("Do you really want to create a data dvd ?");
1058        Ltitle = _("Writing data dvd in progress...");        Ltitle = _("Writing data dvd in progress...");
# Line 1062  void confirm_burn (GtkWidget *Abtn, gpoi Line 1061  void confirm_burn (GtkWidget *Abtn, gpoi
1061      /* copie de cd */      /* copie de cd */
1062      Ltxt = _("Do you really want to start the copy ?");      Ltxt = _("Do you really want to start the copy ?");
1063      Ltitle = _("Copying in progress...");      Ltitle = _("Copying in progress...");
1064      Ldevice = g_hash_table_lookup(Lhash, "dstcopycombo");      Ldevice = sc_grave_get_widget(Lg, "dstcopycombo");
1065    }    }
1066    
1067    /* confirmation debut de l'operation */    /* confirmation debut de l'operation */
# Line 1076  void confirm_burn (GtkWidget *Abtn, gpoi Line 1075  void confirm_burn (GtkWidget *Abtn, gpoi
1075      /* confirmation gravure dvd */      /* confirmation gravure dvd */
1076      Ldialoghash = create_dialog_select_dvdoperation(Lwindow1);      Ldialoghash = create_dialog_select_dvdoperation(Lwindow1);
1077    }    }
1078    Lconfirm = g_hash_table_lookup(Ldialoghash, "window");    Lconfirm = sc_grave_get_widget(Ldialoghash, "window");
1079    
1080    Lrep = gtk_dialog_run(GTK_DIALOG(Lconfirm));    Lrep = gtk_dialog_run(GTK_DIALOG(Lconfirm));
1081    
1082    if (Lrep == GTK_RESPONSE_YES) {    if (Lrep == GTK_RESPONSE_YES) {
1083      /* ok go ! */      /* ok go ! */
1084      if (Loperation == WRITE_CD) {      if (Loperation == WRITE_CD) {
1085        GtkCheckButton *Labcheck = GTK_CHECK_BUTTON(g_hash_table_lookup(Ldialoghash, "checkbox"));        GtkCheckButton *Labcheck = GTK_CHECK_BUTTON(sc_grave_get_widget(Ldialoghash, "checkbox"));
1086    
1087        g_assert(GTK_IS_WIDGET(Labcheck));        g_assert(GTK_IS_WIDGET(Labcheck));
1088        if (Lwritercdrw == TRUE) {        if (Lwritercdrw == TRUE) {
1089          Luseautoblank = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(Labcheck));          Luseautoblank = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(Labcheck));
1090        }        }
1091        g_hash_table_insert(Lhash, "useautoblank", &Luseautoblank);        sc_grave_set_data(Lg, &Luseautoblank, "useautoblank");
1092      } else {      } else {
1093        GtkRadioButton *Labradio = GTK_RADIO_BUTTON(g_hash_table_lookup(Ldialoghash, "burninitial"));        GtkRadioButton *Labradio = GTK_RADIO_BUTTON(sc_grave_get_widget(Ldialoghash, "burninitial"));
1094        Ltypeburn = g_strdup(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(Labradio)) ? "-Z" : "-M");        Ltypeburn = g_strdup(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(Labradio)) ? "-Z" : "-M");
1095        g_hash_table_insert(Lhash, "typeburn", Ltypeburn);        sc_grave_set_data(Lg, Ltypeburn, "typeburn");
1096      }      }
1097    
1098      gtk_widget_destroy(Lconfirm);      gtk_widget_destroy(Lconfirm);
1099    
1100      show_graverwindow(Lhash, (gchar *)Lname, Ltitle);      show_graverwindow(Lg, (gchar *)Lname, Ltitle);
1101    
1102      if (Loperation == WRITE_CD) {      if (Loperation == WRITE_CD) {
1103        g_hash_table_remove(Lhash, "useautoblank");        sc_grave_del_data(Lg, "useautoblank");
1104      } else {      } else {
1105        g_hash_table_remove(Lhash, "typeburn");        sc_grave_del_data(Lg, "typeburn");
1106        g_free(Ltypeburn);        g_free(Ltypeburn);
1107      }      }
1108    } else {    } else {
1109      gtk_widget_destroy(Lconfirm);      gtk_widget_destroy(Lconfirm);
1110    }    }
1111    
1112    g_hash_table_destroy(Ldialoghash);    sc_grave_destroy(Ldialoghash);
1113  }  }
1114    
1115  /* popup ajouter des fichiers */  /* popup ajouter des fichiers */
# Line 1241  void text_buffer_callback(GtkTextBuffer Line 1240  void text_buffer_callback(GtkTextBuffer
1240  /* clique sur le menu, on active un onglet */  /* clique sur le menu, on active un onglet */
1241  void menu_active_panel(GtkWidget *Amenuitem, gpointer Adata)  void menu_active_panel(GtkWidget *Amenuitem, gpointer Adata)
1242  {  {
1243    GHashTable *Lhash = (GHashTable *)Adata;    Tgrave *Lg = (Tgrave *)Adata;
1244    GtkTreeView *Ltopmenu = GTK_TREE_VIEW(g_hash_table_lookup(Lhash, "topmenu"));    GtkTreeView *Ltopmenu = GTK_TREE_VIEW(sc_grave_get_widget(Lg, "topmenu"));
1245    GtkTreeSelection *Lselection = gtk_tree_view_get_selection(Ltopmenu);    GtkTreeSelection *Lselection = gtk_tree_view_get_selection(Ltopmenu);
1246    GtkTreeModel *Lmodel = gtk_tree_view_get_model(Ltopmenu);    GtkTreeModel *Lmodel = gtk_tree_view_get_model(Ltopmenu);
1247    GtkTreeIter Liter;    GtkTreeIter Liter;
# Line 1250  void menu_active_panel(GtkWidget *Amenui Line 1249  void menu_active_panel(GtkWidget *Amenui
1249    gchar *Lrequest = g_strdup_printf("body%s", Lname+strlen("menu"));    gchar *Lrequest = g_strdup_printf("body%s", Lname+strlen("menu"));
1250    gchar *Lcuritem;    gchar *Lcuritem;
1251    gchar Lcont = gtk_tree_model_get_iter_first(Lmodel, &Liter);    gchar Lcont = gtk_tree_model_get_iter_first(Lmodel, &Liter);
   
1252    while (Lcont == TRUE) {    while (Lcont == TRUE) {
1253      gtk_tree_model_get(Lmodel, &Liter, 0, &Lcuritem, -1);      gtk_tree_model_get(Lmodel, &Liter, 0, &Lcuritem, -1);
1254    
1255      if (!strcmp(Lcuritem, Lrequest)) {      if (!strcmp(Lcuritem, Lrequest)) {
1256        gtk_tree_selection_select_iter(Lselection, &Liter);        gtk_tree_selection_select_iter(Lselection, &Liter);
1257        gtk_toggle_top_menu(Ltopmenu, Lhash);        gtk_toggle_top_menu(Ltopmenu, Lg);
1258                
1259        g_free(Lcuritem);        g_free(Lcuritem);
1260        break;        break;
# Line 1270  void menu_active_panel(GtkWidget *Amenui Line 1268  void menu_active_panel(GtkWidget *Amenui
1268  /* changement d'onglet */  /* changement d'onglet */
1269  void switchpage(GtkNotebook *Anotebook, GtkNotebookPage *Anotebookpage, guint Apagenum, gpointer Adata)  void switchpage(GtkNotebook *Anotebook, GtkNotebookPage *Anotebookpage, guint Apagenum, gpointer Adata)
1270  {  {
1271    GHashTable *Lhash = (GHashTable *)Adata;    Tgrave *Lg = (Tgrave *)Adata;
1272    GtkWidget *Ldatavoli;    GtkWidget *Ldatavoli;
1273    GtkTreeModel *Ltreemodel;    GtkTreeModel *Ltreemodel;
1274    GtkTreeIter Liter;    GtkTreeIter Liter;
# Line 1279  void switchpage(GtkNotebook *Anotebook, Line 1277  void switchpage(GtkNotebook *Anotebook,
1277    if (Apagenum != 0 && Apagenum != 2) return;    if (Apagenum != 0 && Apagenum != 2) return;
1278    
1279    if (!strcmp(glade_get_widget_name(GTK_WIDGET(Anotebook)), "bodydata")) {    if (!strcmp(glade_get_widget_name(GTK_WIDGET(Anotebook)), "bodydata")) {
1280      Ldatavoli = g_hash_table_lookup(Lhash, "datavoli");      Ldatavoli = sc_grave_get_widget(Lg, "datavoli");
1281      Ltreemodel = gtk_tree_view_get_model(GTK_TREE_VIEW(g_hash_table_lookup(Lhash, "LISTEDATA")));      Ltreemodel = gtk_tree_view_get_model(GTK_TREE_VIEW(sc_grave_get_widget(Lg, "LISTEDATA")));
1282    } else {    } else {
1283      Ldatavoli = g_hash_table_lookup(Lhash, "dvddatavoli");      Ldatavoli = sc_grave_get_widget(Lg, "dvddatavoli");
1284      Ltreemodel = gtk_tree_view_get_model(GTK_TREE_VIEW(g_hash_table_lookup(Lhash, "LISTEDVDDATA")));      Ltreemodel = gtk_tree_view_get_model(GTK_TREE_VIEW(sc_grave_get_widget(Lg, "LISTEDVDDATA")));
1285    }    }
1286    
1287    
# Line 1306  void switchpage(GtkNotebook *Anotebook, Line 1304  void switchpage(GtkNotebook *Anotebook,
1304  /* activer la boite de dialogue proprietes */  /* activer la boite de dialogue proprietes */
1305  void menu_active_proprietes(GtkWidget *Amenuitem, gpointer Adata)  void menu_active_proprietes(GtkWidget *Amenuitem, gpointer Adata)
1306  {  {
1307    GHashTable *Lhash = (GHashTable *) Adata;    Tgrave *Lg = (Tgrave *) Adata;
1308    GtkWidget *Lparent = GTK_WIDGET(g_hash_table_lookup(Lhash, "topwindow"));    GtkWidget *Lparent = GTK_WIDGET(sc_grave_get_widget(Lg, "topwindow"));
1309    GHashTable *Ldialoghash = create_dialog_proprietes(Lparent);    Tgrave *Ldialoghash = create_dialog_proprietes(Lparent);
1310    GtkWidget *Lwinproprietes = g_hash_table_lookup(Ldialoghash, "window");    GtkWidget *Lwinproprietes = sc_grave_get_widget(Ldialoghash, "window");
1311    GError *Aerror = NULL;    GError *Aerror = NULL;
1312    GtkWidget *Lptr;    GtkWidget *Lptr;
1313    TProgRequis *Lcurentry;    TProgRequis *Lcurentry;
# Line 1318  void menu_active_proprietes(GtkWidget *A Line 1316  void menu_active_proprietes(GtkWidget *A
1316    gtk_dialog_run(GTK_DIALOG(Lwinproprietes));    gtk_dialog_run(GTK_DIALOG(Lwinproprietes));
1317    
1318    /* recuperation des valeurs a sauver */    /* recuperation des valeurs a sauver */
1319    Lptr = g_hash_table_lookup(Ldialoghash, "dirtmpvalue");    Lptr = sc_grave_get_widget(Ldialoghash, "dirtmpvalue");
1320    conf_store_value("tmpdir", (gchar *)gtk_entry_get_text(GTK_ENTRY(Lptr)));    conf_store_value("tmpdir", (gchar *)gtk_entry_get_text(GTK_ENTRY(Lptr)));
1321    Lptr = g_hash_table_lookup(Ldialoghash, "overburn");    Lptr = sc_grave_get_widget(Ldialoghash, "overburn");
1322    conf_store_value("overburn", _BOOLEAN_CONF(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(Lptr))));    conf_store_value("overburn", _BOOLEAN_CONF(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(Lptr))));
1323    Lptr = g_hash_table_lookup(Ldialoghash, "fastblank");    Lptr = sc_grave_get_widget(Ldialoghash, "fastblank");
1324    conf_store_value("fastblank", _BOOLEAN_CONF(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(Lptr))));    conf_store_value("fastblank", _BOOLEAN_CONF(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(Lptr))));
1325    Lptr = g_hash_table_lookup(Ldialoghash, "autoblank");    Lptr = sc_grave_get_widget(Ldialoghash, "autoblank");
1326    conf_store_value("autoblank", _BOOLEAN_CONF(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(Lptr))));    conf_store_value("autoblank", _BOOLEAN_CONF(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(Lptr))));
1327    Lptr = g_hash_table_lookup(Ldialoghash, "eject");    Lptr = sc_grave_get_widget(Ldialoghash, "eject");
1328    conf_store_value("eject", _BOOLEAN_CONF(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(Lptr))));    conf_store_value("eject", _BOOLEAN_CONF(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(Lptr))));
1329    Lptr = g_hash_table_lookup(Ldialoghash, "statusbar");    Lptr = sc_grave_get_widget(Ldialoghash, "statusbar");
1330    conf_store_value("statusbar", _BOOLEAN_CONF(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(Lptr))));    conf_store_value("statusbar", _BOOLEAN_CONF(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(Lptr))));
1331    Lptr = g_hash_table_lookup(Ldialoghash, "iconsizelist");    Lptr = sc_grave_get_widget(Ldialoghash, "iconsizelist");
1332    conf_store_value("iconsize", get_combo_value((Lptr)));    conf_store_value("iconsize", get_combo_value((Lptr)));
1333    Lptr = g_hash_table_lookup(Ldialoghash, "saveconfig");    Lptr = sc_grave_get_widget(Ldialoghash, "saveconfig");
1334    conf_store_value("saveconfig", _BOOLEAN_CONF(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(Lptr))));    conf_store_value("saveconfig", _BOOLEAN_CONF(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(Lptr))));
1335    
1336  #if 0    #if 0  
1337    Lptr = g_hash_table_lookup(Ldialoghash, "extended");    Lptr = sc_grave_get_widget(Ldialoghash, "extended");
1338    conf_store_value("extended", _BOOLEAN_CONF(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(Lptr))));    conf_store_value("extended", _BOOLEAN_CONF(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(Lptr))));
1339  #endif  #endif
1340    
# Line 1346  void menu_active_proprietes(GtkWidget *A Line 1344  void menu_active_proprietes(GtkWidget *A
1344      if (Lcurentry->type != CONF_PROG) continue;      if (Lcurentry->type != CONF_PROG) continue;
1345      g_snprintf(Ltmp, sizeof(Ltmp)-1, "%spara", Lcurentry->entry);      g_snprintf(Ltmp, sizeof(Ltmp)-1, "%spara", Lcurentry->entry);
1346    
1347      Lptr = g_hash_table_lookup(Ldialoghash, Ltmp);      Lptr = sc_grave_get_widget(Ldialoghash, Ltmp);
1348      if (!GTK_IS_WIDGET(Lptr)) continue;      if (!GTK_IS_WIDGET(Lptr)) continue;
1349    
1350      conf_store_value(Ltmp, (gchar *)gtk_entry_get_text(GTK_ENTRY(Lptr)));      conf_store_value(Ltmp, (gchar *)gtk_entry_get_text(GTK_ENTRY(Lptr)));
# Line 1356  void menu_active_proprietes(GtkWidget *A Line 1354  void menu_active_proprietes(GtkWidget *A
1354    write_conf(&Aerror);    write_conf(&Aerror);
1355    
1356    /* mise a jour des listes contenant les lecteurs */    /* mise a jour des listes contenant les lecteurs */
1357    update_combo_graveur(Lhash);    update_combo_graveur(Lg);
1358    update_status_bar_display(Lhash);    update_status_bar_display(Lg);
1359    manage_interface(Lhash, MENU_UPDATE + COMBO_UPDATE );    manage_interface(Lg, MENU_UPDATE + COMBO_UPDATE );
1360    
1361    gtk_widget_destroy(Lwinproprietes);    gtk_widget_destroy(Lwinproprietes);
1362    
1363    g_hash_table_destroy(Ldialoghash);    sc_grave_destroy(Ldialoghash);
1364  }  }
1365    
1366  gboolean encours_callback(gpointer Adata)  gboolean encours_callback(gpointer Adata)
1367  {  {
1368    GHashTable *Lhash = (GHashTable *)Adata;    Tgrave *Lg = (Tgrave *)Adata;
1369    GtkProgressBar *Lprog = GTK_PROGRESS_BAR(g_hash_table_lookup(Lhash, "progress"));    GtkProgressBar *Lprog = GTK_PROGRESS_BAR(sc_grave_get_widget(Lg, "progress"));
1370    gint *Lcont = (gint *)g_hash_table_lookup(Lhash, "cont");    gint *Lcont = (gint *)sc_grave_get_data(Lg, "cont");
1371    
1372    gtk_progress_bar_pulse(    gtk_progress_bar_pulse(
1373        Lprog);        Lprog);
# Line 1382  gboolean encours_callback(gpointer Adata Line 1380  gboolean encours_callback(gpointer Adata
1380  /* chercher (a nouveau) les programmes */  /* chercher (a nouveau) les programmes */
1381  void chercheprog(GtkWidget *Aobj, gpointer Adata)  void chercheprog(GtkWidget *Aobj, gpointer Adata)
1382  {  {
1383    GHashTable *Lhash = (GHashTable *)Adata;    Tgrave *Lg = (Tgrave *)Adata;
1384    GtkWidget *Lstatusbox;    GtkWidget *Lstatusbox;
1385    GtkWidget *Lwindow1 = g_hash_table_lookup(Lhash, "window");    GtkWidget *Lwindow1 = sc_grave_get_widget(Lg, "window");
1386    
1387    /* mise a jour de la configuration */    /* mise a jour de la configuration */
1388    manage_config(Lhash, SEARCH_PROG, NULL);    manage_config(Lg, SEARCH_PROG, NULL);
1389    clean_config();    clean_config();
1390    
1391    maj_proprietes_prog(Lhash);    maj_proprietes_prog(Lg);
1392    
1393    /* boite de dialoge operation terminee */    /* boite de dialoge operation terminee */
1394    Lstatusbox = gtk_message_dialog_new(GTK_WINDOW(Lwindow1), GTK_DIALOG_MODAL,    Lstatusbox = gtk_message_dialog_new(GTK_WINDOW(Lwindow1), GTK_DIALOG_MODAL,
# Line 1402  void chercheprog(GtkWidget *Aobj, gpoint Line 1400  void chercheprog(GtkWidget *Aobj, gpoint
1400  /* chercher (a nouveau) les lecteurs */  /* chercher (a nouveau) les lecteurs */
1401  void cherchelecteur(GtkWidget *Aobj, gpointer Adata)  void cherchelecteur(GtkWidget *Aobj, gpointer Adata)
1402  {  {
1403    GHashTable *Lparenthash = (GHashTable *)Adata;    Tgrave *Lparenthash = (Tgrave *)Adata;
1404    GtkWidget *Lwindow1 = g_hash_table_lookup(Lparenthash, "window");    GtkWidget *Lwindow1 = sc_grave_get_widget(Lparenthash, "window");
1405    GladeXML *Lxmlencours = create_window_encours(Lwindow1);    Tgrave *Lg = create_window_encours(Lwindow1);
1406    GtkWidget *Lstatusbox;    GtkWidget *Lstatusbox;
1407    GtkWidget *Lwin;    GtkWidget *Lwin;
1408    GtkTreeView *Ldata;    GtkTreeView *Ldata;
   GtkWidget *Lprogressbar;  
   GtkWidget *Llabel;  
   GtkWidget *Lcancel;  
1409    gboolean Labort = FALSE;    gboolean Labort = FALSE;
1410    gint Lcont = 2;    gint Lcont = 2;
1411    gchar *Ltxt;    gchar *Ltxt;
   GHashTable *Lhash = _hash();  
1412    GSList *Lcur;    GSList *Lcur;
1413    Tdriveinfo *Ldrive;    Tdriveinfo *Ldrive;
1414        
1415    Lwin = glade_xml_get_widget(Lxmlencours, "window_inprogress");    Lwin = sc_grave_get_widget(Lg, "window_inprogress");
1416    
1417    Llabel = glade_xml_get_widget(Lxmlencours, "labelava");    sc_grave_set_data(Lg, &Lcont, "cont");
1418    Lprogressbar = glade_xml_get_widget(Lxmlencours, "progress");    sc_grave_set_data(Lg, &Labort, "gabort");
   g_hash_table_insert(Lhash, "cont", &Lcont);  
   g_hash_table_insert(Lhash, "gabort", &Labort);  
   g_hash_table_insert(Lhash, "labelava", Llabel);  
   g_hash_table_insert(Lhash, "progress", Lprogressbar);  
1419    
1420    /* bouton annuler */    /* bouton annuler */
1421    Lcancel = glade_xml_get_widget(Lxmlencours, "cancelbtn");    g_signal_connect(G_OBJECT(sc_grave_get_widget(Lg, "cancelbt")), "clicked", G_CALLBACK(abort_encours), (GtkWidget *)Lg);
   g_signal_connect(G_OBJECT(Lcancel), "clicked", G_CALLBACK(abort_encours), (GtkWidget *)Lhash);  
1422    
1423    gtk_widget_show(Lwin);    gtk_widget_show(Lwin);
1424    g_timeout_add(500, encours_callback, Lhash);    g_timeout_add(500, encours_callback, Lg);
1425    
1426    scan_for_drives(Lhash, NULL);    scan_for_drives(Lg, NULL);
1427    
1428    if (Labort == FALSE) {    if (Labort == FALSE) {
1429      for (Lcur = Glistdrives; Lcur; Lcur = g_slist_next(Lcur)) {      for (Lcur = Glistdrives; Lcur; Lcur = g_slist_next(Lcur)) {
1430        Ldrive = (Tdriveinfo *)Lcur->data;        Ldrive = (Tdriveinfo *)Lcur->data;
1431        if (g_slist_length(Ldrive->dev)>0) {        if (g_slist_length(Ldrive->dev)>0) {
1432          Ltxt = g_strdup_printf(_("Scanning drive \"%s\"..."), Ldrive->name);          Ltxt = g_strdup_printf(_("Scanning drive \"%s\"..."), Ldrive->name);
1433          gtk_label_set_text(GTK_LABEL(Llabel), Ltxt); g_free(Ltxt);          gtk_label_set_text(GTK_LABEL(sc_grave_get_widget(Lg, "labelava")), Ltxt); g_free(Ltxt);
1434          while(gtk_events_pending()) gtk_main_iteration();          while(gtk_events_pending()) gtk_main_iteration();
1435    
1436          maj_drive_info(Ldrive, (gchar *)g_slist_nth_data(Ldrive->dev, 0), NULL);          maj_drive_info(Ldrive, (gchar *)g_slist_nth_data(Ldrive->dev, 0), NULL);
# Line 1454  void cherchelecteur(GtkWidget *Aobj, gpo Line 1443  void cherchelecteur(GtkWidget *Aobj, gpo
1443    while (Lcont > 0) { while(gtk_events_pending()) gtk_main_iteration(); }    while (Lcont > 0) { while(gtk_events_pending()) gtk_main_iteration(); }
1444    
1445    gtk_widget_destroy(Lwin);    gtk_widget_destroy(Lwin);
   g_hash_table_destroy(Lhash);  
1446    if (GTK_IS_WIDGET(Aobj) && Labort == FALSE) {    if (GTK_IS_WIDGET(Aobj) && Labort == FALSE) {
1447      Ldata = GTK_TREE_VIEW(g_hash_table_lookup(Lparenthash, "periphdata"));      Ldata = GTK_TREE_VIEW(sc_grave_get_widget(Lparenthash, "periphdata"));
1448      remplirelistegraveur(Ldata);      remplirelistegraveur(Ldata);
1449    
1450      /* boite de dialoge operation terminee */      /* boite de dialoge operation terminee */
# Line 1466  void cherchelecteur(GtkWidget *Aobj, gpo Line 1454  void cherchelecteur(GtkWidget *Aobj, gpo
1454      gtk_widget_destroy(Lstatusbox);      gtk_widget_destroy(Lstatusbox);
1455    }    }
1456    
1457    g_free(Lxmlencours);    sc_grave_destroy(Lg);
1458  }  }
1459    
1460  void abort_encours(GtkWidget *Abtn, gpointer Adata)  void abort_encours(GtkWidget *Abtn, gpointer Adata)
1461  {  {
1462    GHashTable *Lhash = (GHashTable *)Adata;    Tgrave *Lg = (Tgrave *)Adata;
1463    gint *Lcont = (gint *)g_hash_table_lookup(Lhash, "cont");    gint *Lcont = (gint *)sc_grave_get_data(Lg, "cont");
1464    gboolean *Labort = (gboolean *)g_hash_table_lookup(Lhash, "gabort");    gboolean *Labort = (gboolean *)sc_grave_get_data(Lg, "gabort");
1465    
1466    (*Labort) = TRUE;    (*Labort) = TRUE;
1467    (*Lcont) = 1; /* on passe Lcont de 2 a 1 */    (*Lcont) = 1; /* on passe Lcont de 2 a 1 */
# Line 1486  void delete_event_encours(GtkWidget *Awi Line 1474  void delete_event_encours(GtkWidget *Awi
1474  /* on quitte l'application .. */  /* on quitte l'application .. */
1475  void menu_quit(GtkWidget *Aobj1, gpointer Adata)  void menu_quit(GtkWidget *Aobj1, gpointer Adata)
1476  {  {
1477    GHashTable *Lhash = (GHashTable *)Adata;    Tgrave *Lg = (Tgrave *)Adata;
1478    gint Loperation = UPDATE_SIZE + WRITE_CONFIG;    gint Loperation = UPDATE_SIZE + WRITE_CONFIG;
1479    
1480    if (conf_get_boolean("saveconfig")==TRUE) {    if (conf_get_boolean("saveconfig")==TRUE) {
# Line 1494  void menu_quit(GtkWidget *Aobj1, gpointe Line 1482  void menu_quit(GtkWidget *Aobj1, gpointe
1482    }    }
1483    
1484    /* on sauve la position et taille de la fenetre */    /* on sauve la position et taille de la fenetre */
1485    manage_config(Lhash, Loperation, NULL);    manage_config(Lg, Loperation, NULL);
1486    
1487    gtk_main_quit();    gtk_main_quit();
1488  }  }
# Line 1507  void delete_event_quit(GtkWidget *Awidge Line 1495  void delete_event_quit(GtkWidget *Awidge
1495  #if 0  #if 0
1496  void on_addmediaformat(GtkWidget *Abtn, gpointer Adata)  void on_addmediaformat(GtkWidget *Abtn, gpointer Adata)
1497  {  {
1498    GHashTable *Lmediahash = addmediaformat(Adata);    Tgrave *Lmediahash = addmediaformat(Adata);
1499    GtkDialog *Ldialog = GTK_DIALOG(g_hash_table_lookup(Lmediahash, "dialog_media"));    GtkDialog *Ldialog = GTK_DIALOG(sc_grave_get_widget(Lmediahash, "dialog_media"));
1500    
1501    gtk_dialog_run(Ldialog);    gtk_dialog_run(Ldialog);
1502    gtk_widget_destroy(GTK_WIDGET(Ldialog));    gtk_widget_destroy(GTK_WIDGET(Ldialog));
1503    
1504    g_hash_table_destroy(Lmediahash);    sc_grave_destroy(Lmediahash);
1505  }  }
1506  #endif  #endif
1507    
1508  /* mise a jour type cdr destination, on mets donc a jour la barre de remplissage */  /* mise a jour type cdr destination, on mets donc a jour la barre de remplissage */
1509  void change_remplissage(GtkWidget *Acombo, gpointer Adata)  void change_remplissage(GtkWidget *Acombo, gpointer Adata)
1510  {  {
1511    GHashTable *Lhash = (GHashTable *)Adata;    Tgrave *Lg = (Tgrave *)Adata;
1512    const gchar *Lname = glade_get_widget_name(Acombo);    const gchar *Lname = glade_get_widget_name(Acombo);
1513    gchar *Lvalue = get_combo_value(Acombo);    gchar *Lvalue = get_combo_value(Acombo);
1514    GtkProgressBar *Lcontenance;    GtkProgressBar *Lcontenance;
# Line 1528  void change_remplissage(GtkWidget *Acomb Line 1516  void change_remplissage(GtkWidget *Acomb
1516    guint64 *Llen;    guint64 *Llen;
1517    
1518    if (!strcmp(Lname, "listeremplidata")) {  /* cd data */    if (!strcmp(Lname, "listeremplidata")) {  /* cd data */
1519      Lcontenance = GTK_PROGRESS_BAR(g_hash_table_lookup(Lhash, "datasizebar"));      Lcontenance = GTK_PROGRESS_BAR(sc_grave_get_widget(Lg, "datasizebar"));
1520      Lmaxlen = (guint64 *)g_hash_table_lookup(Lhash, "datamaxsize");      Lmaxlen = (guint64 *)sc_grave_get_data(Lg, "datamaxsize");
1521      Llen = (guint64 *)g_hash_table_lookup(Lhash, "datasize");      Llen = (guint64 *)sc_grave_get_data(Lg, "datasize");
1522      (*Lmaxlen) = (unsigned long long)strtoul(Lvalue, NULL, 10) * 1024 * 1024;      (*Lmaxlen) = (unsigned long long)strtoul(Lvalue, NULL, 10) * 1024 * 1024;
1523    } else if (!strcmp(Lname, "listeremplidvddata")) {  /* dvd data */    } else if (!strcmp(Lname, "listeremplidvddata")) {  /* dvd data */
1524      Lcontenance = GTK_PROGRESS_BAR(g_hash_table_lookup(Lhash, "dvddatasizebar"));      Lcontenance = GTK_PROGRESS_BAR(sc_grave_get_widget(Lg, "dvddatasizebar"));
1525      Lmaxlen = (guint64 *)g_hash_table_lookup(Lhash, "dvddatamaxsize");      Lmaxlen = (guint64 *)sc_grave_get_data(Lg, "dvddatamaxsize");
1526      Llen = (guint64 *)g_hash_table_lookup(Lhash, "dvddatasize");      Llen = (guint64 *)sc_grave_get_data(Lg, "dvddatasize");
1527      (*Lmaxlen) = (unsigned long long)strtoul(Lvalue, NULL, 10) * 1024 * 1024;      (*Lmaxlen) = (unsigned long long)strtoul(Lvalue, NULL, 10) * 1024 * 1024;
1528            
1529    } else {  /* cd audio */    } else {  /* cd audio */
1530      Lcontenance = GTK_PROGRESS_BAR(g_hash_table_lookup(Lhash, "audiolenbar"));      Lcontenance = GTK_PROGRESS_BAR(sc_grave_get_widget(Lg, "audiolenbar"));
1531      Lmaxlen = (guint64 *)g_hash_table_lookup(Lhash, "audiomaxlen");      Lmaxlen = (guint64 *)sc_grave_get_data(Lg, "audiomaxlen");
1532      Llen = (guint64 *)g_hash_table_lookup(Lhash, "audiolen");      Llen = (guint64 *)sc_grave_get_data(Lg, "audiolen");
1533      (*Lmaxlen) = (unsigned long long)strtoul(Lvalue, NULL, 10);      (*Lmaxlen) = (unsigned long long)strtoul(Lvalue, NULL, 10);
1534    }    }
1535    
# Line 1551  void change_remplissage(GtkWidget *Acomb Line 1539  void change_remplissage(GtkWidget *Acomb
1539  /* gestion drag and drop */  /* gestion drag and drop */
1540  void audio_dnd_data_received (GtkWidget *Aliste, GdkDragContext *Acontext, gint Ax, gint Ay, GtkSelectionData *Aseldata, guint Ainfo, guint Atime, gpointer Adata)  void audio_dnd_data_received (GtkWidget *Aliste, GdkDragContext *Acontext, gint Ax, gint Ay, GtkSelectionData *Aseldata, guint Ainfo, guint Atime, gpointer Adata)
1541  {  {
1542    GHashTable *Lhash = (GHashTable *)Adata;    Tgrave *Lg = (Tgrave *)Adata;
1543    GtkTreeModel *Ltreemodel = gtk_tree_view_get_model(GTK_TREE_VIEW(Aliste));    GtkTreeModel *Ltreemodel = gtk_tree_view_get_model(GTK_TREE_VIEW(Aliste));
1544    guint64 *Laudiolen = (guint64 *)g_hash_table_lookup(Lhash, "audiolen");    guint64 *Laudiolen = (guint64 *)sc_grave_get_data(Lg, "audiolen");
1545    guint64 *Laudiomaxlen = (guint64 *)g_hash_table_lookup(Lhash, "audiomaxlen");    guint64 *Laudiomaxlen = (guint64 *)sc_grave_get_data(Lg, "audiomaxlen");
1546    GtkProgressBar *Lcontenance = GTK_PROGRESS_BAR(g_hash_table_lookup(Lhash, "audiolenbar"));    GtkProgressBar *Lcontenance = GTK_PROGRESS_BAR(sc_grave_get_widget(Lg, "audiolenbar"));
1547    
1548    if ((Aseldata->length >= 0) && (Aseldata->format == 8))    if ((Aseldata->length >= 0) && (Aseldata->format == 8))
1549    {    {
# Line 1579  void audio_dnd_data_received (GtkWidget Line 1567  void audio_dnd_data_received (GtkWidget
1567               sc_str_has_casesuffix(Lunfic, WAV)))) continue;               sc_str_has_casesuffix(Lunfic, WAV)))) continue;
1568    
1569        if (!(Lfilename = g_filename_from_uri(Lunfic, NULL, NULL))) continue;        if (!(Lfilename = g_filename_from_uri(Lunfic, NULL, NULL))) continue;
1570        _add_a_piste(Lfilename, GTK_LIST_STORE(Ltreemodel), Lhash);        _add_a_piste(Lfilename, GTK_LIST_STORE(Ltreemodel), Lg);
1571        g_free(Lfilename);        g_free(Lfilename);
1572      }      }
1573    
# Line 1613  void audio_dnd_data_received (GtkWidget Line 1601  void audio_dnd_data_received (GtkWidget
1601    
1602  void data_dnd_data_received (GtkWidget *Aliste, GdkDragContext *Acontext, gint Ax, gint Ay, GtkSelectionData *Aseldata, guint Ainfo, guint Atime, gpointer Adata)  void data_dnd_data_received (GtkWidget *Aliste, GdkDragContext *Acontext, gint Ax, gint Ay, GtkSelectionData *Aseldata, guint Ainfo, guint Atime, gpointer Adata)
1603  {  {
1604    GHashTable *Lhash = (GHashTable *)Adata;    Tgrave *Lg = (Tgrave *)Adata;
1605    guint64 *Ldatasize;    guint64 *Ldatasize;
1606    guint64 *Ldatamaxsize;    guint64 *Ldatamaxsize;
1607    GtkProgressBar *Lcontenance;    GtkProgressBar *Lcontenance;
1608    GtkTreeModel *Ltreemodel = gtk_tree_view_get_model(GTK_TREE_VIEW(Aliste));    GtkTreeModel *Ltreemodel = gtk_tree_view_get_model(GTK_TREE_VIEW(Aliste));
1609    
1610    _REMPLISSAGE_VALUE(Lhash, Aliste, Ldatasize, Ldatamaxsize, Lcontenance);    _REMPLISSAGE_VALUE(Lg, Aliste, Ldatasize, Ldatamaxsize, Lcontenance);
1611    
1612    if ((Aseldata->length >= 0) && (Aseldata->format == 8))    if ((Aseldata->length >= 0) && (Aseldata->format == 8))
1613    {    {
# Line 1646  void data_dnd_data_received (GtkWidget * Line 1634  void data_dnd_data_received (GtkWidget *
1634        if (g_ascii_strncasecmp(Lunfic, "file://", 7)) continue;        if (g_ascii_strncasecmp(Lunfic, "file://", 7)) continue;
1635        if (!(Lfilename = g_filename_from_uri(Lunfic, NULL, NULL))) continue;        if (!(Lfilename = g_filename_from_uri(Lunfic, NULL, NULL))) continue;
1636    
1637        _add_a_file(Lfilename, GTK_TREE_STORE(Ltreemodel), &Liter, Lhash, Ldatasize);        _add_a_file(Lfilename, GTK_TREE_STORE(Ltreemodel), &Liter, Lg, Ldatasize);
1638                
1639        g_free(Lfilename);        g_free(Lfilename);
1640      }      }
# Line 1716  void update_media_unit_range(gchar *Auni Line 1704  void update_media_unit_range(gchar *Auni
1704            
1705  void update_media_unit(GtkWidget *Acombo, gpointer Adata)  void update_media_unit(GtkWidget *Acombo, gpointer Adata)
1706  {  {
1707    GHashTable *Lhash = (GHashTable *)Adata;    Tgrave *Lg = (Tgrave *)Adata;
1708    GtkWidget *Ldataentry = GTK_WIDGET(g_hash_table_lookup(Lhash, "mediadata"));    GtkWidget *Ldataentry = GTK_WIDGET(g_hash_table_lookup(Lg, "mediadata"));
1709    
1710    gtk_widget_grab_focus(Ldataentry);    gtk_widget_grab_focus(Ldataentry);
1711  }  }
# Line 1725  void update_media_unit(GtkWidget *Acombo Line 1713  void update_media_unit(GtkWidget *Acombo
1713  /* mise a jour des champs dans la fenetre "configuration des medias" */  /* mise a jour des champs dans la fenetre "configuration des medias" */
1714  gboolean update_media_fields(GtkWidget *Awidget, gpointer Adata)  gboolean update_media_fields(GtkWidget *Awidget, gpointer Adata)
1715  {  {
1716    GHashTable *Lhash = (GHashTable *)Adata;    Tgrave *Lg = (Tgrave *)Adata;
1717    const gchar *Lname = glade_get_widget_name(GTK_WIDGET(Awidget));    const gchar *Lname = glade_get_widget_name(GTK_WIDGET(Awidget));
1718    gulong Lnewsize;    gulong Lnewsize;
1719    gulong Lasksize;    gulong Lasksize;
1720    gulong *Lsize = (gulong *)g_hash_table_lookup(Lhash, "fullsize");    gulong *Lsize = (gulong *)g_hash_table_lookup(Lg, "fullsize");
1721    GtkComboBox *Lmediadataunit = GTK_COMBO_BOX(g_hash_table_lookup(Lhash, "mediadataunit"));    GtkComboBox *Lmediadataunit = GTK_COMBO_BOX(g_hash_table_lookup(Lg, "mediadataunit"));
1722    gchar *Lcharunit = get_combo_value(GTK_WIDGET(Lmediadataunit));    gchar *Lcharunit = get_combo_value(GTK_WIDGET(Lmediadataunit));
1723    
1724   // printf("l'unite est => %s\n", Lcharunit);   // printf("l'unite est => %s\n", Lcharunit);
# Line 1762  gboolean update_media_fields(GtkWidget * Line 1750  gboolean update_media_fields(GtkWidget *
1750  /* debuter un nouveau projet */  /* debuter un nouveau projet */
1751  void menu_start_new(GtkMenuItem *Amenuitem, gpointer Adata)  void menu_start_new(GtkMenuItem *Amenuitem, gpointer Adata)
1752  {  {
1753    GHashTable *Lhash = (GHashTable *)Adata;    Tgrave *Lg = (Tgrave *)Adata;
1754    GtkTreeView *Ltopmenu = GTK_TREE_VIEW(g_hash_table_lookup(Lhash, "topmenu"));    GtkTreeView *Ltopmenu = GTK_TREE_VIEW(sc_grave_get_widget(Lg, "topmenu"));
1755    gchar *Lname;    gchar *Lname;
1756    GtkTreeIter Liter;    GtkTreeIter Liter;
1757    GtkTreeSelection *Lselection = gtk_tree_view_get_selection(Ltopmenu);    GtkTreeSelection *Lselection = gtk_tree_view_get_selection(Ltopmenu);
# Line 1774  void menu_start_new(GtkMenuItem *Amenuit Line 1762  void menu_start_new(GtkMenuItem *Amenuit
1762    
1763    if (!strcmp(Lname, "bodycdaudio")) {    if (!strcmp(Lname, "bodycdaudio")) {
1764      /* on est sur l'onglet cd audio, on vide la liste */      /* on est sur l'onglet cd audio, on vide la liste */
1765      GtkTreeView *Lliste = GTK_TREE_VIEW(g_hash_table_lookup(Lhash, "LISTEAUDIO"));      GtkTreeView *Lliste = GTK_TREE_VIEW(sc_grave_get_widget(Lg, "LISTEAUDIO"));
1766      GtkTreeModel *Ltreemodel = gtk_tree_view_get_model(Lliste);      GtkTreeModel *Ltreemodel = gtk_tree_view_get_model(Lliste);
1767      GtkProgressBar *Lcontenance = GTK_PROGRESS_BAR(g_hash_table_lookup(Lhash, "audiolenbar"));      GtkProgressBar *Lcontenance = GTK_PROGRESS_BAR(sc_grave_get_widget(Lg, "audiolenbar"));
1768      guint32 *Laudiolen = (guint32 *)g_hash_table_lookup(Lhash, "audiolen");      guint32 *Laudiolen = (guint32 *)sc_grave_get_data(Lg, "audiolen");
1769      guint32 *Laudiomaxlen = (guint32 *)g_hash_table_lookup(Lhash, "audiomaxlen");      guint32 *Laudiomaxlen = (guint32 *)sc_grave_get_data(Lg, "audiomaxlen");
1770      (*Laudiolen) = 0;      (*Laudiolen) = 0;
1771    
1772      gtk_list_store_clear(GTK_LIST_STORE(Ltreemodel));      gtk_list_store_clear(GTK_LIST_STORE(Ltreemodel));
# Line 1787  void menu_start_new(GtkMenuItem *Amenuit Line 1775  void menu_start_new(GtkMenuItem *Amenuit
1775    
1776    } else if (!strcmp(Lname, "bodycddata") || !strcmp(Lname, "bodydvddata")) {    } else if (!strcmp(Lname, "bodycddata") || !strcmp(Lname, "bodydvddata")) {
1777      /* on est sur l'onglet cd data, on vide la liste */      /* on est sur l'onglet cd data, on vide la liste */
1778      GtkTreeView *Lliste = GTK_TREE_VIEW(g_hash_table_lookup(Lhash, "_current_list"));      GtkTreeView *Lliste = GTK_TREE_VIEW(sc_grave_get_data(Lg, "_current_list"));
1779      GtkTreeModel *Ltreemodel = gtk_tree_view_get_model(GTK_TREE_VIEW(Lliste));      GtkTreeModel *Ltreemodel = gtk_tree_view_get_model(GTK_TREE_VIEW(Lliste));
1780      GtkProgressBar *Lcontenance; // = GTK_PROGRESS_BAR(g_hash_table_lookup(Lhash, "datasizebar"));      GtkProgressBar *Lcontenance;
1781      guint64 *Ldatasize; // = (guint32 *)g_hash_table_lookup(Lhash, "datasize");      guint64 *Ldatasize;
1782      guint64 *Ldatamaxsize; // = (guint32 *)g_hash_table_lookup(Lhash, "datamaxsize");      guint64 *Ldatamaxsize;
1783      GtkTreeIter Liter;      GtkTreeIter Liter;
1784        
1785      _REMPLISSAGE_VALUE(Lhash, Lliste, Ldatasize, Ldatamaxsize, Lcontenance);      _REMPLISSAGE_VALUE(Lg, Lliste, Ldatasize, Ldatamaxsize, Lcontenance);
1786      (*Ldatasize) = 0;      (*Ldatasize) = 0;
1787    
1788      gtk_tree_store_clear(GTK_TREE_STORE(Ltreemodel));      gtk_tree_store_clear(GTK_TREE_STORE(Ltreemodel));
# Line 1813  void menu_start_new(GtkMenuItem *Amenuit Line 1801  void menu_start_new(GtkMenuItem *Amenuit
1801  #if 0  #if 0
1802  void gtk_def_imageboot(GtkWidget *Abtn, gpointer Adata)  void gtk_def_imageboot(GtkWidget *Abtn, gpointer Adata)
1803  {  {
1804    GHashTable *Lhash = (GHashTable *)Adata;    Tgrave *Lg = (Tgrave *)Adata;
1805    GtkTreeView *Lliste = GTK_TREE_VIEW(g_hash_table_lookup(Lhash, "LISTEDATA"));    GtkTreeView *Lliste = GTK_TREE_VIEW(g_hash_table_lookup(Lg, "LISTEDATA"));
1806    GtkTreeModel *Ltreemodel;    GtkTreeModel *Ltreemodel;
1807    GtkTreeSelection *Lselection = gtk_tree_view_get_selection(GTK_TREE_VIEW(Lliste));    GtkTreeSelection *Lselection = gtk_tree_view_get_selection(GTK_TREE_VIEW(Lliste));
1808    GtkTreeIter *Liter = g_hash_table_lookup(Lhash, "file_imageboot");    GtkTreeIter *Liter = g_hash_table_lookup(Lg, "file_imageboot");
1809    GtkTreeIter Lnewiter;    GtkTreeIter Lnewiter;
1810    
1811    if (!gtk_tree_selection_get_selected(Lselection, &Ltreemodel, &Lnewiter)) return;    if (!gtk_tree_selection_get_selected(Lselection, &Ltreemodel, &Lnewiter)) return;
# Line 1829  void gtk_def_imageboot(GtkWidget *Abtn, Line 1817  void gtk_def_imageboot(GtkWidget *Abtn,
1817    
1818    gtk_tree_store_set(GTK_TREE_STORE(Ltreemodel), &Lnewiter, 0, TYPE_IMAGEBOOT, 1, GFileImage, -1);    gtk_tree_store_set(GTK_TREE_STORE(Ltreemodel), &Lnewiter, 0, TYPE_IMAGEBOOT, 1, GFileImage, -1);
1819    
1820    g_hash_table_replace(Lhash, "file_imageboot", gtk_tree_iter_copy(&Lnewiter));    g_hash_table_replace(Lg, "file_imageboot", gtk_tree_iter_copy(&Lnewiter));
1821  }  }
1822  #endif  #endif
1823    

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

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