Bonjour,
J'ai un problème lors du traitement du deuxième paramètre passé a une fonction callback.
Une structure chaînable me sert à créer une chaîne d'eventbox contenant des labels.
J'insère au moment de leur initialisation les eventbox dans une vbox, et j' obtient une liste de labels cliquables.
Tout ça fonctionne au poil, mais lors-ce que je veux récupérer le label au clic de l'evenbox je reçoit un message que je n'arrive pas a résoudre :
pep.c: In function `ecouter':
pep.c:291: attention : déréférencement d'un pointeur « void * »
pep.c:291: erreur: requête du membre « label » dans quelque chose n'étant ni une structure ni une union
Ma structure :
Mon callback dans une fonction qui génère des nouveau maillon :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 typedef struct maillon { GtkWidget * label; GtkWidget * event; struct maillon * precedent; } maillon ;
(un pointeur sur 'maillon' s'appelant 'nouveau' est initialisé et rempli)
et la fonction :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 g_signal_connect(G_OBJECT(nouveau->event), "button_press_event", G_CALLBACK(ecouter), nouveau);
La fonction qui génère des nouveau maillon ne fait que les initialiser, les raccorder a la chaîne, et attacher le signale du clic sur l'eventbox a la fonction écouter.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 void ecouter (GtkEventBox *event, gpointer maillonclike) { if (gtk_label_get_label (GTK_LABEL (maillonclike->label)) == "test") printf ("ça fcontionne .. "); }
L'appel a la fonction écouter fonctionne bien, je l'ai testé avec un simple printf("bonjour"), mais je n'arrive pas a aller plus loin.
Voilà, je ne sais pas si j'ai réussi à être clair en cette heure tardive (ou tôdive) mais à la demande je peux peut-être poster mon programme (300 lignes) .
En vous remerciant d'éventuelles réponses :°)
Partager