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 :

Bug button press event.


Sujet :

GTK+ avec C & C++

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 71
    Par défaut Bug button press event.
    Bonjour,

    J'ai une fonction qui est reliée à un button press event:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    _signal_connect(root_node->treeviewIHM, "button-press-event", G_CALLBACK(CB_button_press),  NULL);
    dans un tree.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    void CB_button_press(GtkWidget *tree, GdkEventButton *event, gpointer user_data)
    {
    	GtkWidget *popupmenu = NULL;
    	press_event_type = event;
    	printf("pres_event\n");
     
    //	if((press_event_type->button == 1))
    //	{
    //		printf("toto \n");
    //	}
    	if((press_event_type->button == 2))
    	{
    		fait des trucs...
    	}
    	else if((press_event_type->button == 3))
    	{
                          fait d autres trucs...
    	}
     
    }
    Lorsque je désactive les printf les fonctions semblent inactives. Les printfs que j'ai placé ici, sont utilisés pour du debug j'aimerais à terme les supprimer...
    Avez vous des informations sur ce bug, peut être que je fais quelque chose de mauvais ?

    Merci pour toutes aides.

  2. #2
    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
    Par défaut
    Bonjour,
    tu testes le bouton qui a été appuyé, mais pas le type d'évènement reçu.
    Lis la documentation du signal button-press-event et celle de GdkEventButton. Tu dois tester le type d'évènement et le bouton qui l'a causé.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if (event->type == GDK_BUTTON_PRESS && event->button == 1)
       ...

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 71
    Par défaut
    A priori, ce n'est pas la solution, je viens de tester, ça ne résout pas le problème. Et puis en insérant les printf tout se passe normalement, sans même tester le type d'évènement.

    J'utilise aussi une callback avec un signal "changed" sur l'arbre. Peut il y avoir des conflits ?

    Sinon je penche pour un problème de mémoire, mais là va falloir creuser plus profond.

    Quoi qu'il en soit, merci pour le tuyau Liberforce

  4. #4
    Expert confirmé
    Avatar de gerald3d
    Homme Profil pro
    Conducteur de train
    Inscrit en
    Février 2008
    Messages
    2 308
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Conducteur de train
    Secteur : Transports

    Informations forums :
    Inscription : Février 2008
    Messages : 2 308
    Billets dans le blog
    5
    Par défaut
    Le prototype de ton CALLBACK n'est pas du type void. Il doit renvoyer un booleen.
    • FALSE pour laisser propager le signal à d'autres fonctions.
    • TRUE pour stopper la propagation.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 71
    Par défaut
    Tout à fait, entre temps j'avais remarqué mon erreur et modifié cela, mais ça ne résout pas le bug.

Discussions similaires

  1. FRM-40735 (When button pressed) ORA-01403
    Par miss_poopoucy dans le forum Forms
    Réponses: 1
    Dernier message: 17/09/2009, 19h05
  2. When-button-pressed insert, update
    Par Darksnakes dans le forum Forms
    Réponses: 11
    Dernier message: 18/12/2008, 17h42
  3. Réponses: 4
    Dernier message: 07/08/2008, 09h34
  4. gestion de l'événement key-press-event
    Par awalter1 dans le forum GTK+ avec Python
    Réponses: 2
    Dernier message: 19/09/2007, 17h25
  5. Réponses: 2
    Dernier message: 04/06/2007, 13h53

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