home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD2.mdf / c / library / dos / window / miscutil / c_wdemo.c < prev    next >
Encoding:
C/C++ Source or Header  |  1987-01-16  |  6.2 KB  |  178 lines

  1. /* C_WDEMO.C
  2.  
  3.         C Windowing Toolbox demonstration program compiled as C_WDEMO.EXE
  4.  
  5. */
  6.  
  7. #include <c_wdef.h>
  8.  
  9.  
  10. main()
  11.  
  12. {
  13.         int     w1, w2, w3, w4;
  14.         int     i, c;
  15.         char    str[10];
  16.         char    *strptr;
  17.  
  18.         /* variables used so this demo runs correctly on either */
  19.         /* mono or color screen */
  20.         char w1bgc, w2bgc, w3bgc, w4bgc; /* window background */
  21.         char w1bfgc, w2bfgc, w3bfgc, w4bfgc; /* border foreground */
  22.         char w1bbgc, w2bbgc, w3bbgc, w4bbgc; /* border background */
  23.         char w1tfg, w2tfg, w3tfg, w4tfg; /* text foreground */
  24.         char gsfgc; /* color of text input by w_getstr () */
  25.  
  26.         /* Look at byte located at 40:49 in memory. If it */
  27.         /* equals 2 or 3, then a color card is being used;*/
  28.         /* if it equals 7, a monochrome card is installed */
  29.         peek (0x40, 0x49, &str[0], 1);
  30.         if ((str[0] == 2) || (str[0] == 3)) {
  31.                 /* window background, border foreground, border background */
  32.                 w1bgc = BG_RED;   w1bfgc = FG_BLUE;    w1bbgc = BG_BLUE;
  33.                 w2bgc = BG_GREEN;  w2bfgc = FG_LTGREEN; w2bbgc = BG_GREEN;
  34.                 w3bgc = BG_CYAN;  w3bfgc = FG_MAGENTA; w3bbgc = BG_MAGENTA;
  35.                 w4bgc = BG_GREEN; w4bfgc = FG_BROWN;   w4bbgc = BG_BROWN;
  36.                 /* window text foreground */
  37.                 w1tfg = FG_WHITE;
  38.                 w2tfg = FG_LTGREEN;
  39.                 w3tfg = FG_RED;
  40.                 w4tfg = FG_BLACK;
  41.                 gsfgc = FG_YELLOW;
  42.         }
  43.         else {
  44.                 /* plain white on black */
  45.                 w1bgc = w1bbgc = w2bgc = w2bbgc = w3bgc = w3bbgc =
  46.                 w4bgc = w4bbgc = NORM;
  47.                 w1bfgc = w2bfgc = w3bfgc = w4bfgc = NORM;
  48.                 w1tfg = w2tfg = w3tfg = w4tfg = NORM;
  49.                 gsfgc = NORM|BRIGHT;
  50.         }
  51.  
  52.         /* always call this function first */
  53.         w_init ();
  54.  
  55.         strptr = str;
  56.         w_bgcolor (BG_BLACK);
  57.         w_fgcolor (FG_BRTWHITE);
  58.         border (10, 5, 55, 6, BLK_LN);
  59.         w_writexy (27, 7, "C Windowing Toolbox");
  60.         w_fgcolor (FG_WHITE);
  61.         w_writexy (24, 8, "* Demonstration Program *");
  62.         w_writexy (22, 15, "Send $15 for the C source to:");
  63.         w_fgcolor (FG_BRTWHITE);
  64.         w_writexy (26, 17, "Christopher McVicar");
  65.         w_writexy (25, 18, "124 Wellington Heights");
  66.         w_writexy (28, 19, "Avon, CT  06001");
  67.         w_writexy (50, 23, "Press any key to continue");
  68.         keyin ();
  69.  
  70.         /* define 4 windows */
  71.         w1 = w_def (75, 5, BORDER);
  72.         w2 = w_def (60, 20, BORDER);
  73.         w3 = w_def (33, 14, BORDER);
  74.         w4 = w_def (44, 9, BORDER);
  75.  
  76.         w_open (w1, 0, 3, CLR, w1bgc, BLK_LN, w1bfgc, w1bbgc);
  77.         w_fgcolor (FG_WHITE);
  78.         w_bgcolor (w1bgc);
  79.         w_write ("Text can be ");
  80.         w_fgcolor (NORM|BLINK);
  81.         w_write ("blinking, ");
  82.         w_fgcolor (FG_BRTWHITE|BLINK);
  83.         w_write ("blinking bright, ");
  84.         w_fgcolor (FG_BRTWHITE);
  85.         w_write ("or just bright. ");
  86.         w_fgcolor (NORM);
  87.         w_write ("All graphics card colors are also available. ");
  88.         w_write ("Press any key to continue");
  89.         keyin ();
  90.  
  91.         w_open (w2, 20, 2, CLR, w2bgc, DBL_LN, w2bfgc, w2bbgc);
  92.         w_fgcolor (w2tfg);
  93.         w_bgcolor (w2bgc);
  94.         w_write ("The window can scroll up or down...");
  95.         w_writexy (0, 1, "Press any key to continue");
  96.         keyin ();
  97.         for (i = 0; i < 100; i++) {
  98.                 w_write ("Scrolling ");
  99.                 w_fgcolor (FG_BRTWHITE|BLINK);
  100.                 w_write ("UP ");
  101.                 w_fgcolor (w2tfg);
  102.                 w_write ("in the window ");
  103.         }
  104.         w_scroll (UP, 5);
  105.         w_fgcolor (NORM);
  106.         w_writexy (0, 17, "Press any key to continue");
  107.         keyin ();
  108.  
  109.         w_open (w3, 10, 5, CLR, w3bgc, MXD_1, w3bfgc, w3bbgc);
  110.         w_fgcolor (w3tfg);
  111.         w_bgcolor (w3bgc);
  112.         w_write ("Press any key to continue");
  113.         keyin ();
  114.  
  115.         w_open (w4, 4, 10, CLR, w4bgc, BLK_LN, w4bfgc, w4bbgc);
  116.         w_fgcolor (w4tfg);
  117.         w_bgcolor (w4bgc);
  118.         *(strptr+1) = 0; /* NULL terminated string */
  119.         w_writexy (0, 1, "When a window is open, lines automatically");
  120.         w_writexy (0, 2, "wrap around when the right edge is reached");
  121.         w_writexy (0, 3, "Type in a line of characters or press");
  122.         w_writexy (0, 4, "<Carriage Return>..");
  123.         w_writexy (0, 5, "Press ");
  124.         w_fgcolor (NORM|BRIGHT);
  125.         w_write ("FUNCTION KEY 1 ");
  126.         w_fgcolor (w4tfg);
  127.         w_write ("to quit.");
  128.         w_gotoxy (0, 6);
  129.         while (1) {
  130.                 /* 59 is extended code for function key 1 */
  131.                 if (((*strptr = keyin ()) == 59) && extend)
  132.                         break;
  133.                 /* carriage return */
  134.                 if (*strptr == 0x0D) {
  135.                         w_scroll (UP, 1);
  136.                         i = w_getcy ();
  137.                         w_gotoxy (0, i);
  138.                 }
  139.                 else
  140.                         w_write (strptr);
  141.         }
  142.         w_close ();
  143.  
  144.         w_fgcolor (w3tfg);
  145.         w_bgcolor (w3bgc);
  146.         strptr = "This is a string";
  147.         w_writexy (0, 0, "Strings can be edited using the");
  148.         w_writexy (0, 1, "usual editing keys. Try editing");
  149.         w_writexy (0, 2, "the following sixteen character");
  150.         w_writexy (0, 3, "string:");
  151.         w_writexy (0, 4, "<Carriage Return> to continue..");
  152.         w_gotoxy (8, 3);
  153.         w_fgcolor (gsfgc);
  154.         w_getstr (strptr, 16);
  155.         w_close ();
  156.  
  157.         keyin ();
  158.         w_close ();
  159.  
  160.         /* reopen prev window */
  161.         w_open (w2, 0, 3, NOCLR, w2bgc, DBL_LN, w2bfgc, w2bbgc);
  162.         w_fgcolor (NORM);
  163.         w_bgcolor (w2bgc);
  164.         w_writexy (0, 16, "Windows can be re-opened at a different location..");
  165.         w_writexy (0, 17, "Press any key to continue");
  166.  
  167.         keyin ();
  168.         w_close ();
  169.  
  170.         keyin ();
  171.         w_close ();
  172.  
  173.         /* 'b_usage' == maximum window buffer storage used
  174.         printf ("\nWindow buffer space used: %d", b_usage);
  175.         */
  176. }
  177. 
  178.