home *** CD-ROM | disk | FTP | other *** search
/ Simtel MSDOS - Coast to Coast / simteldosarchivecoasttocoast2.iso / c / pcpilot.zip / BOXCHR.C < prev    next >
Text File  |  1990-01-13  |  2KB  |  92 lines

  1. /*
  2.     BOXCHR.C - Display the ASCII chars and codes for the four box types.
  3. */
  4.  
  5. #include <stdio.h>
  6. #include <kbd.h>
  7.  
  8. extern int BorderClr;
  9. extern int TitleClr;
  10. extern int TextClr;
  11. extern int FooterClr;
  12.  
  13. extern int BoxIdx;
  14.  
  15. void BoxCodes(void);
  16.  
  17. struct Box {
  18.     int HL;
  19.     int VL;
  20.     int ULC;
  21.     int URC;
  22.     int LLC;
  23.     int LRC;
  24.     int TT;
  25.     int BT;
  26.     int LT;
  27.     int RT;
  28.     int XT;
  29. };
  30.  
  31. struct Box B[] = {
  32.     {196,179,218,191,192,217,194,193,195,180,197},
  33.     {205,186,201,187,200,188,203,202,204,185,206},
  34.     {205,179,213,184,212,190,209,207,198,181,216},
  35.     {196,186,214,183,211,189,210,208,199,182,215}
  36.     };
  37.  
  38. static void DrawMenu(void);
  39. static void WriteChars(int i);
  40.  
  41. void BoxCodes()
  42. {
  43.     ScrPush();
  44.     DrawMenu();
  45.  
  46.     for (;;)    {
  47.         WriteChars(BoxIdx);
  48.         switch(KbdGetC())    {
  49.             case ESC:
  50.                 ScrPop(1);
  51.                 return;
  52.             default:
  53.                 BoxIdx++;
  54.                 if (BoxIdx > 3) BoxIdx = 0;
  55.                 break;
  56.         }
  57.     }
  58. }
  59.  
  60. static void DrawMenu()
  61. {
  62.     ShadowBox(18,1,38,15, 2, BorderClr);
  63.     PutStr(19,2, TitleClr,   "     Box Chars     ");
  64.     PutStr(18,3, BorderClr, "╞═══════════════════╡");
  65.     PutStr(18,13,BorderClr, "╞═══════════════════╡");
  66.     PutStr(19,14,FooterClr,  " Any key  Esc-Quit ");
  67. }
  68.  
  69. static void WriteChars(int i)
  70. {
  71.     PutStr(22,4, FooterClr, "%d", B[i].HL);
  72.     PutStr(32,4, FooterClr, "%d", B[i].VL);
  73.     PutStr(22,5, TextClr, "%c%c%c", B[i].HL,B[i].HL,B[i].HL);
  74.     PutStr(33,5, TextClr, "%c", B[i].VL);
  75.     PutStr(27,6, FooterClr, "%d", B[i].TT);
  76.     PutStr(20,7, FooterClr, "%d", B[i].ULC);
  77.     PutStr(23,7, TextClr, "%c%c  %c%c%c  %c%c",
  78.             B[i].ULC,B[i].HL, B[i].HL,B[i].TT,B[i].HL, B[i].HL,B[i].URC);
  79.     PutStr(34,7, FooterClr, "%d", B[i].URC);
  80.  
  81.     PutStr(20,9, FooterClr, "%d", B[i].LT);
  82.     PutStr(23,9, TextClr, "%c%c  %c%c%c  %c%c",
  83.             B[i].LT,B[i].HL, B[i].HL,B[i].XT,B[i].HL, B[i].HL,B[i].RT);
  84.     PutStr(34,9, FooterClr, "%d", B[i].RT);
  85.     PutStr(27,10, FooterClr, "%d", B[i].XT);
  86.  
  87.     PutStr(20,11, FooterClr, "%d", B[i].LLC);
  88.     PutStr(23,11, TextClr, "%c%c  %c%c%c  %c%c",
  89.             B[i].LLC,B[i].HL, B[i].HL,B[i].BT,B[i].HL, B[i].HL,B[i].LRC);
  90.     PutStr(34,11, FooterClr, "%d", B[i].LRC);
  91.     PutStr(27,12, FooterClr, "%d", B[i].BT);
  92. }