58 lines
1.1 KiB
C
58 lines
1.1 KiB
C
#include <curses.h>
|
|
#include <signal.h>
|
|
#include <stdlib.h>
|
|
#include <unistd.h>
|
|
#include <string.h>
|
|
|
|
#define W_LINES 10
|
|
#define W_COLS 30
|
|
|
|
#define center(WIND,LN,TEXT) \
|
|
mvwaddstr((WIND), (LN), (W_COLS - strlen(TEXT))/2, (TEXT))
|
|
|
|
void die(int sig)
|
|
{
|
|
signal(sig, SIG_IGN);
|
|
clear();
|
|
refresh();
|
|
endwin();
|
|
exit(0);
|
|
}
|
|
|
|
int main()
|
|
{
|
|
WINDOW *win1, *win2;
|
|
|
|
if (! initscr()) {
|
|
fprintf(stderr, "Sorry, unknown terminal.\n");
|
|
exit(1);
|
|
}
|
|
|
|
signal(SIGINT, die);
|
|
signal(SIGQUIT, die);
|
|
signal(SIGHUP, die);
|
|
|
|
noecho();
|
|
|
|
win1 = newwin(W_LINES, W_COLS, ((LINES - W_LINES)/2), ((COLS - W_COLS)/2));
|
|
win2 = newwin(W_LINES, W_COLS, ((LINES - W_LINES)/2 + 4), ((COLS - W_COLS)/2 + 10));
|
|
|
|
scrollok(win1, FALSE);
|
|
scrollok(win2, FALSE);
|
|
|
|
box(win1, '*', '*');
|
|
box(win2, '*', '*');
|
|
|
|
center(win1, 3, "This is window 1");
|
|
center(win2, 3, "This is window 2");
|
|
|
|
for (;;) {
|
|
wrefresh(win1);
|
|
touchwin(win1);
|
|
usleep(200000);
|
|
wrefresh(win2);
|
|
touchwin(win2);
|
|
usleep(200000);
|
|
}
|
|
}
|