rem: g_object_set_data ( G_OBJECT(currency_list_model), "entry_name", entree_nom_devise_parametres  );
add: g_object_set_data ( G_OBJECT(currency_list_model), "entry_name", entree_nom_devise_parametres ); g_object_set_data ( G_OBJECT(entree_nom_devise_parametres), "view", currency_list_view );
context: GtkWidget *onglet_devises ( void ){    GtkWidget *vbox_pref, *label, *paddingbox, *bouton, *hbox;    GtkWidget *scrolled_window, *vbox, *table;    GSList *liste_tmp;        vbox_pref = new_vbox_with_title_and_icon ( _("Currencies"), "currencies.png" );     paddingbox = new_paddingbox_with_title (vbox_pref, TRUE, _("Known currencies"));        hbox = gtk_hbox_new ( FALSE, 5 );    gtk_box_pack_start ( GTK_BOX ( paddingbox ), hbox, TRUE, TRUE, 0);    /* Currency list */    scrolled_window = gtk_scrolled_window_new ( NULL, NULL );    gtk_scrolled_window_set_policy ( GTK_SCROLLED_WINDOW ( scrolled_window ),				     GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC);    /* Create it. */    currency_list_view = GTK_TREE_VIEW ( new_currency_tree () );    currency_list_model = gtk_tree_view_get_model ( currency_list_view );    gtk_container_add ( GTK_CONTAINER ( scrolled_window ), GTK_WIDGET(currency_list_view) );    gtk_box_pack_start ( GTK_BOX ( hbox ), scrolled_window, TRUE, TRUE, 0);    g_signal_connect ( gtk_tree_view_get_selection (GTK_TREE_VIEW ( currency_list_view ) ), 		       "changed", G_CALLBACK ( select_currency_in_iso_list ), 		       currency_list_model );    /*   s'il n'y a pas de fichier ouvert, on grise */    if ( !gsb_data_account_get_accounts_amount () )	gtk_widget_set_sensitive ( vbox_pref, FALSE );    else    {	/* remplissage de la liste avec les devises temporaires */	liste_tmp = liste_struct_devises;	while ( liste_tmp )	{	    struct struct_devise *devise;	    devise = liste_tmp -> data;	    append_currency_to_currency_list ( GTK_TREE_STORE ( currency_list_model ),					       devise );	    liste_tmp = liste_tmp -> next;	}    }    /* Create Add/Remove buttons */    vbox = gtk_vbox_new ( FALSE, 5 );    gtk_box_pack_start ( GTK_BOX ( hbox ), vbox, FALSE, FALSE, 0 );    /* Button "Add" */    bouton = gtk_button_new_from_stock (GTK_STOCK_ADD);    gtk_signal_connect_object ( GTK_OBJECT ( bouton ), "clicked",				GTK_SIGNAL_FUNC  ( ajout_devise ),				currency_list_model );    gtk_box_pack_start ( GTK_BOX ( vbox ), bouton, FALSE, FALSE, 5 );    /* Button "Remove" */    bouton_supprimer_devise = gtk_button_new_from_stock (GTK_STOCK_REMOVE);    gtk_signal_connect ( GTK_OBJECT ( bouton_supprimer_devise ), "clicked",			 GTK_SIGNAL_FUNC  ( retrait_devise ), currency_list_model );    gtk_box_pack_start ( GTK_BOX ( vbox ), bouton_supprimer_devise, FALSE, FALSE, 5 );    /* Input form for currencies */    paddingbox = new_paddingbox_with_title (vbox_pref, FALSE, _("Currency properties"));    /* Selecting a currency activates this form */    gtk_signal_connect ( GTK_OBJECT (clist_devises_parametres), "select-row",			 GTK_SIGNAL_FUNC ( selection_ligne_devise ), paddingbox );    gtk_signal_connect ( GTK_OBJECT (clist_devises_parametres), "unselect-row",			 GTK_SIGNAL_FUNC ( deselection_ligne_devise ), paddingbox );    /* Create table */    table = gtk_table_new ( 2, 2, FALSE );    gtk_table_set_col_spacings ( GTK_TABLE ( table ), 5 );    gtk_table_set_row_spacings ( GTK_TABLE ( table ), 5 );    gtk_box_pack_start ( GTK_BOX ( paddingbox ), table, TRUE, TRUE, 0 );    /* Create currency name entry */    label = gtk_label_new (COLON(_("Name")));    gtk_misc_set_alignment (GTK_MISC (label), 0, 1);    gtk_label_set_justify ( GTK_LABEL(label), GTK_JUSTIFY_RIGHT );    gtk_table_attach ( GTK_TABLE ( table ), label, 0, 1, 0, 1,		       GTK_SHRINK | GTK_FILL, 0, 0, 0 );    entree_nom_devise_parametres = new_text_entry ( NULL, (GCallback) changement_nom_entree_devise, NULL );    gtk_table_attach ( GTK_TABLE ( table ), entree_nom_devise_parametres, 1, 2, 0, 1, 		       GTK_EXPAND | GTK_FILL, 0, 0, 0 );    g_object_set_data ( G_OBJECT(currency_list_model), "entry_name", 			entree_nom_devise_parametres  );    /* Create code entry */    label = gtk_label_new (COLON(_("Sign")));    gtk_misc_set_alignment (GTK_MISC (label), 0, 1);    gtk_label_set_justify ( GTK_LABEL(label), GTK_JUSTIFY_RIGHT );    gtk_table_attach ( GTK_TABLE ( table ), label, 0, 1, 1, 2,		       GTK_SHRINK | GTK_FILL, 0, 0, 0 );    entree_code_devise_parametres = new_text_entry ( NULL, (GCallback) changement_code_entree_devise, NULL );    gtk_table_attach ( GTK_TABLE ( table ), entree_code_devise_parametres, 1, 2, 1, 2,		       GTK_EXPAND | GTK_FILL, 0, 0, 0 );    g_object_set_data ( G_OBJECT(currency_list_model), "entry_code", 			entree_code_devise_parametres  );    /* Create code entry */    label = gtk_label_new ( COLON(_("ISO code")) );    gtk_misc_set_alignment (GTK_MISC (label), 0, 1);    gtk_label_set_justify ( GTK_LABEL(label), GTK_JUSTIFY_RIGHT );    gtk_table_attach ( GTK_TABLE ( table ), label, 0, 1, 2, 3,		       GTK_SHRINK | GTK_FILL, 0, 0, 0 );    entree_iso_code_devise_parametres = new_text_entry ( NULL, (GCallback) changement_iso_code_entree_devise, NULL );    gtk_table_attach ( GTK_TABLE ( table ), entree_iso_code_devise_parametres, 1, 2, 2, 3,		       GTK_EXPAND | GTK_FILL, 0, 0, 0 );    g_object_set_data ( G_OBJECT(currency_list_model), "entry_iso_code", 			entree_iso_code_devise_parametres  );    return ( vbox_pref );}