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/interface.c


From: sylvain cresto
Subject: [Graveman-cvs] Changes to graveman/current/src/interface.c
Date: Wed, 16 Feb 2005 20:22:57 -0500

Index: graveman/current/src/interface.c
diff -u graveman/current/src/interface.c:1.24 
graveman/current/src/interface.c:1.25
--- graveman/current/src/interface.c:1.24       Tue Feb 15 22:44:44 2005
+++ graveman/current/src/interface.c    Thu Feb 17 01:22:53 2005
@@ -305,9 +305,9 @@
 }
 #endif
 /* menu popup sur les lecteurs/graveurs */
-GtkMenu *create_gtkpopupmenudevices(GtkWidget *Aliste, GHashTable *Ahash)
+GtkMenu *create_gtkpopupmenudevices(GtkWidget *Aliste, Tgrave *Ag)
 {
-  GtkMenu *Lmenu = GTK_MENU(g_hash_table_lookup(Ahash, "popupdevices"));
+  GtkMenu *Lmenu = GTK_MENU(sc_grave_get_widget(Ag, "popupdevices"));
   GtkWidget *Litem;
   GtkTreePath *Lpath = NULL;
 
@@ -315,9 +315,9 @@
    * il n'y a pas forcement de peripheriques de detecté */
   gtk_tree_view_get_cursor(GTK_TREE_VIEW(Aliste), &Lpath, NULL);
 
-  Litem = GTK_WIDGET(g_hash_table_lookup(Ahash, "popupdevices_edit"));
+  Litem = GTK_WIDGET(sc_grave_get_widget(Ag, "popupdevices_edit"));
   gtk_widget_set_sensitive(Litem, Lpath ? TRUE : FALSE);
-  Litem = GTK_WIDGET(g_hash_table_lookup(Ahash, "popupdevices_remove"));
+  Litem = GTK_WIDGET(sc_grave_get_widget(Ag, "popupdevices_remove"));
   gtk_widget_set_sensitive(Litem, Lpath ? TRUE : FALSE);
 
   if (Lpath) gtk_tree_path_free(Lpath);
@@ -326,17 +326,17 @@
 }
 
 /* menu popup sur le formatage d'un dvd */
-GtkMenu *create_gtkpopupmenuformatdvd(GHashTable *Ahash)
+GtkMenu *create_gtkpopupmenuformatdvd(Tgrave *Ag)
 {
-  GtkMenu *Lmenu = GTK_MENU(g_hash_table_lookup(Ahash, "popupformatdvd"));
+  GtkMenu *Lmenu = GTK_MENU(sc_grave_get_widget(Ag, "popupformatdvd"));
 
   return Lmenu;
 }
 
 /* menu popup sur les pistes audio */
-GtkMenu *create_gtkpopupmenuaudio(GtkWidget *Aliste, GHashTable *Ahash)
+GtkMenu *create_gtkpopupmenuaudio(GtkWidget *Aliste, Tgrave *Ag)
 {
-  GtkMenu *Lmenu = GTK_MENU(g_hash_table_lookup(Ahash, "popupaudio"));
+  GtkMenu *Lmenu = GTK_MENU(sc_grave_get_widget(Ag, "popupaudio"));
   GtkWidget *Litem;
   GtkTreePath *Lpath = NULL;
 
@@ -344,7 +344,7 @@
    * on est en SELECTION_MULTIPLE */
   gtk_tree_view_get_cursor(GTK_TREE_VIEW(Aliste), &Lpath, NULL);
 
-  Litem = GTK_WIDGET(g_hash_table_lookup(Ahash, "popupaudio_removetrack"));
+  Litem = GTK_WIDGET(sc_grave_get_widget(Ag, "popupaudio_removetrack"));
   if (Lpath) {
     gtk_widget_set_sensitive(Litem, TRUE);
   } else {
@@ -357,15 +357,15 @@
 }
 
 /* creation popup "affichage" */
-GtkMenu *create_gtkpopupmenudisplay(GtkWidget *Aliste, GHashTable *Ahash)
+GtkMenu *create_gtkpopupmenudisplay(GtkWidget *Aliste, Tgrave *Ag)
 {
-  GtkMenu *Lmenu = GTK_MENU(g_hash_table_lookup(Ahash, "popupdisplay"));
+  GtkMenu *Lmenu = GTK_MENU(sc_grave_get_widget(Ag, "popupdisplay"));
   gboolean Ldispsb = conf_get_boolean("statusbar");
   GtkWidget *Litem, *Litem2;
   
 
-  Litem = g_hash_table_lookup(Ahash, "popupdisp_showstatusbar");
-  Litem2 = g_hash_table_lookup(Ahash, "popupdisp_hidestatusbar");
+  Litem = sc_grave_get_widget(Ag, "popupdisp_showstatusbar");
+  Litem2 = sc_grave_get_widget(Ag, "popupdisp_hidestatusbar");
   if (Ldispsb) {
     gtk_widget_hide(Litem);
     gtk_widget_show(Litem2);
@@ -374,16 +374,16 @@
     gtk_widget_hide(Litem2);
   }
 
-  Litem = sc_hash_table_lookupv(Ahash, "popupdisp_iconsize_%s", 
conf_get_string("iconsize"));
+  Litem = sc_grave_get_widgetv(Ag, "popupdisp_iconsize_%s", 
conf_get_string("iconsize"));
   if (GTK_IS_WIDGET(Litem)) 
gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(Litem), TRUE);
   
   return Lmenu;
 }
 
 /* creation popup "cd/dvd data" */
