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 !
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 : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 typedef struct { int a; char * sz_str; } my_st;
Ca te vas ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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); }
Mon Site
Ma bibliothèque de gestion des chaînes de caractères en C
L'imagination est plus importante que le savoir. A. Einstein
Je ne répond à aucune question technique par MP, merci d'avance !
Partager