Ami du jour bonjour.

Ma question porte sur les prototypes des fonctions que l'on utilise en CALLBACK sur les fonctions g_signal_connect.

Mon problème : je vois souvent
ma_fonctioin_callback(GtkWidget* wtf, gpointer* data);
Pourquoi 2 arguments? C'est quoi ce gtkwidget? (d'où le wtf)
Je veux dire le gpointer* (apparemment équivalent à un void*) est suffisant, comment la fonction récupère bien le pointeur sur son 2ème argument? Je veux dire logiquement s'il y a un seul argument envoyé il devrait être récupéré en 1er argument...

Aussi il me semble semble qu'un simple :
ma_fonctioin_callback( gpointer* data);
marche...

Bref, avis aux connaisseur, il me semble que les callback devraient avoir une page dédiée dans les tuto mais il n'en est rien.


PS : j'ai cherché dans plusieurs cours, en anglais, en français, sur les forums et je n'ai pas trouvé. Je suis à peu près sûr que cette question a déjà été posé mais à dû se perdre dans les méandres du forum.

PPS : si vous pouvez me faire une petite piqure de rappel contre l'utilisation des variables globales car j'ai toujours un amour fou pour elles mais on me dit souvent que cela pose des problèmes et je me souviens jamais pourquoi...