rem: "draw",
add: "map",
context: void edition_echeance ( void ){  GSList *pointeur_tmp;  /*   si le formulaire est cach, on le montre */      gtk_widget_hide ( fleche_haut_echeancier );      gtk_widget_show ( fleche_bas_echeancier );      gtk_widget_show ( frame_formulaire_echeancier );      etat.formulaire_echeancier_toujours_affiche = 1;      gtk_widget_show ( frame_formulaire_echeancier );      gtk_signal_connect ( GTK_OBJECT ( frame_formulaire_echeancier ),			   "draw",			   GTK_SIGNAL_FUNC ( verifie_ligne_selectionnee_echeance_visible ),			   NULL );    /* si c'est une nouvelle chance, on met la date courante, la slectionne et lui donne le focus */  if ( echeance_selectionnnee == GINT_TO_POINTER ( -1 ))    {      entree_prend_focus ( widget_formulaire_echeancier[0] );      gtk_entry_set_text ( GTK_ENTRY ( widget_formulaire_echeancier[0] ),			   date_jour() );      gtk_entry_select_region ( GTK_ENTRY ( widget_formulaire_echeancier[0] ),				0,				-1 );      gtk_widget_grab_focus ( widget_formulaire_echeancier[0] );      return;    }  /* c'est une modif d'chance ou une saisie */  entree_prend_focus ( widget_formulaire_echeancier[0] );  gtk_entry_set_text ( GTK_ENTRY ( widget_formulaire_echeancier[0] ),		       g_strdup_printf ( "%02d/%02d/%d",					 echeance_selectionnnee -> jour,					 echeance_selectionnnee -> mois,					 echeance_selectionnnee -> annee ));    /* mise en place du tiers */  pointeur_tmp = g_slist_find_custom ( liste_struct_tiers,				       GINT_TO_POINTER ( echeance_selectionnnee -> tiers ),				       (GCompareFunc) recherche_tiers_par_no );  if ( pointeur_tmp )    {      entree_prend_focus ( widget_formulaire_echeancier[1] );      gtk_combofix_set_text ( GTK_COMBOFIX ( widget_formulaire_echeancier[1] ),			      ((struct struct_tiers *)( pointeur_tmp-> data )) -> nom_tiers );    }  /* mise en place du compte */  gtk_option_menu_set_history ( GTK_OPTION_MENU ( widget_formulaire_echeancier[5] ),				echeance_selectionnnee -> compte );  /* mise en place des montants et des types associs */  if ( echeance_selectionnnee -> montant < 0 )    {      entree_prend_focus ( widget_formulaire_echeancier[2] );      gtk_entry_set_text ( GTK_ENTRY ( widget_formulaire_echeancier[2] ),			   g_strdup_printf ( "%4.2f",					     -echeance_selectionnnee -> montant ));      /* met le menu des types dbits */      if ( !etat.affiche_tous_les_types )	{	  GtkWidget *menu;	  if ( (menu = creation_menu_types ( 1,					     GPOINTER_TO_INT ( gtk_object_get_data ( GTK_OBJECT ( GTK_OPTION_MENU ( widget_formulaire_echeancier[5] )->menu_item),										     "no_compte" )),					     1 )))	    {	      gtk_option_menu_set_menu ( GTK_OPTION_MENU ( widget_formulaire_echeancier[7] ),					 menu );	      gtk_widget_show ( widget_formulaire_echeancier[7] );	    }	  else	    gtk_widget_hide ( widget_formulaire_echeancier[7] );	}    }  else    {      entree_prend_focus ( widget_formulaire_echeancier[3] );      gtk_entry_set_text ( GTK_ENTRY ( widget_formulaire_echeancier[3] ),			   g_strdup_printf ( "%4.2f",					     echeance_selectionnnee -> montant ));      /* met le menu des types crdits */      if ( !etat.affiche_tous_les_types )	{	  GtkWidget *menu;	  if ( (menu = creation_menu_types ( 2,					     GPOINTER_TO_INT ( gtk_object_get_data ( GTK_OBJECT ( GTK_OPTION_MENU ( widget_formulaire_echeancier[5] )->menu_item),										     "no_compte" )),					     1 )))	    {	      gtk_option_menu_set_menu ( GTK_OPTION_MENU ( widget_formulaire_echeancier[7] ),					 menu );	      gtk_widget_show ( widget_formulaire_echeancier[7] );	    }	  else	    gtk_widget_hide ( widget_formulaire_echeancier[7] );	}    }  /* mise en place des devises */  gtk_option_menu_set_history ( GTK_OPTION_MENU ( widget_formulaire_echeancier[4] ),				((struct struct_devise *)(g_slist_find_custom ( liste_struct_devises,										GINT_TO_POINTER ( echeance_selectionnnee -> devise ),										(GCompareFunc) recherche_devise_par_no ) -> data )) -> no_devise - 1 );  /*   si le compte de virement est -1, c'est qu'il n'y a pas de categ */   if ( echeance_selectionnnee -> compte_virement != -1 )    {      gchar *texte;      if ( echeance_selectionnnee -> categorie )	{	  struct struct_categ *categorie;	  categorie =  g_slist_find_custom ( liste_struct_categories,					     GINT_TO_POINTER ( echeance_selectionnnee -> categorie ),					     (GCompareFunc) recherche_categorie_par_no ) ->data;	  texte = categorie -> nom_categ;	  if ( echeance_selectionnnee -> sous_categorie )	    texte = g_strconcat ( texte,				" : ",				((struct struct_sous_categ *)(g_slist_find_custom ( categorie -> liste_sous_categ,										    GINT_TO_POINTER ( echeance_selectionnnee -> sous_categorie ),										    (GCompareFunc) recherche_sous_categorie_par_no )->data)) -> nom_sous_categ,				NULL );	}      else	{	  p_tab_nom_de_compte_variable = p_tab_nom_de_compte + echeance_selectionnnee -> compte_virement;	  texte = g_strconcat ( COLON(_("Transfer")),				NOM_DU_COMPTE,				NULL );	}      entree_prend_focus ( widget_formulaire_echeancier[6] );      gtk_combofix_set_text ( GTK_COMBOFIX ( widget_formulaire_echeancier[6] ),			      texte );    }  /* met l'option menu du type d'op */  if ( GTK_WIDGET_VISIBLE ( widget_formulaire_echeancier[7] ))    gtk_option_menu_set_history ( GTK_OPTION_MENU ( widget_formulaire_echeancier[7] ),				  cherche_no_menu_type_echeancier ( echeance_selectionnnee -> type_ope ));  if ( echeance_selectionnnee -> contenu_type )    {      entree_prend_focus ( widget_formulaire_echeancier[8] );      gtk_entry_set_text ( GTK_ENTRY ( widget_formulaire_echeancier[8] ),			   echeance_selectionnnee -> contenu_type );    }  /* met en place l'exercice */  gtk_option_menu_set_history (  GTK_OPTION_MENU ( widget_formulaire_echeancier[9] ),				 cherche_no_menu_exercice ( echeance_selectionnnee -> no_exercice,							    widget_formulaire_echeancier[9] ));  /* met en place l'imputation budgtaire */  pointeur_tmp = g_slist_find_custom ( liste_struct_imputation,				    GINT_TO_POINTER ( echeance_selectionnnee -> imputation ),				    ( GCompareFunc ) recherche_imputation_par_no );  if ( pointeur_tmp )    {      GSList *pointeur_tmp_2;      entree_prend_focus ( widget_formulaire_echeancier[10]);      pointeur_tmp_2 = g_slist_find_custom ( (( struct struct_imputation * )( pointeur_tmp -> data )) -> liste_sous_imputation,					  GINT_TO_POINTER ( echeance_selectionnnee -> sous_imputation ),					  ( GCompareFunc ) recherche_sous_categorie_par_no );      if ( pointeur_tmp_2 )	gtk_combofix_set_text ( GTK_COMBOFIX ( widget_formulaire_echeancier[10] ),				g_strconcat ( (( struct struct_imputation * )( pointeur_tmp -> data )) -> nom_imputation,					      " : ",					      (( struct struct_sous_imputation * )( pointeur_tmp_2 -> data )) -> nom_sous_imputation,					      NULL ));      else	gtk_combofix_set_text ( GTK_COMBOFIX ( widget_formulaire_echeancier[10] ),				(( struct struct_imputation * )( pointeur_tmp -> data )) -> nom_imputation );    }  /* mise en place de l'automatisme */  gtk_option_menu_set_history ( GTK_OPTION_MENU ( widget_formulaire_echeancier[13] ),				echeance_selectionnnee -> auto_man );  /*   remplit les notes */  if ( echeance_selectionnnee -> notes )    {      entree_prend_focus ( widget_formulaire_echeancier[14] );      gtk_entry_set_text ( GTK_ENTRY ( widget_formulaire_echeancier[14] ),			   echeance_selectionnnee -> notes );    }  /* mise en place de la priodicit */  gtk_option_menu_set_history ( GTK_OPTION_MENU ( widget_formulaire_echeancier[15] ),				echeance_selectionnnee -> periodicite );  /* mise en place de la date limite */  if ( echeance_selectionnnee -> periodicite )    {      if ( echeance_selectionnnee ->  date_limite )	{	  entree_prend_focus ( widget_formulaire_echeancier[16] );	  gtk_entry_set_text ( GTK_ENTRY ( widget_formulaire_echeancier[16] ),			       g_strdup_printf ( "%02d/%02d/%d",						 echeance_selectionnnee ->  jour_limite,						 echeance_selectionnnee ->  mois_limite,						 echeance_selectionnnee ->  annee_limite ));	}      gtk_widget_show ( widget_formulaire_echeancier[16] );    }  /* mise en place de la priodicit perso si ncessaire */  if ( echeance_selectionnnee -> periodicite == 4 )    {      entree_prend_focus ( widget_formulaire_echeancier[17] );      gtk_entry_set_text ( GTK_ENTRY (widget_formulaire_echeancier[17] ),			   itoa ( echeance_selectionnnee ->  periodicite_personnalisee) );      gtk_option_menu_set_history ( GTK_OPTION_MENU ( widget_formulaire_echeancier[18] ),				    echeance_selectionnnee -> intervalle_periodicite_personnalisee );      gtk_widget_show ( widget_formulaire_echeancier[17] );      gtk_widget_show ( widget_formulaire_echeancier[18] );    }  /* slectionne la date et lui donne le focus */  gtk_entry_select_region ( GTK_ENTRY ( widget_formulaire_echeancier[0] ),			    0,			    -1 );  gtk_widget_grab_focus ( widget_formulaire_echeancier[0] );  /* met l'adr de l'chance courante dans l'entre de la date */  gtk_object_set_data ( GTK_OBJECT ( formulaire_echeancier ),			"adr_echeance",			echeance_selectionnnee );}