2010-08-27 4 views
4

Je pensais que ce serait facile à trouver, mais une recherche google a été très inutile. Y a-t-il une simple API pour changer le curseur de la souris dans votre fenêtre X? (Je sais dans Windows que vous pouvez simplement appeler "SetCursor")C++ - change le curseur dans une fenêtre X

+0

Avez-vous regardé 'man Xcursor'? – Troubadour

+1

J'ai commencé à lire ça, mais c'est toujours très difficile d'obtenir de bonnes infos. Tout ce que je veux faire est quelque chose comme "SetCursor (main)" et "SetCursor (flèche)". Y at-il un exemple sur la façon de le faire quelque part? – Chris

+0

Je ne toucherais pas X directement. Pourquoi pas Qt, WX, Gtk ou quelque chose? –

Répondre

4
#include <X11/cursorfont.h> 

/* ... */ 

Cursor c; 

c = XCreateFontCursor(dpy, XC_xterm); 
XDefineCursor(dpy, w, c); 

Où dpy est votre affichage, w est votre fenêtre et XC_xterm est une constante définissant la forme de votre curseur. Voici a list of available cursor shape, avec des images.

+0

mais ces constantes ne vous procureront que les icônes moche de la police "cursor". Comment obtenez-vous les icônes par défaut de WM avec des ombres portées et tout? – cap

2

On dirait que l'équivalent d'un appel SetCursor est XDefineCursor. Vous pouvez obtenir un Cursor id en appelant XCreateFontCursor et en passant dans l'une des formes de X11/cursorfont.h.

+0

Vous trouverez plus de détails à http://tronche.com/gui/x/xlib/pixmap-and-cursor/cursor.html – alanc

Questions connexes