-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathEssaiCurses.c
59 lines (50 loc) · 1.45 KB
/
EssaiCurses.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
/* Programme d'exemple de gestion fenetres et curseur */
/* gcc ThisFile.c -L /usr/ccs/lib -L /usr/ucblib -lcurses -ltermcap */
/* #include <ncurses.h> */\
#include <curses.h>
#include <unistd.h>
main()
{
WINDOW *W1, *L1, *W2, *L2, *C;
pid_t PID;
int SZ ; /* taille d'un cadre */
char CAR ;
initscr(); /* Initialisation (nettoyage) de l'ecran */
/* printw("%i LINES %i COLS \n ", LINES, COLS);*/
refresh();
SZ = (LINES-2)/3;
if(SZ<6 || COLS < 12)
{ endwin(); printf("ERREUR : Fenetre trop petite \n"); exit(1) ;}
/* creation de trois cadres superposes separes par une ligne */
W1= newwin( SZ, COLS, 0, 0);
L1= newwin( 1, COLS, SZ, 0);
W2= newwin( SZ, COLS, SZ+1, 0);
L2= newwin( 1, COLS, (2*SZ)+1, 0);
C= newwin( LINES-(2*SZ)-2, COLS,2+(2*SZ), 0);
/* pas de curseur */
leaveok(W2,TRUE);leaveok(C,TRUE);
leaveok(L1,TRUE); leaveok(L2,TRUE);
leaveok(W1,TRUE);
/* scroll automatique sur W1, W2, C */
scrollok(W1,TRUE);scrollok(W2,TRUE);scrollok(C,TRUE);
/* tracer les lignes */
whline(L1, '=', COLS);whline(L2, '=', COLS);
wrefresh(L1);wrefresh(L2);
/* ecriture dans le cadre de controle */
wprintw(C," vous pouvez taper\n le . termine ....\n");
wrefresh(C);
/* recuperation des caracteres tels que frappes */
cbreak();
/* pas d'echo automatique */
noecho();
while((CAR=getch())!='.')
{
waddch(W1,CAR);
wrefresh(W1);
waddch(W2,CAR);
wrefresh(W2);
}
wprintw(C,"on termine \n ....\n");
wrefresh(C);
endwin();
}