Curses
Accueil Remonter Artificial Intelligence Internet Hackers Piratage Curses

Mes projets : Labyrinthe 3D  Zoom Magazine  PFE - Back Orifice ENSI MAIL - SamiComputer - SQL Generator - Virtual Conference - SamiNavigator - Taquin - STP - Livre d'or - Mon diplôme - Lettre de Motivation - News - ENSI

Téléchargez notre video de promotion 

Tous ces liens sont sponsorisés par:

Bab el WEB

Comment ça Marche

guill.Net

 

Présentation de Curses

  

Situation : Un grand nombre de terminal dont l’implémentation de leurs pilotes noyau sont différents.

 

But : Assurer un contrôle fin sur la saisie et la sortie de caractères indépendamment du type de terminal utilisé.

 

Solution :

 

1.    L’interface GTI (General Terminal Interface).

 

è   Problème : exige une masse importante de code de bas niveau : difficultés pour l’utilisateur normal.

 

è Pour de nombreux programmes, une interface de plus haut niveau apparaît souhaitable.

 

2.    une bibliothèque graphique qui gère automatiquement pour l’utilisateur les spécificités du terminal : Curses.

NB.  La bibliothèque Curses est utilisée par l’éditeur de texte vi.

  

Compiler avec Curses :

 

·       Installation de la bibliothèque ncurses à partir du CD d’installation. Ncurses est une émulation gratuite du curses de system V.

·       Inclure le fichier d’entête curses.h dans vos codes sources.

·       Compilation :

1.    gcc program.c –lcurses.

2.    gcc –I /usr/include/ncurses program.c –lncurses.

 

Concepts de Curses :

 

·        Curses agit sur les écrans, les fenêtres et les sou-fenêtres.

·        Il y’ a deux structures de données manipuler :

1.     stdscr : c’est la fenêtre correspondant à l’écran physique(ce à quoi l’écran devrait ressembler.

2.     curscr : l’aspect réel de l’écran.

 

refresh( )

 stdscr                                                      curscr

 

·        système de coordonnées (y,x) : (ligne,colonne).

·        WINDOW *initscr(void ) : initialisation des structures de données temporaires.

·        int endwin(void ) : rétablir les paramètres initiaux.

·        La structure WINDOW : utilisée pour stocker l’affichage désiré.

 

  

Les E/S écrans avec Curses :

 

                   Sorties

 

Les fonctions de base permettant de mettre à jour l’écran :

·        addch(…)

·        addchstr(…)

·        printw(…)

·        box(…)

·        insch(…),delch(…)

·        insertln(void), deleteln(void)

·        beep(void)

 

Entrées

 

Pour lire les caractères présents à l’écran :

 

·        Chtype inch(void)

·        int instr( char* )

·        int innstr(char* , int)

 

 
 

 


           

 

Autres fonctionnalités de Curses :

 

·        Effacer le contenu de l’écran   :  

            int erase(void) ;    int clear(void) ;     int clrtobot(void);   int clrtoeol(void);

 

·        Déplacer le curseur :

int move(y,x) ;       0<= y <= LINES ;   0<= x <= COLUMNS.

  

·       Attributs de caractères :

 

§        Attributs : A_BOLD,A_DIM,A_REVERSE,A_UNDERLINE ….

§        Functions:  attron(attribut), attroff(attribut).

·       Clavier : 

§        Modes clavier :  

                             echo(void) ;

                            noecho(void) ;

                            cbreak(void);

                            nocbreak(void);

§        Entrée :

getch(void) ;

getstr(char*) ;

getnstr(char*, int);

scanw(format,….);  

 

·       Les fenêtres  :   

 

§        Création et suppression :     

       WINDOW *newwin(nbrlignes , nbrcols , y , x) ;

        int delwin(WINDOW *f) ;

 

§        Généralisation des fonctions :

 

·        Ajouter « w »  à toutes les fonctions déjà vu et ajouter le paramètre WINDOW* :

            Exemple : waddch(WINDOW *fen, const chtype car) ;

·        Ajouter « mv » pour un déplacement dans la fenêtre.

Exemple : mvaddch(int y, int x, const chtype car ) ;

·        Ajouter « mvw » pour les deux cas.

Exemple : mvwaddch(WINDOW *fen, int y, int x, const chtype car ) ;

  

·       Les sous fenêtres  :   

      

§        Création et suppression :     

 

            WINDOW *subwin(WINDOW *parent, nbrlignes , nbrcols , y , x) ;

            int delwin(WINDOW *f) ;

 

§        Généralisation des fonctions :

Les mêmes règles que pour les fenêtres.

 

§        Caractéristiques :

·        Partage l’espace de stockage avec la fenêtre parent.

·        Toute modification de la sous fenêtre affecte  la fenêtre parent.

 

§        Intérêt :

·        Permettre de faire défiler facilement des parties d’une fenêtre.

 

 

·        Les couleurs  :  

§        bool has_colors(void);

§        start_color(void);

§        int init_pair(short nbr_de_paireshort avant_plan,short fond);

§        COLOR_PAIR(int nbr_de_paire);

 

             Ecrit par : Bel Hadj Sami  & Hassen Bahri