Dans certaines fonction GTK on retrouve des pointeur DATA de type gpointer , alors comment exploiter ces pointeur, et quelle type de pointeur peut on utiliser a leurs place (passer comme argument au fonctions) ?
MERCI !
Version imprimable
Dans certaines fonction GTK on retrouve des pointeur DATA de type gpointer , alors comment exploiter ces pointeur, et quelle type de pointeur peut on utiliser a leurs place (passer comme argument au fonctions) ?
MERCI !
Ce n'est rien d'autre que la donnée que tu passes à la fonction g_signal_connect (le dernier argument) ! Cet argument étant de type gpointer soit void *, c'est un type générique donc qui peut contenir n'importe quel type de donnée ;)
Le tout après est de récupérer cette donnée par rapport à son type d'origine. Un exemple avec un structure passée en argument à la fonction précédement citée (enregistrement de callback):
Si on considère un pointeur sur la structure suivante passée en dernier argument de la fonction g_signal_connect:
on pourrait la récupérer comme ceci dans un callback par exemple d'un bouton:Code:
1
2
3
4
5
6
7 typedef struct { int a; char * sz_str; } my_st;
Ca te vas ?Code:
1
2
3
4
5
6
7
8 void cb_clicked (GtkWidget * wid, gpointer data) { my_st * st = data; ... /* Utilisation de la donnee recuperee: */ printf ("%s, %d\n", data->sz_str, data->a); }
Oui c'est clair MERCI !
:merci: