Bonjour,

Tout d'abord bonjour à toutes & tous, je débute sur ce forum mais également avec GTK

Voici ma question et merci d'avance pour votre aide :

Je souhaite passer deux pointeurs à une fonction callback appelée par un g_signal_connect. Je n'ai pas d'erreur de compilation, mais je ne récupère pas les mêmes adresses, une fois transmises à la fonction (voir les 2x2 printf) :

(Le but est de synchroniser une glissière et une barre de progression)

Dans le header :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
typedef struct DeuxPointeurs DeuxPointeurs;
struct DeuxPointeurs
{
    GtkWidget* pSource;
    GtkWidget* pCible;
};
Dans le main :

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
DeuxPointeurs stGliss1_Barre2;
DeuxPointeurs* pGliss1_Barre2 = &stGliss1_Barre2;
 
stGliss1_Barre2.pCible = gtk_progress_bar_new();
stGliss1_Barre2.pSource = gtk_hscale_new_with_range(0, 1, 0.01);
 
printf("Adresse 1 : %d \n",pGliss1_Barre2->pSource);
printf("Adresse 2 : %d \n",pGliss1_Barre2->pCible);
 
g_signal_connect(G_OBJECT(stGliss1_Barre2.pSource), "value-changed", G_CALLBACK(fStatutGliss_1),pGliss1_Barre2);
 
void fStatutGliss_1(DeuxPointeurs* data)
{
    printf("Adr data : %d \n",data->pSource);
    printf("Adr data : %d \n",data->pCible);
}