« Programmation GTK/Théorie des signaux et des rappels » : différence entre les versions

Contenu supprimé Contenu ajouté
Tavernierbot (discussion | contributions)
STyx (discussion | contributions)
m wikifié
Ligne 14 :
void callback_func(GtkWidget *widget, gpointer *callback_data);
 
Où le premier paramètre sera un pointeur vers le widget qui a émis le signal, et le second un pointeur vers les données passées par le dernier paramètre de la fonction <code>gtk_signal_connect()</code> décrite plus haut.
 
Un autre appel utilisé dans l'exemple « Bonjour tout le monde » est :
Ligne 23 :
GtkObject *slot_object);
 
<code>gtk_signal_connect_object()</code> est la même chose que <code>gtk_signal_connect()</code> sauf que la fonction de rappel utilise un seul paramètre : un pointeur vers un objet GTK. Lorsqu'on utilise cette fonction pour connecter des signaux, le rappel doit être de cette forme :
 
void callback_func (GtkObject *object);
Ligne 29 :
Où l'objet est d'ordinaire un widget. En général, on ne configure pas de rappels pour gtk_signal_connect_object. D'habitude, ceux-ci sont utilisés pour appeler une fonction GTK acceptant un simple widget ou objet comme paramètre, comme dans notre exemple.
 
La raison pour laquelle il y a deux fonctions pour connecter les signaux est simplement de permettre aux fonctions de rappel d'avoir un nombre différent de paramètres. De nombreuses fonctions de la bibliothèque GTK n'acceptent qu'un simple pointeur vers un GtkWidget comme paramètre et vous pouvez donc utiliser <code>gtk_signal_connect_object()</code> pour celles-ci, tandis que pour vos fonctions vous pouvez avoir besoin d'avoir de fournir plus de données aux fonctions de rappel.
 
[[Catégorie:Programmation GTK plus (livre)]]