salut all
j'ai besoin de passer un simple entier en parametre a une fonction callback, mais je n'y arrive pas !
voici ce que je fais :
Code :
- g_signal_connect(GTK_OBJECT(clist), "select_row", G_CALLBACK(modifier_ligne),GINT_TO_POINTER(nombre));
|
si je n'utilise pas la macro GINT_TO_POINTER j'ai une erreur à la compilation.
pour récuperer ma valeur dans la fonction callback, je fais ça :
Code :
- void ma_callback(GtkWidget * clist, gint row, gint column, gpointer data)
- {
- gint nombre = GPOINTER_TO_INT(data);
- }
|
bon clairement je me plante quelque part, car quand j'affiche la variable nombre, j'ai une valeur erronée. est-ce que quelqu'un pourrait m'aider SVP ?
merci
=================================================================
voila la solution si ça interesse quelqu'un :
1er point :
Code :
- g_signal_connect (G_OBJECT (clist), "select_row", G_CALLBACK (ma_callback), (gpointer) nombre);
|
je m'étais planté, c'est G_OBJECT et non GTK_OBJECT
2eme point :
Code :
- void ma_callback (GtkCList *clist, gint row, gint column, GdkEvent *event, (gpointer) data)
- {
- int mon_int = GPOINTER_TO_INT(data);
- ...
- }
|
le prototype était mauvais puisque j'avais oublié GdkEvent * event
voila, en espérant que ça aide quelqu'un !
Message édité par psychotek le 30-06-2004 à 16:44:14