setTextCursor()

Positionne le curseur texte

 

Exemples d'utilisation

setTextCursor(LARGEUR-30, HAUTEUR-8); text("Bonjour"); // Écrit le mot bonjour au milieu de l'écran
x=getTextCursorX(); text("A"); setTextCursor(x); text("B"); // Superposition de A et de B

 

Référence

void setTextCursor(int x[, int y]);

Paramètres passés

x: abscisse,   y: ordonnée

Valeur retournée

Aucune

 

Voir aussi

- getTextCursorX(); Retourne l'abscisse du point-curseur texte
- getTextCursorY(); Retourne l'ordonnée du point-curseur texte
- textCursorX; Contient l'abscisse du point-curseur texte
- textCursorY; contient l'ordonnée du point-curseur texte
- Fonte vectorielle Définition de la fonte utilisée
- text(); Écrit du texte
- setTextSize(); Taille des caractères
- setTextBold(); Gras ou normal
- setTextItalic(); Italique ou normal
- setTextSerif(); Avec ou sans empattement
- setTextCursor(); Direction d'écriture des textes
- setTextKeep(); Choisit l'action si le texte déborde
- getTextWidth(); getTextHeight(); Retourne la taille de l'écriture de la chaine passée

 

Notes

Le curseur texte est le point le plus en haut à gauche qui sera utilisé lors de la prochaine écriture. Après une écriture, il est positionné après le dernier caractère écrit, augmenté de l'espace inter caractère. L'espace ainsi laissé est de "taille" pixels (2 pixels par défaut, la taille étant 2). L'espace entre deux lignes est le double (parfois un peu moins car certains jambages dépassent de la matrice).

L'origine de l'écran est, comme pour le mode dessin, en haut à gauche. Les abscisses sont croissantes vers la droite et les ordonnées vers le bas. Si on fait pivoter le système d'écriture par la fonction setTextOrient(), cela fait aussi pivoter les axes définissant le curseur.

Le changement de position se faire et se lire par les fonctions setTextCursor(), getTextCursorX() getTextCursorY() ou grâce aux variables textCursorX et textCursorY. C'est mieux de passer par les fonctions, mais utiliser par les variables nécessite moins d'octets dans un contexte de carte Uno, c'est une économie.

Les coordonnés du curseur dépendent de la taille de l'écran, du mode paysage ou portrait et du sens de l'écriture. Si l'écriture se fait vers l'ouest, le point de coordonné (0,0) est en bas à droite. Ne pas confondre le mode PAYSAGE, PORTAIT, qui réinitialise l'écran et impose les directions pour les graphiques et dans un premier temps pour les texte, avec les directions d'écriture qui peuvent être choisi pour chaque affichage. On ne peut pas être en PORTRAIT et PAYSAGE en même temps, alors qu'on peut avoir des affichages vers l'est et vers le nord en même temps.

 

Exemple

PecheuxGraph_ILI9341_8bits.zip\PecheuxGraph_ILI9341_8bits\examples\Documentation\Exemple-308-setTextCursor\Exemple-308-setTextCursor.ino (dans votre fichier téléchargé):

// Ce programme écrit un premier texte (l'ombre), puis d'une autre couleur
// réécrit le texte légèrement décalé 

#include <PecheuxGraph_ILI9341_8bits.h>
void setup() 
{
  setGraphMode(PAYSAGE); // Initialisation générale

  setTextSize(3); setTextBold(1); // Caractères plus gros que d'habitude

  // On va dessiner une ombre en rouge
  setTextColor(RED); 
  setTextCursor(LARGEUR/2-60, HAUTEUR/2-15); // Pour écrire au milieu de l'écran
  text("Bonjour");

  // Et du texte en vert
  setTextColor(GREEN); 
  setTextCursor(LARGEUR/2-58); // on se remet au centre, mais un peu décalé
  text("Bonjour");
}

void loop()
{
}

Résultat:

 

Côté technique

L'abscisse du point curseur s'incrémente de la largeur du caractère écrit plus l'espace inter caractère. En mode de débordement NORMAL, si le caractère à écrire ne tient pas dans l'écran, parce qu'il est trop à droite, un retour chariot est inséré, que l'on soit au milieu d'un mot ou pas. Si le caractère ne tient pas parce qu'il serait écrit trop bas, un effacement d'écran est inséré et donc le point curseur se positionne en haut à gauche. En conséquence positionner le curseur texte en (100,10000) écrira à partir de (0,0).

En mode de débordement KEEP, le fonctionnement est le même, sauf qu'aucun effacement d'écran n'est fait. Les caractères peuvent se superposer.

En mode de débordement CUT, ce qui dépasse n'est pas dessiné. Aucun retour chariot n'est inséré.

 

textOrient   <<     >>   getTextCursorX()