[GTK+] [resolu] passer un gint en parametre d'une fonction callback

passer un gint en parametre d'une fonction callback [GTK+] [resolu] - C++ - Programmation

Marsh Posté le 27-06-2004 à 15:03:25    

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 :
  1. 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 :
  1. void ma_callback(GtkWidget * clist, gint row, gint column, gpointer data)
  2. {
  3.   gint nombre = GPOINTER_TO_INT(data);
  4. }


 
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 :
  1. 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 :
  1. void ma_callback (GtkCList *clist, gint row, gint column, GdkEvent *event, (gpointer) data)
  2. {
  3. int mon_int = GPOINTER_TO_INT(data);
  4. ...
  5. }


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
Reply

Marsh Posté le 27-06-2004 à 15:03:25   

Reply

Marsh Posté le 07-04-2008 à 16:17:45    

Merci !

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed