more bla, again

This commit is contained in:
tth
2021-12-23 20:06:52 +01:00
parent 09a846f9b1
commit b36e5ea983
9 changed files with 165 additions and 44 deletions

View File

@@ -6,8 +6,8 @@
\index{curses}
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~:
l'implémentation actuelle de l'ancêtre \texttt{curses}.
Voici ce qu'en dit une page de man~:
\begin{quote}
The ncurses library routines give the user a terminal-independent
@@ -23,6 +23,46 @@ 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{Les principes}
\begin{itemize}
\item{Indépendance de l'écran physique}
\item{Fenêtre et sous-fenêtre}
\item{Deux écrans : stdscr et curscr}
\end{itemize}
Au tout début était le terminal canonique, la \textsc{Teletype}.
C'est dans le doux cliquetis de la vénérable \texttt{ASR33}
que se sont échaffaudées les premières lignes du code, écrites
avec \textsl{the only true one}\footnote{ed}.
Ensuite sont arrivés les terminaux à écran vidéo, les fameuses
\textsl{Glass TTYs}, qui ne tardèrent pas à se munir d'un
curseur adressable, ce qui permet alors d'écrire un caractère
à n'importe quelle endroit de l'écran.
Adm3a, vt52, Qume 60...
Une structure essentielle dans curses est l'écran,
appelé \textsl{screen} dans l'original. C'est une matrice
rectangulaire de cellules caractère/attribut et quelques
données associées.
Pourquoi deux écrans ? La mécanique interne de curses
maintient en interne deux écrans (qui sont en fait des fenêtres
de la taille de l'écran physique) connus sous les noms de
\texttt{stdscr} et \texttt{curscr}.
Le premier est celui que voit l'application, et qu'il peut manipuler
avec les fonctions (genre \texttt{mvaddstr})
que nous verrons très bientôt.
Et le second est l'image que se fait la mécanique de l'écran
physique, donc ce que voit le yuser.
% =========================================================
\section{Premier exemple}
Bien entendu, nous commencerons par l'ECM traditionnel de rigueur.
@@ -43,6 +83,8 @@ 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{Bell and whistles}
Voici comment centrer sur la ligne du haut
@@ -62,6 +104,14 @@ La liste complète est dans le man~: \texttt{attr(3NCURSES)},
avec plein
de fonctions spécialisées dans le traitement des attributs.
% =========================================================
\section{Les fenêtres}
% =========================================================
\section{Astuces}
Dans une boucle interactive, on va utiliser \texttt{getch()}, qui va