home *** CD-ROM | disk | FTP | other *** search
/ Power Programming / powerprogramming1994.iso / progtool / bbs / windkw.arc / WNDEMO.C < prev    next >
C/C++ Source or Header  |  1985-11-08  |  3KB  |  158 lines

  1.  
  2. #include <stdio.h>
  3. #include "window.h"
  4.  
  5.  
  6. int    insert;        /* Global flag to indicate if in insert mode. */
  7. main()            /* demonstration */
  8. {
  9.     BORDER wborder;
  10.     WINDOW *wn, *wn1, *wopen();
  11.     char c;
  12.     int i;
  13.  
  14.     insert =0;
  15.     wborder.ul = 0x02da;
  16.     wborder.ur = 0x02bf;
  17.     wborder.ll = 0x02c0;
  18.     wborder.lr = 0x02d9;
  19.     wborder.v  = 0x02b3;
  20.     wborder.h  = 0x02c4;
  21.  
  22. /*
  23.     for (i = 1; i < 25; i++)
  24.       printf("The quick brown fox jumped over the lazy dog's back.\n");
  25. */
  26.     set_page(0);
  27.     if ((wn = wopen(&wborder,2, 2, 64, 18, (get_mode() < 4) ? 14 : 120))
  28.         == NULL)
  29.     {
  30.         printf("\n--- Error opening first window\n");
  31.         exit(1);
  32.     }
  33.     show_mail(wn);
  34.  
  35.     if ((wn1 = wopen(&wborder, 15, 5, 30, 1, (get_mode() < 4) ? 14 :10)) 
  36.         == NULL)
  37.     {
  38.         printf("\n--- Error opening second window\n");
  39.         exit(1);
  40.     }
  41.     wputstr(wn1, " Read your mail more often!");
  42.     getch();
  43.     wcursor(wn1, HOME);
  44.     wins_row(wn1);
  45.  
  46.     getch();
  47.     wclose(wn1);
  48.  
  49.     for (i = -4; i < 5; ++i)
  50.     {
  51.         wcls(wn);
  52.         wn->xmargin = i;
  53.         show_mail(wn);
  54.         getch();
  55.     }
  56.     for(;;) {
  57.         switch ( (c = getch()) ) {
  58.             case 0:
  59.                 switch ( (c = getch()) ) {
  60.                     case INSERT:
  61.                         insert = ~insert;
  62.                         showcur(wn);
  63.                         break;
  64.                     case DELETE:
  65.                         hidecur();
  66.                         wdelch(wn);
  67.                         showcur(wn);
  68.                         break;
  69.                     default:
  70.                         if(wcursor(wn,c) <0) {
  71.                             putch(7);
  72.                             break;
  73.                         }
  74.                         showcur(wn);
  75.                         break;
  76.                 }
  77.                 break;
  78.             case 0x17:        /* ^W */
  79.                 wclose(wn);
  80.                 if(get_page())
  81.                     set_page(0);
  82.                 else
  83.                     set_page(1);
  84.                 if ((wn = wopen(&wborder,0, 0, 78, 23,
  85.                  (get_mode() < 4) ? 14 : 120)) == NULL) {
  86.                   printf("\n--- Error opening first window\n");
  87.                  exit(1);
  88.                 }
  89.                 show_mail(wn);
  90.                 wprinta(10,0,wn,"\n\nPage %u", get_page());
  91.                 wcursor(wn, HOME);
  92.                 showcur(wn);
  93.  
  94.                 break;
  95.             case 0x1b:        /* Esc */
  96.                 goto bye;
  97.             case 0x14:        /* ^T */
  98.                 hidecur();
  99.                 wceol(wn);
  100.                 showcur(wn);
  101.                 break;
  102.             case 0x19:        /* ^Y */
  103.                 hidecur();
  104.                 wdel_row(wn);
  105.                 showcur(wn);
  106.                 break;
  107.             default:
  108.                 hidecur();
  109.                 if(insert)
  110.                     winsch(wn, c);
  111.                 else
  112.                     wputch(wn, c);
  113.                 showcur(wn);
  114.                 break;
  115.         }
  116.     }
  117. bye:    wclose(wn);
  118.     exit(0);
  119. }
  120.  
  121. hidecur()
  122. {
  123.     curtype(15,14);
  124. }
  125.  
  126. showcur(wn)
  127. WINDOW *wn;
  128. {
  129.     if(wbound(wn)) {
  130.         hidecur();
  131.     } else {
  132.         if(insert)
  133.             curtype(0,11);
  134.         else
  135.             curtype(10,11);
  136.     }
  137. }
  138.  
  139. show_mail(wn)        /* display the MAIL message */
  140. {
  141.     hidecur();
  142.     wputs(wn, "123456789-123456789-123456789-123456789-\r\n");
  143.     wputs(wn, "\nMail System\r\n");
  144.     wputs(wn, "-----------\r\n");
  145.     wputs(wn, "Messages Received:  3\r\n");
  146.     wputs(wn, "From          Date      Time\r\n");
  147.     wputs(wn, "----         ------     ----\r\n");
  148.     wputs(wn, "John         1/24/83    0935\r\n");
  149.     wputs(wn, "Kim          1/23/83    1547\r\n");
  150.     wputs(wn, "Sam          1/23/83    1117\r\n");
  151.     wputs(wn, "\r\nEnter characters and use the cursor keys.\r\n");
  152.     wputs(wn, "Also try ^T, ^Y and ^W.\r\n");
  153.     wputs(wn, 
  154.     "\r\nAfter a while, the ESC character returns you back to DOS.\r\n");
  155.     wputs(wn, "\r\n\n\t\t    Have fun!    ");
  156.     showcur(wn);
  157. }
  158.