Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 22/12/2009, à 17:55

Mpok

[Résolu] GTK : changer le pointeur souris

Bonjour,

J'ai un TextView dans lequel j'affiche du texte mais également des boutons.
Lorsque la souris est dans le TextView, le pointeur de souris est le pointeur classique "texte" (je ne sais pas le nom exact). Ok, c'est normal.
Mais j'aimerais faire en sorte que lorsque l'on survole les boutons (ceux qui sont dans le TextView), le pointeur de souris revienne à la flèche normale (voire la "main").
Je sais travailler avec les signaux "enter" et "leave" sur les boutons, mais le problème c'est : quelle est la fonction gtk qui modifie le pointeur souris ?
(j'ai beau parcourir la liste des fonctions gtk, j'ai rien trouvé)

Dernière modification par Mpok (Le 23/12/2009, à 03:45)

Hors ligne

#2 Le 22/12/2009, à 20:29

kevlar

Re : [Résolu] GTK : changer le pointeur souris

Tout d'abord, les symboles prédéfinis se trouvent le fichier d'en-tête suivant :

#include "gdk/gdkkeysyms.h"

Ensuite, le changement de formes est géré par gdk_window_set_cursor et par gdk_cursor_destroy

maintenant, cherche un peu sur gnome library ...;)

Hors ligne

#3 Le 23/12/2009, à 03:44

Mpok

Re : [Résolu] GTK : changer le pointeur souris

Merci kevlar. Effectivement, je ne cherchais pas au bon endroit (gtk au lieu de gdk).

Note au passage : il faut utiliser gdk_cursor_unref plutôt que gdk_cursor_destroy.

Si l'implémentation sur mes boutons a été assez rapide grâce à ton aide (même si j'ai été un peu perturbé au départ par le paramètre GdkWindow), j'ai en revanche beaucoup galéré pour faire la même chose sur des labels...
Cela venait d'une mauvaise connaissance des signaux et des events, du coup j'ai appris un peu plus, et j'ai même corrigé du coup un bug que j'avais dans une autre fonction.

Bref, résolu smile

Hors ligne

#4 Le 23/12/2009, à 08:03

kevlar

Re : [Résolu] GTK : changer le pointeur souris

tant mieux, n'hésite pas, également, à faire des curseurs personnalisés, c'est facile ...

Hors ligne

#5 Le 25/12/2009, à 17:52

Mpok

Re : [Résolu] GTK : changer le pointeur souris

J'ai un autre (petit) problème, toujours en rapport avec les cursors (mais plus complexe que la simple utilisation de la commande ad'hoc)...

Dans certains cas, ma commande qui insère des boutons dans mon TextView prend "un certain temps" (plusieurs secondes). C'est normal.
D'où l'idée d'afficher un sablier pendant ce temps.
J'ai donc mis un changement de "cursor" au début de la commande, et un autre à la fin.
Ca marche pas... hmm (ou plutôt, ça ne marche pas comme voulu...).

Concrètement, le pointeur devient bien un sablier au début de la commande.. (ok)
Puis repasse sur le pointeur par défaut... mais BIEN AVANT l'affichage dans le TextView (visuellement).
Du coup, ça ne sert (presque) à rien de changer le cursor, seul 20% (environ) du temps réel est traité (c'est à dire par rapport au temps total "visible" de l'exécution de la commande).

J'espère que je me fais comprendre, je conçois que ça puisse être difficile (et je ne peux proposer un code exemple pour ce cas, il faudrait publier l'ensemble...).
En gros, l'affichage de mes boutons dans le TextView semble "différé" par rapport au code de la fonction qui les génèrent.
Du coup, il faudrait que je place mon changement de cursor, non pas à la fin de la commande, mais à la fin de la modification du TextView... (ceci étant la VRAIE fin de la commande).
Y-a-t-il un moyen de programmer cela ? (par un signal par exemple)

Hors ligne

#6 Le 25/12/2009, à 23:02

kevlar

Re : [Résolu] GTK : changer le pointeur souris

mets quelques gdkflush pour forcer les affichages latents ...

Hors ligne