rem: gtk_signal_connect_object  ( GTK_OBJECT ( fenetre_preferences ), "apply", GTK_SIGNAL_FUNC ( gtk_clist_unselect_all ), GTK_OBJECT ( clist_devises_parametres ));
context: GtkWidget *onglet_devises ( void ){  GtkWidget *hbox_pref, *vbox_pref, *separateur, *label, *frame, *paddingbox;  GtkWidget *scrolled_window, *vbox, *table;  GSList *liste_tmp;  gchar *titres_devise [3] = { _("Currency"),			       _("ISO Code"),			       _("Sign") };  GtkWidget *bouton;  GtkWidget *hbox;  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);  clist_devises_parametres = gtk_clist_new_with_titles ( 3, titres_devise );  gtk_clist_set_column_auto_resize ( GTK_CLIST ( clist_devises_parametres ) ,				      0, TRUE );  gtk_clist_set_column_auto_resize ( GTK_CLIST ( clist_devises_parametres ) ,				      1, TRUE );  gtk_clist_set_column_auto_resize ( GTK_CLIST ( clist_devises_parametres ) ,				      2, TRUE );  gtk_clist_column_titles_passive ( GTK_CLIST ( clist_devises_parametres ));  gtk_clist_set_column_justification ( GTK_CLIST ( clist_devises_parametres ),				       1, GTK_JUSTIFY_CENTER);  gtk_clist_set_column_justification ( GTK_CLIST ( clist_devises_parametres ),				       2, GTK_JUSTIFY_CENTER);  gtk_signal_connect_object  ( GTK_OBJECT ( fenetre_preferences ), "apply",			       GTK_SIGNAL_FUNC ( gtk_clist_unselect_all ),			       GTK_OBJECT ( clist_devises_parametres ));  gtk_container_add ( GTK_CONTAINER ( scrolled_window ),		      clist_devises_parametres );  gtk_box_pack_start ( GTK_BOX ( hbox ), scrolled_window,		       TRUE, TRUE, 0);  /*   s'il n'y a pas de fichier ouvert, on grise */  if ( !nb_comptes )    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;	  gchar *ligne[3];	  gint ligne_insert;	  devise = liste_tmp -> data;	  ligne[0] = devise -> nom_devise;	  ligne[1] = devise -> code_iso4217_devise;	  ligne[2] = devise -> code_devise;	  ligne_insert = gtk_clist_append ( GTK_CLIST ( clist_devises_parametres ),					    ligne );	  /* on associe à la ligne la struct de la devise */	  gtk_clist_set_row_data ( GTK_CLIST ( clist_devises_parametres ),				   ligne_insert,				   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 ( GTK_OBJECT ( bouton ),		       "clicked",		       GTK_SIGNAL_FUNC  ( ajout_devise ),		       clist_devises_parametres );  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_widget_set_sensitive ( bouton_supprimer_devise, FALSE );  gtk_signal_connect ( GTK_OBJECT ( bouton_supprimer_devise ),		       "clicked",		       GTK_SIGNAL_FUNC  ( retrait_devise ),		       clist_devises_parametres );  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 );  gtk_table_attach ( GTK_TABLE ( table ),		     entree_nom_devise_parametres, 		     1, 2, 0, 1, 		     GTK_EXPAND | GTK_FILL, 0,		     0, 0 );  /* 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 );  gtk_table_attach ( GTK_TABLE ( table ),		     entree_code_devise_parametres, 		     1, 2, 1, 2,		     GTK_EXPAND | GTK_FILL, 0,		     0, 0 );  /* 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 );  gtk_table_attach ( GTK_TABLE ( table ),		     entree_iso_code_devise_parametres, 		     1, 2, 2, 3,		     GTK_EXPAND | GTK_FILL, 0,		     0, 0 );  /* Will switch to Euro? */  check_button_euro = new_checkbox_with_title( _("Will switch to Euro"), NULL, 					       ((GCallback) change_passera_euro) );  gtk_box_pack_start ( GTK_BOX ( paddingbox ), check_button_euro,		       FALSE, FALSE, 0);  /* Création de la ligne devise associée */  hbox_devise_associee = gtk_hbox_new ( FALSE, 5 );  gtk_box_pack_start ( GTK_BOX ( paddingbox ), hbox_devise_associee,		       FALSE, FALSE, 0);  label = gtk_label_new ( COLON(_("Associated currency")) );  gtk_box_pack_start ( GTK_BOX ( hbox_devise_associee ), label,		       FALSE, FALSE, 0);  option_menu_devises = gtk_option_menu_new ();  gtk_box_pack_start ( GTK_BOX ( hbox_devise_associee ), option_menu_devises,		       FALSE, FALSE, 0);  g_signal_connect ( GTK_OBJECT ( GTK_OPTION_MENU ( option_menu_devises )),		     "changed", G_CALLBACK ( changement_devise_associee ), 		     clist_devises_parametres );  /* Création de la ligne de change entre les devises */  label_date_dernier_change = gtk_label_new ( NULL );  gtk_box_pack_start ( GTK_BOX ( paddingbox ), label_date_dernier_change,		       FALSE, FALSE, 0);  /* Création de la ligne du change */  hbox_ligne_change = gtk_hbox_new ( FALSE, 5 );  gtk_box_pack_start ( GTK_BOX ( paddingbox ), hbox_ligne_change,		       FALSE, FALSE, 0);  label = gtk_label_new ( POSTSPACIFY(_("One")) );  gtk_box_pack_start ( GTK_BOX ( hbox_ligne_change ), label,		       FALSE, FALSE, 0);  devise_1 = gtk_option_menu_new ();  gtk_box_pack_start ( GTK_BOX ( hbox_ligne_change ), devise_1,		       FALSE, FALSE, 0);  label = gtk_label_new ( SPACIFY(_("costs")) );  gtk_box_pack_start ( GTK_BOX ( hbox_ligne_change ), label,		       FALSE, FALSE, 0);  entree_conversion = new_spin_button ( NULL, 					0, G_MAXDOUBLE, 					1, 5, 5, 					2, 6, (GCallback) change_rate_date );  gtk_widget_set_usize ( entree_conversion, 100, FALSE );  gtk_box_pack_start ( GTK_BOX ( hbox_ligne_change ), entree_conversion,		       FALSE, FALSE, 0);  devise_2 = gtk_option_menu_new ();  gtk_box_pack_start ( GTK_BOX ( hbox_ligne_change ), devise_2,		       FALSE, FALSE, 0);  /* Select first entry if applicable */  gtk_clist_select_row ( GTK_CLIST(clist_devises_parametres), 0, 0 );   return ( vbox_pref );}