;) jvais test ça, c'est pas mal, merci souviron, j'uis c** j'avais pas pensé à double pointer le pixbuf tout simplement :aie:Citation:
Envoyé par souviron34
Version imprimable
;) jvais test ça, c'est pas mal, merci souviron, j'uis c** j'avais pas pensé à double pointer le pixbuf tout simplement :aie:Citation:
Envoyé par souviron34
C'est quoi se bidouillage :koi:
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:void callback (GtkWidget *, gpointer);
Tu veux retrouver ton GdkPixbuf dans ta fonction callback :
Code:
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; }
:mrgreen: 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 ...Citation:
Envoyé par gege2061
;) 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...