-GtkMenu *create_gtkpopupmenudata(GtkWidget *Aliste, GHashTable *Ahash)
+GtkMenu *create_gtkpopupmenudata(GtkWidget *Aliste, Tgrave *Ag)
 {
-  GtkMenu *Lmenu = GTK_MENU(g_hash_table_lookup(Ahash, "popupdata"));
+  GtkMenu *Lmenu = GTK_MENU(sc_grave_get_widget(Ag, "popupdata"));
   GtkTreeModel *Lmodel = gtk_tree_view_get_model(GTK_TREE_VIEW(Aliste));
   GtkWidget *Litem, *Litem2, *Lsep;
   GtkTreeSelection *Lselection = 
gtk_tree_view_get_selection(GTK_TREE_VIEW(Aliste));
@@ -423,8 +423,8 @@
   gtk_tree_model_get(Lmodel, &Liter, 0, &type, -1);
 
   /* RENOMMER LE CD */
-  Litem = g_hash_table_lookup(Ahash, "popupdata_renamecd");
-  Litem2 = g_hash_table_lookup(Ahash, "popupdata_renamedvd");
+  Litem = sc_grave_get_widget(Ag, "popupdata_renamecd");
+  Litem2 = sc_grave_get_widget(Ag, "popupdata_renamedvd");
   if (!strcmp(Llistename, "LISTEDVDDATA")) {
     if (type == TYPE_CD && Lonlyone) {
       gtk_widget_show(Litem2);
@@ -442,7 +442,7 @@
   }
 
   /* EXPAND */
-  Litem = g_hash_table_lookup(Ahash, "popupdata_expand");
+  Litem = sc_grave_get_widget(Ag, "popupdata_expand");
   if (type != TYPE_FILE && Lonlyone) {
     gtk_widget_show (Litem);
   } else {
@@ -450,13 +450,13 @@
   }
 
   /* RENOMMER L'ELEMENT SELECTIONNE */
-  Litem = g_hash_table_lookup(Ahash, "popupdata_renamedirectory");
+  Litem = sc_grave_get_widget(Ag, "popupdata_renamedirectory");
   if (type == TYPE_DIR && Lonlyone) {
     gtk_widget_show (Litem);
   } else {
     gtk_widget_hide (Litem);
   }
-  Litem = g_hash_table_lookup(Ahash, "popupdata_renamefile");
+  Litem = sc_grave_get_widget(Ag, "popupdata_renamefile");
   if (type == TYPE_FILE && Lonlyone) {
     gtk_widget_show (Litem);
   } else {
@@ -464,7 +464,7 @@
   }
 
   /* CREER UN REPERTOIRE */
-  Litem = g_hash_table_lookup(Ahash, "popupdata_createdirectory");
+  Litem = sc_grave_get_widget(Ag, "popupdata_createdirectory");
   if (type != TYPE_FILE && Lonlyone) {
     gtk_widget_show (Litem);
   } else {
@@ -473,9 +473,9 @@
 
   /* AJOUTER DES FICHIERS */
   /* AJOUTER DES REPERTOIRES */
-  Lsep = g_hash_table_lookup(Ahash, "popupdata_sep1");
-  Litem = g_hash_table_lookup(Ahash, "popupdata_addfile");
-  Litem2 = g_hash_table_lookup(Ahash, "popupdata_adddirectory");
+  Lsep = sc_grave_get_widget(Ag, "popupdata_sep1");
+  Litem = sc_grave_get_widget(Ag, "popupdata_addfile");
+  Litem2 = sc_grave_get_widget(Ag, "popupdata_adddirectory");
   if (type != TYPE_FILE && Lonlyone) {
     gtk_widget_show (Lsep);
     gtk_widget_show (Litem);
@@ -487,8 +487,8 @@
   }
 
   /* SUPPRIMER DE LA LISTE */
-  Lsep = g_hash_table_lookup(Ahash, "popupdata_sep2");
-  Litem = g_hash_table_lookup(Ahash, "popupdata_remove");
+  Lsep = sc_grave_get_widget(Ag, "popupdata_sep2");
+  Litem = sc_grave_get_widget(Ag, "popupdata_remove");
   if (type != TYPE_CD) {
     if (Lonlyone) {
       gtk_widget_show (Lsep);
@@ -514,8 +514,8 @@
   }
 
   /* IMAGE DE BOOT */
-/*  Lsep = g_hash_table_lookup(Ahash, "popupdata_sep3");
-  Litem = g_hash_table_lookup(Ahash, "popupdata_imageboot");
+/*  Lsep = sc_grave_get_widget(Ag, "popupdata_sep3");
+  Litem = sc_grave_get_widget(Ag, "popupdata_imageboot");
   if (type == TYPE_FILE) {
     gtk_widget_show (Lsep);
     gtk_widget_show (Litem);
@@ -528,304 +528,219 @@
   return Lmenu;
 }
 
-void prepare_popups(GladeXML *Axml, GHashTable *Ahash)
+void prepare_popups(Tgrave *Ag)
 {
   /* popup cd audio */
-  glade_to_hash(Axml, Ahash, "popupaudio");
-  g_signal_connect(G_OBJECT(glade_to_hash(Axml, Ahash, "popupaudio_addtrack")),
-      "activate", G_CALLBACK(gtk_audio_addtrack), Ahash);
-  g_signal_connect(G_OBJECT(glade_to_hash(Axml, Ahash, 
"popupaudio_removetrack")),
-      "activate", G_CALLBACK(gtk_audio_removetrack), Ahash);
+  g_signal_connect(G_OBJECT(sc_grave_get_widget(Ag, "popupaudio_addtrack")),
+      "activate", G_CALLBACK(gtk_audio_addtrack), Ag);
+  g_signal_connect(G_OBJECT(sc_grave_get_widget(Ag, "popupaudio_removetrack")),
+      "activate", G_CALLBACK(gtk_audio_removetrack), Ag);
 
   /* popup cd data */
-  glade_to_hash(Axml, Ahash, "popupdata");
-  g_signal_connect(G_OBJECT(glade_to_hash(Axml, Ahash, "popupdata_renamecd")),
-      "activate", G_CALLBACK(gtk_data_renommerelement), Ahash);
-  g_signal_connect(G_OBJECT(glade_to_hash(Axml, Ahash, "popupdata_renamedvd")),
-      "activate", G_CALLBACK(gtk_data_renommerelement), Ahash);
-
-  g_signal_connect(G_OBJECT(glade_to_hash(Axml, Ahash, "popupdata_expand")),
-      "activate", G_CALLBACK(gtk_data_expandelement), Ahash);
-  g_signal_connect(G_OBJECT(glade_to_hash(Axml, Ahash, 
"popupdata_renamefile")),
-      "activate", G_CALLBACK(gtk_data_renommerelement), Ahash);
-  g_signal_connect(G_OBJECT(glade_to_hash(Axml, Ahash, 
"popupdata_renamedirectory")),
-      "activate", G_CALLBACK(gtk_data_renommerelement), Ahash);
-  g_signal_connect(G_OBJECT(glade_to_hash(Axml, Ahash, 
"popupdata_createdirectory")),
-      "activate", G_CALLBACK(gtk_data_creerrepertoire), Ahash);
-  glade_to_hash(Axml, Ahash, "popupdata_sep1");
-  g_signal_connect(G_OBJECT(glade_to_hash(Axml, Ahash, "popupdata_addfile")),
-      "activate", G_CALLBACK(gtk_data_addfile), Ahash);
-  g_signal_connect(G_OBJECT(glade_to_hash(Axml, Ahash, 
"popupdata_adddirectory")),
-      "activate", G_CALLBACK(gtk_data_adddirectory), Ahash);
-
-  glade_to_hash(Axml, Ahash, "popupdata_sep2");
-  g_signal_connect(G_OBJECT(glade_to_hash(Axml, Ahash, "popupdata_remove")),
-      "activate", G_CALLBACK(gtk_data_removefiles), Ahash);
+  g_signal_connect(G_OBJECT(sc_grave_get_widget(Ag, "popupdata_renamecd")),
+      "activate", G_CALLBACK(gtk_data_renommerelement), Ag);
+  g_signal_connect(G_OBJECT(sc_grave_get_widget(Ag, "popupdata_renamedvd")),
+      "activate", G_CALLBACK(gtk_data_renommerelement), Ag);
+
+  g_signal_connect(G_OBJECT(sc_grave_get_widget(Ag, "popupdata_expand")),
+      "activate", G_CALLBACK(gtk_data_expandelement), Ag);
+  g_signal_connect(G_OBJECT(sc_grave_get_widget(Ag, "popupdata_renamefile")),
+      "activate", G_CALLBACK(gtk_data_renommerelement), Ag);
+  g_signal_connect(G_OBJECT(sc_grave_get_widget(Ag, 
"popupdata_renamedirectory")),
+      "activate", G_CALLBACK(gtk_data_renommerelement), Ag);
+  g_signal_connect(G_OBJECT(sc_grave_get_widget(Ag, 
"popupdata_createdirectory")),
+      "activate", G_CALLBACK(gtk_data_creerrepertoire), Ag);
+  sc_grave_get_widget(Ag, "popupdata_sep1");
+  g_signal_connect(G_OBJECT(sc_grave_get_widget(Ag, "popupdata_addfile")),
+      "activate", G_CALLBACK(gtk_data_addfile), Ag);
+  g_signal_connect(G_OBJECT(sc_grave_get_widget(Ag, "popupdata_adddirectory")),
+      "activate", G_CALLBACK(gtk_data_adddirectory), Ag);
+
+  sc_grave_get_widget(Ag, "popupdata_sep2");
+  g_signal_connect(G_OBJECT(sc_grave_get_widget(Ag, "popupdata_remove")),
+      "activate", G_CALLBACK(gtk_data_removefiles), Ag);
 
 #if 0
-  glade_to_hash(Axml, Ahash, "popupdata_sep3");
-  g_signal_connect(G_OBJECT(glade_to_hash(Axml, Ahash, "popupdata_imageboot")),
+  sc_grave_get_widget(Ag, "popupdata_sep3");
+  g_signal_connect(G_OBJECT(sc_grave_get_widget(Ag, "popupdata_imageboot")),
       "activate", G_CALLBACK(gtk_def_imageboot), Ahash);
 #endif
 
   /* popup affichage */
-  glade_to_hash(Axml, Ahash, "popupdisplay");
-  g_signal_connect(G_OBJECT(glade_to_hash(Axml, Ahash, 
"popupdisp_iconsize_48")),
-      "activate", G_CALLBACK(gtk_display_updatesize), Ahash);
-  g_signal_connect(G_OBJECT(glade_to_hash(Axml, Ahash, 
"popupdisp_iconsize_32")),
-      "activate", G_CALLBACK(gtk_display_updatesize), Ahash);
-  g_signal_connect(G_OBJECT(glade_to_hash(Axml, Ahash, 
"popupdisp_iconsize_24")),
-      "activate", G_CALLBACK(gtk_display_updatesize), Ahash);
-  g_signal_connect(G_OBJECT(glade_to_hash(Axml, Ahash, 
"popupdisp_iconsize_16")),
-      "activate", G_CALLBACK(gtk_display_updatesize), Ahash);
-
-  g_signal_connect(G_OBJECT(glade_to_hash(Axml, Ahash, 
"popupdisp_showstatusbar")),
-      "activate", G_CALLBACK(gtk_display_switchstatusbar), Ahash);
-  g_signal_connect(G_OBJECT(glade_to_hash(Axml, Ahash, 
"popupdisp_hidestatusbar")),
-      "activate", G_CALLBACK(gtk_display_switchstatusbar), Ahash);
+  g_signal_connect(G_OBJECT(sc_grave_get_widget(Ag, "popupdisp_iconsize_48")),
+      "activate", G_CALLBACK(gtk_display_updatesize), Ag);
+  g_signal_connect(G_OBJECT(sc_grave_get_widget(Ag, "popupdisp_iconsize_32")),
+      "activate", G_CALLBACK(gtk_display_updatesize), Ag);
+  g_signal_connect(G_OBJECT(sc_grave_get_widget(Ag, "popupdisp_iconsize_24")),
+      "activate", G_CALLBACK(gtk_display_updatesize), Ag);
+  g_signal_connect(G_OBJECT(sc_grave_get_widget(Ag, "popupdisp_iconsize_16")),
+      "activate", G_CALLBACK(gtk_display_updatesize), Ag);
+
+  g_signal_connect(G_OBJECT(sc_grave_get_widget(Ag, 
"popupdisp_showstatusbar")),
+      "activate", G_CALLBACK(gtk_display_switchstatusbar), Ag);
+  g_signal_connect(G_OBJECT(sc_grave_get_widget(Ag, 
"popupdisp_hidestatusbar")),
+      "activate", G_CALLBACK(gtk_display_switchstatusbar), Ag);
 
   /* popup formater un dvd */
-  glade_to_hash(Axml, Ahash, "popupformatdvd");
-  g_signal_connect(G_OBJECT(glade_to_hash(Axml, Ahash, "popupform_format")),
-      "activate", G_CALLBACK(gtk_confirm_dvdoperation), Ahash);
-  g_signal_connect(G_OBJECT(glade_to_hash(Axml, Ahash, "popupform_blank")),
-      "activate", G_CALLBACK(gtk_confirm_dvdoperation), Ahash);
-  g_signal_connect(G_OBJECT(glade_to_hash(Axml, Ahash, "popupform_blankfull")),
-      "activate", G_CALLBACK(gtk_confirm_dvdoperation), Ahash);
-}
-
-GtkAlignment *new_seliso(gchar *Aname, GtkWidget *Aparent)
-{
-  GtkHBox *Lnewhbox = GTK_HBOX(gtk_hbox_new (FALSE, 3));
-  GtkAlignment *Lnewboxalignement = GTK_ALIGNMENT(gtk_alignment_new (1, 0.5, 
0, 0));
-  GtkHBox *Lbtnbox = GTK_HBOX(gtk_hbox_new (FALSE, 2));
-  GtkEntry *Lisoname = GTK_ENTRY(gtk_entry_new());
-  GtkButton *Lbutton = GTK_BUTTON(gtk_button_new());
-  GtkAlignment *Lalignement = GTK_ALIGNMENT(gtk_alignment_new (0.5, 0.5, 0, 
0));
-  GtkImage *Lbuttonimg;
-  GtkLabel *Lbuttonlbl;
-  gchar *Lentryname;
-
-  gtk_widget_show (GTK_WIDGET(Lnewhbox));
-  gtk_widget_show (GTK_WIDGET(Lbutton));
-  gtk_widget_show (GTK_WIDGET(Lisoname));
-  
-  gtk_widget_show (GTK_WIDGET(Lalignement));
-  gtk_container_add(GTK_CONTAINER(Lbutton), GTK_WIDGET(Lalignement));
-  
-  gtk_widget_show (GTK_WIDGET(Lbtnbox));
-  gtk_container_add (GTK_CONTAINER (Lalignement), GTK_WIDGET(Lbtnbox));
-  
-  Lbuttonimg = GTK_IMAGE(gtk_image_new_from_stock("gtk-jump-to", 
GTK_ICON_SIZE_BUTTON));
-  gtk_widget_show (GTK_WIDGET(Lbuttonimg));
-  gtk_box_pack_start (GTK_BOX(Lbtnbox), GTK_WIDGET(Lbuttonimg), FALSE, FALSE, 
0);
-  Lbuttonlbl = GTK_LABEL(gtk_label_new_with_mnemonic (_("O_pen")));
-
-  gtk_widget_show(GTK_WIDGET(Lbuttonlbl));
-  gtk_box_pack_start (GTK_BOX(Lbtnbox), GTK_WIDGET(Lbuttonlbl), FALSE, FALSE, 
0);
-
-  gtk_container_add (GTK_CONTAINER (Lnewhbox), GTK_WIDGET(Lisoname));
-  gtk_container_add (GTK_CONTAINER (Lnewhbox), GTK_WIDGET(Lbutton));
-
-  gtk_container_add(GTK_CONTAINER(Lnewboxalignement), GTK_WIDGET(Lnewhbox));
-
-  gtk_widget_set_name(GTK_WIDGET(Lbutton), Aname);
-  g_signal_connect(G_OBJECT(Lbutton), "clicked", G_CALLBACK(gtk_file_sel), 
Lisoname);
-
-  Lentryname = g_strdup_printf("%svalue", Aname);
-  GLADE_HOOKUP_OBJECT(Aparent, GTK_WIDGET(Lisoname), Lentryname);
-  g_free(Lentryname);
-
-  return Lnewboxalignement;
+  g_signal_connect(G_OBJECT(sc_grave_get_widget(Ag, "popupform_format")),
+      "activate", G_CALLBACK(gtk_confirm_dvdoperation), Ag);
+  g_signal_connect(G_OBJECT(sc_grave_get_widget(Ag, "popupform_blank")),
+      "activate", G_CALLBACK(gtk_confirm_dvdoperation), Ag);
+  g_signal_connect(G_OBJECT(sc_grave_get_widget(Ag, "popupform_blankfull")),
+      "activate", G_CALLBACK(gtk_confirm_dvdoperation), Ag);
 }
 
 /* fenetre principal */
 GtkWidget* manage_main_window (guint64 *Aaudiolen, guint64 *Aaudiomaxlen,
     guint64 *Adatasize, guint64 *Adatamaxsize, guint64 *Advddatasize, guint64 
*Advddatamaxsize)
 {
-  gchar *Ltemplate = PACKAGE_DATA_DIR "/" PACKAGE "/window_main.glade";
-  GladeXML *Lxml = glade_xml_new(Ltemplate, NULL,NULL);
+  Tgrave *Lg = sc_grave_load(window_main.glade);
   GtkWidget *Lwindow;
   GtkNotebook *Lbodycdaudio, *Lbodycddata, *Lbodycdcopy, *Lbodycdother, 
*Lbodydvddata;
   GtkHBox *Lmainbody;
   GtkComboBox *Lcombo;
   GtkButton *Lbtnerasecdrw, *Lbtnformatdvdrw;
   GtkTreeView *Ltreeaudio, *Ltreedata, *Ltopmenu, *Ltreedvddata;
-  GHashTable *Lhash = _hash();
 
-  if (!Lxml) {
-    g_error("Cannot load '%s': %s\n", Ltemplate, g_strerror(errno));
-  }
+  g_assert(Lg);
+
+  Lmainbody = GTK_HBOX(sc_grave_get_widget(Lg, "mainbody"));
+  Lwindow = GTK_WIDGET(sc_grave_get_widget(Lg, "topwindow"));
 
-  Lmainbody = GTK_HBOX(glade_xml_get_widget(Lxml, "mainbody"));
-  Lwindow = GTK_WIDGET(glade_to_hash(Lxml, Lhash, "topwindow"));
-  g_hash_table_insert(Lhash, "window", Lwindow);
-  g_hash_table_insert(Lhash, "audiolen", Aaudiolen);
-  g_hash_table_insert(Lhash, "audiomaxlen", Aaudiomaxlen);
-  g_hash_table_insert(Lhash, "datasize", Adatasize);
-  g_hash_table_insert(Lhash, "datamaxsize", Adatamaxsize);
-  g_hash_table_insert(Lhash, "dvddatasize", Advddatasize);
-  g_hash_table_insert(Lhash, "dvddatamaxsize", Advddatamaxsize);
 
   /* onglets page de droite */
-  Lbodycdaudio = GTK_NOTEBOOK(glade_to_hash(Lxml, Lhash, "bodycdaudio"));
+  Lbodycdaudio = GTK_NOTEBOOK(sc_grave_get_widget(Lg, "bodycdaudio"));
   gtk_widget_reparent(GTK_WIDGET(Lbodycdaudio), GTK_WIDGET(Lmainbody));
-  Lbodycddata = GTK_NOTEBOOK(glade_to_hash(Lxml, Lhash, "bodycddata"));
+  Lbodycddata = GTK_NOTEBOOK(sc_grave_get_widget(Lg, "bodycddata"));
   gtk_widget_reparent(GTK_WIDGET(Lbodycddata), GTK_WIDGET(Lmainbody));
-  Lbodydvddata = GTK_NOTEBOOK(glade_to_hash(Lxml, Lhash, "bodydvddata"));
+  Lbodydvddata = GTK_NOTEBOOK(sc_grave_get_widget(Lg, "bodydvddata"));
   gtk_widget_reparent(GTK_WIDGET(Lbodydvddata), GTK_WIDGET(Lmainbody));
-  Lbodycdcopy = GTK_NOTEBOOK(glade_to_hash(Lxml, Lhash, "bodycdcopy"));
+  Lbodycdcopy = GTK_NOTEBOOK(sc_grave_get_widget(Lg, "bodycdcopy"));
   gtk_widget_reparent(GTK_WIDGET(Lbodycdcopy), GTK_WIDGET(Lmainbody));
-  Lbodycdother = GTK_NOTEBOOK(glade_to_hash(Lxml, Lhash, "bodycdother"));
+  Lbodycdother = GTK_NOTEBOOK(sc_grave_get_widget(Lg, "bodycdother"));
   gtk_widget_reparent(GTK_WIDGET(Lbodycdother), GTK_WIDGET(Lmainbody));
-  g_hash_table_replace(Lhash, "_lstclicked", Lbodycdaudio);
+  sc_grave_replace_data(Lg, Lbodycdaudio, "_lstclicked");
 
   /* mise a jour des label lorsque l'on change d'onglet dans la partie "graver 
un cd de donnee" */
-  g_signal_connect(G_OBJECT(Lbodycddata), "switch-page", 
G_CALLBACK(switchpage), Lhash);
+  g_signal_connect(G_OBJECT(Lbodycddata), "switch-page", 
G_CALLBACK(switchpage), Lg);
   /* mise a jour des label lorsque l'on change d'onglet dans la partie "graver 
un dvd de donnee" */
-  g_signal_connect(G_OBJECT(Lbodydvddata), "switch-page", 
G_CALLBACK(switchpage), Lhash);
+  g_signal_connect(G_OBJECT(Lbodydvddata), "switch-page", 
G_CALLBACK(switchpage), Lg);
 
   /* bouttons barre de gauche */
-  Ltopmenu = GTK_TREE_VIEW(glade_to_hash(Lxml, Lhash, "topmenu"));
-  glade_to_hash(Lxml, Lhash, "statusbar");
+  Ltopmenu = sc_grave_get_widget(Lg, "topmenu");
 
-  glade_to_hash(Lxml, Lhash, "dataisolevel");
-  manage_interface(Lhash, MENU_NEW + COMBO_UPDATE);
-  update_status_bar_display(Lhash);
+  manage_interface(Lg, MENU_NEW + COMBO_UPDATE);
+  update_status_bar_display(Lg);
 
-  g_signal_connect(G_OBJECT(Ltopmenu), "button-press-event", 
G_CALLBACK(gtk_do_eventbuttonpress), Lhash);
-  g_signal_connect(G_OBJECT(Ltopmenu), "popup-menu", 
G_CALLBACK(key_popupmenu_display), Lhash);
+  g_signal_connect(G_OBJECT(Ltopmenu), "button-press-event", 
G_CALLBACK(gtk_do_eventbuttonpress), Lg);
+  g_signal_connect(G_OBJECT(Ltopmenu), "popup-menu", 
G_CALLBACK(key_popupmenu_display), Lg);
 
 
   /* signaux sur le menu */
-  g_signal_connect(G_OBJECT(glade_xml_get_widget(Lxml, "menustartnew")), 
"activate",
-      G_CALLBACK(menu_start_new), Lhash);
+  g_signal_connect(G_OBJECT(sc_grave_get_widget(Lg, "menustartnew")), 
"activate",
+      G_CALLBACK(menu_start_new), Lg);
 
-  g_signal_connect(G_OBJECT(glade_xml_get_widget(Lxml, "menucdaudio")), 
"activate",
-      G_CALLBACK(menu_active_panel), Lhash);
-  g_signal_connect(G_OBJECT(glade_xml_get_widget(Lxml, "menucddata")), 
"activate",
-      G_CALLBACK(menu_active_panel), Lhash);
-  g_signal_connect(G_OBJECT(glade_xml_get_widget(Lxml, "menudvddata")), 
"activate",
-      G_CALLBACK(menu_active_panel), Lhash);
-  g_signal_connect(G_OBJECT(glade_xml_get_widget(Lxml, "menucdcopy")), 
"activate",
-      G_CALLBACK(menu_active_panel), Lhash);
-  g_signal_connect(G_OBJECT(glade_xml_get_widget(Lxml, "menucdother")), 
"activate",
-      G_CALLBACK(menu_active_panel), Lhash);
-  g_signal_connect(G_OBJECT(glade_xml_get_widget(Lxml, "menuproperties")), 
"activate",
-      G_CALLBACK(menu_active_proprietes), Lhash);
-  g_signal_connect(G_OBJECT(glade_xml_get_widget(Lxml, "menuquit")), 
"activate",
-      G_CALLBACK(menu_quit), Lhash);
-  g_signal_connect(G_OBJECT(glade_xml_get_widget(Lxml, "menuabout")), 
"activate",
-      G_CALLBACK(on_about), Lhash);
-
-  
-  prepare_combobox_vitesse(GTK_COMBO_BOX(glade_to_hash(Lxml, Lhash, 
"dstaudiospeed")));
-  glade_to_hash(Lxml, Lhash, "srccopytable");
-  prepare_combobox_vitesse(GTK_COMBO_BOX(glade_to_hash(Lxml, Lhash, 
"dstcopyspeed")));
-  glade_to_hash(Lxml, Lhash, "dstcopytable");
-  prepare_combobox_vitesse(GTK_COMBO_BOX(glade_to_hash(Lxml, Lhash, 
"dstdataspeed")));
-  glade_to_hash(Lxml, Lhash, "dstdatatable");
-  prepare_combobox_vitesse(GTK_COMBO_BOX(glade_to_hash(Lxml, Lhash, 
"dstdvddataspeed")));
-  glade_to_hash(Lxml, Lhash, "dstdvddatatable");
-
-  /* onglet graver un cd audio */
-  glade_to_hash_list(Lxml, Lhash, "audiosimul", "audionotfix", "audiodao", 
"nbrcdaudio", NULL);
-
-  /* onglet graver un cd de donnee */
-  glade_to_hash_list(Lxml, Lhash, "datavoli", "datapubl", "dataprep", 
"databibl", "datacopy", "dataabst",
-      "datarockridge", "datajoliet", NULL);
-  glade_to_hash_list(Lxml, Lhash, "dataappi", "nbrcddata", "datamulti", 
"datanotfix", "datasimul", NULL);
-
-  /* onglet graver un dvd de donnee */
-  glade_to_hash_list(Lxml, Lhash, "dvddatavoli", "dvddatapubl", "dvddataprep", 
"dvddatabibl", "dvddatacopy",
-      "dvddataabst", NULL);
-  glade_to_hash_list(Lxml, Lhash, "dvddataappi", "nbrdvddata", 
"dvddatanotfix", "dvddatasimul", NULL);
- 
-  /* onglet copier un cd */
-  glade_to_hash_list(Lxml, Lhash, "nbrcdcopy", "copysimul", NULL);
+  g_signal_connect(G_OBJECT(sc_grave_get_widget(Lg, "menucdaudio")), 
"activate",
+      G_CALLBACK(menu_active_panel), Lg);
+  g_signal_connect(G_OBJECT(sc_grave_get_widget(Lg, "menucddata")), "activate",
+      G_CALLBACK(menu_active_panel), Lg);
+  g_signal_connect(G_OBJECT(sc_grave_get_widget(Lg, "menudvddata")), 
"activate",
+      G_CALLBACK(menu_active_panel), Lg);
+  g_signal_connect(G_OBJECT(sc_grave_get_widget(Lg, "menucdcopy")), "activate",
+      G_CALLBACK(menu_active_panel), Lg);
+  g_signal_connect(G_OBJECT(sc_grave_get_widget(Lg, "menucdother")), 
"activate",
+      G_CALLBACK(menu_active_panel), Lg);
+  g_signal_connect(G_OBJECT(sc_grave_get_widget(Lg, "menuproperties")), 
"activate",
+      G_CALLBACK(menu_active_proprietes), Lg);
+  g_signal_connect(G_OBJECT(sc_grave_get_widget(Lg, "menuquit")), "activate",
+      G_CALLBACK(menu_quit), Lg);
+  g_signal_connect(G_OBJECT(sc_grave_get_widget(Lg, "menuabout")), "activate",
+      G_CALLBACK(on_about), Lg);
+
+  
+  prepare_combobox_vitesse(GTK_COMBO_BOX(sc_grave_get_widget(Lg, 
"dstaudiospeed")));
+  prepare_combobox_vitesse(GTK_COMBO_BOX(sc_grave_get_widget(Lg, 
"dstcopyspeed")));
+  prepare_combobox_vitesse(GTK_COMBO_BOX(sc_grave_get_widget(Lg, 
"dstdataspeed")));
+  prepare_combobox_vitesse(GTK_COMBO_BOX(sc_grave_get_widget(Lg, 
"dstdvddataspeed")));
 
   /* tous les combo contenant la liste des lecteurs */
-  prepare_combobox_graveur(Lxml, Lhash, "dstaudio");
+  prepare_combobox_graveur(Lg, "dstaudio");
   
-  prepare_combobox_graveur(Lxml, Lhash, "dstdata");
-  prepare_disable_when_iso(Lhash, "dstdatacombo", "nbrcddata", "datamulti", 
"datanotfix", "datasimul", NULL);
+  prepare_combobox_graveur(Lg, "dstdata");
+  prepare_disable_when_iso(Lg, "dstdatacombo", "nbrcddata", "datamulti", 
"datanotfix", "datasimul", NULL);
+
+  prepare_combobox_graveur(Lg, "dstdvddata");
+  prepare_disable_when_iso(Lg, "dstdvddatacombo", "nbrdvddata", 
"dvddatanotfix", "dvddatasimul", NULL);
 
-  prepare_combobox_graveur(Lxml, Lhash, "dstdvddata");
-  prepare_disable_when_iso(Lhash, "dstdvddatacombo", "nbrdvddata", 
"dvddatanotfix", "dvddatasimul", NULL);
+  prepare_combobox_graveur(Lg, "srccopy");
+  prepare_combobox_graveur(Lg, "dstcopy");
 
-  prepare_combobox_graveur(Lxml, Lhash, "srccopy");
-  prepare_combobox_graveur(Lxml, Lhash, "dstcopy");
-  prepare_disable_when_iso(Lhash, "dstcopycombo", "nbrcdcopy", "copysimul", 
NULL);
-
-  Lbtnerasecdrw = GTK_BUTTON(glade_to_hash(Lxml, Lhash, "btnerasecdrwother1"));
-  Lbtnformatdvdrw = GTK_BUTTON(glade_to_hash(Lxml, Lhash, 
"btnformatdvdrwother1"));
-  prepare_combobox_graveur(Lxml, Lhash, "dstother");
-  prepare_disable_when(Lhash, "dstothercombo_notcdrw", "btnerasecdrwother1", 
NULL);
-  prepare_disable_when(Lhash, "dstothercombo_notdvdrw", 
"btnformatdvdrwother1", NULL);
+  prepare_combobox_graveur(Lg, "dstother");
+  prepare_disable_when(lg, "dstothercombo_notcdrw", "btnerasecdrwother1", 
NULL);
+  prepare_disable_when(lg, "dstothercombo_notdvdrw", "btnformatdvdrwother1", 
NULL);
   
   /* on rempli les autres combo */
-  remplirecombo(GTK_COMBO_BOX(glade_to_hash(Lxml, Lhash, "dataformat")), "", 
Gformatcd,
+  remplirecombo(GTK_COMBO_BOX(sc_grave_get_widget(Lg, "dataformat")), "", 
Gformatcd,
       TRUE, conf_get_string("dataformat"));
-  remplirecombo(GTK_COMBO_BOX(glade_to_hash(Lxml, Lhash, "datamodburn")), "", 
Gmodburn,
+  remplirecombo(GTK_COMBO_BOX(sc_grave_get_widget(Lg, "datamodburn")), "", 
Gmodburn,
       TRUE, conf_get_string("datamodburn"));
-  Lcombo = GTK_COMBO_BOX(glade_to_hash(Lxml, Lhash, "listeremplidata"));
+  Lcombo = GTK_COMBO_BOX(sc_grave_get_widget(Lg, "listeremplidata"));
   remplirecombo(Lcombo, "", Gtypecddata, TRUE, 
conf_get_string("listeremplidata")); 
-  g_signal_connect(G_OBJECT(Lcombo), "changed", 
G_CALLBACK(change_remplissage), Lhash);
+  g_signal_connect(G_OBJECT(Lcombo), "changed", 
G_CALLBACK(change_remplissage), Lg);
 
-  Lcombo = GTK_COMBO_BOX(glade_to_hash(Lxml, Lhash, "listeremplidvddata"));
+  Lcombo = GTK_COMBO_BOX(sc_grave_get_widget(Lg, "listeremplidvddata"));
   remplirecombo(Lcombo, "", Gtypedvddata, TRUE, 
conf_get_string("listeremplidvddata")); 
-  g_signal_connect(G_OBJECT(Lcombo), "changed", 
G_CALLBACK(change_remplissage), Lhash);
+  g_signal_connect(G_OBJECT(Lcombo), "changed", 
G_CALLBACK(change_remplissage), Lg);
 
-  Lcombo = GTK_COMBO_BOX(glade_to_hash(Lxml, Lhash, "listerempliaudio"));
+  Lcombo = GTK_COMBO_BOX(sc_grave_get_widget(Lg, "listerempliaudio"));
   remplirecombo(Lcombo, "", Gtypecdaudio, TRUE, 
conf_get_string("listerempliaudio"));
-  g_signal_connect(G_OBJECT(Lcombo), "changed", 
G_CALLBACK(change_remplissage), Lhash);
+  g_signal_connect(G_OBJECT(Lcombo), "changed", 
G_CALLBACK(change_remplissage), Lg);
  
   /* boutons "page suivante" */
-  g_signal_connect(G_OBJECT(glade_xml_get_widget(Lxml, "btnnextaudio1")), 
"clicked", G_CALLBACK(gonextpage), Lbodycdaudio);
-  g_signal_connect(G_OBJECT(glade_xml_get_widget(Lxml, "btnnextdata1")), 
"clicked", G_CALLBACK(gonextpage), Lbodycddata);
-  g_signal_connect(G_OBJECT(glade_xml_get_widget(Lxml, "btnnextdata2")), 
"clicked", G_CALLBACK(gonextpage), Lbodycddata);
-  g_signal_connect(G_OBJECT(glade_xml_get_widget(Lxml, "btnnextdvddata1")), 
"clicked", G_CALLBACK(gonextpage), Lbodydvddata);
-  g_signal_connect(G_OBJECT(glade_xml_get_widget(Lxml, "btnnextdvddata2")), 
"clicked", G_CALLBACK(gonextpage), Lbodydvddata);
+  g_signal_connect(G_OBJECT(sc_grave_get_widget(Lg, "btnnextaudio1")), 
"clicked", G_CALLBACK(gonextpage), Lbodycdaudio);
+  g_signal_connect(G_OBJECT(sc_grave_get_widget(Lg, "btnnextdata1")), 
"clicked", G_CALLBACK(gonextpage), Lbodycddata);
+  g_signal_connect(G_OBJECT(sc_grave_get_widget(Lg, "btnnextdata2")), 
"clicked", G_CALLBACK(gonextpage), Lbodycddata);
+  g_signal_connect(G_OBJECT(sc_grave_get_widget(Lg, "btnnextdvddata1")), 
"clicked", G_CALLBACK(gonextpage), Lbodydvddata);
+  g_signal_connect(G_OBJECT(sc_grave_get_widget(Lg, "btnnextdvddata2")), 
"clicked", G_CALLBACK(gonextpage), Lbodydvddata);
 
   /* boutons "graver" */
-  g_signal_connect(G_OBJECT(glade_to_hash(Lxml, Lhash, "btnburnaudio2")), 
"clicked", G_CALLBACK(confirm_burn), Lhash);
-  g_signal_connect(G_OBJECT(glade_to_hash(Lxml, Lhash, "btnburndata2")), 
"clicked", G_CALLBACK(confirm_burn), Lhash);
-  g_signal_connect(G_OBJECT(glade_to_hash(Lxml, Lhash, "btnburndata3")), 
"clicked", G_CALLBACK(confirm_burn), Lhash);
-  g_signal_connect(G_OBJECT(glade_to_hash(Lxml, Lhash, "btnburndvddata2")), 
"clicked", G_CALLBACK(confirm_burn), Lhash);
-  g_signal_connect(G_OBJECT(glade_to_hash(Lxml, Lhash, "btnburndvddata3")), 
"clicked", G_CALLBACK(confirm_burn), Lhash);
-  g_signal_connect(G_OBJECT(glade_to_hash(Lxml, Lhash, "btnburncopy1")), 
"clicked", G_CALLBACK(confirm_burn), Lhash);
+  g_signal_connect(G_OBJECT(sc_grave_get_widget(Lg, "btnburnaudio2")), 
"clicked", G_CALLBACK(confirm_burn), Lg);
+  g_signal_connect(G_OBJECT(sc_grave_get_widget(Lg, "btnburndata2")), 
"clicked", G_CALLBACK(confirm_burn), Lg);
+  g_signal_connect(G_OBJECT(sc_grave_get_widget(Lg, "btnburndata3")), 
"clicked", G_CALLBACK(confirm_burn), Lg);
+  g_signal_connect(G_OBJECT(sc_grave_get_widget(Lg, "btnburndvddata2")), 
"clicked", G_CALLBACK(confirm_burn), Lg);
+  g_signal_connect(G_OBJECT(sc_grave_get_widget(Lg, "btnburndvddata3")), 
"clicked", G_CALLBACK(confirm_burn), Lg);
+  g_signal_connect(G_OBJECT(sc_grave_get_widget(Lg, "btnburncopy1")), 
"clicked", G_CALLBACK(confirm_burn), Lg);
 
   /* boutons de la page "autres operations" */
-  g_signal_connect(G_OBJECT(Lbtnerasecdrw), "clicked", 
G_CALLBACK(confirm_erasecdrw), Lhash);
-  g_signal_connect(G_OBJECT(Lbtnformatdvdrw), "clicked", 
G_CALLBACK(popup_formatdvdrw), Lhash);
-  g_signal_connect(G_OBJECT(glade_to_hash(Lxml, Lhash, "btnfixcdother1")), 
"clicked", G_CALLBACK(confirm_fixcd), Lhash);
+  g_signal_connect(G_OBJECT(sc_grave_get_widget(Lg, "btnerasecdrwother1")), 
"clicked", G_CALLBACK(confirm_erasecdrw), Lg);
+  g_signal_connect(G_OBJECT(sc_grave_get_widget(Lg, "btnformatdvdrw")), 
"clicked", G_CALLBACK(popup_formatdvdrw), Lg);
+  g_signal_connect(G_OBJECT(sc_grave_get_widget(Lg, "btnfixcdother1")), 
"clicked", G_CALLBACK(confirm_fixcd), Lg);
   
-  update_combo_graveur(Lhash);
+  update_combo_graveur(Lg);
 
   /* menu popup sur les listes */
-  glade_to_hash_list(Lxml, Lhash, "audiolenbar", "datasizebar", 
"dvddatasizebar", NULL);
-  Ltreeaudio = GTK_TREE_VIEW(glade_to_hash(Lxml, Lhash, "LISTEAUDIO"));
-  prepare_popups(Lxml, Lhash);
+  Ltreeaudio = GTK_TREE_VIEW(sc_grave_get_widget(Lg, "LISTEAUDIO"));
+  prepare_popups(Lg);
   prepare_listeaudio(Ltreeaudio);
-  g_signal_connect(G_OBJECT(Ltreeaudio), "button-press-event", 
G_CALLBACK(gtk_do_eventbuttonpress), Lhash);
-  g_signal_connect(G_OBJECT(Ltreeaudio), "popup-menu", 
G_CALLBACK(key_popupmenu_addaudio), Lhash);
-  g_signal_connect(G_OBJECT(glade_xml_get_widget(Lxml, "btnaddtrack")), 
"clicked", G_CALLBACK(gtk_audio_addtrack), Lhash);
+  g_signal_connect(G_OBJECT(Ltreeaudio), "button-press-event", 
G_CALLBACK(gtk_do_eventbuttonpress), Lg);
+  g_signal_connect(G_OBJECT(Ltreeaudio), "popup-menu", 
G_CALLBACK(key_popupmenu_addaudio), Lg);
+  g_signal_connect(G_OBJECT(glade_xml_get_widget(Lxml, "btnaddtrack")), 
"clicked", G_CALLBACK(gtk_audio_addtrack), Lg);
 
-  Ltreedata = GTK_TREE_VIEW(glade_to_hash(Lxml, Lhash, "LISTEDATA"));
+  Ltreedata = GTK_TREE_VIEW(sc_grave_get_widget(Lg, "LISTEDATA"));
   prepare_listedata(Ltreedata, _("New CD"));
-  g_signal_connect(G_OBJECT(Ltreedata), "button-press-event", 
G_CALLBACK(gtk_do_eventbuttonpress), Lhash);
-  g_signal_connect(G_OBJECT(Ltreedata), "popup-menu", 
G_CALLBACK(key_popupmenu_addfile), Lhash);
-  g_signal_connect(G_OBJECT(glade_xml_get_widget(Lxml, "btnaddfile")), 
"clicked", G_CALLBACK(gtk_data_addfile), Lhash);
+  g_signal_connect(G_OBJECT(Ltreedata), "button-press-event", 
G_CALLBACK(gtk_do_eventbuttonpress), Lg);
+  g_signal_connect(G_OBJECT(Ltreedata), "popup-menu", 
G_CALLBACK(key_popupmenu_addfile), Lg);
+  g_signal_connect(G_OBJECT(glade_xml_get_widget(Lxml, "btnaddfile")), 
"clicked", G_CALLBACK(gtk_data_addfile), Lg);
   g_signal_connect(G_OBJECT(glade_xml_get_widget(Lxml, "btnadddirectory")), 
"clicked",
-      G_CALLBACK(gtk_data_adddirectory), Lhash);
+      G_CALLBACK(gtk_data_adddirectory), Lg);
 
-  Ltreedvddata = GTK_TREE_VIEW(glade_to_hash(Lxml, Lhash, "LISTEDVDDATA"));
+  Ltreedvddata = GTK_TREE_VIEW(sc_grave_get_widget(Lg, "LISTEDVDDATA"));
   prepare_listedata(Ltreedvddata, _("New DVD"));
-  g_signal_connect(G_OBJECT(Ltreedvddata), "button-press-event", 
G_CALLBACK(gtk_do_eventbuttonpress), Lhash);
-  g_signal_connect(G_OBJECT(Ltreedvddata), "popup-menu", 
G_CALLBACK(key_popupmenu_addfile), Lhash);
-  g_signal_connect(G_OBJECT(glade_xml_get_widget(Lxml, "btndvdaddfile")), 
"clicked", G_CALLBACK(gtk_data_addfile), Lhash);
-  g_signal_connect(G_OBJECT(glade_xml_get_widget(Lxml, "btndvdadddirectory")), 
"clicked",
-      G_CALLBACK(gtk_data_adddirectory), Lhash);
+  g_signal_connect(G_OBJECT(Ltreedvddata), "button-press-event", 
G_CALLBACK(gtk_do_eventbuttonpress), Lg);
+  g_signal_connect(G_OBJECT(Ltreedvddata), "popup-menu", 
G_CALLBACK(key_popupmenu_addfile), Lg);
+  g_signal_connect(G_OBJECT(sc_grave_get_widget(Lg, "btndvdaddfile")), 
"clicked", G_CALLBACK(gtk_data_addfile), Lg);
+  g_signal_connect(G_OBJECT(sc_grave_get_widget(Lg, "btndvdadddirectory")), 
"clicked",
+      G_CALLBACK(gtk_data_adddirectory), Lg);
 
 
   /* drag and drop */
@@ -834,7 +749,7 @@
            GDK_BUTTON1_MASK, Gdndaudio, G_N_ELEMENTS (Gdndaudio), 
GDK_ACTION_MOVE|GDK_ACTION_COPY);
   gtk_tree_view_enable_model_drag_dest (GTK_TREE_VIEW (Ltreeaudio),
                Gdndaudio, G_N_ELEMENTS (Gdndaudio), 
GDK_ACTION_MOVE|GDK_ACTION_COPY);
-  g_signal_connect(G_OBJECT(Ltreeaudio), "drag-data-received", 
G_CALLBACK(audio_dnd_data_received), Lhash);
+  g_signal_connect(G_OBJECT(Ltreeaudio), "drag-data-received", 
G_CALLBACK(audio_dnd_data_received), Lg);
 
   /* cd data */
   gtk_tree_view_enable_model_drag_source (GTK_TREE_VIEW (Ltreedata),
@@ -842,23 +757,23 @@
   gtk_tree_view_enable_model_drag_dest (GTK_TREE_VIEW (Ltreedata),
            Gdnddata, G_N_ELEMENTS (Gdnddata), 
GDK_ACTION_MOVE|GDK_ACTION_COPY|GDK_ACTION_LINK);
   g_signal_connect(G_OBJECT(Ltreedata), "drag-data-received", 
G_CALLBACK(data_dnd_data_received),
-      Lhash);
+      Lg);
   /* dvd data */
   gtk_tree_view_enable_model_drag_source (GTK_TREE_VIEW (Ltreedvddata),
            GDK_BUTTON1_MASK, Gdnddata, G_N_ELEMENTS (Gdnddata), 
GDK_ACTION_MOVE|GDK_ACTION_COPY);
   gtk_tree_view_enable_model_drag_dest (GTK_TREE_VIEW (Ltreedvddata),
            Gdnddata, G_N_ELEMENTS (Gdnddata), GDK_ACTION_MOVE|GDK_ACTION_COPY);
   g_signal_connect(G_OBJECT(Ltreedvddata), "drag-data-received", 
G_CALLBACK(data_dnd_data_received),
-      Lhash);
+      Lg);
 
   /* evenement fermer la fenetre */
-  g_signal_connect(G_OBJECT(Lwindow), "delete-event", 
G_CALLBACK(delete_event_quit), Lhash);
+  g_signal_connect(G_OBJECT(Lwindow), "delete-event", 
G_CALLBACK(delete_event_quit), Lg);
 
   /* on restaure la taille et la position que la fenetre avait lors de la 
derniere utilisation */ 
   restore_main_window_pos(Lwindow); 
 
   /* on restaure les dernieres valeurs utilisees pour certains champs */
-  restore_last_used_values(Lhash);
+  restore_last_used_values(Lg);
   
   gtk_widget_show(Lwindow);
 
@@ -866,19 +781,19 @@
 }
 
 /* mise a jour des listes contenant les lecteurs */
-void update_combo_graveur(GHashTable *Ahash)
+void update_combo_graveur(Tgrave *Ag)
 {
-  GtkComboBox *Lsrccopycombo = GTK_COMBO_BOX(g_hash_table_lookup(Ahash, 
"srccopycombo"));
-  GtkComboBox *Ldstcopycombo = GTK_COMBO_BOX(g_hash_table_lookup(Ahash, 
"dstcopycombo"));
-  GtkComboBox *Ldstdatacombo = GTK_COMBO_BOX(g_hash_table_lookup(Ahash, 
"dstdatacombo"));
-  GtkComboBox *Ldstdvddatacombo = GTK_COMBO_BOX(g_hash_table_lookup(Ahash, 
"dstdvddatacombo"));
-  GtkComboBox *Ldstaudiocombo = GTK_COMBO_BOX(g_hash_table_lookup(Ahash, 
"dstaudiocombo"));
-  GtkComboBox *Ldstothercombo = GTK_COMBO_BOX(g_hash_table_lookup(Ahash, 
"dstothercombo"));
-  GtkButton *Lbtnburnaudio1 = g_hash_table_lookup(Ahash, "btnburnaudio1");
-  GtkButton *Lbtnburnaudio2 = g_hash_table_lookup(Ahash, "btnburnaudio2");
-  GtkButton *Lbtnburncopy1 = g_hash_table_lookup(Ahash, "btnburncopy1");
-  GtkButton *Lbtnfixcdother1 = g_hash_table_lookup(Ahash, "btnfixcdother1");
-  GtkButton *Lbtnerasecdrwother1 = g_hash_table_lookup(Ahash, 
"btnerasecdrwother1");
+  GtkComboBox *Lsrccopycombo = GTK_COMBO_BOX(sc_grave_get_widget(Ag, 
"srccopycombo"));
+  GtkComboBox *Ldstcopycombo = GTK_COMBO_BOX(sc_grave_get_widget(Ag, 
"dstcopycombo"));
+  GtkComboBox *Ldstdatacombo = GTK_COMBO_BOX(sc_grave_get_widget(Ag, 
"dstdatacombo"));
+  GtkComboBox *Ldstdvddatacombo = GTK_COMBO_BOX(sc_grave_get_widget(Ag, 
"dstdvddatacombo"));
+  GtkComboBox *Ldstaudiocombo = GTK_COMBO_BOX(sc_grave_get_widget(Ag, 
"dstaudiocombo"));
+  GtkComboBox *Ldstothercombo = GTK_COMBO_BOX(sc_grave_get_widget(Ag, 
"dstothercombo"));
+  GtkButton *Lbtnburnaudio1 = sc_grave_get_widget(Ag, "btnburnaudio1");
+  GtkButton *Lbtnburnaudio2 = sc_grave_get_widget(Ag, "btnburnaudio2");
+  GtkButton *Lbtnburncopy1 = sc_grave_get_widget(Ag, "btnburncopy1");
+  GtkButton *Lbtnfixcdother1 = sc_grave_get_widget(Ag, "btnfixcdother1");
+  GtkButton *Lbtnerasecdrwother1 = sc_grave_get_widget(Ag, 
"btnerasecdrwother1");
   gboolean Lreadcd, Lwritecdr, Lwritecdrw, Lreaddvd, Lwritedvd;
 
   get_current_matos(&Lreadcd, &Lwritecdr, &Lwritecdrw, &Lreaddvd, &Lwritedvd);
@@ -1090,87 +1005,73 @@
 #endif
 
 /* boite de dialogue "editer un peripherique" */
-GHashTable *create_dialog_edit_device(GtkWidget *Aparent, Tdriveinfo *Adrive)
+Tgrave *create_dialog_edit_device(GtkWidget *Aparent, Tdriveinfo *Adrive)
 {
-  gchar *Ltemplate = PACKAGE_DATA_DIR "/" PACKAGE "/dialog_device.glade";
-  GladeXML *Lxml = glade_xml_new(Ltemplate, NULL,NULL);
+  Tgrave *Lg = sc_grave_load("dialog_device.glade");
   GtkWidget *Ldialog;
-  GHashTable *Lhash = _hash();
   GtkComboBox *Lcombobox;
 
-  if (!Lxml) {
-    g_error("Cannot load '%s': %s\n", Ltemplate, g_strerror(errno));
-  }
+  g_assert(Lxml);
 
-  Ldialog = glade_xml_get_widget(Lxml, "dialog_device");
+  Ldialog = sc_grave_get_widget(Lg, "dialog_device");
   gtk_window_set_transient_for(GTK_WINDOW(Ldialog), GTK_WINDOW(Aparent));
-  g_hash_table_insert(Lhash, "window", Ldialog);
+  sc_grave_ref_wtd(Lg, "dialog_device", "window");
 
-  gtk_entry_set_text(GTK_ENTRY(glade_to_hash(Lxml, Lhash, "devicename")), 
Adrive->name);
-  Lcombobox = GTK_COMBO_BOX(glade_to_hash(Lxml, Lhash, "devicebus"));
+  gtk_entry_set_text(GTK_ENTRY(sc_grave_get_widget(Lg, "devicename")), 
Adrive->name);
+  Lcombobox = GTK_COMBO_BOX(sc_grave_get_widget(Lg, "devicebus"));
 
   manage_combobox_devicebus(Lcombobox, Adrive);
 
-  return Lhash;
+  return Lg;
 }
 
 /* boite de dialogue "ajouter un peripherique" */
-GHashTable *create_dialog_add_device(GtkWidget *Aparent)
+Tgrave *create_dialog_add_device(GtkWidget *Aparent)
 {
-  gchar *Ltemplate = PACKAGE_DATA_DIR "/" PACKAGE "/dialog_add_device.glade";
-  GladeXML *Lxml = glade_xml_new(Ltemplate, NULL,NULL);
+  Tgrave *Lg = sc_grave_load("dialog_add_device.glade");
   GtkWidget *Ldialog;
-  GHashTable *Lhash = _hash();
 
-  if (!Lxml) {
-    g_error("Cannot load '%s': %s\n", Ltemplate, g_strerror(errno));
-  }
+  g_assert(Lxml);
 
-  Ldialog = glade_xml_get_widget(Lxml, "dialog_add_device");
+  Ldialog = sc_grave_get_widget(Lg, "dialog_add_device");
   gtk_window_set_transient_for(GTK_WINDOW(Ldialog), GTK_WINDOW(Aparent));
-  g_hash_table_insert(Lhash, "window", Ldialog);
-
-  gtk_entry_set_text(GTK_ENTRY(glade_to_hash(Lxml, Lhash, "devicename")), 
_("New device"));
-  glade_to_hash(Lxml, Lhash, "devicebus");
+  sc_grave_ref_wtd(Lg, "dialog_add_device", "window");
 
+  gtk_entry_set_text(GTK_ENTRY(sc_grave_get_widget(Lg, "devicename")), _("New 
device"));
 
-  return Lhash;
+  return Lg;
 }
 
 
 /* boite de dialogue "a propos de ..." */
 void about_graveman (void)
 {
-  gchar *Ltemplate = PACKAGE_DATA_DIR "/" PACKAGE "/dialog_about.glade";
-  GladeXML *Lxml = glade_xml_new(Ltemplate, NULL,NULL);
+  Tgrave *Lg = sc_grave_load("dialog_about.glade");
   GtkWidget *Ldialog;
   GtkLabel *Llabelversion;
   gchar *Ltmp;
 
-  if (!Lxml) {
-    g_error("Cannot load '%s': %s\n", Ltemplate, g_strerror(errno));
-  }
+  g_assert(Lg);
 
-  Llabelversion = GTK_LABEL(glade_xml_get_widget(Lxml, "version"));
+  Llabelversion = GTK_LABEL(sc_grave_get_widget(Lg, "version"));
 
   Ltmp = g_strdup_printf(_("version %s - http://www.nongnu.org/graveman";), 
VERSION);
   gtk_label_set_label(Llabelversion, Ltmp);
   g_free(Ltmp);
 
-  Ldialog = glade_xml_get_widget(Lxml, "dialog_about"); 
-
+  Ldialog = sc_grave_get_widget(Lg, "dialog_about")
   gtk_dialog_run(GTK_DIALOG(Ldialog));
   gtk_widget_destroy(Ldialog);
 
-  g_free(Lxml);
+  sc_grave_destroy(Lg);
 }
 
-void hide_some_progressbar(GHashTable *Ahash)
+void hide_some_progressbar(Tgrave *Ag)
 {
-  GtkWidget *Lpbfifo = g_hash_table_lookup(Ahash, "pb_fifo");
-  GtkWidget *Lpbbuffer = g_hash_table_lookup(Ahash, "pb_buffer");
-  GtkWidget *Llfifo = g_hash_table_lookup(Ahash, "l_fifo");
-  GtkWidget *Llbuffer = g_hash_table_lookup(Ahash, "l_buffer");
+  GtkWidget *Lpbfifo = sc_grave_get_data(Ag, "pb_fifo");
+  GtkWidget *Lpbbuffer = sc_grave_get_data(Ag, "pb_buffer");
+  GtkWidget *Llfifo = sc_grave_get_data(Ag, "l_fifo");
+  GtkWidget *Llbuffer = sc_grave_get_data(Ag, "l_buffer");
 
   gtk_widget_hide(Lpbfifo); 
   gtk_widget_hide(Llfifo); 
@@ -1179,12 +1080,11 @@
 }
 
 /* fenetre gravure d'un cd en cours */
-void show_graverwindow (GHashTable *Ahash, gchar *Aaction, gchar *Atitle)
+void show_graverwindow (Tgrave *Ag, gchar *Aaction, gchar *Atitle)
 {
-  gchar *Ltemplate = PACKAGE_DATA_DIR "/" PACKAGE "/window_burn.glade";
-  GladeXML *Lxml = glade_xml_new(Ltemplate, NULL,NULL);
+  GladeXML *Lburng = sc_grave_load("window_burn.glade");
   GtkWidget *Lwindowburn;
-  GtkLabel *Ltitle, *Lavancement;
+  GtkLabel *Ltitle;
   GtkProgressBar *Lpbtotal, *Lpbstep, *Lpbfifo, *Lpbbuffer;
   gint Ltotaldone = 0;
   gint Lpid = 0, Lpid2 = 0;
@@ -1192,52 +1092,43 @@
   gboolean Lbackvalue = FALSE;
   gint Lcont = 1;
   GtkWidget *Lstatusbox = NULL;
-  GtkWidget *Lparent = GTK_WIDGET(g_hash_table_lookup(Ahash, "topwindow"));
+  GtkWidget *Lparent = GTK_WIDGET(sc_grave_get_widget(Ag, "topwindow"));
   GError *Lerror = NULL;
 
-  if (!Lxml) {
-    g_error("Cannot load '%s': %s\n", Ltemplate, g_strerror(errno));
-  }
+  g_assert(Lburng);
 
-  Lwindowburn = glade_xml_get_widget(Lxml, "window_burn"); 
+  Lwindowburn = sc_grave_get_widget(Lburng, "window_burn"); 
   gtk_window_set_transient_for(GTK_WINDOW(Lwindowburn), GTK_WINDOW(Lparent));
 
-  /* titres avancement */
-  Ltitle = GTK_LABEL(glade_to_hash(Lxml, Ahash, "gravetitle"));
-  Lavancement = GTK_LABEL(glade_to_hash(Lxml, Ahash, "avancement"));
-  
   /* barres de progression */
-  Lpbtotal = GTK_PROGRESS_BAR(glade_to_hash(Lxml, Ahash, "pb_total"));
-  Lpbstep = GTK_PROGRESS_BAR(glade_to_hash(Lxml, Ahash, "pb_step"));
+  Lpbtotal = GTK_PROGRESS_BAR(sc_grave_get_widget(Ag, "pb_total"));
+  Lpbstep = GTK_PROGRESS_BAR(sc_grave_get_widget(Ag, "pb_step"));
   /* pour la conversion des fichiers audio et la pulse bar */
-  g_hash_table_insert(Ahash, "progress", Lpbstep);
-  Lpbfifo = GTK_PROGRESS_BAR(glade_to_hash(Lxml, Ahash, "pb_fifo"));
-  Lpbbuffer = GTK_PROGRESS_BAR(glade_to_hash(Lxml, Ahash, "pb_buffer"));
-  glade_to_hash_list(Lxml, Ahash, "l_fifo", "l_buffer", NULL);
+  sc_grave_set_data(Ahash, "progress", Lpbstep);
+  Lpbfifo = GTK_PROGRESS_BAR(sc_grave_get_widget(Ag, "pb_fifo"));
+  Lpbbuffer = GTK_PROGRESS_BAR(sc_grave_get_widget(Ag, "pb_buffer"));
 
   /* on attache les variables utilisees lors de l'operation */
-  g_hash_table_insert(Ahash, "totaldone", &Ltotaldone);
-  g_hash_table_insert(Ahash, "gabort", &Labort);  /* operation annulee par 
l'utilisateur ? */
-  g_hash_table_insert(Ahash, "pid", &Lpid);
-  g_hash_table_insert(Ahash, "cont", &Lcont);
-  g_hash_table_insert(Ahash, "pid2", &Lpid2);
+  sc_grave_set_data(Ag, "totaldone", &Ltotaldone);
+  sc_grave_set_data(Ag, "gabort", &Labort);  /* operation annulee par 
l'utilisateur ? */
+  sc_grave_set_data(Ag, "pid", &Lpid);
+  sc_grave_set_data(Ag, "cont", &Lcont);
+  sc_grave_set_data(Ag, "pid2", &Lpid2);
 
   /* bouton annuler l'operation */
-  g_signal_connect(G_OBJECT(glade_xml_get_widget(Lxml, "btncancelburn")), 
"clicked", G_CALLBACK(abort_gravure), Ahash);
-  g_signal_connect(G_OBJECT(Lwindowburn), "delete_event", 
GTK_SIGNAL_FUNC(on_deleteevent_gravure), Ahash);
+  g_signal_connect(G_OBJECT(sc_grave_get_widget(Lburng, "btncancelburn")), 
"clicked", G_CALLBACK(abort_gravure), Ag);
+  g_signal_connect(G_OBJECT(Lwindowburn), "delete_event", 
GTK_SIGNAL_FUNC(on_deleteevent_gravure), Ag);
 
   /* lancement de l'operation en elle meme */
   if (g_str_has_prefix(Aaction, "btnburncopy")) {
-    Lbackvalue = burn_copy(Ahash, &Lerror);
-
-    
+    Lbackvalue = burn_copy(Ag, &Lerror);
   } else if (g_str_has_prefix(Aaction, "btnburnaudio")) {
-    Lbackvalue = burn_audio(Ahash, &Lerror);
+    Lbackvalue = burn_audio(Ag, &Lerror);
   } else if (g_str_has_prefix(Aaction, "btnburndata")) {
-    Lbackvalue = burn_data(Ahash, &Lerror);
+    Lbackvalue = burn_data(Ag, &Lerror);
   } else if (g_str_has_prefix(Aaction, "btnburndvddata")) {
     hide_some_progressbar(Ahash);
-    Lbackvalue = burn_dvddata(Ahash, &Lerror);
+    Lbackvalue = burn_dvddata(Ag, &Lerror);
   }
 
   if (Labort) {
@@ -1245,6 +1136,8 @@
                                      GTK_DIALOG_MODAL, GTK_MESSAGE_WARNING, 
GTK_BUTTONS_OK,
                                      _("Operation aborted by user !"));
   } else {
+    Ltitle = GTK_LABEL(sc_grave_get_widget(Lburng, "gravetitle"));
+    
     /* pour plus de beaute on s'assure que les barres de progression aient les 
bonnes
      * valeurs :-) */
     gtk_progress_bar_set_fraction(Lpbtotal, 1);
@@ -1277,22 +1170,19 @@
   }
 
   gtk_widget_destroy(Lwindowburn);
+  sc_grave_destroy(Lburng);
   if (Lerror) g_error_free(Lerror);
 }
   
 /* fenetre "operation en cours" */
-GladeXML *create_window_encours(GtkWidget *Aparent)
+Tgrave *create_window_encours(GtkWidget *Aparent)
 {
-  gchar *Ltemplate = PACKAGE_DATA_DIR "/" PACKAGE "/window_inprogress.glade";
-  GladeXML *Lxml = glade_xml_new(Ltemplate, NULL,NULL);
+  Tgrave *Lg = sc_grave_load("window_inprogress.glade");
 
-  if (!Lxml) {
-    g_error("Cannot load '%s': %s\n", Ltemplate, g_strerror(errno));
-  }
+  g_assert(Lg);
 
   if (GTK_IS_WIDGET(Aparent)) {
-    GtkWidget *Lwin = glade_xml_get_widget(Lxml, "window_inprogress");
-    gtk_window_set_transient_for(GTK_WINDOW(Lwin), GTK_WINDOW(Aparent));
+    gtk_window_set_transient_for(GTK_WINDOW(sc_grave_get_widget(Lg, 
"window_inprogress")), GTK_WINDOW(Aparent));
   }
 
   return Lxml;
@@ -1313,7 +1203,7 @@
 }
 
 /* objets a cacher lorsque l'on selectionne une image iso en tant que source 
ou destination */
-void prepare_disable_when_iso(GHashTable *Ahash, gchar *Abasename, const gchar 
*Afirst, ...)
+void prepare_disable_when_iso(Tgrave *Ag, gchar *Abasename, const gchar 
*Afirst, ...)
 {
   va_list Largs;
   gchar *Lbuf = (gchar *) Afirst;
@@ -1321,21 +1211,21 @@
   gchar *Lname = g_strdup_printf("%s_isotodisabled%d", Abasename, Lnbr++);
   gchar *Lcur;
 
-  g_hash_table_insert(Ahash, Lname, g_hash_table_lookup(Ahash, Afirst));
+  sc_grave_ref_wtd(Ag, Afirst, Lname);
 
   va_start(Largs, Afirst);
   while (*Lbuf++) {
     if (!(Lcur = va_arg(Largs, gchar *))) break;
     
     Lname = g_strdup_printf("%s_isotodisabled%d", Abasename, Lnbr++);
-    g_hash_table_insert(Ahash, Lname, g_hash_table_lookup(Ahash, Lcur));
+    sc_grave_ref_wtd(Ag, Lcur, Lname);
   }
 
   va_end(Largs);
 }
 
 /* objets a cacher lorsque l'on selectionne une image iso en tant que source 
ou destination */
-void prepare_disable_when(GHashTable *Ahash, gchar *Abasename, const gchar 
*Afirst, ...)
+void prepare_disable_when(Tgrave *Ag, gchar *Abasename, const gchar *Afirst, 
...)
 {
   va_list Largs;
   gchar *Lbuf = (gchar *) Afirst;
@@ -1343,14 +1233,14 @@
   gchar *Lname = g_strdup_printf("%stodisabled%d", Abasename, Lnbr++);
   gchar *Lcur;
 
-  g_hash_table_insert(Ahash, Lname, g_hash_table_lookup(Ahash, Afirst));
+  sc_grave_ref_wtd(Ag, Afirst, Lname);
 
   va_start(Largs, Afirst);
   while (*Lbuf++) {
     if (!(Lcur = va_arg(Largs, gchar *))) break;
     
     Lname = g_strdup_printf("%stodisabled%d", Abasename, Lnbr++);
-    g_hash_table_insert(Ahash, Lname, g_hash_table_lookup(Ahash, Lcur));
+    sc_grave_ref_wtd(Ag, Lcur, Lname);
   }
 
   va_end(Largs);
@@ -1358,11 +1248,11 @@
 
 void gtk_toggle_top_menu(GtkTreeView *Atopmenu, gpointer Adata)
 {
-  GHashTable *Lhash = (GHashTable *)Adata;
+  Tgrave *Lg = (Tgrave *)Adata;
   GtkTreeModel *Ltreemodel = gtk_tree_view_get_model(Atopmenu);
   GtkTreeIter Liter;
   gchar *Lident;
-  GtkNotebook *Llstclick = g_hash_table_lookup(Lhash, "_lstclicked"); /* 
dernier element ayant eu le focus */
+  GtkNotebook *Llstclick = sc_grave_get_data(Lg, "_lstclicked"); /* dernier 
element ayant eu le focus */
   GtkNotebook *Lnewclick;
   GtkTreeSelection *Lselection = gtk_tree_view_get_selection(Atopmenu);
 
@@ -1370,21 +1260,21 @@
 
   gtk_tree_model_get(Ltreemodel, &Liter, 0, &Lident, -1);
 
-  Lnewclick = g_hash_table_lookup(Lhash, Lident);
+  Lnewclick = sc_grave_get_data(Lg, Lident);
   if (GTK_IS_NOTEBOOK(Lnewclick)) {
   
     if (GTK_IS_NOTEBOOK(Llstclick)) {
       gtk_widget_hide(GTK_WIDGET(Llstclick));
     }
-    g_hash_table_replace(Lhash, "_lstclicked", Lnewclick);
+    sc_grave_replace_data(Lg, "_lstclicked", Lnewclick);
 
     gtk_widget_show(GTK_WIDGET(Lnewclick));
 
     /* pointeur sur la liste courante pour plus de simplicite */
     if (!strcmp(Lident, "bodycddata")) {
-      g_hash_table_replace(Lhash, "_current_list", g_hash_table_lookup(Lhash, 
"LISTEDATA"));
+      sc_grave_replace_data(Lg, "_current_list", sc_grave_get_data(Lg, 
"LISTEDATA"));
     } else if (!strcmp(Lident, "bodydvddata")) {
-      g_hash_table_replace(Lhash, "_current_list", g_hash_table_lookup(Lhash, 
"LISTEDVDDATA"));
+      sc_grave_replace_data(Lg, "_current_list", sc_grave_get_data(Lg, 
"LISTEDVDDATA"));
     }
   }
     
@@ -1392,10 +1282,10 @@
 }
 
 /* status bar */
-void update_status_bar_display(GHashTable *Ahash)
+void update_status_bar_display(Tgrave *Ag)
 {
   gboolean Ldispsb = conf_get_boolean("statusbar");
-  GtkWidget *Ldisp = g_hash_table_lookup(Ahash, "statusbar");
+  GtkWidget *Ldisp = sc_grave_get_widget(Ag, "statusbar");
 
   if (Ldispsb) {
     gtk_widget_show(Ldisp);
@@ -1405,10 +1295,10 @@
 }
 
 /* mise a jour interface */
-void manage_interface(GHashTable *Ahash, gint Aaction)
+void manage_interface(Tgrave *Ag, gint Aaction)
 {
   GtkListStore *Lmodel;
-  GtkTreeView *Ltopmenu = g_hash_table_lookup(Ahash, "topmenu");
+  GtkTreeView *Ltopmenu = sc_grave_get_widget(Ag, "topmenu");
   GtkTreeSelection *Lselection = gtk_tree_view_get_selection(Ltopmenu);
   GtkTreeIter Liter;
   GtkCellRenderer *Lcellrender;
@@ -1431,19 +1321,19 @@
     gtk_tree_view_append_column(GTK_TREE_VIEW(Ltopmenu), Lcell);
     Lcellrender = gtk_cell_renderer_pixbuf_new();
 
-    g_signal_connect(G_OBJECT(Ltopmenu), "cursor-changed", 
G_CALLBACK(gtk_toggle_top_menu), Ahash); 
+    g_signal_connect(G_OBJECT(Ltopmenu), "cursor-changed", 
G_CALLBACK(gtk_toggle_top_menu), Ag); 
   } else {
     Lmodel = GTK_LIST_STORE(gtk_tree_view_get_model(Ltopmenu));
     gtk_list_store_clear(Lmodel);
   }
 
   /* les icones en elles meme */
-  prepare_menu_images(Ahash);
+  prepare_menu_images(Ag);
 
   gtk_list_store_append(Lmodel, &Liter);
   gtk_list_store_set(Lmodel, &Liter, 0, "bodycdaudio", 1, GMenuAudio, 2, 
_("Audio CD"), -1);
   gtk_tree_selection_select_iter(Lselection, &Liter);
-  gtk_toggle_top_menu(Ltopmenu, Ahash);
+  gtk_toggle_top_menu(Ltopmenu, Ag);
 
   gtk_list_store_append(Lmodel, &Liter);
   gtk_list_store_set(Lmodel, &Liter, 0, "bodycddata", 1, GMenuData, 2, _("Data 
CD"), -1);
@@ -1461,7 +1351,7 @@
 
   /* mise a jour combo "iso level" */
   if (Aaction & COMBO_UPDATE) {
-    Lisolevel = g_hash_table_lookup(Ahash, "dataisolevel");
+    Lisolevel = sc_grave_get_widget(Ag, "dataisolevel");
     remplirecombo_full(Lisolevel, "", Gisolevel,
         TRUE, conf_get_string("dataisolevel"), 
conf_get_int("mkisofs_support_isov2"));
   }
@@ -1469,13 +1359,13 @@
 
     
 /* preparation du combo contenant la liste du peripherique a utiliser */
-void prepare_combobox_graveur(GladeXML *Axml, GHashTable *Ahash, gchar 
*Abasename)
+void prepare_combobox_graveur(Trave *Ag, gchar *Abasename)
 {
-  GtkComboBox *Lcombobox = GTK_COMBO_BOX(glade_to_hashv(Axml, Ahash, 
"%scombo", Abasename));
+  GtkComboBox *Lcombobox = GTK_COMBO_BOX(sc_grave_get_widgetv(Ag, "%scombo", 
Abasename));
   if (GTK_IS_COMBO_BOX(Lcombobox)) {
     GtkListStore *Lmodel = gtk_list_store_new(4, G_TYPE_STRING, 
GDK_TYPE_PIXBUF, G_TYPE_STRING, G_TYPE_INT);
     GtkCellRenderer *Lcellrender;
-    GtkWidget *Lbtniso = sc_glade_xml_get_widgetv(Axml, "%sbtn", Abasename);
+    GtkWidget *Lbtniso = sc_grave_get_widgetv(Ag, "%sbtn", Abasename);
  
     gtk_combo_box_set_model(Lcombobox, GTK_TREE_MODEL(Lmodel));
     Lcellrender = GTK_CELL_RENDERER(gtk_cell_renderer_pixbuf_new());
@@ -1487,12 +1377,11 @@
     gtk_cell_layout_set_attributes(GTK_CELL_LAYOUT(Lcombobox), Lcellrender,
       "text", 2, NULL);
 
-    g_signal_connect(G_OBJECT(Lcombobox), "changed", 
G_CALLBACK(on_selectgraveur), Ahash);
+    g_signal_connect(G_OBJECT(Lcombobox), "changed", 
G_CALLBACK(on_selectgraveur), Ag);
       /* il y a peutetre un champ "image iso" associe a ce combo graveur */
 
     if (GTK_IS_BUTTON(Lbtniso)) {
-      glade_to_hashv(Axml, Ahash, "%sbtnvalue", Abasename);
-      g_signal_connect(G_OBJECT(Lbtniso), "clicked", G_CALLBACK(gtk_file_sel), 
Ahash);
+      g_signal_connect(G_OBJECT(Lbtniso), "clicked", G_CALLBACK(gtk_file_sel), 
Ag);
     }
   }
 }
@@ -1919,10 +1808,10 @@
 }
 
 /* cloturer un cd */
-void show_fixcdwindow(GHashTable *Ahash)
+void show_fixcdwindow(Tgrave *Ag)
 {
-  GtkWidget *Lwindow1 = g_hash_table_lookup(Ahash, "window");
-  GladeXML *Lxmlencours = create_window_encours(Lwindow1);
+  GtkWidget *Lwindow1 = sc_grave_get_data(Ag, "window");
+  Tgrave *Lfixcdg = create_window_encours(Lwindow1);
   gint Lcont = 2;
   gint Lpid;
   gboolean Loperationstatus = FALSE;
@@ -1984,10 +1873,10 @@
 }
 
 /* formater un dvd */
-void show_dvdformatwindow(GHashTable *Ahash, gchar *Atitle, Ttypeformatdvd 
Aoperation)
+void show_dvdformatwindow(Tgrave *Ag, gchar *Atitle, Ttypeformatdvd Aoperation)
 {
-  GtkWidget *Lwindow1 = g_hash_table_lookup(Ahash, "window");
-  GladeXML *Lxmlencours = create_window_encours(Lwindow1);
+  GtkWidget *Lwindow1 = sc_grave_get_widget(Ag, "window");
+  Tgrave *Lformatdvdg = create_window_encours(Lwindow1);
   gint Lcont = 2;
   gint Lpid;
   gboolean Loperationstatus = FALSE;
@@ -1996,34 +1885,29 @@
   GtkLabel *Llabel;
   GtkWidget *Lcancel;
   GtkWidget *Lwin;
-  GHashTable *Lformatdvdhash = _hash();
   GError *Lerror = NULL;
   GtkWidget *Lstatusbox = NULL;
 
-  Lwin = glade_xml_get_widget(Lxmlencours, "window_inprogress"); 
-  Llabel = GTK_LABEL(glade_xml_get_widget(Lxmlencours, "labelava"));
+  Lwin = sc_grave_get_widget(Lformatdvdg, "window_inprogress"); 
+  Llabel = GTK_LABEL(sc_grave_get_widget(Lformatdvdg, "labelava"));
   gtk_label_set_text(Llabel, Atitle);
 
   
-  Lprogressbar = glade_xml_get_widget(Lxmlencours, "progress");
-  g_hash_table_insert(Lformatdvdhash, "cont", &Lcont);
-  g_hash_table_insert(Lformatdvdhash, "pid", &Lpid);
-  g_hash_table_insert(Lformatdvdhash, "gabort", &Labort);
-  g_hash_table_insert(Lformatdvdhash, "gerror", &Lerror);
-  g_hash_table_insert(Lformatdvdhash, "operationstatus", &Loperationstatus);
-  g_hash_table_insert(Lformatdvdhash, "labelava", Llabel);
-  g_hash_table_insert(Lformatdvdhash, "progress", Lprogressbar);
-  g_hash_table_insert(Lformatdvdhash, "dstothercombo", 
g_hash_table_lookup(Ahash, "dstothercombo"));
+  sc_grave_set_data(Lformatdvdg, &Lcont, "cont");
+  sc_grave_set_data(Lformatdvdg, &Lpid, "pid");
+  sc_grave_set_data(Lformatdvdg, &Labort, "gabort");
+  sc_grave_set_data(Lformatdvdg, &Lerror, "gerror");
+  sc_grave_set_data(Lformatdvdg, &Loperationstatus, "operationstatus");
+  sc_grave_set_widget(Lformatdvdg, "dstothercombo", sc_grave_get_widget(Ag, 
"dstothercombo"));
 
   /* bouton annuler */
-  Lcancel = glade_xml_get_widget(Lxmlencours, "cancelbtn");
-  g_signal_connect(G_OBJECT(Lcancel), "clicked", G_CALLBACK(abort_encours), 
Lformatdvdhash);
-  g_signal_connect(G_OBJECT(Lwin), "delete-event", 
G_CALLBACK(delete_event_encours), Lformatdvdhash);
+  g_signal_connect(G_OBJECT(sc_grave_get_widget(Lformatdvdg, "cancelbtn")), 
"clicked", G_CALLBACK(abort_encours), Lformatdvdg);
+  g_signal_connect(G_OBJECT(Lwin), "delete-event", 
G_CALLBACK(delete_event_encours), Lformatdvdg);
 
   gtk_widget_show(Lwin);
-//  g_timeout_add(500, encours_callback, Lformatdvdhash);
+
   /* operation en elle meme */
-  perform_format_dvd(Lformatdvdhash, Aoperation, &Lerror);
+  perform_format_dvd(Lformatdvdg, Aoperation, &Lerror);
   
   if (Labort) {
     Lstatusbox = gtk_message_dialog_new(GTK_WINDOW(Lwin),
@@ -2042,8 +1926,9 @@
   gtk_widget_destroy(Lstatusbox);
   
   gtk_widget_destroy(Lwin);
-  g_hash_table_destroy(Lformatdvdhash);
 
+  sc_grave_destroy(Lformatdvdg);
+  
   if (Lerror) g_error_free(Lerror);
 }
 




reply via email to

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