diff options
Diffstat (limited to 'payloads/libpayload/curses/PDCurses-3.4/demos/newdemo.c')
-rw-r--r-- | payloads/libpayload/curses/PDCurses-3.4/demos/newdemo.c | 425 |
1 files changed, 0 insertions, 425 deletions
diff --git a/payloads/libpayload/curses/PDCurses-3.4/demos/newdemo.c b/payloads/libpayload/curses/PDCurses-3.4/demos/newdemo.c deleted file mode 100644 index eefc0c16f1..0000000000 --- a/payloads/libpayload/curses/PDCurses-3.4/demos/newdemo.c +++ /dev/null @@ -1,425 +0,0 @@ -/* - * newdemo.c - A demo program using PDCurses. The program - * illustrates the use of colors for text output. - * - * Hacks by jbuhler@cs.washington.edu on 12/29/96 - * - * $Id: newdemo.c,v 1.39 2008/07/13 16:08:17 wmcbrine Exp $ - */ - -#include <stdio.h> -#include <signal.h> -#include <string.h> -#include <curses.h> -#include <stdlib.h> -#include <time.h> - -int WaitForUser(void); -int SubWinTest(WINDOW *); -int BouncingBalls(WINDOW *); -void trap(int); - -/* An ASCII map of Australia */ - -char *AusMap[17] = -{ - " A ", - " AA AA ", - " N.T. AAAAA AAAA ", - " AAAAAAAAAAA AAAAAAAA ", - " AAAAAAAAAAAAAAAAAAAAAAAAA Qld.", - " AAAAAAAAAAAAAAAAAAAAAAAAAAAA ", - " AAAAAAAAAAAAAAAAAAAAAAAAAAAAA ", - " AAAAAAAAAAAAAAAAAAAAAAAAAAAA ", - " AAAAAAAAAAAAAAAAAAAAAAAAA N.S.W.", - "W.A. AAAAAAAAA AAAAAA Vic.", - " AAA S.A. AA", - " A Tas.", - "" -}; - -/* Funny messages for the scroller */ - -char *messages[] = -{ - "Hello from the Land Down Under", - "The Land of crocs, and a big Red Rock", - "Where the sunflower runs along the highways", - "The dusty red roads lead one to loneliness", - "Blue sky in the morning and", - "Freezing nights and twinkling stars", - NULL -}; - -int WaitForUser(void) -{ - chtype ch; - - nodelay(stdscr, TRUE); - halfdelay(50); - - ch = getch(); - - nodelay(stdscr, FALSE); - nocbreak(); /* Reset the halfdelay() value */ - cbreak(); - - return (ch == '\033') ? ch : 0; -} - -int SubWinTest(WINDOW *win) -{ - WINDOW *swin1, *swin2, *swin3; - int w, h, sw, sh, bx, by; - - wattrset(win, 0); - getmaxyx(win, h, w); - getbegyx(win, by, bx); - - sw = w / 3; - sh = h / 3; - - if ((swin1 = derwin(win, sh, sw, 3, 5)) == NULL) - return 1; - if ((swin2 = subwin(win, sh, sw, by + 4, bx + 8)) == NULL) - return 1; - if ((swin3 = subwin(win, sh, sw, by + 5, bx + 11)) == NULL) - return 1; - - init_pair(8, COLOR_RED, COLOR_BLUE); - wbkgd(swin1, COLOR_PAIR(8)); - werase(swin1); - mvwaddstr(swin1, 0, 3, "Sub-window 1"); - wrefresh(swin1); - - init_pair(9, COLOR_CYAN, COLOR_MAGENTA); - wbkgd(swin2, COLOR_PAIR(9)); - werase(swin2); - mvwaddstr(swin2, 0, 3, "Sub-window 2"); - wrefresh(swin2); - - init_pair(10, COLOR_YELLOW, COLOR_GREEN); - wbkgd(swin3, COLOR_PAIR(10)); - werase(swin3); - mvwaddstr(swin3, 0, 3, "Sub-window 3"); - wrefresh(swin3); - - delwin(swin1); - delwin(swin2); - delwin(swin3); - WaitForUser(); - - return 0; -} - -int BouncingBalls(WINDOW *win) -{ - chtype c1, c2, c3, ball1, ball2, ball3; - int w, h, x1, y1, xd1, yd1, x2, y2, xd2, yd2, x3, y3, xd3, yd3, c; - - curs_set(0); - - wbkgd(win, COLOR_PAIR(1)); - wrefresh(win); - wattrset(win, 0); - - init_pair(11, COLOR_RED, COLOR_GREEN); - init_pair(12, COLOR_BLUE, COLOR_RED); - init_pair(13, COLOR_YELLOW, COLOR_WHITE); - - ball1 = 'O' | COLOR_PAIR(11); - ball2 = '*' | COLOR_PAIR(12); - ball3 = '@' | COLOR_PAIR(13); - - getmaxyx(win, h, w); - - x1 = 2 + rand() % (w - 4); - y1 = 2 + rand() % (h - 4); - x2 = 2 + rand() % (w - 4); - y2 = 2 + rand() % (h - 4); - x3 = 2 + rand() % (w - 4); - y3 = 2 + rand() % (h - 4); - - xd1 = 1; - yd1 = 1; - xd2 = 1; - yd2 = -1; - xd3 = -1; - yd3 = 1; - - nodelay(stdscr, TRUE); - - while ((c = getch()) == ERR) - { - x1 += xd1; - if (x1 <= 1 || x1 >= w - 2) - xd1 *= -1; - - y1 += yd1; - if (y1 <= 1 || y1 >= h - 2) - yd1 *= -1; - - x2 += xd2; - if (x2 <= 1 || x2 >= w - 2) - xd2 *= -1; - - y2 += yd2; - if (y2 <= 1 || y2 >= h - 2) - yd2 *= -1; - - x3 += xd3; - if (x3 <= 1 || x3 >= w - 2) - xd3 *= -1; - - y3 += yd3; - if (y3 <= 1 || y3 >= h - 2) - yd3 *= -1; - - c1 = mvwinch(win, y1, x1); - c2 = mvwinch(win, y2, x2); - c3 = mvwinch(win, y3, x3); - - mvwaddch(win, y1, x1, ball1); - mvwaddch(win, y2, x2, ball2); - mvwaddch(win, y3, x3, ball3); - - wmove(win, 0, 0); - wrefresh(win); - - mvwaddch(win, y1, x1, c1); - mvwaddch(win, y2, x2, c2); - mvwaddch(win, y3, x3, c3); - - napms(150); - } - - nodelay(stdscr, FALSE); - ungetch(c); - return 0; -} - -/* Trap interrupt */ - -void trap(int sig) -{ - if (sig == SIGINT) - { - endwin(); - - exit(0); - } -} - -int main(int argc, char **argv) -{ - WINDOW *win; - chtype save[80], ch; - int width, height, w, x, y, i, j, seed; - -#ifdef XCURSES - Xinitscr(argc, argv); -#else - initscr(); -#endif - seed = time((time_t *)0); - srand(seed); - - start_color(); -# if defined(NCURSES_VERSION) || (defined(PDC_BUILD) && PDC_BUILD > 3000) - use_default_colors(); -# endif - cbreak(); - noecho(); - - curs_set(0); - -#if !defined(__TURBOC__) && !defined(OS2) - signal(SIGINT, trap); -#endif - noecho(); - - /* refresh stdscr so that reading from it will not cause it to - overwrite the other windows that are being created */ - - refresh(); - - /* Create a drawing window */ - - width = 48; - height = 15; - - win = newwin(height, width, (LINES - height) / 2, (COLS - width) / 2); - - if (win == NULL) - { - endwin(); - - return 1; - } - - for (;;) - { - init_pair(1, COLOR_WHITE, COLOR_BLUE); - wbkgd(win, COLOR_PAIR(1)); - werase(win); - - init_pair(2, COLOR_RED, COLOR_RED); - wattrset(win, COLOR_PAIR(2)); - box(win, ' ', ' '); - wrefresh(win); - - wattrset(win, 0); - - /* Do random output of a character */ - - ch = 'a'; - - nodelay(stdscr, TRUE); - - for (i = 0; i < 5000; ++i) - { - x = rand() % (width - 2) + 1; - y = rand() % (height - 2) + 1; - - mvwaddch(win, y, x, ch); - wrefresh(win); - - if (getch() != ERR) - break; - - if (i == 2000) - { - ch = 'b'; - init_pair(3, COLOR_CYAN, COLOR_YELLOW); - wattrset(win, COLOR_PAIR(3)); - } - } - - nodelay(stdscr, FALSE); - - SubWinTest(win); - - /* Erase and draw green window */ - - init_pair(4, COLOR_YELLOW, COLOR_GREEN); - wbkgd(win, COLOR_PAIR(4)); - wattrset(win, A_BOLD); - werase(win); - wrefresh(win); - - /* Draw RED bounding box */ - - wattrset(win, COLOR_PAIR(2)); - box(win, ' ', ' '); - wrefresh(win); - - /* Display Australia map */ - - wattrset(win, A_BOLD); - i = 0; - - while (*AusMap[i]) - { - mvwaddstr(win, i + 1, 8, AusMap[i]); - wrefresh(win); - napms(100); - ++i; - } - - init_pair(5, COLOR_BLUE, COLOR_WHITE); - wattrset(win, COLOR_PAIR(5) | A_BLINK); - mvwaddstr(win, height - 2, 3, - " PDCurses 3.4 - DOS, OS/2, Win32, X11, SDL"); - wrefresh(win); - - /* Draw running messages */ - - init_pair(6, COLOR_BLACK, COLOR_WHITE); - wattrset(win, COLOR_PAIR(6)); - w = width - 2; - nodelay(win, TRUE); - - /* jbuhler's re-hacked scrolling messages */ - - for (j = 0; messages[j] != NULL; j++) - { - char *message = messages[j]; - int msg_len = strlen(message); - int scroll_len = w + 2 * msg_len; - char *scrollbuf = malloc(scroll_len); - char *visbuf = scrollbuf + msg_len; - int stop = 0; - int i; - - for (i = w + msg_len; i > 0; i--) - { - memset(visbuf, ' ', w); - strncpy(scrollbuf + i, message, msg_len); - mvwaddnstr(win, height / 2, 1, visbuf, w); - wrefresh(win); - - if (wgetch(win) != ERR) - { - flushinp(); - stop = 1; - break; - } - - napms(100); - } - - free(scrollbuf); - - if (stop) - break; - } - - j = 0; - - /* Draw running 'A's across in RED */ - - init_pair(7, COLOR_RED, COLOR_GREEN); - wattron(win, COLOR_PAIR(7)); - - for (i = 2; i < width - 4; ++i) - { - ch = mvwinch(win, 5, i); - save[j++] = ch; - ch = ch & 0x7f; - mvwaddch(win, 5, i, ch); - } - - wrefresh(win); - - /* Put a message up; wait for a key */ - - i = height - 2; - wattrset(win, COLOR_PAIR(5)); - mvwaddstr(win, i, 3, - " Type a key to continue or ESC to quit "); - wrefresh(win); - - if (WaitForUser() == '\033') - break; - - /* Restore the old line */ - - wattrset(win, 0); - - for (i = 2, j = 0; i < width - 4; ++i) - mvwaddch(win, 5, i, save[j++]); - - wrefresh(win); - - BouncingBalls(win); - - /* BouncingBalls() leaves a keystroke in the queue */ - - if (WaitForUser() == '\033') - break; - } - - endwin(); - - return 0; -} |