IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

GTK+ avec C & C++ Discussion :

[GTK+] Signal lors de la fermeture d'une fenêtre secondaire


Sujet :

GTK+ avec C & C++

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2007
    Messages : 110
    Points : 56
    Points
    56
    Par défaut [GTK+] Signal lors de la fermeture d'une fenêtre secondaire
    Bonjour
    Dans mon projet GTK, je crée une fenêtre secondaire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    g_x_Tab->pPopup[0] = gtk_dialog_new_with_buttons("Histogrammes",GTK_WINDOW(pWindow),GTK_DIALOG_DESTROY_WITH_PARENT,NULL);
    g_signal_connect(G_OBJECT(g_x_Tab->pPopup[0]), "destroy", G_CALLBACK(IHM_LEC_DOPOnPopupDestroy),GINT_TO_POINTER(0));
    Et je dois faire une erreur quelque part car lorsque je ferme ma fenêtre secondaire, je ne passe pas dans la fonction IHM_LEC_DOPOnPopupDestroy

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    void IHM_LEC_DOPOnPopupDestroy(GtkWidget *i_px_Button, gpointer i_px_data)
    {
    	gint l_i_device;
     
    	i_px_Button = NULL;
    	l_i_device = GPOINTER_TO_INT(i_px_data);
    	printf("toto");
    }
    Une idée de là où cela peut venir?
    Merci!

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2007
    Messages : 110
    Points : 56
    Points
    56
    Par défaut
    En faite il passe dans la fontion lors de la destruction de la fenêtre parent.
    J'en conclue qu'il ne détruire pas mes popup mais qu'il les cache.
    Une idée de l'event en question?

  3. #3
    Membre actif Avatar de Gamall
    Profil pro
    Étudiant ENSEA
    Inscrit en
    Août 2009
    Messages
    252
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant ENSEA

    Informations forums :
    Inscription : Août 2009
    Messages : 252
    Points : 221
    Points
    221
    Par défaut
    je ne sais pas si j'ai bien compris ton problème, mais il me semble qu'il faut que tu utilises le signal "delete-event" . Chez moi, quand je l'utilise, la fenetre parente ne se ferme pas.

    Je suis en train de regarder dans la doc la difference avec "destroy", mais je ne trouve pas. Je continue à chercher ...

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2007
    Messages : 110
    Points : 56
    Points
    56
    Par défaut
    Hey merci pour ton idée
    Malheureusement quand je remplace destroy par delete-event ma popup ne se ferme plus si je clic que la croix

  5. #5
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 259
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 259
    Points : 1 633
    Points
    1 633
    Par défaut
    Oui, fais attention à la valeur de retour de ton callback, il faut retourner TRUE ou FALSE pour que la fenêtre soit bien fermée.

  6. #6
    Membre actif Avatar de Gamall
    Profil pro
    Étudiant ENSEA
    Inscrit en
    Août 2009
    Messages
    252
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant ENSEA

    Informations forums :
    Inscription : Août 2009
    Messages : 252
    Points : 221
    Points
    221
    Par défaut
    En fait, j'ai du mal à comprendre ton histoire de popup.
    Pour moi, une popup, c'est une GtkWindow de type GTK_WINDOW_POPUP.

    Si c'est ta GtkDialog que tu veux detruire, il faut faire appel à gtk_widget_destroy.


    Si c'est pas ça, alors désolé, j'ai pas compris

  7. #7
    Modérateur

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2009
    Messages
    1 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2009
    Messages : 1 395
    Points : 2 002
    Points
    2 002
    Par défaut
    Je pense que tu dois te connecter au signal "response" pour une boite de dialogue: voir la doc de GtkDialog :
    « If a dialog receives a delete event, the "response" signal will be emitted with a response ID of GTK_RESPONSE_DELETE_EVENT. »

    Le delete-event, c'est ce qui te prévient que l'on tente de fermer ta boite de dialogue. Mais essaie déjà d'ajouter des boutons OK, Annuler, et/ou Fermer, ça coince déjà sans doute ici...

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2007
    Messages : 110
    Points : 56
    Points
    56
    Par défaut
    Bonjour et merci de votre aide,
    En faite j'essai justement de ne pas mettre de bouton supplémentaire.
    J'aimerais que le signal de fermeture viennent de la croix en haut à droite de la seconde fenêtre.

Discussions similaires

  1. Réponses: 2
    Dernier message: 29/03/2007, 11h26
  2. Réponses: 5
    Dernier message: 15/01/2007, 10h45
  3. Réponses: 3
    Dernier message: 24/01/2006, 11h27
  4. Evènement sur le body lors de la fermeture d'une fenêtre
    Par Yaz dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 23/09/2005, 17h54
  5. Arrêter un ttmt en cours, lors de la fermeture d'une fenêtre
    Par teska dans le forum Bases de données
    Réponses: 2
    Dernier message: 20/12/2004, 14h08

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo