[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Nouveau curseur ? Croix ouverte
Pour utiliser un nouveau curseur, plusieurs possibilites:
- en utiliser un qui existe deja dans Tk
vous pouvez trouver une liste complete a
file:/proj/epidaure/home/WWW/DOC_tcltk8.3.2/TkCmd/cursors.htm
- en creer un nouveau
Pour l'instant, on a trouve une maniere d'en faire de nouveau qui n'est
probablement pas la maniere la plus simple mais elle marche ...
Procedure:
Le curseur va etre decrit par un fichier bitmap au format xbm
Lancer gimp, File/New ... regler la taille en pixels et choisir Fill
Type Transparent
Ensuite, il faut dessiner le bitmap. On peut zoomer en appuyant sur la
touche '+'
Puis Save as ... en chosissant le format xpm et en mettant l'extension
.xpm ( bitmap.xpm )
Ensuite, faire un convert bitmap.xpm bitmap.xbm pour le convertir au
format xbm
Lancer xv bitmap.xbm. Lancer le color editor ( touche 'E' ) et faire un
RevVid puis sauver l'image.
Editer enfin le fichier bitmap.xbm. Rajouter les lignes
#define bitmap_x_hot 7
#define bitmap_y_hot 7
juste apres la definition de la taille du bitmap.
Cela sert a definir le centre du bitmap
Exemple: fichier NEW.xbm
#define NEW_width 15
#define NEW_height 15
#define NEW_x_hot 7
#define NEW_y_hot 7
static char NEW_bits[] = {
0x40,0x81,0x40,0x81,0x40,0x81,0x40,0x81,0x00,0x80,0x00,0x81,0x2f,0xf8,0x00,
0x80,0x0f,0xfa,0x40,0x80,0x00,0x80,0x40,0x81,0x40,0x81,0x40,0x81,0x40,0x81
};
Ensuite, pour utiliser ce nouveau cursor dans un widget TK, il suffit de
faire
<widget_name> configure -cursor "@bitmap.xbm fgColor"
Par exemple pour utiliser ce nouveau curseur dans une slicecam, on peut
faire
[slicecam1 -widget] configure -cursor "@NEW.xbm white"
Attention a ne pas se tromper dans le chemin d'acces au fichier bitmap.
On peut toujours mettre le chemin absolu -cursor
"@/u/klebs/0/jdlemare/NEW.xbm white"
Sinon, pour en utiliser un deja existant comme diamond_cross par
exemple, faire
<widget_name> configure -cursor diamond_cross
Une autre methode est de creer le curseur "en dur" dans le code C++ et
donc de changer le curseur par defaut.
Dans ce cas, le probleme vient du fait que, souvent, la forme du curseur
depend de ce que
l'on veut faire. Il n'y a donc pas un seul curseur ideal.
La solution est donc, en fonction de l'utilisation, de charger un
nouveau curseur ( predifini ou a partir d'un fichier bitmap que vous
avez cree ) que l'on utlisera dans le widget voulu.
Voila
Jean-Didier