Bonsoir,
Je débute totalement sous GTK+ et je bute sur un problème depuis quelque jour.

J'aimerai que lorsque je clique sur un bouton, un dialogue s'ouvre avec pour informations les coordonnées du bouton cliqué. Pour cela je veux envoyer une structure comme paramètre de mon CALLBACK.
Cette structure comporte deux int x et y ainsi que d'autres variables.

Voila mon code actuel:
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
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
 
typedef struct{
        int x;
        int y;
 
/* ...autre variable ... */
 
        }position;
 
 
void OnDestroy(GtkWidget *pWidget, gpointer* pData)
{
    gtk_main_quit();
}
 
 
void fct(GtkWidget *widget, gpointer Data)
{
    GtkWidget *pAbout;
    GtkWidget *Fenetre;
 
position* ba=(position*) Data;
   gint i = (gint)ba->x;
    gint j = (gint)ba->y;
 
  Fenetre = gtk_window_new(GTK_WINDOW_TOPLEVEL);
    pAbout = gtk_message_dialog_new (GTK_WINDOW(Fenetre),
        GTK_DIALOG_MODAL,
        GTK_MESSAGE_INFO,
        GTK_BUTTONS_OK,
        "Clicked : %d-%d",
        i,j);
 
    gtk_dialog_run(GTK_DIALOG(pAbout));
    gtk_widget_destroy(pAbout);
 
}
 
 
 
int main(int argc,char **argv)
{
 
 
    GtkWidget *window;
    GtkWidget *button[2][2];
    GtkWidget *tablo;
    GtkWidget *hbox;
 
    gint a,b;
 
    position ab;
 
    gtk_init(&argc,&argv);
 
 
    window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
 
hbox = gtk_hbox_new(TRUE, 0);
    gtk_container_add(GTK_CONTAINER(window), GTK_WIDGET(hbox));
 
    tablo = gtk_table_new(2,2,TRUE);
    gtk_container_add(GTK_CONTAINER(hbox), GTK_WIDGET(tablo));
 
    for(a=0;a<2;a++)
    for(b=0;b<2;b++)
    {
    button[a][b] = gtk_button_new();     	 
       ab.x=a;
       ab.y=b;
       g_signal_connect(G_OBJECT( button[a][b] ), "clicked", G_CALLBACK(fct), &ab );
 
       gtk_table_attach(GTK_TABLE(tablo),button[a][b], a , a+1,b , b+1,0,0,0, 0);  
 
    }
 
    g_signal_connect(G_OBJECT(window), "destroy", G_CALLBACK(OnDestroy), NULL);
 
    gtk_widget_show_all(window);
 
 
    gtk_main();
 
    return EXIT_SUCCESS;
}
Merci d'avance!

---------- édit -----------

[code rectifié]Il n'y a plus de problème lors de la compilation.

Mais ça me renvoi toujours 1-1 (équivalent à la dernière modification de ab)
Comment y remédier ?