graveman-cvs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Graveman-cvs] Changes to graveman/current/src/callbacks.c


From: sylvain cresto
Subject: [Graveman-cvs] Changes to graveman/current/src/callbacks.c
Date: Sat, 19 Feb 2005 12:49:22 -0500

Index: graveman/current/src/callbacks.c
diff -u graveman/current/src/callbacks.c:1.18 
graveman/current/src/callbacks.c:1.19
--- graveman/current/src/callbacks.c:1.18       Sat Feb 12 16:41:07 2005
+++ graveman/current/src/callbacks.c    Sat Feb 19 17:49:08 2005
@@ -37,9 +37,9 @@
 }
 
 /* callback appele pour l'ajout d'une piste audio */
-void _add_a_piste(gchar *Anom, GtkListStore *Aliststore, GHashTable *Ahash)
+void _add_a_piste(gchar *Anom, GtkListStore *Aliststore, Tgrave *Ag)
 {
-  guint32 *Laudiolen = (guint32 *)g_hash_table_lookup(Ahash, "audiolen");
+  guint32 *Laudiolen = (guint32 *)sc_grave_get_data(Ag, "audiolen");
   GtkTreeIter Liter;
   gchar *LTitle = NULL, *LAlbum = NULL, *LArtist = NULL;
   guint32 Llennbr = 0;
@@ -106,7 +106,7 @@
 }
 
 /* callback appele pour l'ajout de chaques fichiers */
-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)
 {
   GtkTreeIter Liter;
   gchar *LOnlyName;
@@ -150,7 +150,7 @@
       if (!strcmp(Lcurfic->d_name, ".") || !strcmp(Lcurfic->d_name, "..")) 
continue;
         
       Lfullname = g_strdup_printf("%s/%s", Anom, Lcurfic->d_name);
-      _add_a_file(Lfullname, ATreeStore, &Liter, Ahash, Adatasize);
+      _add_a_file(Lfullname, ATreeStore, &Liter, Ag, Adatasize);
       g_free(Lfullname);
     }
     closedir(Ldir);
@@ -172,8 +172,8 @@
 /* creer un repertoire */
 void gtk_data_creerrepertoire(GtkWidget *btn, gpointer Adata)
 {
-  GHashTable *Lhash = (GHashTable *)Adata;
-  GtkTreeView *Lliste = GTK_TREE_VIEW(g_hash_table_lookup(Lhash, 
"_current_list"));
+  Tgrave *Lg = (Tgrave *)Adata;
+  GtkTreeView *Lliste = GTK_TREE_VIEW(sc_grave_get_data(Lg, "_current_list"));
   GtkTreeModel *Ltreemodel = gtk_tree_view_get_model(Lliste);
   GtkTreeIter Liter, Lparent;
   GtkWidget *Lboite, *Lentry;
@@ -214,8 +214,8 @@
 /* developper tout le contenu de l'arbre */
 void gtk_data_expandelement(GtkWidget *btn, gpointer Adata)
 {
-  GHashTable *Lhash = (GHashTable *)Adata;
-  GtkTreeView *Lliste = GTK_TREE_VIEW(g_hash_table_lookup(Lhash, 
"_current_list"));
+  Tgrave *Lg = (Tgrave *)Adata;
+  GtkTreeView *Lliste = GTK_TREE_VIEW(sc_grave_get_data(Lg, "_current_list"));
   GtkTreePath *Lpath = NULL;
 
   gtk_tree_view_get_cursor(Lliste, &Lpath, NULL);
@@ -228,8 +228,8 @@
 /* renommer un element (fichier ou repertoire) */
 void gtk_data_renommerelement(GtkWidget *Abtn, gpointer Adata)
 {
-  GHashTable *Lhash = (GHashTable *)Adata;
-  GtkTreeView *Lliste = GTK_TREE_VIEW(g_hash_table_lookup(Lhash, 
"_current_list"));
+  Tgrave *Lg = (Tgrave *)Adata;
+  GtkTreeView *Lliste = GTK_TREE_VIEW(sc_grave_get_data(Lg, "_current_list"));
   GtkWidget *Lboite, *Lentry;
   GtkTreeModel *Ltreemodel = gtk_tree_view_get_model(Lliste);
   GtkTreePath *Lpath = NULL;
@@ -301,12 +301,12 @@
 /* enlever des pistes a graver */
 void gtk_audio_removetrack(GtkWidget *Abtn, gpointer Adata)
 {
-  GHashTable *Lhash = (GHashTable *)Adata;
-  GtkTreeView *Lliste = GTK_TREE_VIEW(g_hash_table_lookup(Lhash, 
"LISTEAUDIO"));
+  Tgrave *Lg = (Tgrave *)Adata;
+  GtkTreeView *Lliste = GTK_TREE_VIEW(sc_grave_get_data(Lg, "LISTEAUDIO"));
   GtkTreeSelection *Lselection = 
gtk_tree_view_get_selection(GTK_TREE_VIEW(Lliste));
-  GtkProgressBar *Lcontenance = GTK_PROGRESS_BAR(g_hash_table_lookup(Lhash, 
"audiolenbar"));
-  guint32 *Laudiolen = (guint32 *)g_hash_table_lookup(Lhash, "audiolen");
-  guint32 *Laudiomaxlen = (guint32 *)g_hash_table_lookup(Lhash, "audiomaxlen");
+  GtkProgressBar *Lcontenance = GTK_PROGRESS_BAR(sc_grave_get_data(Lg, 
"audiolenbar"));
+  guint32 *Laudiolen = (guint32 *)sc_grave_get_data(Lg, "audiolen");
+  guint32 *Laudiomaxlen = (guint32 *)sc_grave_get_data(Lg, "audiomaxlen");
   GtkTreeIter Liter;
   GtkTreeModel *Ltreemodel = gtk_tree_view_get_model(Lliste);
   guint32 Llennbr = 0;
@@ -342,8 +342,8 @@
 }
 
 /* parcourir tous les fils d'un element et recuperer leur taille que l'on 
enleve de "cursize" */
-void remove_children_size(GtkTreeModel *Atreedata, GtkTreeIter *Aiter, guint64 
*Acursize, GHashTable *Ahash);
-void remove_children_size(GtkTreeModel *Atreedata, GtkTreeIter *Aiter, guint64 
*Acursize, GHashTable *Ahash)
+void remove_children_size(GtkTreeModel *Atreedata, GtkTreeIter *Aiter, guint64 
*Acursize, Tgrave *Ag);
+void remove_children_size(GtkTreeModel *Atreedata, GtkTreeIter *Aiter, guint64 
*Acursize, Tgrave *Ag)
 {
   GtkTreeIter Lcuriter;
   guint64 Lsizenbr = 0;
@@ -355,11 +355,11 @@
       *Acursize-=Lsizenbr;
 #if 0
       if (Ltype == TYPE_IMAGEBOOT) {
-        g_hash_table_replace(Lhash, "file_imageboot", 
gtk_tree_iter_copy(&Lnewiter));
+        g_hash_table_replace(Lg, "file_imageboot", 
gtk_tree_iter_copy(&Lnewiter));
       }
 #endif
 
-      remove_children_size(Atreedata, &Lcuriter, Acursize, Ahash);
+      remove_children_size(Atreedata, &Lcuriter, Acursize, Ag);
     } while (gtk_tree_model_iter_next(Atreedata, &Lcuriter));
   }
 }
@@ -368,42 +368,41 @@
 void gtk_display_updatesize(GtkWidget *Abtn, gpointer Adata)
 {
   const gchar *Lname = glade_get_widget_name(Abtn);
-  GHashTable *Lhash = (GHashTable *) Adata;
+  Tgrave *Lg = (Tgrave *) Adata;
   gchar *Lsize = strrchr(Lname, '_');
 
   g_assert(Lsize);
 
   conf_store_value("iconsize", ++Lsize);
 
-  manage_interface(Lhash, MENU_UPDATE);
+  manage_interface(Lg, MENU_UPDATE);
 }
 
 /* clique sur le popup pour l'affichage ou non de la status bar */
 void gtk_display_switchstatusbar(GtkWidget *Abtn, gpointer Adata)
 {
-  GHashTable *Lhash = (GHashTable *) Adata;
+  Tgrave *Lg = (Tgrave *) Adata;
   gboolean Ldispsb = conf_get_boolean("statusbar");
 
   conf_store_value("statusbar", Ldispsb ? "0" : "1");
 
-  update_status_bar_display(Lhash);
+  update_status_bar_display(Lg);
 }
 
 /* enlever des fichiers a graver */
 void gtk_data_removefiles(GtkWidget *Abtn, gpointer Adata)
 {
-  GHashTable *Lhash = (GHashTable *)Adata;
-  GtkTreeView *Lliste = GTK_TREE_VIEW(g_hash_table_lookup(Lhash, 
"_current_list"));
-//  gchar *Lprefix = (!strcmp(glade_get_widget_name(Lliste), "LISTEDATA") ? 
"data" : "dvddata");
-  GtkProgressBar *Lcontenance; // = 
GTK_PROGRESS_BAR(sc_hash_table_lookupv(Lhash, "%ssizebar", Lprefix));
-  guint64 *Ldatasize; // = (guint64 *)g_hash_table_lookup(Lhash, "%ssize", 
Lprefix);
-  guint64 *Ldatamaxsize; // = (guint64 *)g_hash_table_lookup(Lhash, 
"%smaxsize", Lprefix);
+  Tgrave *Lg = (Tgrave *)Adata;
+  GtkTreeView *Lliste = GTK_TREE_VIEW(sc_grave_get_data(Lg, "_current_list"));
+  GtkProgressBar *Lcontenance;
+  guint64 *Ldatasize;
+  guint64 *Ldatamaxsize;
 
