Академический Документы
Профессиональный Документы
Культура Документы
C-SYSTEME
C-SYSTEME
SOMMAIRE
I) INTRODUCTION______________________________________________________________________________3
II) FONCTIONNEMENT__________________________________________________________________________3
1) QU'EST CE QU'UNE FENÊTRE ?______________________________________________________________________3
2) POURQUOI UTILISER DES FENÊTRES ?__________________________________________________________________3
3) DESCRIPTION DU FICHIER "CURSES.H"_________________________________________________________________3
4) REPRÉSENTATION D'UNE GESTION "CURSES"_____________________________________________________________4
INDEX________________________________________________________________________________________14
I) INTRODUCTION
Curses est une bibliothèque dédiée à la gestion de l'écran et en particulier aux fenêtres. Elle doit être
considérée comme un niveau intermédiaire entre termio et Xwindows. Présent dès les premières
versions d'Unix, elle a subi de nombreux enrichissements qui facilitent sa mise en œuvre.
Les fonctions de curses font référence à des définitions se trouvant dans le fichier curses.h. Il est
donc nécessaire de l'inclure dans tous les programmes utilisant ces fonctions. En outre, la
bibliothèque libcurses.a devra être demandée lors de l'édition des liens avec la syntaxe de
compilation suivante :
II)FONCTIONNEMENT
De nombreuses commandes de curses sont bufférisées. Il est donc nécessaire de vider le buffer pour
voir à l'écran le résultat d'une action. Tout programme, avant d'utiliser les fonctions de curses, doit
impérativement appeler initscr(). Cette fonction initialise l'écran en mode semi-graphique.
Différentes fonctions vont agir sur le contenu des fenêtres. Pour pouvoir visualiser le résultat, il faut
faire appel à la fonction refresh() ou wrefresh() qui actualisera l'écran physique.
La fonction endwin() est symétrique à initscr() en ce sens qu'elle quitte le mode semi-graphique
pour revenir au mode normal. Cette fonction est obligatoire à la fin d'un programme utilisant la
bibliothèque curses.
x
(0,0) Colonnes
Fenêtre
Ecran
Lignes
Fonctions clés :
1) Fonctions d'initialisation
initialise le mode semi-graphique
retourne NULL en cas d'échec
crée une nouvelle fenêtre qui doit être contenue dans l’écran
nblig et nbcol caractérisent le nombre de lignes et de colonnes de la fenêtre.
y0 et x0 identifient les coordonnées de l'origine de la fenêtre.
WINDOW *newwin (int nblig, int nbcol, int y0, int x0);
construit une sous-fenêtre, c'est à dire une fenêtre totalement inclue dans une autre.
x0 et y0 sont relatives à l'écran et non à la fenêtre d'origine
retourne NULL en cas échec
WINDOW *subwin (WINDOW *fntr_origine, int nblig, int nbcol, int y0,
int x0);
3) Saisie clavier
se met en attente d'un caractère sur le fichier d'entrée (similaire à getchar())
si l'option keypad est positionné, wgetch() est capable de récupérer le code associé aux fonctions
clés.
suivant que le mode cbreak() est positionné ou non, le caractère est rendu immédiatement après
lecture ou après une validation par Entrée
le caractère est affiché si le mode echo est sélectionné (sans faire appel à wrefresh()).
en mode noecho il ne sera pas affiché.
lit une chaîne de caractères et la stocke en zone mémoire pointée par str
la chaîne de caractères est délimitée par le premier appui de la touche Entrée ou le caractère
EOL
4) Suppression
supprime le caractère pointé par le curseur dans une fenêtre
tous les caractères à droite sont décalés
la visualisation est immédiate et le curseur n'est pas déplacé
5) options
offre au développeur le moyen de gérer la visualisation de caractères lus à partir du fichier
d'entrée
à l'initialisation, l'option echo est choisie
6) affichage
visualise le fenêtre
valeur retournée : nombre de caractères écrits (attention : fonction optimisée)
7) Déplacement + Action
8) Attributs de visualisation
Des attributs de visualisation sont associés aux fenêtres.
attribut standard
9) Divers
initialise ou invalide le scrolling
val=TRUE => valide le service
val=FALSE => supprime le service
10) Couleurs
Les couleurs sont utilisées en couple : une couleur pour le caractère et une pour l'arrière-plan
Couleurs prédéfinies :
Définition Valeur
COLOR_BLACK 0
COLOR_BLUE 1
COLOR_GREEN 2
COLOR_CYAN 3
COLOR_RED 4
COLOR_MAGENTA 5
COLOR_YELLOW 6
COLOR_WHITE 7
retourne TRUE si le terminal supporte la couleur
INDEX