Salut à tous

Bon voilà, je suis débutant en GTK et suite au click sur un bouton, j'ai besoin de faire un test sur le contenu d'un "text entry", afficher un message_dialog s'il y a erreur, si ça se passe correctement, je récupère le contenu d'un "file chooser" et je continue mon traitement.
Le problème qui se présente, c'est qu'une fois j'ai fait:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
g_signal_connect(G_OBJECT (app.pButton), "clicked", G_CALLBACK (onClick), app.pEntry[1]);
J'arrive à récupérer le texte de l'entry:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
void onClick(GtkWidget *pBtn, gpointer data)
{
 
  GtkEntry *pEntry = data;
  gchar *sText =gtk_entry_get_text(pEntry);
 
GtkWidget *pWindow = gtk_widget_get_toplevel(GTK_WIDGET(data));
 
// ici j'appelle le gtk_message_dialog
 
}
Mais après pour récupérer ce qui se trouve dans le "file_chooser", je peux même pas y accéder puisque g_connect ne reçoit qu'un pointeur à la fois. J'ai besoin de faire passer deux pointeurs sur deux widgets suite à l'émission d'un même signal d'un même bouton.

Est ce que cette manière est correcte à utiliser??
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
g_signal_connect(G_OBJECT (app.pButton), "clicked", G_CALLBACK (onClick1), app.pEntry[1]);
g_signal_connect(G_OBJECT (app.pButton), "clicked", G_CALLBACK (onClick2), app.fileChooser);
Ou est ce qu'il y a une bonne manière pour y arriver ?

A savoir que j'utilise une structure pour rassembler mes widgets:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
struct _fenetre{
GtkWidget *pWindow;
GtkWidget *pVBox;
GtkWidget *pVtree;
GtkWidget *pHBox[3];
GtkWidget *pButton;
GtkWidget *pEntry[4];
GtkWidget *pLabel[4];
GtkWidget *fileChooser;
};

Merci d'avance pour toutes les réponses