[C - GTK]Recupérer champs entry gpointer

Sawk -  
 Sawk -
Bonjour,

J'essaye de créer un formulaire avec GTK dans lequel il y aura plusieur champs ( gtk entry ) et un bouton qui envera les données qui se trouvent dans ces champs.

voici le code :

GtkWidget* formulaire_enregistrement()     
{     
        GtkWidget *table = gtk_table_new(4,2,FALSE);     
        GtkWidget *label[3];     
        GtkWidget *entry[3];     
        char* nom[3] = {"Adresse* "," Username * ","Password * "};     
        int i;     

        // initialisation des labels et entrys     
        for(i=0;i<3;i++)     
        {     
                label[i] = gtk_label_new (nom[i]);     
                gtk_table_attach(GTK_TABLE(table),label[i],0,1,i+1,i+2,GTK_SHRINK,GTK_SHRINK,0,0);     
                entry[i] = gtk_entry_new ();     
                gtk_table_attach(GTK_TABLE(table),entry[i],1,2,i+1,i+2,GTK_SHRINK,GTK_SHRINK,0,0);                     
        }     

        // on ajoute le bouton valider     
 GtkWidget valider = gtk_button_new_with_label("Valider");     
        gtk_table_attach(GTK_TABLE(table),valider,0,2,3,4,GTK_SHRINK,GTK_SHRINK, 0,0);             
        g_signal_connect(G_OBJECT(valider), "clicked", G_CALLBACK(enregistrement),(GtkEntry*)entry);     

return table;     
}   


le 4eme parametre "entry" pour g_signal_connect est un tableau de GtkEntry car j'ai pas trouver d'autre solution pour envoyer en meme temps les valeurs des champs a ma fonction 'enregistrement'.

void enregistrement(GtkWidget *widget, gpointer data)     
{     
GtkEntry** e = data     
 g_print ("[%s]\n", gtk_entry_get_text(GTK_ENTRY(e[0])));     
}   


Donc j'ai un problème concernant la recuperation des données a partir de ce gpointer data.

aidez moi svppppp !! :'(

1 réponse

Sawk
 
Problème résolu en passant par adresse une structure.
Il fallait caster en gpointer * au niveau du g_signal_connect et ensuite recuperer par adresse la structure en recastant au niveau de la fonction callback.
0