| 12
 3
 4
 
 | void	ConvertToUpper ( GtkWidget* entry, gboolean )
{
  int	i = 0;
  GString *p = g_string_new ( gtk_entry_get_text ( (GtkEntry*)entry ) ); | 
 Ici il crée sa variable p sur le type 
GString (tu as tous les renseignements sur ce type en suivant le lien précédent 

 )
	
	| 12
 
 |  
p = g_string_ascii_up ( p ); | 
 conversion de tous les caractères de minuscules en majuscules. Par exemple la chaine "alFrEd doRt" devient "ALFRED DORT"
	
	| 12
 3
 4
 5
 6
 
 |  
  for ( i=0; i<strlen ( p->str ); i++ )
  {
     if ( 0x20 == p->str[i] )
        p->str[i] = '_';
  } | 
 il parcourt son tableau du premier caractère jusqu'à la fin. strlen(p->str) est la fonction qui renvoie la fin de la chaine.
Lorsqu'il tombe sur le caractère de code hexa 0X20 (c est a dire l'espace) il est remplacé par le caractère '_'
	
	| 12
 3
 
 |  
  gtk_entry_set_text ( (GtkEntry*)entry, p->str );
} | 
 il remplace le contenu de la GtkEntry par la nouvelle chaine.
	
	| 12
 3
 4
 5
 6
 7
 
 |  
void
on_my_entry_changed         (GtkEditable     *editable,
                                        gpointer         user_data)
{
  ConvertToUpper ( my_entry );
} | 
 cette fonction doit etre le callback utilisé lorsque le signal "changed" est émis par le GtkEntry. A toi de te renseigner ensuite pour connecter le signal via l'utilisation de la fonction g_signal_connect(...)
	
		
			
			
				
					
 Envoyé par 
Fredy
					
				 
				Tu ne vas que tester si les symbols sont chiffres. Est-ce que c'est clair ?
			
		 
	 
 Au lieu de tester la présence d'un espace, tu n'as qu'a tester la présence de chiffres ou de lettres selon la façon dont tu prends le probleme 

Partager