Envoyé par souviron34
jvais test ça, c'est pas mal, merci souviron, j'uis c** j'avais pas pensé à double pointer le pixbuf tout simplement
![]()
Envoyé par souviron34
jvais test ça, c'est pas mal, merci souviron, j'uis c** j'avais pas pensé à double pointer le pixbuf tout simplement
![]()
C'est quoi se bidouillage
Le prototype d'une fonction callback n'a pas à changer selon l'humeur du développeur, dans la plupart des cas c'est :
Le premier paramètre étant le widget qui a reçu le signal et le second un pointeur générique qui te permet de recevoir n'importe (je passe sur les problèmes de conversion entier <-> pointeur par exemple) quelle donnée en la spécifiant lors de la connexion du signal à l'aide de la fonction g_signal_connect.
Code : Sélectionner tout - Visualiser dans une fenêtre à part void callback (GtkWidget *, gpointer);
Tu veux retrouver ton GdkPixbuf dans ta fonction callback :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 void callback (GtkWidget *p_widget, gpointer data) { GdkPixbuf *p_pixbuf = NULL; g_return_if_fail (GDK_IS_PIXBUF (data)); p_pixbuf = GDK_PIXBUF (data); /* ... */ } int main (int argc, char **argv) { GdkPixbuf *p_pixbuf = NULL; /* ... */ g_signal_connect (G_OBJECT (object), "signal", G_CALLBACK (callback), p_pixbuf); /* ... */ gtk_main (); return 0; }
Envoyé par gege2061
oui en fait ce n'est qu'un exemple, dans mon programme, je respect cette signature "standard" (widget + gpointer), vu que comme en plus j'ai plusieurs arguments, je passe un pointeur sur une structure comme argument data dans mes callback bref ...
Merci pour ton code, mais Je sais passer un pixbuf en argument lol, mais je dois passer l'adresse du pixbuf en argument (&pixbuf) )et non pas le pointeur pixbuf lui même (c'est pour l'affichage et le rafraichissement de mon pixmap qui contient mon pixbuf)
En doublant pointant pixbuf comme souviron propose ca devrait me permettre d'éviter le cast void ** et donc de virer les warning, mais pas encore test ...
Attention, le type de retour n'est pas forcément void. J'ai déjà vu ici une erreur due à cela...
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.
"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone. -- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
Partager