Comment connecter le même signal deux fois ?
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:
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:
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:
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:
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 :)