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+] Event Mouse coordonnée


Sujet :

GTK+ avec C & C++

  1. #1
    Membre confirmé
    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
    Par défaut [GTK+] Event Mouse coordonnée
    Bonjour,
    J'ai une gtk_drawing_area_new et j'aimerais quand mon curseur souris la survole avoir les coordonnées de la souris dans cette drawing area (X et Y) pour pouvoir les afficher dans un label
    Sauf que je ne sais pas s'il y a un signal adapté on mouse over ou un truc du genre...
    J'ai pas trouvé sur le net,

    Une autre solution un peu crado serait de tenter de faire un mouse entry (capter quand mon curseur rentre sur la drawing area et pooler comme un dingue avec un thread pour capter la position curseur (gtk_widget_get_pointer), mais j'aimerais bien faire un truc propre :p

  2. #2
    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
    Gtk+ te permet de récupérer les coordonnées du pointeur.
    Pour ce faire il faut autoriser le GtkDrawingArea à écouter le signal "motion-notify-event" avec la fonction gtk_widget_set_events();. Tu connectes ensuite ce signal à un CALLBACK avec ce prototype.
    Enfin, dans le CALLBACK tu récupères les coordonnées du pointeur et d'autres informations avec le pointeur GdkEventMotion *event.

  3. #3
    Membre confirmé
    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
    Par défaut
    Donc:
    Dans mon .h:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    gboolean OnMouseMove (GtkWigdet *i_px_widget, GdkEventMotion *i_px_event, gpointer i_px_data);

    dans mon .c
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    gboolean OnMouseMove (GtkWigdet *i_px_widget, GdkEventMotion *i_px_event, gpointer i_px_data)
    {
    	i_px_widget = NULL;
    	i_px_data= NULL;
    	printf("X: %d, Y: %d\n",i_px_event->x,i_px_event->y);
    }

    un peu plus loin:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    g_x_TabDOP->pAirPopup[i_i_element][i] = gtk_drawing_area_new ();
    gtk_widget_add_sevents(g_x_TabDOP->pAirPopup[i_i_element][i], GTK_POINTER_MOTION_MASK);
    g_signal_connect (G_OBJECT (g_x_TabDOP->pAirPopup[i_i_element][i]), "motion-notify-event",
    G_CALLBACK (OnMouseMove), GINT_TO_POINTER(i));
    Je fais des erreurs?
    Par contre il doit y des magic-includes qq part car il déteste mon GdkEventMotion et mon GTK_POINTER_MOTION_MASK
    J'ai ceux la:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    #include <gtk/gtk.h>
    #include <gdk/gdkkeysyms.h>
    Je suppose qu'il y a un autre gdk/qqchose?

    Merci pour ton aide en tout cas!

  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
    Non. Normalement "gtk/gtk.h" suffit.

  5. #5
    Membre confirmé
    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
    Par défaut
    Arf je l'ai celui là pourtant:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    gboolean OnMouseMove (GtkWigdet *i_px_widget, GdkEventMotion *i_px_event, gpointer i_px_data);
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    INC/monheader.h:28: erreur: expected ‘)’ before ‘*’ token

  6. #6
    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
    Es-tu sous Windows?

  7. #7
    Membre confirmé
    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
    Par défaut
    Non mon général!
    Fédora Core 11 Leonidas



    This is spaaarta!

    (dsl pour le flood)

  8. #8
    Membre expérimenté

    Inscrit en
    Mai 2005
    Messages
    132
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 132
    Par défaut
    Salut,

    gboolean OnMouseMove (GtkWigdet *i_px_widget, GdkEventMotion *i_px_event, gpointer i_px_data);

    c'est quoi "GtkWigdet" ? (GtkWidget est un peu plus correct)

    Fredy

  9. #9
    Membre confirmé
    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
    Par défaut
    S'te honte

    Pareil c'est GDK_POINTER_MOTION_MASK et pas GTK_POINTER_MOTION_MASK

    /me se cache (j'vais arrêter l'alcool promis)
    Merci!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Débutant] Mouse Coordonnées + Auto clique
    Par Trusty823 dans le forum Visual Studio
    Réponses: 0
    Dernier message: 20/07/2013, 17h19
  2. Event Mouse pour récupérer position de la souris
    Par pledger dans le forum Interfaces Graphiques en Java
    Réponses: 1
    Dernier message: 14/03/2012, 14h43
  3. [GTK+] Event Bouton appuyé
    Par Skarsnick dans le forum GTK+ avec C & C++
    Réponses: 19
    Dernier message: 26/08/2009, 12h53
  4. [Event] Mouse motion -> MOUSEUP
    Par Math3o dans le forum SDL
    Réponses: 2
    Dernier message: 23/02/2008, 19h34
  5. Bouton inactif et mouse event
    Par poulette dans le forum MFC
    Réponses: 2
    Dernier message: 03/02/2005, 14h18

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