add: gtk_widget_show ( widget_formulaire_operations[10] );
context:  void completion_operation_par_tiers ( void ) {  GSList *liste_tmp;  struct struct_tiers *tiers;  struct structure_operation *operation;  GSList *pointeur_ope;  /* s'il y a quelque chose dans les entres dbit/crdit ou catgories, on se barre */  if ( gtk_widget_get_style ( widget_formulaire_operations[3] ) == style_entree_formulaire[0]       ||       gtk_widget_get_style ( widget_formulaire_operations[4] ) == style_entree_formulaire[0]       ||       gtk_widget_get_style ( GTK_COMBOFIX (widget_formulaire_operations[8])->entry ) == style_entree_formulaire[0] )    return;  /* recherche le tiers demand */  liste_tmp = g_slist_find_custom ( liste_struct_tiers,				    g_strstrip ( gtk_combofix_get_text ( GTK_COMBOFIX ( widget_formulaire_operations[2] ))),				    ( GCompareFunc ) recherche_tiers_par_nom );  /*   si nouveau tiers,  on s'en va simplement */  if ( !liste_tmp )    return;  tiers = liste_tmp -> data;  /* on fait d'abord le tour du compte courant pour recherche une op avec ce tiers */  /* s'il n'y a aucune op correspondante, on fait le tour de tous les comptes */  p_tab_nom_de_compte_variable = p_tab_nom_de_compte_courant;  operation = NULL;  pointeur_ope = LISTE_OPERATIONS;  while ( pointeur_ope )    {      struct structure_operation *ope_test;      ope_test = pointeur_ope -> data;      if ( ope_test -> tiers == tiers -> no_tiers )	{	  if ( operation )	    {	      if ( g_date_compare ( ope_test -> date,				    operation -> date ) >= 0 )		operation = ope_test;	    }	  else	    operation = ope_test;	}      pointeur_ope = pointeur_ope -> next;    }  if ( !operation )    {      /* aucune opration correspondant  ce tiers n'a t trouve dans le compte courant */      /*       on recherche dans les autres comptes, la premire trouve fera l'affaire */      gint i;      p_tab_nom_de_compte_variable = p_tab_nom_de_compte;      for ( i = 0 ; i < nb_comptes ; i++ )	{	  if ( i != compte_courant )	    {	      pointeur_ope = LISTE_OPERATIONS;	      while ( pointeur_ope )		{		  struct structure_operation *ope_test;		  ope_test = pointeur_ope -> data;		  if ( ope_test -> tiers == tiers -> no_tiers )		    {		      operation = ope_test;		      pointeur_ope = NULL;		      i = nb_comptes;		    }		  else		    pointeur_ope = pointeur_ope -> next;		}	    }	  p_tab_nom_de_compte_variable++;	}    }  /* si on n'a trouv aucune opration, on se tire */  if ( !operation )    return;  /* remplit les diffrentes entres du formulaire */  p_tab_nom_de_compte_variable = p_tab_nom_de_compte_courant;  /* remplit les montant */  if ( operation -> montant < 0 )    {      entree_prend_focus ( widget_formulaire_operations[3] );      gtk_entry_set_text ( GTK_ENTRY ( widget_formulaire_operations[3] ),			   g_strdup_printf ( "%4.2f",					     -operation -> montant ));      /* met le menu des types dbits */      if ( !etat.affiche_tous_les_types )	{	  GtkWidget *menu;	  if ( (menu = creation_menu_types ( 1, compte_courant, 0  )))	    {	      gtk_option_menu_set_menu ( GTK_OPTION_MENU ( widget_formulaire_operations[9] ),					 menu );	      gtk_widget_show ( widget_formulaire_operations[9] );	    }	  else	    gtk_widget_hide ( widget_formulaire_operations[9] );	}    }  else    {      entree_prend_focus ( widget_formulaire_operations[4] );      gtk_entry_set_text ( GTK_ENTRY ( widget_formulaire_operations[4] ),			   g_strdup_printf ( "%4.2f",					     operation -> montant ));      /* met le menu des types crdits */      if ( !etat.affiche_tous_les_types )	{	  GtkWidget *menu;	  if ( (menu = creation_menu_types ( 2, compte_courant, 0 )))	    {	      gtk_option_menu_set_menu ( GTK_OPTION_MENU ( widget_formulaire_operations[9] ),					 menu );	      gtk_widget_show ( widget_formulaire_operations[9] );	    }	  else	    gtk_widget_hide ( widget_formulaire_operations[9] );	}    }  /* met la devise */  gtk_option_menu_set_history ( GTK_OPTION_MENU ( widget_formulaire_operations[5] ),				g_slist_position ( liste_struct_devises,						   g_slist_find_custom ( liste_struct_devises,									 GINT_TO_POINTER ( operation -> devise ),									 ( GCompareFunc ) recherche_devise_par_no )));  /* mise en forme des catgories */  if ( operation -> operation_ventilee )    {      GtkWidget *dialog;      GtkWidget *label;      gint result;      entree_prend_focus ( widget_formulaire_operations[8] );      /* c'est une op ventile, la catgorie est Opration ventile */      /* on demande si on veut rcuprer les anciennes ops de ventilation */      gtk_combofix_set_text ( GTK_COMBOFIX ( widget_formulaire_operations[8] ),			      _("Opration ventile") );      gtk_widget_show ( widget_formulaire_operations[14] );      /* affiche la question de rcupration */      dialog = gnome_dialog_new ( _("Rcupration des ventilations ?"),				  GNOME_STOCK_BUTTON_YES,				  GNOME_STOCK_BUTTON_NO,				  NULL );      gtk_window_set_transient_for ( GTK_WINDOW ( dialog ),				     GTK_WINDOW ( window ));      label = gtk_label_new ( _("Voulez-vous rcuprer aussi les oprations de la dernire ventilation ?") );      gtk_box_pack_start ( GTK_BOX ( GNOME_DIALOG ( dialog ) -> vbox ),			   label,			   FALSE,			   FALSE,			   5 );      gtk_widget_show ( label );      result = gnome_dialog_run_and_close ( GNOME_DIALOG ( dialog ));      if ( !result )	{	  /* rcupration des anciennes ops de la ventilation */	  GSList *liste_des_opes_de_ventilation;	  liste_des_opes_de_ventilation = NULL;	  pointeur_ope = LISTE_OPERATIONS;	  while ( pointeur_ope )	    {	      struct structure_operation *ope_test;	      ope_test = pointeur_ope -> data;	      if ( ope_test -> no_operation_ventilee_associee == operation -> no_operation )		{		  struct structure_operation *nouvelle_operation;		  nouvelle_operation = calloc ( 1,						sizeof ( struct structure_operation ));		  nouvelle_operation -> no_compte = ope_test -> no_compte;		  nouvelle_operation -> montant = ope_test -> montant;		  nouvelle_operation -> categorie = ope_test -> categorie;		  nouvelle_operation -> sous_categorie = ope_test -> sous_categorie;		  if ( ope_test -> notes )		    nouvelle_operation -> notes = g_strdup ( ope_test -> notes );		  else		    nouvelle_operation -> notes = NULL;		  nouvelle_operation -> type_ope = ope_test -> type_ope;		  if ( ope_test -> contenu_type )		    nouvelle_operation -> contenu_type = g_strdup ( ope_test -> contenu_type );		  else		    nouvelle_operation -> contenu_type = NULL;		  nouvelle_operation -> no_exercice = ope_test -> no_exercice;		  nouvelle_operation -> imputation = ope_test -> imputation;		  nouvelle_operation -> sous_imputation = ope_test -> sous_imputation;		  if ( ope_test -> no_piece_comptable )		    nouvelle_operation -> no_piece_comptable = g_strdup ( ope_test -> no_piece_comptable );		  else		    nouvelle_operation -> no_piece_comptable = NULL;		  if ( ope_test -> info_banque_guichet )		    nouvelle_operation -> info_banque_guichet = g_strdup ( ope_test -> info_banque_guichet );		  else		    nouvelle_operation -> info_banque_guichet = NULL;		  nouvelle_operation -> devise = 1;		  nouvelle_operation -> jour = 1;		  nouvelle_operation -> mois = 1;		  nouvelle_operation -> annee = 2000;		  /* on met la relation  -1 pour qu'elle puisse etre retrouve lors de l'dition des ventilations */		  nouvelle_operation -> no_operation_ventilee_associee = -1;		  nouvelle_operation -> date = g_date_new_dmy ( nouvelle_operation -> jour,								nouvelle_operation -> mois,								nouvelle_operation -> annee );		  ajout_operation ( nouvelle_operation );		  if ( ope_test -> relation_no_operation )		    {		      /* c'est un virement, on cre la contre opration */		      struct structure_operation *contre_nouvelle_operation;		      contre_nouvelle_operation = calloc ( 1,							   sizeof ( struct structure_operation ));		      contre_nouvelle_operation -> no_compte = ope_test -> relation_no_compte;		      contre_nouvelle_operation -> montant = -ope_test -> montant;		      if ( ope_test -> notes )			contre_nouvelle_operation -> notes = g_strdup ( ope_test -> notes );		      else			contre_nouvelle_operation -> notes = NULL;		      contre_nouvelle_operation -> type_ope = ope_test -> type_ope;		      if ( ope_test -> contenu_type )			contre_nouvelle_operation -> contenu_type = g_strdup ( ope_test -> contenu_type );		      else			contre_nouvelle_operation -> contenu_type = NULL;		      contre_nouvelle_operation -> no_exercice = ope_test -> no_exercice;		      contre_nouvelle_operation -> imputation = ope_test -> imputation;		      contre_nouvelle_operation -> sous_imputation = ope_test -> sous_imputation;		      if ( ope_test -> no_piece_comptable )			contre_nouvelle_operation -> no_piece_comptable = g_strdup ( ope_test -> no_piece_comptable );		      else			contre_nouvelle_operation -> no_piece_comptable = NULL;		      if ( ope_test -> info_banque_guichet )			contre_nouvelle_operation -> info_banque_guichet = g_strdup ( ope_test -> info_banque_guichet );		      else			contre_nouvelle_operation -> info_banque_guichet = NULL;		      contre_nouvelle_operation -> devise = 1;		      contre_nouvelle_operation -> jour = 1;		      contre_nouvelle_operation -> mois = 1;		      contre_nouvelle_operation -> annee = 2000;		      contre_nouvelle_operation -> date = g_date_new_dmy ( contre_nouvelle_operation -> jour,									   contre_nouvelle_operation -> mois,									   contre_nouvelle_operation -> annee );		      ajout_operation ( contre_nouvelle_operation );		      contre_nouvelle_operation -> relation_no_compte = compte_courant;		      contre_nouvelle_operation -> relation_no_operation = nouvelle_operation -> no_operation;		      nouvelle_operation -> relation_no_compte = ope_test -> relation_no_compte;		      nouvelle_operation -> relation_no_operation = contre_nouvelle_operation -> no_operation;		    }		  liste_des_opes_de_ventilation = g_slist_append ( liste_des_opes_de_ventilation,								   nouvelle_operation );		}	      pointeur_ope = pointeur_ope -> next;	    }	  if ( liste_des_opes_de_ventilation )	    gtk_object_set_data ( GTK_OBJECT ( formulaire ),				  "liste_adr_ventilation",				  liste_des_opes_de_ventilation );	  else	    gtk_object_set_data ( GTK_OBJECT ( formulaire ),				  "liste_adr_ventilation",				  GINT_TO_POINTER ( -1 ) );	}    }  else    if ( operation -> relation_no_operation )      {	/* c'est un virement */	entree_prend_focus ( widget_formulaire_operations[8] );	p_tab_nom_de_compte_variable = p_tab_nom_de_compte + operation -> relation_no_compte;	gtk_combofix_set_text ( GTK_COMBOFIX ( widget_formulaire_operations[8] ),				g_strconcat ( _("Virement : "),					      NOM_DU_COMPTE,					      NULL ));	p_tab_nom_de_compte_variable = p_tab_nom_de_compte_courant;      }    else      {	/* c'est des catgories normales */	liste_tmp = g_slist_find_custom ( liste_struct_categories,					  GINT_TO_POINTER ( operation -> categorie ),					  ( GCompareFunc ) recherche_categorie_par_no );	if ( liste_tmp )	  {	    GSList *liste_tmp_2;	    entree_prend_focus ( widget_formulaire_operations[8]);	    liste_tmp_2 = g_slist_find_custom ( (( struct struct_categ * )( liste_tmp -> data )) -> liste_sous_categ,						GINT_TO_POINTER ( operation -> sous_categorie ),						( GCompareFunc ) recherche_sous_categorie_par_no );	    if ( liste_tmp_2 )	      gtk_combofix_set_text ( GTK_COMBOFIX ( widget_formulaire_operations[8] ),				      g_strconcat ( (( struct struct_categ * )( liste_tmp -> data )) -> nom_categ,						    " : ",						    (( struct struct_sous_categ * )( liste_tmp_2 -> data )) -> nom_sous_categ,						    NULL ));	    else	      gtk_combofix_set_text ( GTK_COMBOFIX ( widget_formulaire_operations[8] ),				      (( struct struct_categ * )( liste_tmp -> data )) -> nom_categ );	  }      }  /* met l'option menu du type d'op */  if ( GTK_WIDGET_VISIBLE ( widget_formulaire_operations[9] ))    {      gtk_option_menu_set_history ( GTK_OPTION_MENU ( widget_formulaire_operations[9] ),				    cherche_no_menu_type ( operation -> type_ope ));      if ( operation -> type_ope )	{	  struct struct_type_ope *type;	  type = g_slist_find_custom ( TYPES_OPES,				       GINT_TO_POINTER ( operation -> type_ope ),				       (GCompareFunc) recherche_type_ope_par_no ) -> data;	  if ( type -> affiche_entree )	    {	      if ( type -> numerotation_auto )		{		  entree_prend_focus ( widget_formulaire_operations[10] );		  gtk_entry_set_text ( GTK_ENTRY (widget_formulaire_operations[10] ),				       itoa ( type -> no_en_cours + 1 ));		}	      else		if ( operation -> contenu_type )		  {		    entree_prend_focus ( widget_formulaire_operations[10] );		    gtk_entry_set_text ( GTK_ENTRY (widget_formulaire_operations[10] ),					 operation -> contenu_type );		  }	    }	}    }  /* met en place l'imputation budgtaire */  liste_tmp = g_slist_find_custom ( liste_struct_imputation,				    GINT_TO_POINTER ( operation -> imputation ),				    ( GCompareFunc ) recherche_imputation_par_no );  if ( liste_tmp )    {      GSList *liste_tmp_2;      entree_prend_focus ( widget_formulaire_operations[12]);      liste_tmp_2 = g_slist_find_custom ( (( struct struct_imputation * )( liste_tmp -> data )) -> liste_sous_imputation,					  GINT_TO_POINTER ( operation -> sous_imputation ),					  ( GCompareFunc ) recherche_sous_categorie_par_no );      if ( liste_tmp_2 )	gtk_combofix_set_text ( GTK_COMBOFIX ( widget_formulaire_operations[12] ),				g_strconcat ( (( struct struct_imputation * )( liste_tmp -> data )) -> nom_imputation,					      " : ",					      (( struct struct_sous_imputation * )( liste_tmp_2 -> data )) -> nom_sous_imputation,					      NULL ));      else	gtk_combofix_set_text ( GTK_COMBOFIX ( widget_formulaire_operations[12] ),				(( struct struct_imputation * )( liste_tmp -> data )) -> nom_imputation );    }  /* mise en place de la pice comptable */  if ( operation -> no_piece_comptable )    {      entree_prend_focus ( widget_formulaire_operations[13] );      gtk_entry_set_text ( GTK_ENTRY ( widget_formulaire_operations[13] ),			   operation -> no_piece_comptable );    }  /*   remplit les notes */  if ( operation -> notes )    {      entree_prend_focus ( widget_formulaire_operations[15] );      gtk_entry_set_text ( GTK_ENTRY ( widget_formulaire_operations[15] ),			   operation -> notes );    }  /*   remplit les infos guichet / banque */  if ( operation -> info_banque_guichet )    {      entree_prend_focus ( widget_formulaire_operations[16] );      gtk_entry_set_text ( GTK_ENTRY ( widget_formulaire_operations[16] ),			   operation -> info_banque_guichet );    } }