/*
Fichier modepage.h
Auteur Bernard Chardonneau
*/
/* taille par defaut d'une fenêtre */
#define defaut_ligne 25
#define defaut_colon 80
/* macros de gestion de l'affichage */
#define putseq(s) printf ("%c[%s", ESC,s) // affiche séquence d'échappement
#define debpage() putseq ("H") // se positionne en haut de page
#define baspage() putseq ("99B") // se positionne en bas de page
#define effpage() putseq ("J") // efface la page à partir du curseur
#define effligne() putseq ("K") // efface la ligne à partir du curseur
#define insligne() putseq ("L") // insère une ligne au niveau ligne courante
#define montecurs() putseq ("A") // remonte le curseur d'une ligne
#define clair() putseq ("1m") // affichage en surbrillance
#define lumnor() putseq ("0m") // affichage en luminosité normale
#define sombre() putseq ("34m") // affichage en bleu foncé
/* macros de gestion du clavier */
// lecture non bloquante caractère par caractère sans écho
#define mode_raw() system ("stty -icanon min 0 time 5 -echo")
// lecture en mode normal (ligne par ligne) avec écho
#define mode_normal() system ("stty icanon echo")
/* prototypes des fonctions de la bibliothèque modepage */
void affpage ();
void monte (int n);
void descend (int n);
void lig_col ();
int leccar ();
void execom (char *outil, char *fichier);
/* variables globales à l'application utilisées par modepage
(pour éviter des tonnes de passages de paramètres) */
#ifdef modepage
int nb_lignes; // nombre de lignes mémorisées
int lignecour; // numéro de la ligne courante
int lignepage, colonpage; // nombre ligne et colonnes de la page d'écran
int lignecran; // numéro de ligne du curseur à l'écran
#else
extern int nb_lignes;
extern int lignecour;
extern int lignepage, colonpage;
extern int lignecran;
#endif