Dans le cadre du développement de mon application Documents, j'ai du créer une bibliothèque pour l'affichage de polices.
J'ai pensé que celle-ci pourrait être utile.
Elle permet d'afficher du texte, suivant 3 polices. La position dans l'écran est définie en pixels. De plus, grâce au clipping, le texte est affiché en partie, même s'il dépasse, horizontalement ou verticalement.
Enfin, on peut "styliser" le texte, en le barrant, ou en le soulignant une ou deux fois.
Utilisation dans un projet
Pour utiliser TextLib dans un projet, vous devez
- Ajouter TextLib.c aux fichiers du projet
- Inclure TextLib.h au début de votre programme
- Appeler Txt_Init() au début de votre AddIn_main()
- Appeler Txt_Quit() à la fin de l'exécution
Afficher du texte
L'affichage du texte se fait selon quotre fonctions:
Txt_Text1,
Txt_Text2 et
Txt_Text3 selon la taille du texte,
Txt_Text4 ou
Txt_Rune pour les symboles.
Les paramètres sont les suivants.
Txt_Text1(chaine,x,y,style);
chaine est un pointeur en
void *, donc vous pouvez vous passer du cast.
style est défini selon 4 "balises":
-
Txt_None correspond à "aucun style"
-
Txt_Strike barre le texte
-
Txt_Underline souligne le texte
-
Txt_UnderDouble souligne également le texte, mais un peu en-dessous.
On peut combiner plusieurs styles ensembles, en les séparant du symbole "|":
Txt_Text2("Mon texte stylisé !",10,10,Txt_Underline | Txt_UnderDouble);
Ces styles fonctionnent aussi avec les symboles, bien que sans intérêt.
Caractères spéciaux
Pour insérer un caractère précis (pour les symboles ou ceux au-delà de la quatrième ligne), procédez comme suit.
* Déterminez le numéro du caractère dans la table. Commencez à 0 et comptez-en 32 par ligne. Le dernier est donc 255.
* Convertissez cette valeur en octal (vous pouvez le faire avec la calculatrice de Windows, mode "Programmation").
* Écrivez-là sur trois chiffres (plus lisible) en rajoutant s'il le faut des '0' devant.
* Faites-là précéder d'un '\'.
Txt_Text1("\377",1,1,Txt_None);
Dans cet exemple, le dernier caractère de la table sera affiché.
Caractères doubles
Pour utiliser un caractère double, insérez simplement le code du premier caractère (à gauche) dans la chaîne.
Liste des codes spéciaux
Cliquer pour enrouler
- Équivalent: "\326"
- Double flèche: "\330"
Les caractères suivants ne sont doubles qu'avec Txt_Text1
- Infini: "\332"
- ae: "\334"
- oe: "\336"
Erreurs courantes
- Une System Error dès que vous essayez d'écrire du texte: Vérifiez que vous avez bien initialisé au début du programme avec Txt_Init().
- "Undefined function...": Vérifiez l'inclusion de TextLib.h au début du fichier.
Autres fonctions
Cliquer pour enrouler
Pour son fonctionnement, la bibliothèque utilise d'autres fonctions.
Txt_Pixel(int x, int y, int v)
Celle-ci est simple, elle affiche un pixel à l'écran.
Et je n'ai pas piqué la fonction de PierrotLL, j'ai simplement obtenu le même résultat après optimisation.
Txt_Char() et Txt_Text()
Ce sont les deux fonctions de texte appelées par les fonctions classiques. Il ne vous avancera à rien de les utiliser.
Les polices
Voici les 4 polices d'écriture disponibles.
Important
Un grand merci à Gollum pour avoir dessiné les runes, et donné l'idée de la quatrième police.