Accueil > > > LIBGRAPHC - DESSIN D'UI EN MODE CONSOLE
LIBGRAPHC - DESSIN D'UI EN MODE CONSOLE
Information sur la source
Description
Voila, je poste ma librairie de fonction de dessin d'interface utilisateur en mode console parce que je n'ai pas encore vu de code comme celui la sur cppfrance, qu'elle est relativement aboutie, et qu'elle peut permettre à certains de coder des applications console avec une belle interface, en utilisant un API relativement léger =).
Bon, les fonctions, c'est du vu et du déjà vu, mais je poste quand même parce que le code à quelques intérêts notables, en plus de son utilité pratique.
Pour les détails sur l'utilisation des fonctions, je vous invite a regarder le code source, ou bien le fichier d'aide au format html fourni dans le ZIP (aide vraiment détaillé).
Parmi ces intérets, citons notamment un exemple d'utilisation des fonction à nombre d'arguments variables, via les va_list. Je me suis servi du code de printf, trouvé dans un stdio.c sur le net, pour pouvoir écrire ma fonction (il s'agit de xprintf, et de xrprintf).
Voila c'est tout ce que j'avais à dire sur ce code. A+ et bonne lecture.
PS : Le ZIP contient la solution Visual Studio 2008, qui contient elle même 2 solutions :
- LibGraphC : la librairie à proprement parler, il s'agit d'un projet de type Win32 Static Library générant un fichier libgraphc.lib.
- LibGraphCTest : un projet console de test de la librairie, il est linké avec la librairie, et comporte une copie du header graphc.h
Pour recompiler ce code via un autre compilateur, il faudra créer un projet static library (je pense notamment à dev-cpp, code::blocks ...) comportant les fichiers graphc.h, graphc.c, et drawc.c, compiler, et linker le binaire résultant avec un projet de test.
voila =)
Source
- // je poste ici uniquement le code source de xprintf
- // qui reprend le code de printf, parce que le concept
- // est intéréssant et parce que j'ai eu du mal à le trouver
- // sur le net.
-
- int xprintf(USHORT x, USHORT y, const char* format, ...)
- {
- // déclaration des variables
- va_list args;
- int n;
-
- // on positionne le curseur en x,y
- setxy(x, y);
- // on initialise la liste d'argument
- va_start (args, format);
- // on imprime la chaine
- n = vprintf (format, args);
- // on ferme la liste d'arguments
- va_end (args);
- // et on retourne n
- return n;
- }
-
- // Et ici, je poste le code que j'ai tapé dans ma fonction main
- // qui m'a permis d'obtenir l'interface vue sur le screen shot
-
- void draw_ui()
- {
- // on remplit tout en bleu et on écrit en jaune
- fill(DBLUE, YELLOW);
- // on dessine un premier rectangle FAT
- rect(0, 0, 40, 25, FAT, false);
- // on crée une "banniere"
- hline(0,4,40, FAT);
- // on rajoute les caracteres d'angles
- xprint(0 , 4, (char)CROSS_LEFT_FAT);
- xprint(39, 4, (char)CROSS_RIGHT_FAT);
- // on écrit le titre
- setcolor(GREEN, DBLUE);
- xprintf(15, 2, "Titre FAT");
- // on écrit cette fois en cyan sur noir
- setcolor(CYAN, DBLUE);
- /// on dessine un deuxieme rectangle slim
- rect(40, 0, 39, 25, SLIM, false);
- // on crée un banniere
- hline(40, 4, 39, SLIM);
- // on rajoute les caracteres d'angles
- xprint(40, 4, (char)CROSS_LEFT_SLIM);
- xprint(78, 4, (char)CROSS_RIGHT_SLIM);
- // on écrit le titre
- setcolor(GREEN, DBLUE);
- xprintf(55, 2, "Titre SLIM %d", 2);
- }
// je poste ici uniquement le code source de xprintf
// qui reprend le code de printf, parce que le concept
// est intéréssant et parce que j'ai eu du mal à le trouver
// sur le net.
int xprintf(USHORT x, USHORT y, const char* format, ...)
{
// déclaration des variables
va_list args;
int n;
// on positionne le curseur en x,y
setxy(x, y);
// on initialise la liste d'argument
va_start (args, format);
// on imprime la chaine
n = vprintf (format, args);
// on ferme la liste d'arguments
va_end (args);
// et on retourne n
return n;
}
// Et ici, je poste le code que j'ai tapé dans ma fonction main
// qui m'a permis d'obtenir l'interface vue sur le screen shot
void draw_ui()
{
// on remplit tout en bleu et on écrit en jaune
fill(DBLUE, YELLOW);
// on dessine un premier rectangle FAT
rect(0, 0, 40, 25, FAT, false);
// on crée une "banniere"
hline(0,4,40, FAT);
// on rajoute les caracteres d'angles
xprint(0 , 4, (char)CROSS_LEFT_FAT);
xprint(39, 4, (char)CROSS_RIGHT_FAT);
// on écrit le titre
setcolor(GREEN, DBLUE);
xprintf(15, 2, "Titre FAT");
// on écrit cette fois en cyan sur noir
setcolor(CYAN, DBLUE);
/// on dessine un deuxieme rectangle slim
rect(40, 0, 39, 25, SLIM, false);
// on crée un banniere
hline(40, 4, 39, SLIM);
// on rajoute les caracteres d'angles
xprint(40, 4, (char)CROSS_LEFT_SLIM);
xprint(78, 4, (char)CROSS_RIGHT_SLIM);
// on écrit le titre
setcolor(GREEN, DBLUE);
xprintf(55, 2, "Titre SLIM %d", 2);
}
Conclusion
Une librairie que je trouve utile, qui donne des beau résultats, facile à utiliser.
Je suis ouvert à toutes critiques qui pourrait me permettre d'améliorer/optimiser ce code.
N'hésitez pas à regarder le fichier d'aide html, il est tout beau :D et il est très détaillé.
Historique
- 12 mai 2009 03:28:56 :
- Correction mineure
- 12 mai 2009 13:59:16 :
- Autre correction mineure =p
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
couleur console unix sans printf [ par FearBlue ]
Bonsoir a tous !Je cherche a mettre en couleur des caracteres dans une application mode console sous systeme unix.J'utlise une fonction de bas niveau
Couleur console unix sans printf [ par FearBlue ]
Bonsoir a tous !Je cherche a mettre en couleur des caracteres dans une application mode console sous systeme unix.J'utlise une fonction de bas niveau
Aide pour la console Win32 [ par Adeon ]
Adeon Salut! je vous ecris parce que j'ai un probleme, pour faire un "jeu d'action" en win32, j'utilise un programme qui marche
créer une application sans interface [ par ebooserge ]
salut a tous, je souhaite créer une appli sans interface (pas de fenêtre ni de console), juste un execution en arriere plan. comment dois je
couleur console [ par sy3ns ]
commen fait ton pour changer par exemple tte la couleur de la console pour changer un caractere une chaine ds la console
changer couleur des ecritures dans la console [ par jimmypage64 ]
Bonjour !!Je suis débutant en C++ et je voudrais savoir comment faire pour changer la couleur du texte dans mon programme w32 console application svp.
Visual C++ et tableau [ par stifu ]
Salut tout le monde,Pour faire court, j'ai déjà touché au C++, mais jusque là je n'ai fait que des applications "console", et maintenant je voudrais f
insérer un fond [ par lafolle24320 ]
Bonjour, débutante en api win 32 je voudrais personnaliser mon interface. Par exemple mettre un fond d'écran à mon appli (tout bêtement une couleur) o
couleur console linux [gcc] [ par badboy38 ]
bonjour, je voudrais savoir s'il existe une fonction ou une classe (et si elle existe laquelle est-ce et comment l'utilise-t-on) pour changer la coul
Couleur console C [ par didygwatinik ]
Bonjour,Je suis sur un programme en C qui au début affiche un menu, je sais comment me déplacer avec les touches du haut et du bas mais le problème c'
|
Derniers Blogs
CSS CONTENT STATE SELECTORS (PERSONNAL DRAFT)CSS CONTENT STATE SELECTORS (PERSONNAL DRAFT) par FREMYCOMPANY
Bonjour à tous, Je viens de publier une proposition comprenant 5 pseudo-classes pour le CSS Working Group ayant trait à l'état de chargement d'un élément (ex: IMG,VIDEO,AUDIO,OBJECT pour l'HTML.). Si le c½ur vous en dit, vous pouvez retrouver cette p...
Cliquez pour lire la suite de l'article par FREMYCOMPANY MBA : POURQUOI FAIRE ET COMMENT LE CHOISIR ?MBA : POURQUOI FAIRE ET COMMENT LE CHOISIR ? par ROMELARD Fabrice
Formation initiale Durant la formation, le découpage classique est le suivant (je donnerai les équivalences Suisse lorsque je les connaîtrais) : Ecole primaire jusqu'au Collège : Formation générale permettant d'obtenir les méthodes...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice Y'A DES ERREURS QUI PEUVENT RENDRE LE DéVELOPPEUR VIOLENTY'A DES ERREURS QUI PEUVENT RENDRE LE DéVELOPPEUR VIOLENT par Aleks
Quand on a ce genre d'erreur sans log :
Et bas on a juste envie de choper le gas de Microsoft qu'a développé ça et lui foutre des baffes de Coboye ! ...
Cliquez pour lire la suite de l'article par Aleks [HYPER-V 3] PRéSENTATION DES COMMANDLETS POWERSHELL[HYPER-V 3] PRéSENTATION DES COMMANDLETS POWERSHELL par Pierrick CATRO-BROUILLET
Avec la sortie prochaine de la Beta Consumer Preview de Windows 8, j'avais envie de revenir sur une des fonctionnalités que j'attends le plus et que, en bon geek que je suis, j'utilise déjà : Hyper-V 3 ainsi son module PowerShell.
Il y a déjà pléthor...
Cliquez pour lire la suite de l'article par Pierrick CATRO-BROUILLET IIS7 - COMPRESSION GZIPIIS7 - COMPRESSION GZIP par cyril
La compression GZIP permet d'améliorer les performances de navigation en compressant ce qu'envoie le serveur à un client. Pour comprendre comment cela fonctionne, regardons ce qu'il se passe au niveau HTTP lorsqu'un client tente d'accéder à une ress...
Cliquez pour lire la suite de l'article par cyril
Forum
ARBRE BINAIREARBRE BINAIRE par pacotheking
Cliquez pour lire la suite par pacotheking
Logiciels
Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning Academy System (17.1.3.0)ACADEMY SYSTEM (17.1.3.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System COLLECTOR PLUS (3.00B)COLLECTOR PLUS (3.00B)COLLECTOR PLUS version 3.00B est un logiciel utilisant une base de données alimentée par :
- L... Cliquez pour télécharger COLLECTOR PLUS PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO LettresFaciles 2011 (8.0.0.1)LETTRESFACILES 2011 (8.0.0.1)LettresFaciles est un logiciel facilitant la création et la rédaction de lettres types.
Son inte... Cliquez pour télécharger LettresFaciles 2011
|