Bonjour,
J'utilise xmessage pour afficher un texte.
La dimension de xmessage est pré-définie par la taille du bouton okay.
Je cherche a afficher ce texte centré dans la fenêtre.
Il existe une propriété justify du texte dans xmessage qui peut prendre les valeurs left, right et center.
En cherchant dans les .h venant avec X, cette propriété s'applique aux boutons.
Je ne comprend donc pas pourquoi le message dispose de cette propriété.
En tous cas, après de nombreux essais, je ne suis pas arrivé a le faire fonctionner.
Un petit exemple pour illustrer mon propos :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
xmessage \
  -xrm 'xmessage.form.Command.justify: right' \
  -xrm 'xmessage.form.Command.width: 240' \
  -xrm 'xmessage.form.message.width: 350' \
  -xrm 'xmessage.form.message.justify: center' \
  "hello" &
Je pense pouvoir paramètrer ça en utilisant :
- la taille du message
- la taille de la font utilisée
et avec un petit calcul,
- le nombre d'espaces a rajouter devant le texte.
Je suis bien conscient que les caractères n'ont pas tous la même taille, mais on verra plus tard...
Grace a xrdb, je dispose :
- de la taille de l'écran en pixels: ici 1280
- du nombre de pixels par mètre: ici 2956
Ce qui me permet de connaître la taille x de l'écran : ici 1280 x 100 / 2956 = 43 cm
La font utilisée est -adobe-helvetica-bold-r-normal-*-18-180-75-75-p-103-iso8859-1
Les paramétres correspondent a fndry-fmly-wght-slant-swid-adstyle--pxlsz-ptsz-resx-resy-spc-avgwdth-reg-encod dans xfontsel.
pxlsz, ici 18, donne la taille du caractère en point.
apparemment 1 point correspond a 1/72 inch (trouvé sur Internet, et oui, je n'invente rien).
1 inch = 2.54 cm
donc 1 caractère de 18 points mesure 18 x 1/72 = 0.25 inch
donc en cm, 1 caractère de 18 points mesure 0.25 x 2.54 = 0.635 cm
Mon message mesure 254 pixels:
La taille de mon message est 254 x 100 /2956 = 8.6 cm
Le nombre de caractères est 8.6 / 0.635 = 13
Je m'aperçoit que je peux rentrer au moins le double de caractères.
- soit les valeurs 2.54 et 1/72 sont fausses ce qui est peu probable.
- soit mon calcul est faux.
Une petite idée ?
Cordialement.