GTK détruire parent

Résolu
Signaler
Messages postés
10
Date d'inscription
mercredi 21 février 2007
Statut
Membre
Dernière intervention
27 mai 2007
-
Messages postés
10
Date d'inscription
mercredi 21 février 2007
Statut
Membre
Dernière intervention
27 mai 2007
-
Bonjour à tous:)

Je programme une petite application en C, avec une interface graphique en GTK;
En gros: il y-a une fenetre principale; en appuyant sur un bouton, on ouvre une fenêtre "secondaire".
Sur cette fenêtre secondaire, j'ai mis un bouton. J'aimerais que quant on appuie sur ce bouton la fenetre secondaire se ferme (son parent en fait). Mais je n'arrive qu'à détruire le bouton (au lieu de la fenetre).

Existe t-il une fonction gtk pour détruire un parent? Ou faut t-il utiliser les pointeurs? Comment faire?

Merci,

le code: 


g_signal_connect(G_OBJECT(button8), "clicked", G_CALLBACK(Annuler), NULL);

et 


void Annuler(GtkWidget *pEntry, gpointer data)
{
gtk_widget_destroy(pEntry);

}

3 réponses

Messages postés
2023
Date d'inscription
mardi 24 septembre 2002
Statut
Membre
Dernière intervention
28 juillet 2008
5
g_signal_connect(G_OBJECT(button8), "clicked", G_CALLBACK(Annuler), (gpointer) ta_fenetre_secondaire);















void Annuler(GtkWidget *pEntry, gpointer data)
{
GtkWidget * pParent = GTK_WIDGET(data);
gtk_widget_destroy(pParent);

}





Ps: j'ai un doute sur la macro de conversion. Si ca marche pas, ya toujours cette solution: (bcp moins sure car aucun test n'est fait)
GtkWidget * pParent = (GtkWidget*)data;
Messages postés
10
Date d'inscription
mercredi 21 février 2007
Statut
Membre
Dernière intervention
27 mai 2007

Il y-a aussi cette fonction:

void Annuler(GtkWidget *pEntry, gpointer data)
{
    GtkWidget *toplevel = gtk_widget_get_toplevel (widget);
    if(GTK_WIDGET_TOPLEVEL (toplevel))
        gtk_widget_destroy(toplevel);
}
Messages postés
10
Date d'inscription
mercredi 21 février 2007
Statut
Membre
Dernière intervention
27 mai 2007

Ta fonction marche très bien; Merci beaucoup luthor :)