Gestion du compte
Calculatrices
Graph 35 à 100 (CFX)
Graph 25/25+ (Pro) (fx-7400)
Graph 75/85/95 (SD) (fx-9860)
Graph 100/100+ (AFX)
ClassPad 300/330
Fx-CG 10/20
Fx-CP 400
Graph 90+E

Retour aux miniatures
Tri avancé
Liste des programmes
Nom Date
LibBMP
Libtext
Hxeditor
ProbSim
Memory
Fx lock
Probability Sim
Bmp reader
ECalendar
Serial canon
Bce fx-master
Serial monitor
Bmpat
Addins officiels
Cpuspeed
Pwman
Picture 1024
Add-in battery
Modeldetector
Gray testing
Pages: << 1,2,3 >>

¤ Transférer un programme sur
sa calculatrice

¤ Vous cherchez une fonction ?
Utilitaires >> Graphs 75/85/95 (SD) >> Add-ins >> Libtext
Libtext
Version : 2.1 Taille : 21675 octets Ajouté le : 2014-04-03 22:14 Modifié le : 2017-07-15 14:15
Auteur et posteur :
Lephenixnoir
Hors ligne
Administrateur
Points: 11907
Défis: 136
Message
Planète Casio - Add-in Casio - Libtext - LePhenixNoir - Calculatrices
Nombre de visites sur cette page : 9569
Score au progrank : 49
Note actuelle : 9,5/10 noté 1 fois

Vous devez être inscrit(e) et avoir 20 points ou plus pour noter.
1229 téléchargements | Voir les Tests (1)

Ce programme est sous licence Creative Commons 2.0 BY


A cause du changement de processeur des nouvelles Graph 35+ USB, 75 et 95 SD, de nombreux addins sont incompatibles avec ces calculatrices.
Rendre un addin compatible - Plus d'informations sur ce problème - Liste des addins compatibles

Description :

Cette lib est vieille, peu optimisée, et plus maintenue ! Utilisez à vos risques et périls !


Voici la version 2.1 de la libText. La première étant très mal optimisée, je l'ai reprise à zéro pour un code plus propre.
Elle contient 10 polices différents : Les polices de PrintMini() et PrintXY(), la police orginale de Dark Storm Arcadium, 4 polices Serif, deux tailles de polices 7 segments, ainsi que la police de runes.

Toutes les instructions d'utilisation sont dans la documentation.

Fichiers en téléchargement
1. LibText.zip, version 2.1
2. LibText.zip, version 2.0
3. LibText.zip, version 1.0

Chaque archive contient la source, le header, et depuis la v2, une documentation et un tutoriel. N'oubliez pas d'extraire le dossier Images pour voir les images dans la documentation HTML.

Changelog
Cliquez pour enrouler
03.07.2014 -- Version 2.1
→ Ajouté 4 polices de serif, rétabli la police de runes et ajouté deux polices de style 7 segments.

Version 2.0
→ Retiré le système de style (à rétablir) ;
→ Séparé les polices de symboles (absentes cette version) ;
→ Retiré la troisième police en 7*10, qui est à retravailler.

→ Nouvelle gestion des polices en flux de bits, donc économies de mémoire ;
→ Nouvel algorithme d'affichage de texte, universel ;
→ Division de la taille de code par 2.5 ;
→ Facilitation de l'implémentation de nouvelles polices et personnalisées ;
→ Documentation complète.


Tutoriel pour ceux qui ont encore la v1
Cliquez pour enrouler
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.


Note sur 10 Commentaire Date de notation
9.5Voir le testLe 20.08.2014 à 19:34

Commentaires :

Pages: 1, 2, 3, 4, 5, 6, 7 | Suivante

Lephenixnoir
Hors ligne
Administrateur
Points: 11907
Défis: 136
Message
Posté le 03-04-2014 à 22:23 | #
Je pense avoir utilisé la fonction SH4 pour la VRAM, mais est-ce que quelqu'un pourrait me confirmer la compatibilité ?
Dark storm
Hors ligne
Administrateur
Points: 10419
Défis: 174
Message
Posté le 03-04-2014 à 22:25 | #
Je regarde la propreté du code, et si c'est correct j'ajoute aux snippets ?
Lephenixnoir
Hors ligne
Administrateur
Points: 11907
Défis: 136
Message
Posté le 03-04-2014 à 22:26 | #
Comme tu veux.
Mais comme dit dans la description, les polices sont globales, et je ne sais pas comment régler ça.
À mon avis s'il y a une solution, il vaut mieux attendre que ce soit reglé.
Dark storm
Hors ligne
Administrateur
Points: 10419
Défis: 174
Message
Posté le 03-04-2014 à 22:29 | #
Tu peux faire une fonction du genre :

char* load_font1(void)
{
    static unsigned char font[] = {...};
    return font;
}
Dodormeur
Hors ligne
Ancien rédacteur
Points: 3928
Défis: 82
Message
Posté le 03-04-2014 à 22:30 | #
ou alors, tu garde juste un pointeur en variable, et tu utilises malloc, ce qui encore plus propre, vu que cela n'utilise qu'un pointeur dans la mémoire des globales
Lephenixnoir
Hors ligne
Administrateur
Points: 11907
Défis: 136
Message
Posté le 03-04-2014 à 22:31 | #
Je ne savais pas
Vous pensez que je peux mettre dans Txt_Init()
unsigned short Txt_Font1 = { ... };
ptr = Txt_Font1;

sans que le tableau ne soit désalloué ensuite ?
Dodormeur
Hors ligne
Ancien rédacteur
Points: 3928
Défis: 82
Message
Posté le 03-04-2014 à 22:32 | #
il sera désalloué a la fin je pense.
Mais tu peux faire un malloc pour éviter la desalocation, et tu copies le tableau avec memcpy
Lephenixnoir
Hors ligne
Administrateur
Points: 11907
Défis: 136
Message
Posté le 03-04-2014 à 22:34 | #
Je m'en occupe.
Lephenixnoir
Hors ligne
Administrateur
Points: 11907
Défis: 136
Message
Posté le 03-04-2014 à 22:41 | #
C'est bon.

Maintenant si vous souhaitez l'ajouter aux snippets, allez-y (je préférais éviter ces énormes globales).
Dark storm
Hors ligne
Administrateur
Points: 10419
Défis: 174
Message
Posté le 04-04-2014 à 06:42 | #
Si t'as alloué avec malloc, faut penser à faire une fonction "free"

Pages: 1, 2, 3, 4, 5, 6, 7 | Suivante

Planète Casio v42 © créé par Neuronix et Muelsaco 2004 - 2018 | Il y a 28 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements

Planète Casio est un site communautaire indépendant, géré bénévolement et n'est donc pas affilié à Casio | Toute reproduction de Planète Casio, même partielle, est interdite
Les fichiers, programmes et autres publications présents sur Planète Casio restent la propriété de leurs auteurs respectifs et peuvent être soumis à des licences ou des copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd