rem: GtkWidget *bouton, *hbox, *paddingbox;
add: GtkWidget *bouton, *hbox, *paddingbox, *table;
context: GtkWidget *onglet_banques ( void ){  GtkWidget *vbox_pref, *separateur, *label, *frame;  GtkWidget *scrolled_window, *vbox, *vbox2, *hvbox;  GtkWidget *bouton, *hbox, *paddingbox;  GSList *liste_tmp;  gchar *bank_cols_titles [2] = {_("Bank"),				 _("Contact name") };  vbox_pref = new_vbox_with_title_and_icon ( _("Banks"),					     "banks.png" );  /* Create bank list */  paddingbox = paddingbox_new_with_title ( vbox_pref, _("Known banks") );  scrolled_window = gtk_scrolled_window_new ( NULL, NULL );  gtk_scrolled_window_set_policy ( GTK_SCROLLED_WINDOW ( scrolled_window ),				   GTK_POLICY_NEVER,				   GTK_POLICY_AUTOMATIC);  clist_banques_parametres = gtk_clist_new_with_titles ( 2,							 bank_cols_titles);  gtk_widget_set_usize ( clist_banques_parametres,			 FALSE, 120 );  gtk_clist_set_column_auto_resize ( GTK_CLIST ( clist_banques_parametres ) ,				      0, TRUE );  gtk_clist_set_column_auto_resize ( GTK_CLIST ( clist_banques_parametres ) ,				      1, TRUE );  gtk_signal_connect_object  ( GTK_OBJECT ( fenetre_preferences ),			       "apply",			       GTK_SIGNAL_FUNC ( gtk_clist_unselect_all ),			       GTK_OBJECT ( clist_banques_parametres ));  gtk_container_add ( GTK_CONTAINER ( scrolled_window ),		      clist_banques_parametres );  hbox = gtk_hbox_new ( 5, FALSE );  gtk_box_pack_start ( GTK_BOX ( paddingbox ), hbox,		       FALSE, FALSE, 0);  gtk_box_pack_start ( GTK_BOX ( hbox ), scrolled_window,		       TRUE, TRUE, 0);  /* Do not activate unless an account is opened */  if ( !nb_comptes )    gtk_widget_set_sensitive ( vbox_pref, FALSE );  else    {      /* Work an a copy of original liste_struct_devises */      liste_struct_banques_tmp = NULL;      liste_tmp = liste_struct_banques;      while ( liste_tmp )	{	  struct struct_banque *banque;	  struct struct_banque *copie_banque;	  banque = liste_tmp -> data;	  copie_banque = malloc ( sizeof ( struct struct_banque ));	  copie_banque -> no_banque = banque -> no_banque;	  copie_banque -> nom_banque = g_strdup ( banque -> nom_banque );	  copie_banque -> code_banque = g_strdup ( banque -> code_banque );	  copie_banque -> adr_banque = g_strdup ( banque -> adr_banque );	  copie_banque -> tel_banque = g_strdup ( banque -> tel_banque );	  copie_banque -> email_banque = g_strdup ( banque -> email_banque );	  copie_banque -> web_banque = g_strdup ( banque -> web_banque );	  copie_banque -> nom_correspondant = g_strdup ( banque -> nom_correspondant );	  copie_banque -> fax_correspondant = g_strdup ( banque -> fax_correspondant );	  copie_banque -> tel_correspondant = g_strdup ( banque -> tel_correspondant );	  copie_banque -> email_correspondant = g_strdup ( banque -> email_correspondant );	  copie_banque -> remarque_banque = g_strdup ( banque -> remarque_banque );	  liste_struct_banques_tmp = g_slist_append ( liste_struct_banques_tmp,						      copie_banque );	  liste_tmp = liste_tmp -> next;	}      no_derniere_banque_tmp = no_derniere_banque;      nb_banques_tmp = nb_banques;      /* remplissage de la liste avec les banques temporaires */      liste_tmp = liste_struct_banques_tmp;      while ( liste_tmp )	{	  struct struct_banque *banque;	  gchar *ligne[2];	  gint ligne_insert;	  banque = liste_tmp -> data;	  ligne[0] = banque -> nom_banque;	  ligne[1] = banque -> nom_correspondant;	  ligne_insert = gtk_clist_append ( GTK_CLIST ( clist_banques_parametres ),					    ligne );	  /* on associe  la ligne la struct de la banque */	  gtk_clist_set_row_data ( GTK_CLIST ( clist_banques_parametres ),				   ligne_insert,				   banque );	  liste_tmp = liste_tmp -> next;	}    }  /* Handle Add & Remove buttons */  vbox = gtk_vbox_new ( FALSE, 5 );  gtk_box_pack_start ( GTK_BOX ( hbox ), vbox,		       FALSE, FALSE, 0 );  /* Add button */  bouton = gtk_button_new_from_stock (GTK_STOCK_ADD);  gtk_signal_connect ( GTK_OBJECT ( bouton ), "clicked",		       GTK_SIGNAL_FUNC  ( ajout_banque ),		       clist_banques_parametres );  gtk_box_pack_start ( GTK_BOX ( vbox ), bouton,		       FALSE, FALSE, 5 );  /* Remove button */  bouton_supprimer_banque = gtk_button_new_from_stock (GTK_STOCK_REMOVE);  gtk_widget_set_sensitive ( bouton_supprimer_banque, FALSE );  gtk_signal_connect ( GTK_OBJECT ( bouton_supprimer_banque ), "clicked",		       GTK_SIGNAL_FUNC  ( supprime_banque ),		       clist_banques_parametres );  gtk_box_pack_start ( GTK_BOX ( vbox ), bouton_supprimer_banque,		       FALSE, FALSE, 5 );/* frame de droite qui contient les caractristiques de la banque */  frame = gtk_frame_new ( NULL );  gtk_container_set_border_width ( GTK_CONTAINER ( frame ),				   10 );  gtk_widget_set_sensitive ( frame,			     FALSE );  gtk_box_pack_start ( GTK_BOX ( vbox_pref ), frame,		       TRUE, TRUE, 0);  gtk_widget_show ( frame );  /* la slection d'une banque dgrise la frame */  gtk_signal_connect ( GTK_OBJECT ( clist_banques_parametres ),		       "select-row",		       GTK_SIGNAL_FUNC ( selection_ligne_banque ),		       frame );  gtk_signal_connect ( GTK_OBJECT ( clist_banques_parametres ),		       "unselect-row",		       GTK_SIGNAL_FUNC ( deselection_ligne_banque ),		       frame );  vbox = gtk_vbox_new ( FALSE,			0 );  gtk_container_set_border_width ( GTK_CONTAINER ( vbox ),				   5 );  gtk_container_add ( GTK_CONTAINER ( frame ),		      vbox );  gtk_widget_show ( vbox );  scrolled_window = gtk_scrolled_window_new ( FALSE,					      FALSE );  gtk_scrolled_window_set_policy ( GTK_SCROLLED_WINDOW ( scrolled_window ),				   GTK_POLICY_NEVER,				   GTK_POLICY_AUTOMATIC );  gtk_box_pack_start ( GTK_BOX ( vbox ),		       scrolled_window,		       TRUE,		       TRUE,		       5 );  gtk_widget_show ( scrolled_window );  vbox2 = gtk_vbox_new ( FALSE,			     0 );  gtk_scrolled_window_add_with_viewport ( GTK_SCROLLED_WINDOW ( scrolled_window ),					  vbox2 );  gtk_viewport_set_shadow_type ( GTK_VIEWPORT ( GTK_BIN ( scrolled_window ) -> child ),				 GTK_SHADOW_NONE );  gtk_widget_show ( vbox2 );  /* on met toutes les entry dans vbox2 */  /* fabrication de la partie banque */  hbox = gtk_hbox_new ( FALSE,			5 );  gtk_box_pack_start ( GTK_BOX ( vbox2 ),		       hbox,		       FALSE,		       FALSE,		       5 );  gtk_widget_show ( hbox );  label = gtk_label_new ( COLON(_("Bank")) );  gtk_box_pack_start ( GTK_BOX ( hbox ),		       label,		       FALSE,		       FALSE,		       5 );  gtk_widget_show ( label );  hbox = gtk_hbox_new ( FALSE,			5 );  gtk_box_pack_start ( GTK_BOX ( vbox2 ),		       hbox,		       FALSE,		       FALSE,		       5 );  gtk_widget_show ( hbox );  label = gtk_label_new ( COLON(_("Name")) );  gtk_box_pack_start ( GTK_BOX ( hbox ),		       label,		       FALSE,		       FALSE,		       0 );  gtk_widget_show ( label );  nom_banque = gtk_entry_new ();  gtk_box_pack_start ( GTK_BOX ( hbox ),		       nom_banque,		       FALSE,		       FALSE,		       0 );  gtk_widget_show ( nom_banque );  separateur = gtk_vseparator_new ();  gtk_box_pack_start ( GTK_BOX ( hbox ),		       separateur,		       FALSE,		       FALSE,		       0 );  gtk_widget_show ( separateur );  label = gtk_label_new ( COLON(_("Bank sort code")) );  gtk_box_pack_start ( GTK_BOX ( hbox ),		       label,		       FALSE,		       FALSE,		       0 );  gtk_widget_show ( label );  code_banque = gtk_entry_new ();  gtk_box_pack_start ( GTK_BOX ( hbox ),		       code_banque,		       FALSE,		       FALSE,		       0 );  gtk_widget_show ( code_banque );/* mise en forme de l'adr de la banque */  hbox = gtk_hbox_new ( FALSE,			5 );  gtk_box_pack_start ( GTK_BOX ( vbox2 ),		       hbox,		       FALSE,		       FALSE,		       5 );  gtk_widget_show ( hbox );  hvbox = gtk_vbox_new ( FALSE,			 5 );    gtk_box_pack_start ( GTK_BOX ( hbox ),		       hvbox,		       FALSE,		       FALSE,		       0 );  gtk_widget_show ( hvbox );  label = gtk_label_new ( COLON(_("Address")) );  gtk_box_pack_start ( GTK_BOX ( hvbox ),		       label,		       FALSE,		       FALSE,		       0 );  gtk_widget_show ( label );  scrolled_window = gtk_scrolled_window_new ( FALSE,					      FALSE );  gtk_scrolled_window_set_policy ( GTK_SCROLLED_WINDOW ( scrolled_window ),				   GTK_POLICY_AUTOMATIC,				   GTK_POLICY_AUTOMATIC );  gtk_box_pack_start ( GTK_BOX ( hbox ),		       scrolled_window,		       TRUE,		       TRUE,		       5 );  gtk_widget_show ( scrolled_window );  adr_banque = gtk_text_new ( FALSE,			      FALSE );  gtk_widget_set_usize ( adr_banque,			 FALSE,			 50 );  gtk_editable_set_editable ( GTK_EDITABLE ( adr_banque ),			       TRUE );  gtk_container_add ( GTK_CONTAINER ( scrolled_window ),		      adr_banque );  gtk_widget_show ( adr_banque );/* mise en forme de l'email et l'adr web */  hbox = gtk_hbox_new ( FALSE,			5 );  gtk_box_pack_start ( GTK_BOX ( vbox2 ),		       hbox,		       FALSE,		       FALSE,		       5 );  gtk_widget_show ( hbox );  label = gtk_label_new ( COLON(_("E-Mail")) );  gtk_box_pack_start ( GTK_BOX ( hbox ),		       label,		       FALSE,		       FALSE,		       0 );  gtk_widget_show ( label );  email_banque = gtk_entry_new ();  gtk_box_pack_start ( GTK_BOX ( hbox ),		       email_banque,		       FALSE,		       FALSE,		       0 );  gtk_widget_show ( email_banque );  separateur = gtk_vseparator_new ();  gtk_box_pack_start ( GTK_BOX ( hbox ),		       separateur,		       FALSE,		       FALSE,		       0 );  gtk_widget_show ( separateur );  /* mise en forme du tlphone de la banque */  label = gtk_label_new ( COLON(_("Phone number")) );  gtk_box_pack_start ( GTK_BOX ( hbox ),		       label,		       FALSE,		       FALSE,		       0 );  gtk_widget_show ( label );  tel_banque = gtk_entry_new ();  gtk_box_pack_start ( GTK_BOX ( hbox ),		       tel_banque,		       FALSE,		       FALSE,		       0 );  gtk_widget_show ( tel_banque );  /* mise en place de l'adr internet de la banque */  hbox = gtk_hbox_new ( FALSE,			5 );  gtk_box_pack_start ( GTK_BOX ( vbox2 ),		       hbox,		       FALSE,		       FALSE,		       5 );  gtk_widget_show ( hbox );  label = gtk_label_new ( COLON(_("Website")) );  gtk_box_pack_start ( GTK_BOX ( hbox ),		       label,		       FALSE,		       FALSE,		       0 );  gtk_widget_show ( label );  web_banque = gtk_entry_new ();  gtk_widget_set_usize ( web_banque,			 400,			 FALSE );  gtk_box_pack_start ( GTK_BOX ( hbox ),		       web_banque,		       FALSE,		       FALSE,		       0 );  gtk_widget_show ( web_banque );  /* fabrication de la partie correspondant */  separateur = gtk_hseparator_new ();  gtk_box_pack_start ( GTK_BOX ( vbox2 ),		       separateur,		       FALSE,		       FALSE,		       5 );  gtk_widget_show ( separateur );  hbox = gtk_hbox_new ( FALSE,			5 );  gtk_box_pack_start ( GTK_BOX ( vbox2 ),		       hbox,		       FALSE,		       FALSE,		       5 );  gtk_widget_show ( hbox );  label = gtk_label_new ( COLON(_("Contact name")) );  gtk_box_pack_start ( GTK_BOX ( hbox ),		       label,		       FALSE,		       FALSE,		       5 );  gtk_widget_show ( label );  hbox = gtk_hbox_new ( FALSE,			5 );  gtk_box_pack_start ( GTK_BOX ( vbox2 ),		       hbox,		       FALSE,		       FALSE,		       5 );  gtk_widget_show ( hbox );  label = gtk_label_new ( COLON(_("Name")) );  gtk_box_pack_start ( GTK_BOX ( hbox ),		       label,		       FALSE,		       FALSE,		       0 );  gtk_widget_show ( label );  nom_correspondant = gtk_entry_new ();  gtk_box_pack_start ( GTK_BOX ( hbox ),		       nom_correspondant,		       FALSE,		       FALSE,		       0 );  gtk_widget_show ( nom_correspondant );  separateur = gtk_vseparator_new ();  gtk_box_pack_start ( GTK_BOX ( hbox ),		       separateur,		       FALSE,		       FALSE,		       0 );  gtk_widget_show ( separateur );  label = gtk_label_new ( COLON(_("Phone number")) );  gtk_box_pack_start ( GTK_BOX ( hbox ),		       label,		       FALSE,		       FALSE,		       0 );  gtk_widget_show ( label );  tel_correspondant = gtk_entry_new ();  gtk_box_pack_start ( GTK_BOX ( hbox ),		       tel_correspondant,		       FALSE,		       FALSE,		       0 );  gtk_widget_show ( tel_correspondant );/* mise en forme de l'email et le fax */  hbox = gtk_hbox_new ( FALSE,			5 );  gtk_box_pack_start ( GTK_BOX ( vbox2 ),		       hbox,		       FALSE,		       FALSE,		       5 );  gtk_widget_show ( hbox );  label = gtk_label_new ( COLON(_("E-Mail")) );  gtk_box_pack_start ( GTK_BOX ( hbox ),		       label,		       FALSE,		       FALSE,		       0 );  gtk_widget_show ( label );  email_correspondant = gtk_entry_new ();  gtk_box_pack_start ( GTK_BOX ( hbox ),		       email_correspondant,		       FALSE,		       FALSE,		       0 );  gtk_widget_show ( email_correspondant );  separateur = gtk_vseparator_new ();  gtk_box_pack_start ( GTK_BOX ( hbox ),		       separateur,		       FALSE,		       FALSE,		       0 );  gtk_widget_show ( separateur );  label = gtk_label_new ( COLON(_("Fax")) );  gtk_box_pack_start ( GTK_BOX ( hbox ),		       label,		       FALSE,		       FALSE,		       0 );  gtk_widget_show ( label );  fax_correspondant  = gtk_entry_new ();  gtk_box_pack_start ( GTK_BOX ( hbox ),		       fax_correspondant,		       FALSE,		       FALSE,		       0 );  gtk_widget_show ( fax_correspondant );/* mise en forme des remarques */  separateur = gtk_hseparator_new ();  gtk_box_pack_start ( GTK_BOX ( vbox2 ),		       separateur,		       FALSE,		       FALSE,		       5 );  gtk_widget_show ( separateur );  hbox = gtk_hbox_new ( FALSE,			5 );  gtk_box_pack_start ( GTK_BOX ( vbox2 ),		       hbox,		       FALSE,		       FALSE,		       5 );  gtk_widget_show ( hbox );  hvbox = gtk_vbox_new ( FALSE,			 5 );    gtk_box_pack_start ( GTK_BOX ( hbox ),		       hvbox,		       FALSE,		       FALSE,		       0 );  gtk_widget_show ( hvbox );  label = gtk_label_new ( COLON(_("Notes")) );  gtk_box_pack_start ( GTK_BOX ( hvbox ),		       label,		       FALSE,		       FALSE,		       0 );  gtk_widget_show ( label );  scrolled_window = gtk_scrolled_window_new ( FALSE,					      FALSE );  gtk_scrolled_window_set_policy ( GTK_SCROLLED_WINDOW ( scrolled_window ),				   GTK_POLICY_AUTOMATIC,				   GTK_POLICY_AUTOMATIC );  gtk_box_pack_start ( GTK_BOX ( hbox ),		       scrolled_window,		       TRUE,		       TRUE,		       5 );  gtk_widget_show ( scrolled_window );  remarque_banque = gtk_text_new ( FALSE,			      FALSE );  gtk_widget_set_usize ( remarque_banque,			 FALSE,			 50 );  gtk_editable_set_editable ( GTK_EDITABLE ( remarque_banque ),			       TRUE );  gtk_container_add ( GTK_CONTAINER ( scrolled_window ),		      remarque_banque );  gtk_widget_show ( remarque_banque );/* sparation */  separateur = gtk_hseparator_new ();  gtk_box_pack_start ( GTK_BOX ( vbox ),		       separateur,		       FALSE,		       FALSE,		       5 );  gtk_widget_show ( separateur );/* ajout des bouton appliquer et annuler */  hbox_boutons_modif_banque = gtk_hbox_new ( FALSE,			0 );  gtk_widget_set_sensitive ( hbox_boutons_modif_banque,			     FALSE );  gtk_box_pack_start ( GTK_BOX ( vbox ),		       hbox_boutons_modif_banque,		       FALSE,		       FALSE,		       5 );  gtk_widget_show ( hbox_boutons_modif_banque );/*   on met ici toutes les connections qui, pour chaque changement, rendent sensitif les boutons */  gtk_signal_connect ( GTK_OBJECT ( nom_banque ),		       "changed",		       GTK_SIGNAL_FUNC ( modif_detail_banque ),		       NULL);  gtk_signal_connect ( GTK_OBJECT ( code_banque ),		       "changed",		       GTK_SIGNAL_FUNC ( modif_detail_banque ),		       NULL);  gtk_signal_connect ( GTK_OBJECT ( tel_banque ),		       "changed",		       GTK_SIGNAL_FUNC ( modif_detail_banque ),		       NULL);  gtk_signal_connect ( GTK_OBJECT ( adr_banque ),		       "changed",		       GTK_SIGNAL_FUNC ( modif_detail_banque ),		       NULL);   gtk_signal_connect ( GTK_OBJECT ( email_banque ),		       "changed",		       GTK_SIGNAL_FUNC ( modif_detail_banque ),		       NULL);  gtk_signal_connect ( GTK_OBJECT ( web_banque ),		       "changed",		       GTK_SIGNAL_FUNC ( modif_detail_banque ),		       NULL);  gtk_signal_connect ( GTK_OBJECT ( remarque_banque ),		       "changed",		       GTK_SIGNAL_FUNC ( modif_detail_banque ),		       NULL);  gtk_signal_connect ( GTK_OBJECT ( nom_correspondant ),		       "changed",		       GTK_SIGNAL_FUNC ( modif_detail_banque ),		       NULL);  gtk_signal_connect ( GTK_OBJECT ( fax_correspondant ),		       "changed",		       GTK_SIGNAL_FUNC ( modif_detail_banque ),		       NULL);  gtk_signal_connect ( GTK_OBJECT ( tel_correspondant ),		       "changed",		       GTK_SIGNAL_FUNC ( modif_detail_banque ),		       NULL);  gtk_signal_connect ( GTK_OBJECT ( email_correspondant ),		       "changed",		       GTK_SIGNAL_FUNC ( modif_detail_banque ),		       NULL);    bouton = gtk_button_new_from_stock (GTK_STOCK_CANCEL);  //bouton = gnome_stock_button ( GNOME_STOCK_BUTTON_CANCEL );  gtk_signal_connect ( GTK_OBJECT ( bouton ),		       "clicked",		       GTK_SIGNAL_FUNC ( annuler_modif_banque ),		       clist_banques_parametres );  gtk_box_pack_end ( GTK_BOX ( hbox_boutons_modif_banque ),		       bouton,		       FALSE,		       FALSE,		       5 );  gtk_widget_show ( bouton );  bouton = gtk_button_new_from_stock (GTK_STOCK_APPLY);  //bouton = gnome_stock_button ( GNOME_STOCK_BUTTON_APPLY );  gtk_signal_connect_object ( GTK_OBJECT ( bouton ),			      "clicked",			      GTK_SIGNAL_FUNC ( applique_modif_banque  ),			      GTK_OBJECT ( clist_banques_parametres ) );  gtk_box_pack_end ( GTK_BOX ( hbox_boutons_modif_banque ),		       bouton,		       FALSE,		       FALSE,		       5 );  gtk_widget_show ( bouton );  return ( vbox_pref );}