De l'XDrawString man page il semble qu'il aceepts signé 32 bits coordonnées x et y16 limite de bits sur des arguments XDrawString
int XDrawString(Display *display, Drawable d, GC gc, int x, int y, char *string, int length);
Notez comment x et y sont int (ie: 32 bit signé Entier sur gcc/linux2.6-i386 au moins)
Le problème est que quand je passe y = 32767
(2^15-1) la chaîne est tracée à l'emplacement correct mais tout ce qui est au-dessus de cette valeur n'est pas tracée .
Je suppose que des entiers internes de 32 bits ne sont pas utilisés mais plutôt des entiers signés de 16 bits pour les coordonnées. Etant donné que les pages de manuel semblent indiquer que la fonction accepte des entiers de 32 bits, existe-t-il une option de compilation qui doit être activée pour permettre l'utilisation des entiers plus longs? Ou est-ce une limmitation de Xlib?
Y at-il de toute façon de contourner cela? – hhafez
Pas que je sache - en regardant la source Xlib suggère que toutes les coordonnées sont de 16 bits. Je ne vois pas pourquoi vous auriez besoin de coordonnées plus grandes que ça ... – Alnitak
J'en ai besoin;) Ce n'est pas une coordonnée absolue sur un écran mais sur un scrolling de widgets – hhafez