attributs everywhere ?
This commit is contained in:
parent
9fd7a01bee
commit
3437173612
@ -7,17 +7,23 @@
|
||||
|
||||
En fait, nous allons plutôt parler de \textbf{ncurses} qui est
|
||||
l'implémentation actuelle de l'ancêtre \texttt{curses}. Voic ce
|
||||
qu'en dit une page de man :
|
||||
qu'en dit une page de man~:
|
||||
|
||||
\begin{quote}
|
||||
The ncurses library routines give the user a terminal-independent
|
||||
method of updating character screens with reasonable optimization.
|
||||
This implementation is ``new curses'' (ncurses) and is the approved
|
||||
replacement for 4.4BSD classic curses, which has been discontinued.
|
||||
The ncurses library routines give the user a terminal-independent
|
||||
method of updating character screens with reasonable optimization.
|
||||
This implementation is ``new curses'' (ncurses) and is the approved
|
||||
replacement for 4.4BSD classic curses, which ha been discontinued.
|
||||
\end{quote}
|
||||
|
||||
Plus concrètement, Curses est un moyen optimisé de gestion des
|
||||
écrans textes (Rappellez-vous notre ami le \textsc{Minitel}) afin
|
||||
de créer des interfaces 'full-screen'. Vous pouvez adresser
|
||||
chaque cellule de votre écran (la case où l'on peut mettre
|
||||
un caractère) pour y écrire quelque chose, en gérant des
|
||||
attributs tels que gras ou souligné.
|
||||
|
||||
\section{premier exemple}
|
||||
\section{Premier exemple}
|
||||
|
||||
Bien entendu, nous commencerons par l'ECM traditionnel de rigueur.
|
||||
|
||||
@ -28,12 +34,35 @@ interne de ncurses, et à régler l'interaction clavier/écran.
|
||||
|
||||
Ensuite, avec \texttt{mvaddstr}, nous écrivons le texte passé
|
||||
en paramètre à une position fixée ligne,colonne
|
||||
dans un écran virtuel
|
||||
qui sera ensuite transféré dans l'écran réel
|
||||
dans un écran virtuel (qui n'existe qu'en mémoire)
|
||||
qui sera ensuite transféré dans l'écran réel (celui qui est affiché)
|
||||
par le \texttt{refresh()}.
|
||||
|
||||
Dans ma grande mansuétude, je n'aurais pas l'audace de vous montrer
|
||||
une capture d'écran, puisque je me permet de supposer que vous
|
||||
avez pris le temps de compiler l'exemple, et de voir par vous même
|
||||
ce que ça donne.
|
||||
|
||||
\section{astuces}
|
||||
\section{Bell and whistles}
|
||||
|
||||
Voici comment centrer sur la ligne du haut
|
||||
un texte écrit en \textbf{gras} grace à l'attribut
|
||||
\texttt{A\_BOLD} :
|
||||
|
||||
\begin{verbatim}
|
||||
attron(A_BOLD);
|
||||
mvaddstr(0, (COLS / 2) - (strlen(text) / 2), text);
|
||||
attroff(A_BOLD);
|
||||
\end{verbatim}
|
||||
|
||||
Il existe tout un tas d'autres attributs:
|
||||
\texttt{A\_UNDERLINE} pour le soulignement ou
|
||||
\texttt{A\_BLINK} pour clignoter, par exemple.
|
||||
La liste complète est dans le man~: \texttt{attr(3NCURSES)},
|
||||
avec plein
|
||||
de fonctions spécialisées dans le traitement des attributs.
|
||||
|
||||
\section{Astuces}
|
||||
|
||||
Dans une boucle interactive, on va utiliser \texttt{getch()}, qui va
|
||||
bloquer tant qu'on n'a pas tapé sur une touche. Mais que faire si
|
||||
|
Loading…
Reference in New Issue
Block a user