-  _REMPLISSAGE_VALUE(Lhash, Lliste, Ldatasize, Ldatamaxsize, Lcontenance);
+  _REMPLISSAGE_VALUE(Lg, Lliste, Ldatasize, Ldatamaxsize, Lcontenance);
   
   /* image de boot */
 #if 0  
-  GtkTreeIter *Literboot = g_hash_table_lookup(Lhash, "file_imageboot");
+  GtkTreeIter *Literboot = sc_grave_get_data(Lg, "file_imageboot");
 #endif
   GtkTreeModel *Ltreedata = gtk_tree_view_get_model(GTK_TREE_VIEW(Lliste));
   GtkTreeSelection *Lselection = 
gtk_tree_view_get_selection(GTK_TREE_VIEW(Lliste));
@@ -435,7 +434,7 @@
         g_assert((*Ldatasize) >= 0);
 
         /* on enleve la taille des eventuels enfants */
-        remove_children_size(Ltreedata, &Liter, Ldatasize, Lhash);
+        remove_children_size(Ltreedata, &Liter, Ldatasize, Lg);
 
         gtk_tree_store_remove(GTK_TREE_STORE(Ltreedata), &Liter);
         gtk_tree_row_reference_deleted(Lproxy, Lpath);
@@ -460,12 +459,12 @@
 /* ajouter des pistes a graver */
 void gtk_audio_addtrack(GtkWidget *Abtn, gpointer Adata)
 {
-  GHashTable *Lhash = (GHashTable *)Adata;
-  GtkWidget *Lwindow1 = GTK_WIDGET(g_hash_table_lookup(Lhash, "topwindow"));
-  GtkTreeView *Lliste = GTK_TREE_VIEW(g_hash_table_lookup(Lhash, 
"LISTEAUDIO"));
-  guint32 *Laudiolen = (guint32 *)g_hash_table_lookup(Lhash, "audiolen");
-  guint32 *Laudiomaxlen = (guint32 *)g_hash_table_lookup(Lhash, "audiomaxlen");
-  GtkProgressBar *Lcontenance = GTK_PROGRESS_BAR(g_hash_table_lookup(Lhash, 
"audiolenbar"));
+  Tgrave *Lg = (Tgrave *)Adata;
+  GtkWidget *Lwindow1 = GTK_WIDGET(sc_grave_get_widget(Lg, "topwindow"));
+  GtkTreeView *Lliste = GTK_TREE_VIEW(sc_grave_get_widget(Lg, "LISTEAUDIO"));
+  guint32 *Laudiolen = (guint32 *)sc_grave_get_data(Lg, "audiolen");
+  guint32 *Laudiomaxlen = (guint32 *)sc_grave_get_data(Lg, "audiomaxlen");
+  GtkProgressBar *Lcontenance = GTK_PROGRESS_BAR(sc_grave_get_widget(Lg, 
"audiolenbar"));
   GtkTreeModel *Ltreemodel = gtk_tree_view_get_model(Lliste);
   GtkWidget *Lpistesel = create_addpisteselection(NULL);
   GSList *Lfiles, *Lcur;
@@ -478,7 +477,7 @@
 
     set_cursor(Lwindow1, GDK_WATCH);
     for (Lcur = Lfiles; Lcur && Lcur->data; Lcur = Lcur->next) {
-      _add_a_piste((gchar *) Lcur->data, GTK_LIST_STORE(Ltreemodel), Lhash);
+      _add_a_piste((gchar *) Lcur->data, GTK_LIST_STORE(Ltreemodel), Lg);
     }
     unset_cursor(Lwindow1);
 
@@ -493,9 +492,9 @@
 /* ajouter des repertoires a graver */
 void gtk_data_adddirectory(GtkWidget *btn, gpointer Adata)
 {
-  GHashTable *Lhash = (GHashTable *)Adata;
-  GtkWidget *Lwindow1 = GTK_WIDGET(g_hash_table_lookup(Lhash, "topwindow"));
-  GtkTreeView *Lliste = GTK_TREE_VIEW(g_hash_table_lookup(Lhash, 
"_current_list"));
+  Tgrave *Lg = (Tgrave *)Adata;
+  GtkWidget *Lwindow1 = GTK_WIDGET(sc_grave_get_widget(Lg, "topwindow"));
+  GtkTreeView *Lliste = GTK_TREE_VIEW(sc_grave_get_data(Lg, "_current_list"));
   GtkTreeSelection *Lselection = 
gtk_tree_view_get_selection(GTK_TREE_VIEW(Lliste));
   GtkTreeModel *Ltreemodel = gtk_tree_view_get_model(GTK_TREE_VIEW(Lliste));
   GtkWidget *Lfilesel = create_adddirselection(NULL);
@@ -508,7 +507,7 @@
   gint Ltype;
   GtkTreePath *Lpath = NULL;
 
-  _REMPLISSAGE_VALUE(Lhash, Lliste, Ldatasize, Ldatamaxsize, Lcontenance);
+  _REMPLISSAGE_VALUE(Lg, Lliste, Ldatasize, Ldatamaxsize, Lcontenance);
 
   /* focus sur le premier element si pas de focus */
   if (!Lnumsel) {
@@ -538,7 +537,7 @@
     Lfiles = gtk_file_chooser_get_filenames(GTK_FILE_CHOOSER(Lfilesel));
        
     for (Lcur = Lfiles; Lcur && Lcur->data; Lcur = Lcur->next) {
-      _add_a_file((gchar *) Lcur->data, (GtkTreeStore *)Ltreemodel, &Liter, 
Lhash, Ldatasize);
+      _add_a_file((gchar *) Lcur->data, (GtkTreeStore *)Ltreemodel, &Liter, 
Lg, Ldatasize);
 
     }
     g_slist_free(Lfiles);
@@ -558,8 +557,8 @@
 /* ajouter des fichiers a graver */
 void gtk_data_addfile(GtkWidget *btn, gpointer Adata)
 {
-  GHashTable *Lhash = (GHashTable *)Adata;
-  GtkTreeView *Lliste = GTK_TREE_VIEW(g_hash_table_lookup(Lhash, 
"_current_list"));
+  Tgrave *Lg = (Tgrave *)Adata;
+  GtkTreeView *Lliste = GTK_TREE_VIEW(sc_grave_get_data(Lg, "_current_list"));
   GtkTreeSelection *Lselection = 
gtk_tree_view_get_selection(GTK_TREE_VIEW(Lliste));
   guint64 *Ldatasize;
   guint64 *Ldatamaxsize;
@@ -572,7 +571,7 @@
   gint Lnumsel = gtk_tree_selection_count_selected_rows(Lselection);
   GtkTreePath *Lpath = NULL;
 
-  _REMPLISSAGE_VALUE(Lhash, Lliste, Ldatasize, Ldatamaxsize, Lcontenance);
+  _REMPLISSAGE_VALUE(Lg, Lliste, Ldatasize, Ldatamaxsize, Lcontenance);
 
   /* focus sur le premier element si pas de focus */
   if (!Lnumsel) {
@@ -600,7 +599,7 @@
 
     Lfiles = gtk_file_chooser_get_filenames(GTK_FILE_CHOOSER(Lfilesel));
     for (Lcur = Lfiles; Lcur && Lcur->data; Lcur = Lcur->next) {
-      _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);
 
     }
     g_slist_free(Lfiles);
@@ -618,15 +617,15 @@
 /* l'utilisateur veut editer un device */
 void gtk_devices_edit(GtkWidget *Abtn, gpointer Adata)
 {
-  GHashTable *Lhash = (GHashTable *) Adata;
-  GtkWidget *Lparent = GTK_WIDGET(g_hash_table_lookup(Lhash, "window"));
-  GtkTreeView *Lliste = GTK_TREE_VIEW(g_hash_table_lookup(Lhash, 
"periphdata"));
+  Tgrave *Lg = (Tgrave *) Adata;
+  GtkWidget *Lparent = GTK_WIDGET(sc_grave_get_widget(Lg, "window"));
+  GtkTreeView *Lliste = GTK_TREE_VIEW(sc_grave_get_widget(Lg, "periphdata"));
   GtkTreeSelection *Lselection = 
gtk_tree_view_get_selection(GTK_TREE_VIEW(Lliste));
   GtkTreeIter Liter;
   GtkTreeModel *Ltreemodel;
 
   if (gtk_tree_selection_get_selected(Lselection, &Ltreemodel, &Liter)) {
-    GHashTable *Ldialoghash;
+    Tgrave *Ldialoghash;
     GtkWidget *Lwineditdevice;
     Tdriveinfo *Ldrive;
     gint Lnum;
@@ -635,12 +634,12 @@
     gtk_tree_model_get(Ltreemodel, &Liter, 0, &Lnum, -1);
     Ldrive = (Tdriveinfo *)g_slist_nth_data(Glistdrives, Lnum);
     Ldialoghash = create_dialog_edit_device(Lparent, Ldrive);
-    Lwineditdevice = g_hash_table_lookup(Ldialoghash, "window");
+    Lwineditdevice = sc_grave_get_widget(Ldialoghash, "window");
 
     if (gtk_dialog_run(GTK_DIALOG(Lwineditdevice)) != GTK_RESPONSE_CANCEL) {
-      GtkEntry *Ldevicename = g_hash_table_lookup(Ldialoghash, "devicename");
+      GtkEntry *Ldevicename = GTK_ENTRY(sc_grave_get_widget(Ldialoghash, 
"devicename"));
 
-      Lbus = get_combo_intvalue(g_hash_table_lookup(Ldialoghash, "devicebus"));
+      Lbus = get_combo_intvalue(sc_grave_get_widget(Ldialoghash, "devicebus"));
       Ldrive->actuperiph = Lbus;
 
       /* on remplace le nom dans la liste des lecteurs */
@@ -651,7 +650,7 @@
           4, Ldrive->name, -1);
     }
     gtk_widget_destroy(Lwineditdevice);
-    g_hash_table_destroy(Ldialoghash);
+    sc_grave_destroy(Ldialoghash);
   }
 
 }
@@ -659,8 +658,8 @@
 /* l'utilisateur a cliquer sur supprimer un device */
 void gtk_devices_remove(GtkWidget *Abtn, gpointer Adata)
 {
-  GHashTable *Lhash = (GHashTable *)Adata;
-  GtkWidget *Lwindow1 = GTK_WIDGET(g_hash_table_lookup(Lhash, "topwindow"));
+  Tgrave *Lg = (Tgrave *)Adata;
+  GtkWidget *Lwindow1 = GTK_WIDGET(sc_grave_get_widget(Lg, "topwindow"));
   GtkWidget *Lconfirm;
   gint Lrep;
   
@@ -674,7 +673,7 @@
 
   if (Lrep == GTK_RESPONSE_YES) {
     /* oui on supprime un device */
-    GtkTreeView *Lliste = GTK_TREE_VIEW(g_hash_table_lookup(Lhash, 
"periphdata"));
+    GtkTreeView *Lliste = GTK_TREE_VIEW(sc_grave_get_widget(Lg, "periphdata"));
     GtkTreeSelection *Lselection = 
gtk_tree_view_get_selection(GTK_TREE_VIEW(Lliste));
     GtkTreeIter Liter;
     GtkTreeModel *Ltreemodel;
@@ -694,17 +693,17 @@
 /* ajouter manuelement un device */
 void gtk_devices_add(GtkWidget *Abtn, gpointer Adata)
 {
-  GHashTable *Lhash = (GHashTable *) Adata;
-  GtkWidget *Lparent = GTK_WIDGET(g_hash_table_lookup(Lhash, "window"));
-  GtkTreeView *Lliste = GTK_TREE_VIEW(g_hash_table_lookup(Lhash, 
"periphdata"));
-  GHashTable *Ldialoghash = create_dialog_add_device(Lparent);
-  GtkWidget *Lwinadddevice = g_hash_table_lookup(Ldialoghash, "window");
+  Tgrave *Lg = (Tgrave *) Adata;
+  GtkWidget *Lparent = GTK_WIDGET(sc_grave_get_widget(Lg, "window"));
+  GtkTreeView *Lliste = GTK_TREE_VIEW(sc_grave_get_widget(Lg, "periphdata"));
+  Tgrave *Ldialoghash = create_dialog_add_device(Lparent);
+  GtkWidget *Lwinadddevice = sc_grave_get_widget(Ldialoghash, "window");
   GtkWidget *Lmessage;
 
   while (1) {
     if (gtk_dialog_run(GTK_DIALOG(Lwinadddevice)) != GTK_RESPONSE_CANCEL) {
-      GtkEntry *Ldevicebus = GTK_ENTRY(g_hash_table_lookup(Ldialoghash, 
"devicebus"));
-      GtkEntry *Ldevicename = GTK_ENTRY(g_hash_table_lookup(Ldialoghash, 
"devicename"));
+      GtkEntry *Ldevicebus = GTK_ENTRY(sc_grave_get_widget(Ldialoghash, 
"devicebus"));
+      GtkEntry *Ldevicename = GTK_ENTRY(sc_grave_get_widget(Ldialoghash, 
"devicename"));
       gchar *Lbus = (gchar *)gtk_entry_get_text(Ldevicebus);
       Tdriveinfo *Ldrive = g_malloc0(sizeof(Tdriveinfo));
     
@@ -743,16 +742,16 @@
     }
   }
   gtk_widget_destroy(Lwinadddevice);
-  g_hash_table_destroy(Ldialoghash);
+  sc_grave_destroy(Ldialoghash);
 }
 
   
 /* selection d'une image iso */
 void gtk_file_sel(GtkWidget *Abtn, gpointer Adata)
 {
-  GHashTable *Lhash = (GHashTable *)Adata;
+  Tgrave *Lg = (Tgrave *)Adata;
   const gchar *Lname = glade_get_widget_name(Abtn);
-  GtkWidget *Ltextdest = (GtkWidget *) sc_hash_table_lookupv(Lhash, "%svalue", 
Lname);
+  GtkWidget *Ltextdest = (GtkWidget *) sc_grave_get_widgetv(Lg, "%svalue", 
Lname);
   gint resp;
   GtkWidget *Lfilesel;
   GtkFileChooserAction Ldialogtype = !strncmp(Lname, "src", 3) ?
@@ -783,7 +782,7 @@
 /* lors de la selection d'un lecteur / graveur */
 void on_selectgraveur(GtkWidget *Acombo, gpointer Adata)
 {
-  GHashTable *Lhash = (GHashTable *)Adata;
+  Tgrave *Lg = (Tgrave *)Adata;
   GtkWidget *Lpanel;
   GtkWidget *Lvitesse, *Lobj;
   GtkTreeModel *Lmodel = gtk_combo_box_get_model(GTK_COMBO_BOX(Acombo));
@@ -807,11 +806,11 @@
 
   Lspeedname = g_strdup(Lname);
   _SWAP_COMBO(Lspeedname, "speed");
-  Lvitesse = (GtkWidget *)g_hash_table_lookup(Lhash, Lspeedname);
+  Lvitesse = (GtkWidget *)sc_grave_get_widget(Lg, Lspeedname);
 
   Laskname = g_strdup(Lname);
   _SWAP_COMBO(Laskname, "table");
-  Lpanel = (GtkWidget *)g_hash_table_lookup(Lhash, Laskname);
+  Lpanel = (GtkWidget *)sc_grave_get_widget(Lg, Laskname);
   g_free(Laskname);
 
   
@@ -835,17 +834,17 @@
     remplire_combo_vitesse(GTK_COMBO_BOX(Lvitesse), Llecteur, 
conf_get_string(Lspeedname)); 
   }
 
-  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++) {
     /* disable si image iso, enable sinon */
     gtk_widget_set_sensitive (Lobj, !Lisimgiso);
   }
 
-  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++) {
     /* disable si lecteur non cdrw */
     gtk_widget_set_sensitive (Lobj, DRIVE_WRITER(Ldrive));
   }
 
-  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++) {
     /* disable si lecteur non dvdrw */
     gtk_widget_set_sensitive (Lobj, DRIVE_DVDWRITER(Ldrive));
   }
@@ -857,9 +856,9 @@
 /* confirmer l'annulation de la gravure */
 gboolean abort_gravure(GtkWidget *Abtn, gpointer Adata)
 {
-  GHashTable *Lhash = (GHashTable *) Adata;
-  gboolean *Labort = (gboolean *)g_hash_table_lookup(Lhash, "gabort");
-  GtkWidget *Lwindow = GTK_WIDGET(g_hash_table_lookup(Lhash, "window_burn"));
+  Tgrave *Lg = (Tgrave *) Adata;
+  gboolean *Labort = (gboolean *)sc_grave_get_data(Lg, "gabort");
+  GtkWidget *Lwindow = GTK_WIDGET(sc_grave_get_widget(Lg, "window_burn"));
   gint Lret;
 
   g_assert(Labort);
@@ -871,7 +870,7 @@
   Lret = gtk_dialog_run(GTK_DIALOG(Lconfirm));
       
   if (Lret == GTK_RESPONSE_YES) {
-    gint *Lpid = (gint *)g_hash_table_lookup(Lhash, "pid");
+    gint *Lpid = (gint *)sc_grave_get_data(Lg, "pid");
     if (*Lpid) {
       /* on envoi un TERM au process (cdrecord...) pour qu'il s'arrete ! */
 _DEB("kill de %d\n", *Lpid);      
@@ -896,8 +895,8 @@
 /* confirmer la cloture d'un cd */
 void confirm_fixcd(GtkWidget *Abtn, gpointer Adata)
 {
-  GHashTable *Lhash = (GHashTable *)Adata;
-  GtkWidget *Lwindow1 = GTK_WIDGET(g_hash_table_lookup(Lhash, "topwindow"));
+  Tgrave *Lg = (Tgrave *)Adata;
+  GtkWidget *Lwindow1 = GTK_WIDGET(sc_grave_get_widget(Lg, "topwindow"));
   GtkWidget *Lconfirm;
   gint Lrep;
 
@@ -912,7 +911,7 @@
 
   if (Lrep == GTK_RESPONSE_YES) {
     /* ok go ! */
-    show_fixcdwindow(Lhash);
+    show_fixcdwindow(Lg);
   }
 }
 
@@ -930,8 +929,8 @@
   const gchar *Lname = glade_get_widget_name(Abtn);
   gchar *s, *Ltitle, *Lmessage;
   GtkWidget *Lconfirm;
-  GHashTable *Lhash = (GHashTable *)Adata;
-  GtkWidget *Lwindow1 = GTK_WIDGET(g_hash_table_lookup(Lhash, "topwindow"));
+  Tgrave *Lg = (Tgrave *)Adata;
+  GtkWidget *Lwindow1 = GTK_WIDGET(sc_grave_get_widget(Lg, "topwindow"));
   gint Lrep;
   Ttypeformatdvd Lcode;
  
@@ -961,39 +960,39 @@
   Lrep = gtk_dialog_run(GTK_DIALOG(Lconfirm));
   gtk_widget_destroy(Lconfirm);
   if (Lrep == GTK_RESPONSE_YES) {
-    show_dvdformatwindow(Lhash, Ltitle, Lcode);
+    show_dvdformatwindow(Lg, Ltitle, Lcode);
   }
 }
 
 /* confirmer l'effacement d'un cdrw */
 void confirm_erasecdrw(GtkWidget *Abtn, gpointer Adata)
 {
-  GHashTable *Lhash = (GHashTable *)Adata;
-  GtkWidget *Lwindow1 = GTK_WIDGET(g_hash_table_lookup(Lhash, "topwindow"));
-  GHashTable *Ldialoghash = create_dialog_confirm_operation(Lwindow1, _("Do 
you really want to erase the CD-RW ?"),
+  Tgrave *Lg = (Tgrave *)Adata;
+  GtkWidget *Lwindow1 = GTK_WIDGET(sc_grave_get_widget(Lg, "topwindow"));
+  Tgrave *Ldialoghash = create_dialog_confirm_operation(Lwindow1, _("Do you 
really want to erase the CD-RW ?"),
         _("_Fast blank disk when erasing CD-RW"), 
conf_get_boolean("fastblank"));
-  GtkWidget *Lconfirm = g_hash_table_lookup(Ldialoghash, "window");
+  GtkWidget *Lconfirm = sc_grave_get_widget(Ldialoghash, "window");
 
   /* confirmation debut de l'operation */ 
   if (gtk_dialog_run(GTK_DIALOG(Lconfirm)) == GTK_RESPONSE_YES) {
-    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")));
     gtk_widget_destroy(Lconfirm);
     
-    g_hash_table_insert(Lhash, "usefastblank", &Lusefastblank);
-    show_erasecdrwwindow(Lhash);
-    g_hash_table_remove(Lhash, "usefastblank");
+    sc_grave_set_data(Lg, &Lusefastblank, "usefastblank");
+    show_erasecdrwwindow(Lg);
+    sc_grave_del_data(Lg, "usefastblank");
   } else {
     gtk_widget_destroy(Lconfirm);
   }
-  g_hash_table_destroy(Ldialoghash);
+  sc_grave_destroy(Ldialoghash);
 
 }
 
 /* confirmer la debut de la gravure */
 void confirm_burn (GtkWidget *Abtn, gpointer Adata)
 {
-  GHashTable *Lhash = (GHashTable *)Adata;
-  GHashTable *Ldialoghash;
+  Tgrave *Lg = (Tgrave *)Adata;
+  Tgrave *Ldialoghash;
   GtkWidget *Lconfirm;
   gint Lrep;
   gboolean Luseautoblank = FALSE;
@@ -1001,7 +1000,7 @@
   const gchar *Lname;
   gchar *Ltxt = NULL;
   gchar *Ltitle = NULL;
-  GtkWidget *Lwindow1 = GTK_WIDGET(g_hash_table_lookup(Lhash, "topwindow"));
+  GtkWidget *Lwindow1 = GTK_WIDGET(sc_grave_get_widget(Lg, "topwindow"));
   GtkWidget *Ldevice;
   gboolean Lwritercdrw;
   Ttypeoperation Loperation = WRITE_CD;
@@ -1012,7 +1011,7 @@
   if (g_str_has_prefix(Lname, "btnburnaudio")) {
     GtkTreeIter Liter;
     GtkTreeModel *Ltreemodel = gtk_tree_view_get_model(
-        GTK_TREE_VIEW(g_hash_table_lookup(Lhash, "LISTEAUDIO")));
+        GTK_TREE_VIEW(sc_grave_get_widget(Lg, "LISTEAUDIO")));
     
     /* gravure cd audio, on verifie d'abord qu'il y ai au
      * moins une piste dans la liste .. */
@@ -1027,10 +1026,10 @@
     }
     Ltxt = _("Do you really want to create an audio cd ?");
     Ltitle = _("Writing audio cd in progress...");
-    Ldevice = g_hash_table_lookup(Lhash, "dstaudiocombo");
+    Ldevice = sc_grave_get_widget(Lg, "dstaudiocombo");
   } else if (g_str_has_prefix(Lname, "btnburndata") || g_str_has_prefix(Lname, 
"btnburndvddata")) {
     GtkTreeIter Liter;
-    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")));
     /* gravure cd de donnee, on verifie qu'il y ai au
      * moins un fichier/repertoire dans la liste */
 
@@ -1053,7 +1052,7 @@
     if (Loperation == WRITE_CD) {
       Ltxt = _("Do you really want to create a data cd ?");
       Ltitle = _("Writing data cd in progress...");
-      Ldevice = g_hash_table_lookup(Lhash, "dstdatacombo");
+      Ldevice = sc_grave_get_widget(Lg, "dstdatacombo");
     } else {
       Ltxt = _("Do you really want to create a data dvd ?");
       Ltitle = _("Writing data dvd in progress...");
@@ -1062,7 +1061,7 @@
     /* copie de cd */
     Ltxt = _("Do you really want to start the copy ?");
     Ltitle = _("Copying in progress...");
-    Ldevice = g_hash_table_lookup(Lhash, "dstcopycombo");
+    Ldevice = sc_grave_get_widget(Lg, "dstcopycombo");
   }
  
   /* confirmation debut de l'operation */ 
@@ -1076,41 +1075,41 @@
     /* confirmation gravure dvd */
     Ldialoghash = create_dialog_select_dvdoperation(Lwindow1);
   }
-  Lconfirm = g_hash_table_lookup(Ldialoghash, "window");
+  Lconfirm = sc_grave_get_widget(Ldialoghash, "window");
 
   Lrep = gtk_dialog_run(GTK_DIALOG(Lconfirm));
 
   if (Lrep == GTK_RESPONSE_YES) {
     /* ok go ! */
     if (Loperation == WRITE_CD) {
-      GtkCheckButton *Labcheck = 
GTK_CHECK_BUTTON(g_hash_table_lookup(Ldialoghash, "checkbox"));
+      GtkCheckButton *Labcheck = 
GTK_CHECK_BUTTON(sc_grave_get_widget(Ldialoghash, "checkbox"));
 
       g_assert(GTK_IS_WIDGET(Labcheck));
       if (Lwritercdrw == TRUE) {
         Luseautoblank = 
gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(Labcheck));
       }
-      g_hash_table_insert(Lhash, "useautoblank", &Luseautoblank);
+      sc_grave_set_data(Lg, &Luseautoblank, "useautoblank");
     } else {
-      GtkRadioButton *Labradio = 
GTK_RADIO_BUTTON(g_hash_table_lookup(Ldialoghash, "burninitial"));
+      GtkRadioButton *Labradio = 
GTK_RADIO_BUTTON(sc_grave_get_widget(Ldialoghash, "burninitial"));
       Ltypeburn = 
g_strdup(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(Labradio)) ? "-Z" : 
"-M");
-      g_hash_table_insert(Lhash, "typeburn", Ltypeburn);
+      sc_grave_set_data(Lg, Ltypeburn, "typeburn");
     }
 
     gtk_widget_destroy(Lconfirm);
 
-    show_graverwindow(Lhash, (gchar *)Lname, Ltitle);
+    show_graverwindow(Lg, (gchar *)Lname, Ltitle);
 
     if (Loperation == WRITE_CD) {
-      g_hash_table_remove(Lhash, "useautoblank");
+      sc_grave_del_data(Lg, "useautoblank");
     } else {
-      g_hash_table_remove(Lhash, "typeburn");
+      sc_grave_del_data(Lg, "typeburn");
       g_free(Ltypeburn);
     }
   } else {
     gtk_widget_destroy(Lconfirm);
   }
 
-  g_hash_table_destroy(Ldialoghash);
+  sc_grave_destroy(Ldialoghash);
 }
 
 /* popup ajouter des fichiers */
@@ -1241,8 +1240,8 @@
 /* clique sur le menu, on active un onglet */
 void menu_active_panel(GtkWidget *Amenuitem, gpointer Adata)
 {
-  GHashTable *Lhash = (GHashTable *)Adata;
-  GtkTreeView *Ltopmenu = GTK_TREE_VIEW(g_hash_table_lookup(Lhash, "topmenu"));
+  Tgrave *Lg = (Tgrave *)Adata;
+  GtkTreeView *Ltopmenu = GTK_TREE_VIEW(sc_grave_get_widget(Lg, "topmenu"));
   GtkTreeSelection *Lselection = gtk_tree_view_get_selection(Ltopmenu);
   GtkTreeModel *Lmodel = gtk_tree_view_get_model(Ltopmenu);
   GtkTreeIter Liter;
@@ -1250,13 +1249,12 @@
   gchar *Lrequest = g_strdup_printf("body%s", Lname+strlen("menu"));
   gchar *Lcuritem;
   gchar Lcont = gtk_tree_model_get_iter_first(Lmodel, &Liter);
-
   while (Lcont == TRUE) {
     gtk_tree_model_get(Lmodel, &Liter, 0, &Lcuritem, -1);
 
     if (!strcmp(Lcuritem, Lrequest)) {
       gtk_tree_selection_select_iter(Lselection, &Liter);
-      gtk_toggle_top_menu(Ltopmenu, Lhash);
+      gtk_toggle_top_menu(Ltopmenu, Lg);
       
       g_free(Lcuritem);
       break;
@@ -1270,7 +1268,7 @@
 /* changement d'onglet */
 void switchpage(GtkNotebook *Anotebook, GtkNotebookPage *Anotebookpage, guint 
Apagenum, gpointer Adata)
 {
-  GHashTable *Lhash = (GHashTable *)Adata;
+  Tgrave *Lg = (Tgrave *)Adata;
   GtkWidget *Ldatavoli;
   GtkTreeModel *Ltreemodel;
   GtkTreeIter Liter;
@@ -1279,11 +1277,11 @@
   if (Apagenum != 0 && Apagenum != 2) return;
 
   if (!strcmp(glade_get_widget_name(GTK_WIDGET(Anotebook)), "bodydata")) {
-    Ldatavoli = g_hash_table_lookup(Lhash, "datavoli");
-    Ltreemodel = 
gtk_tree_view_get_model(GTK_TREE_VIEW(g_hash_table_lookup(Lhash, "LISTEDATA")));
+    Ldatavoli = sc_grave_get_widget(Lg, "datavoli");
+    Ltreemodel = gtk_tree_view_get_model(GTK_TREE_VIEW(sc_grave_get_widget(Lg, 
"LISTEDATA")));
   } else {
-    Ldatavoli = g_hash_table_lookup(Lhash, "dvddatavoli");
-    Ltreemodel = 
gtk_tree_view_get_model(GTK_TREE_VIEW(g_hash_table_lookup(Lhash, 
"LISTEDVDDATA")));
+    Ldatavoli = sc_grave_get_widget(Lg, "dvddatavoli");
+    Ltreemodel = gtk_tree_view_get_model(GTK_TREE_VIEW(sc_grave_get_widget(Lg, 
"LISTEDVDDATA")));
   }
 
 
@@ -1306,10 +1304,10 @@
 /* activer la boite de dialogue proprietes */
 void menu_active_proprietes(GtkWidget *Amenuitem, gpointer Adata)
 {
-  GHashTable *Lhash = (GHashTable *) Adata;
-  GtkWidget *Lparent = GTK_WIDGET(g_hash_table_lookup(Lhash, "topwindow"));
-  GHashTable *Ldialoghash = create_dialog_proprietes(Lparent);
-  GtkWidget *Lwinproprietes = g_hash_table_lookup(Ldialoghash, "window");
+  Tgrave *Lg = (Tgrave *) Adata;
+  GtkWidget *Lparent = GTK_WIDGET(sc_grave_get_widget(Lg, "topwindow"));
+  Tgrave *Ldialoghash = create_dialog_proprietes(Lparent);
+  GtkWidget *Lwinproprietes = sc_grave_get_widget(Ldialoghash, "window");
   GError *Aerror = NULL;
   GtkWidget *Lptr;
   TProgRequis *Lcurentry;
@@ -1318,25 +1316,25 @@
   gtk_dialog_run(GTK_DIALOG(Lwinproprietes));
 
   /* recuperation des valeurs a sauver */
-  Lptr = g_hash_table_lookup(Ldialoghash, "dirtmpvalue");
+  Lptr = sc_grave_get_widget(Ldialoghash, "dirtmpvalue");
   conf_store_value("tmpdir", (gchar *)gtk_entry_get_text(GTK_ENTRY(Lptr)));
-  Lptr = g_hash_table_lookup(Ldialoghash, "overburn");
+  Lptr = sc_grave_get_widget(Ldialoghash, "overburn");
   conf_store_value("overburn", 
_BOOLEAN_CONF(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(Lptr))));
-  Lptr = g_hash_table_lookup(Ldialoghash, "fastblank");
+  Lptr = sc_grave_get_widget(Ldialoghash, "fastblank");
   conf_store_value("fastblank", 
_BOOLEAN_CONF(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(Lptr))));
-  Lptr = g_hash_table_lookup(Ldialoghash, "autoblank");
+  Lptr = sc_grave_get_widget(Ldialoghash, "autoblank");
   conf_store_value("autoblank", 
_BOOLEAN_CONF(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(Lptr))));
-  Lptr = g_hash_table_lookup(Ldialoghash, "eject");
+  Lptr = sc_grave_get_widget(Ldialoghash, "eject");
   conf_store_value("eject", 
_BOOLEAN_CONF(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(Lptr))));
-  Lptr = g_hash_table_lookup(Ldialoghash, "statusbar");
+  Lptr = sc_grave_get_widget(Ldialoghash, "statusbar");
   conf_store_value("statusbar", 
_BOOLEAN_CONF(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(Lptr))));
-  Lptr = g_hash_table_lookup(Ldialoghash, "iconsizelist");
+  Lptr = sc_grave_get_widget(Ldialoghash, "iconsizelist");
   conf_store_value("iconsize", get_combo_value((Lptr)));
-  Lptr = g_hash_table_lookup(Ldialoghash, "saveconfig");
+  Lptr = sc_grave_get_widget(Ldialoghash, "saveconfig");
   conf_store_value("saveconfig", 
_BOOLEAN_CONF(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(Lptr))));
 
 #if 0  
-  Lptr = g_hash_table_lookup(Ldialoghash, "extended");
+  Lptr = sc_grave_get_widget(Ldialoghash, "extended");
   conf_store_value("extended", 
_BOOLEAN_CONF(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(Lptr))));
 #endif
 
@@ -1346,7 +1344,7 @@
     if (Lcurentry->type != CONF_PROG) continue;
     g_snprintf(Ltmp, sizeof(Ltmp)-1, "%spara", Lcurentry->entry);
 
-    Lptr = g_hash_table_lookup(Ldialoghash, Ltmp);
+    Lptr = sc_grave_get_widget(Ldialoghash, Ltmp);
     if (!GTK_IS_WIDGET(Lptr)) continue;
 
     conf_store_value(Ltmp, (gchar *)gtk_entry_get_text(GTK_ENTRY(Lptr)));
@@ -1356,20 +1354,20 @@
   write_conf(&Aerror);
 
   /* mise a jour des listes contenant les lecteurs */
-  update_combo_graveur(Lhash);
-  update_status_bar_display(Lhash);
-  manage_interface(Lhash, MENU_UPDATE + COMBO_UPDATE );
+  update_combo_graveur(Lg);
+  update_status_bar_display(Lg);
+  manage_interface(Lg, MENU_UPDATE + COMBO_UPDATE );
 
   gtk_widget_destroy(Lwinproprietes);
 
-  g_hash_table_destroy(Ldialoghash);
+  sc_grave_destroy(Ldialoghash);
 }
 
 gboolean encours_callback(gpointer Adata)
 {
-  GHashTable *Lhash = (GHashTable *)Adata;
-  GtkProgressBar *Lprog = GTK_PROGRESS_BAR(g_hash_table_lookup(Lhash, 
"progress"));
-  gint *Lcont = (gint *)g_hash_table_lookup(Lhash, "cont");
+  Tgrave *Lg = (Tgrave *)Adata;
+  GtkProgressBar *Lprog = GTK_PROGRESS_BAR(sc_grave_get_widget(Lg, 
"progress"));
+  gint *Lcont = (gint *)sc_grave_get_data(Lg, "cont");
 
   gtk_progress_bar_pulse(
       Lprog);
@@ -1382,15 +1380,15 @@
 /* chercher (a nouveau) les programmes */
 void chercheprog(GtkWidget *Aobj, gpointer Adata)
 {
-  GHashTable *Lhash = (GHashTable *)Adata;
+  Tgrave *Lg = (Tgrave *)Adata;
   GtkWidget *Lstatusbox;
-  GtkWidget *Lwindow1 = g_hash_table_lookup(Lhash, "window");
+  GtkWidget *Lwindow1 = sc_grave_get_widget(Lg, "window");
 
   /* mise a jour de la configuration */
-  manage_config(Lhash, SEARCH_PROG, NULL);
+  manage_config(Lg, SEARCH_PROG, NULL);
   clean_config();
 
-  maj_proprietes_prog(Lhash);
+  maj_proprietes_prog(Lg);
 
   /* boite de dialoge operation terminee */
   Lstatusbox = gtk_message_dialog_new(GTK_WINDOW(Lwindow1), GTK_DIALOG_MODAL,
@@ -1402,46 +1400,37 @@
 /* chercher (a nouveau) les lecteurs */
 void cherchelecteur(GtkWidget *Aobj, gpointer Adata)
 {
-  GHashTable *Lparenthash = (GHashTable *)Adata;
-  GtkWidget *Lwindow1 = g_hash_table_lookup(Lparenthash, "window");
-  GladeXML *Lxmlencours = create_window_encours(Lwindow1);
+  Tgrave *Lparenthash = (Tgrave *)Adata;
+  GtkWidget *Lwindow1 = sc_grave_get_widget(Lparenthash, "window");
+  Tgrave *Lg = create_window_encours(Lwindow1);
   GtkWidget *Lstatusbox;
   GtkWidget *Lwin;
   GtkTreeView *Ldata;
-  GtkWidget *Lprogressbar;
-  GtkWidget *Llabel;
-  GtkWidget *Lcancel;
   gboolean Labort = FALSE;
   gint Lcont = 2;
   gchar *Ltxt;
-  GHashTable *Lhash = _hash();
   GSList *Lcur;
   Tdriveinfo *Ldrive;
   
-  Lwin = glade_xml_get_widget(Lxmlencours, "window_inprogress"); 
+  Lwin = sc_grave_get_widget(Lg, "window_inprogress"); 
 
-  Llabel = glade_xml_get_widget(Lxmlencours, "labelava");
-  Lprogressbar = glade_xml_get_widget(Lxmlencours, "progress");
-  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);
+  sc_grave_set_data(Lg, &Lcont, "cont");
+  sc_grave_set_data(Lg, &Labort, "gabort");
 
   /* bouton annuler */
-  Lcancel = glade_xml_get_widget(Lxmlencours, "cancelbtn");
-  g_signal_connect(G_OBJECT(Lcancel), "clicked", G_CALLBACK(abort_encours), 
(GtkWidget *)Lhash);
+  g_signal_connect(G_OBJECT(sc_grave_get_widget(Lg, "cancelbt")), "clicked", 
G_CALLBACK(abort_encours), (GtkWidget *)Lg);
 
   gtk_widget_show(Lwin);
-  g_timeout_add(500, encours_callback, Lhash);
+  g_timeout_add(500, encours_callback, Lg);
 
-  scan_for_drives(Lhash, NULL);
+  scan_for_drives(Lg, NULL);
 
   if (Labort == FALSE) {
     for (Lcur = Glistdrives; Lcur; Lcur = g_slist_next(Lcur)) {
       Ldrive = (Tdriveinfo *)Lcur->data;
       if (g_slist_length(Ldrive->dev)>0) {
         Ltxt = g_strdup_printf(_("Scanning drive \"%s\"..."), Ldrive->name);
-        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);
         while(gtk_events_pending()) gtk_main_iteration();
 
         maj_drive_info(Ldrive, (gchar *)g_slist_nth_data(Ldrive->dev, 0), 
NULL);
@@ -1454,9 +1443,8 @@
   while (Lcont > 0) { while(gtk_events_pending()) gtk_main_iteration(); }
 
   gtk_widget_destroy(Lwin);
-  g_hash_table_destroy(Lhash);
   if (GTK_IS_WIDGET(Aobj) && Labort == FALSE) {
-    Ldata = GTK_TREE_VIEW(g_hash_table_lookup(Lparenthash, "periphdata"));
+    Ldata = GTK_TREE_VIEW(sc_grave_get_widget(Lparenthash, "periphdata"));
     remplirelistegraveur(Ldata);
 
     /* boite de dialoge operation terminee */
@@ -1466,14 +1454,14 @@
     gtk_widget_destroy(Lstatusbox);
   }
 
-  g_free(Lxmlencours);
+  sc_grave_destroy(Lg);
 }
 
 void abort_encours(GtkWidget *Abtn, gpointer Adata)
 {
-  GHashTable *Lhash = (GHashTable *)Adata;
-  gint *Lcont = (gint *)g_hash_table_lookup(Lhash, "cont");
-  gboolean *Labort = (gboolean *)g_hash_table_lookup(Lhash, "gabort");
+  Tgrave *Lg = (Tgrave *)Adata;
+  gint *Lcont = (gint *)sc_grave_get_data(Lg, "cont");
+  gboolean *Labort = (gboolean *)sc_grave_get_data(Lg, "gabort");
 
   (*Labort) = TRUE;
   (*Lcont) = 1; /* on passe Lcont de 2 a 1 */
@@ -1486,7 +1474,7 @@
 /* on quitte l'application .. */
 void menu_quit(GtkWidget *Aobj1, gpointer Adata)
 {
-  GHashTable *Lhash = (GHashTable *)Adata;
+  Tgrave *Lg = (Tgrave *)Adata;
   gint Loperation = UPDATE_SIZE + WRITE_CONFIG;
 
   if (conf_get_boolean("saveconfig")==TRUE) {
@@ -1494,7 +1482,7 @@
   }
 
   /* on sauve la position et taille de la fenetre */
-  manage_config(Lhash, Loperation, NULL);
+  manage_config(Lg, Loperation, NULL);
 
   gtk_main_quit();
 }
@@ -1507,20 +1495,20 @@
 #if 0
 void on_addmediaformat(GtkWidget *Abtn, gpointer Adata)
 {
-  GHashTable *Lmediahash = addmediaformat(Adata);
-  GtkDialog *Ldialog = GTK_DIALOG(g_hash_table_lookup(Lmediahash, 
"dialog_media"));
+  Tgrave *Lmediahash = addmediaformat(Adata);
+  GtkDialog *Ldialog = GTK_DIALOG(sc_grave_get_widget(Lmediahash, 
"dialog_media"));
 
   gtk_dialog_run(Ldialog);
   gtk_widget_destroy(GTK_WIDGET(Ldialog));
 
-  g_hash_table_destroy(Lmediahash);
+  sc_grave_destroy(Lmediahash);
 }
 #endif
 
 /* mise a jour type cdr destination, on mets donc a jour la barre de 
remplissage */
 void change_remplissage(GtkWidget *Acombo, gpointer Adata)
 {
-  GHashTable *Lhash = (GHashTable *)Adata;
+  Tgrave *Lg = (Tgrave *)Adata;
   const gchar *Lname = glade_get_widget_name(Acombo);
   gchar *Lvalue = get_combo_value(Acombo);
   GtkProgressBar *Lcontenance;
@@ -1528,20 +1516,20 @@
   guint64 *Llen;
 
   if (!strcmp(Lname, "listeremplidata")) {  /* cd data */
-    Lcontenance = GTK_PROGRESS_BAR(g_hash_table_lookup(Lhash, "datasizebar"));
-    Lmaxlen = (guint64 *)g_hash_table_lookup(Lhash, "datamaxsize");
-    Llen = (guint64 *)g_hash_table_lookup(Lhash, "datasize");
+    Lcontenance = GTK_PROGRESS_BAR(sc_grave_get_widget(Lg, "datasizebar"));
+    Lmaxlen = (guint64 *)sc_grave_get_data(Lg, "datamaxsize");
+    Llen = (guint64 *)sc_grave_get_data(Lg, "datasize");
     (*Lmaxlen) = (unsigned long long)strtoul(Lvalue, NULL, 10) * 1024 * 1024;
   } else if (!strcmp(Lname, "listeremplidvddata")) {  /* dvd data */
-    Lcontenance = GTK_PROGRESS_BAR(g_hash_table_lookup(Lhash, 
"dvddatasizebar"));
-    Lmaxlen = (guint64 *)g_hash_table_lookup(Lhash, "dvddatamaxsize");
-    Llen = (guint64 *)g_hash_table_lookup(Lhash, "dvddatasize");
+    Lcontenance = GTK_PROGRESS_BAR(sc_grave_get_widget(Lg, "dvddatasizebar"));
+    Lmaxlen = (guint64 *)sc_grave_get_data(Lg, "dvddatamaxsize");
+    Llen = (guint64 *)sc_grave_get_data(Lg, "dvddatasize");
     (*Lmaxlen) = (unsigned long long)strtoul(Lvalue, NULL, 10) * 1024 * 1024;
     
   } else {  /* cd audio */
-    Lcontenance = GTK_PROGRESS_BAR(g_hash_table_lookup(Lhash, "audiolenbar"));
-    Lmaxlen = (guint64 *)g_hash_table_lookup(Lhash, "audiomaxlen");
-    Llen = (guint64 *)g_hash_table_lookup(Lhash, "audiolen");
+    Lcontenance = GTK_PROGRESS_BAR(sc_grave_get_widget(Lg, "audiolenbar"));
+    Lmaxlen = (guint64 *)sc_grave_get_data(Lg, "audiomaxlen");
+    Llen = (guint64 *)sc_grave_get_data(Lg, "audiolen");
     (*Lmaxlen) = (unsigned long long)strtoul(Lvalue, NULL, 10);
   }
 
@@ -1551,11 +1539,11 @@
 /* gestion drag and drop */
 void audio_dnd_data_received (GtkWidget *Aliste, GdkDragContext *Acontext, 
gint Ax, gint Ay, GtkSelectionData *Aseldata, guint Ainfo, guint Atime, 
gpointer Adata)
 {
-  GHashTable *Lhash = (GHashTable *)Adata;
+  Tgrave *Lg = (Tgrave *)Adata;
   GtkTreeModel *Ltreemodel = gtk_tree_view_get_model(GTK_TREE_VIEW(Aliste));
-  guint64 *Laudiolen = (guint64 *)g_hash_table_lookup(Lhash, "audiolen");
-  guint64 *Laudiomaxlen = (guint64 *)g_hash_table_lookup(Lhash, "audiomaxlen");
-  GtkProgressBar *Lcontenance = GTK_PROGRESS_BAR(g_hash_table_lookup(Lhash, 
"audiolenbar"));
+  guint64 *Laudiolen = (guint64 *)sc_grave_get_data(Lg, "audiolen");
+  guint64 *Laudiomaxlen = (guint64 *)sc_grave_get_data(Lg, "audiomaxlen");
+  GtkProgressBar *Lcontenance = GTK_PROGRESS_BAR(sc_grave_get_widget(Lg, 
"audiolenbar"));
 
   if ((Aseldata->length >= 0) && (Aseldata->format == 8))
   {
@@ -1579,7 +1567,7 @@
              sc_str_has_casesuffix(Lunfic, WAV)))) continue;
 
       if (!(Lfilename = g_filename_from_uri(Lunfic, NULL, NULL))) continue;
-      _add_a_piste(Lfilename, GTK_LIST_STORE(Ltreemodel), Lhash);
+      _add_a_piste(Lfilename, GTK_LIST_STORE(Ltreemodel), Lg);
       g_free(Lfilename);
     }
 
@@ -1613,13 +1601,13 @@
 
 void data_dnd_data_received (GtkWidget *Aliste, GdkDragContext *Acontext, gint 
Ax, gint Ay, GtkSelectionData *Aseldata, guint Ainfo, guint Atime, gpointer 
Adata)
 {
-  GHashTable *Lhash = (GHashTable *)Adata;
+  Tgrave *Lg = (Tgrave *)Adata;
   guint64 *Ldatasize;
   guint64 *Ldatamaxsize;
   GtkProgressBar *Lcontenance;
   GtkTreeModel *Ltreemodel = gtk_tree_view_get_model(GTK_TREE_VIEW(Aliste));
 
-  _REMPLISSAGE_VALUE(Lhash, Aliste, Ldatasize, Ldatamaxsize, Lcontenance);
+  _REMPLISSAGE_VALUE(Lg, Aliste, Ldatasize, Ldatamaxsize, Lcontenance);
 
   if ((Aseldata->length >= 0) && (Aseldata->format == 8))
   {
@@ -1646,7 +1634,7 @@
       if (g_ascii_strncasecmp(Lunfic, "file://", 7)) continue;
       if (!(Lfilename = g_filename_from_uri(Lunfic, NULL, NULL))) continue;
 
-      _add_a_file(Lfilename, GTK_TREE_STORE(Ltreemodel), &Liter, Lhash, 
Ldatasize);
+      _add_a_file(Lfilename, GTK_TREE_STORE(Ltreemodel), &Liter, Lg, 
Ldatasize);
       
       g_free(Lfilename);
     }
@@ -1716,8 +1704,8 @@
     
 void update_media_unit(GtkWidget *Acombo, gpointer Adata)
 {
-  GHashTable *Lhash = (GHashTable *)Adata;
-  GtkWidget *Ldataentry = GTK_WIDGET(g_hash_table_lookup(Lhash, "mediadata"));
+  Tgrave *Lg = (Tgrave *)Adata;
+  GtkWidget *Ldataentry = GTK_WIDGET(g_hash_table_lookup(Lg, "mediadata"));
 
   gtk_widget_grab_focus(Ldataentry);
 }
@@ -1725,12 +1713,12 @@
 /* mise a jour des champs dans la fenetre "configuration des medias" */
 gboolean update_media_fields(GtkWidget *Awidget, gpointer Adata)
 {
-  GHashTable *Lhash = (GHashTable *)Adata;
+  Tgrave *Lg = (Tgrave *)Adata;
   const gchar *Lname = glade_get_widget_name(GTK_WIDGET(Awidget));
   gulong Lnewsize;
   gulong Lasksize;
-  gulong *Lsize = (gulong *)g_hash_table_lookup(Lhash, "fullsize");
-  GtkComboBox *Lmediadataunit = GTK_COMBO_BOX(g_hash_table_lookup(Lhash, 
"mediadataunit"));
+  gulong *Lsize = (gulong *)g_hash_table_lookup(Lg, "fullsize");
+  GtkComboBox *Lmediadataunit = GTK_COMBO_BOX(g_hash_table_lookup(Lg, 
"mediadataunit"));
   gchar *Lcharunit = get_combo_value(GTK_WIDGET(Lmediadataunit));
 
  // printf("l'unite est => %s\n", Lcharunit);
@@ -1762,8 +1750,8 @@
 /* debuter un nouveau projet */
 void menu_start_new(GtkMenuItem *Amenuitem, gpointer Adata)
 {
-  GHashTable *Lhash = (GHashTable *)Adata;
-  GtkTreeView *Ltopmenu = GTK_TREE_VIEW(g_hash_table_lookup(Lhash, "topmenu"));
+  Tgrave *Lg = (Tgrave *)Adata;
+  GtkTreeView *Ltopmenu = GTK_TREE_VIEW(sc_grave_get_widget(Lg, "topmenu"));
   gchar *Lname;
   GtkTreeIter Liter;
   GtkTreeSelection *Lselection = gtk_tree_view_get_selection(Ltopmenu);
@@ -1774,11 +1762,11 @@
 
   if (!strcmp(Lname, "bodycdaudio")) {
     /* on est sur l'onglet cd audio, on vide la liste */
-    GtkTreeView *Lliste = GTK_TREE_VIEW(g_hash_table_lookup(Lhash, 
"LISTEAUDIO"));
+    GtkTreeView *Lliste = GTK_TREE_VIEW(sc_grave_get_widget(Lg, "LISTEAUDIO"));
     GtkTreeModel *Ltreemodel = gtk_tree_view_get_model(Lliste);
-    GtkProgressBar *Lcontenance = GTK_PROGRESS_BAR(g_hash_table_lookup(Lhash, 
"audiolenbar"));
-    guint32 *Laudiolen = (guint32 *)g_hash_table_lookup(Lhash, "audiolen");
-    guint32 *Laudiomaxlen = (guint32 *)g_hash_table_lookup(Lhash, 
"audiomaxlen");
+    GtkProgressBar *Lcontenance = GTK_PROGRESS_BAR(sc_grave_get_widget(Lg, 
"audiolenbar"));
+    guint32 *Laudiolen = (guint32 *)sc_grave_get_data(Lg, "audiolen");
+    guint32 *Laudiomaxlen = (guint32 *)sc_grave_get_data(Lg, "audiomaxlen");
     (*Laudiolen) = 0;
 
     gtk_list_store_clear(GTK_LIST_STORE(Ltreemodel));
@@ -1787,14 +1775,14 @@
 
   } else if (!strcmp(Lname, "bodycddata") || !strcmp(Lname, "bodydvddata")) {
     /* on est sur l'onglet cd data, on vide la liste */
-    GtkTreeView *Lliste = GTK_TREE_VIEW(g_hash_table_lookup(Lhash, 
"_current_list"));
+    GtkTreeView *Lliste = GTK_TREE_VIEW(sc_grave_get_data(Lg, 
"_current_list"));
     GtkTreeModel *Ltreemodel = gtk_tree_view_get_model(GTK_TREE_VIEW(Lliste));
-    GtkProgressBar *Lcontenance; // = 
GTK_PROGRESS_BAR(g_hash_table_lookup(Lhash, "datasizebar"));
-    guint64 *Ldatasize; // = (guint32 *)g_hash_table_lookup(Lhash, "datasize");
-    guint64 *Ldatamaxsize; // = (guint32 *)g_hash_table_lookup(Lhash, 
"datamaxsize");
+    GtkProgressBar *Lcontenance;
+    guint64 *Ldatasize;
+    guint64 *Ldatamaxsize;
     GtkTreeIter Liter;
   
-    _REMPLISSAGE_VALUE(Lhash, Lliste, Ldatasize, Ldatamaxsize, Lcontenance);
+    _REMPLISSAGE_VALUE(Lg, Lliste, Ldatasize, Ldatamaxsize, Lcontenance);
     (*Ldatasize) = 0;
 
     gtk_tree_store_clear(GTK_TREE_STORE(Ltreemodel));
@@ -1813,11 +1801,11 @@
 #if 0
 void gtk_def_imageboot(GtkWidget *Abtn, gpointer Adata)
 {
-  GHashTable *Lhash = (GHashTable *)Adata;
-  GtkTreeView *Lliste = GTK_TREE_VIEW(g_hash_table_lookup(Lhash, "LISTEDATA"));
+  Tgrave *Lg = (Tgrave *)Adata;
+  GtkTreeView *Lliste = GTK_TREE_VIEW(g_hash_table_lookup(Lg, "LISTEDATA"));
   GtkTreeModel *Ltreemodel;
   GtkTreeSelection *Lselection = 
gtk_tree_view_get_selection(GTK_TREE_VIEW(Lliste));
-  GtkTreeIter *Liter = g_hash_table_lookup(Lhash, "file_imageboot");
+  GtkTreeIter *Liter = g_hash_table_lookup(Lg, "file_imageboot");
   GtkTreeIter Lnewiter;
 
   if (!gtk_tree_selection_get_selected(Lselection, &Ltreemodel, &Lnewiter)) 
return;
@@ -1829,7 +1817,7 @@
 
   gtk_tree_store_set(GTK_TREE_STORE(Ltreemodel), &Lnewiter, 0, TYPE_IMAGEBOOT, 
1, GFileImage, -1);
 
-  g_hash_table_replace(Lhash, "file_imageboot", gtk_tree_iter_copy(&Lnewiter));
+  g_hash_table_replace(Lg, "file_imageboot", gtk_tree_iter_copy(&Lnewiter));
 }
 #endif
 




reply via email to

[Prev in Thread] Current Thread [Next in Thread]