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
UNE JOLIE-HORLOGE ET PAS QU'UN PEU !UNE JOLIE-HORLOGE ET PAS QU'UN PEU ! par neodante
Pour les possesseurs d'iPhone, ça y est Bijin Tokei - qui se traduit littéralement en Français par " Jolie Horloge " - est arrivé et GRATUITEMENT s'il vous plaît ! Après la version Tokyo, Hokkaido, night club, racing, Gal, "pour les mademoiselles'", . voi...
Cliquez pour lire la suite de l'article par neodante TECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICESTECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICES par ROMELARD Fabrice
Animé par: Gaetan Bouveret et Julien Chomarat Business Connectivity Services (BCS) est dans SharePoint 2010 la version 2 de Business Data Catalog (BDC dans SharePoint 2007). Il s'agit de la solution permettant de visualiser des données provenan...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice [DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE[DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE par orion
Comme de nombreux geek, je suis un grand amateur de série TV et je rate régulièrement des épisodes de mes séries préférés. Une solution s'offre à vous avec ce merveilleux site : Tv Gorge - www.tvgorge.com Moteur de recherche à l'appui, vous pouvez ...
Cliquez pour lire la suite de l'article par orion TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010 par ROMELARD Fabrice
Animé par: Vincent Bellet et Baptiste Giraudier La BI dans SharePoint 2010, Les nouveaux services d'application dans SP2010 et SQL Server Reporting services 2008 R2. La BI dans SharePoint est généralisée pour tous afin de permettre à tous les coll...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Forum
RE : WIN APIRE : WIN API par racpp
Cliquez pour lire la suite par racpp
Logiciels
DB-MAIN (9.1.0)DB-MAIN (9.1.0)DB-MAIN is a data-modeling and data-architecture tool. It is designed to help developers and anal... Cliquez pour télécharger DB-MAIN Xilisoft DPG Convertisseur (5.1.37.0120)XILISOFT DPG CONVERTISSEUR (5.1.37.0120)Xilisoft DPG Convertisseur offre aux fans de Nintendo DS une bonne solution leur permettant de dé... Cliquez pour télécharger Xilisoft DPG Convertisseur GraphicsGale (2.01.01)GRAPHICSGALE (2.01.01)GraphicsGale est un logiciel de PixelArt avec de nombreuse fonctionnalités permettant de réalisé ... Cliquez pour télécharger GraphicsGale Architecte 3D (Platinum 2010)ARCHITECTE 3D (PLATINUM 2010)Architecte 3D Platinium vous permet de concevoir facilement les plans votre future maison, de l'é... Cliquez pour télécharger Architecte 3D TeamViewer 5 (TeamViewer 5)TEAMVIEWER 5 (TEAMVIEWER 5)Dépanner un ami,expliquer une manipulation devient un jeu d'enfant.
Prise en main d'un autre ord... Cliquez pour télécharger TeamViewer 5
|