home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / beehive / utilitys / xwp11src.arc / XWPHELP.C < prev    next >
Text File  |  1990-07-21  |  3KB  |  151 lines

  1. /*    XWPHELP.C
  2. **
  3. **    HELP facility for Executive Workplace 
  4. */
  5.  
  6. #include "a:stdio.h"
  7. #include "b:oxege.h"
  8.  
  9. char GLprname[12], *GLprinter, FLprstat;
  10. int GLprnums;
  11. extern char FLerror;
  12.  
  13. #define HLINE    5
  14. #define HCOL    26
  15.  
  16. signon( timeout )
  17.     int timeout;
  18.     {
  19.     int count;
  20.     count = 0;
  21.     savewindow( HLINE, HCOL, HLINE+10, HCOL+29, 0, 0 );
  22.     outline( HLINE, HCOL, HLINE+10, HCOL+29, 
  23.         OUTBLK | ATTINV, ATTDIM | ATTALT );
  24.     fill( HLINE+1, HCOL+1, HLINE+9, HCOL+28, ' ', ATTBRT );
  25.     logo( HLINE+2, HCOL+13 );
  26.     spoke( HLINE+5, HCOL+2, " THE EXECUTIVE WORKPLACE ", ATTBRT | INVATT);
  27.     spoke( HLINE+6, HCOL+2, "       Version 1.1       ", ATTBRT | INVATT);
  28.     spoke( HLINE+7, HCOL+2, "    Copyright (c) 1987   ", ATTBRT | INVATT);
  29.     spoke( HLINE+8, HCOL+2, "    by Ted A. Campbell   ", ATTBRT | INVATT);
  30.     if ( timeout )
  31.         {
  32.         while ( count < 30000 )
  33.             {
  34.             count++;
  35.             }
  36.         }
  37.     else
  38.         {
  39.         wait( 1 );
  40.         }
  41.     savewindow( HLINE, HCOL, HLINE+10, HCOL+29, 1, 0 );
  42.     }
  43.  
  44. los( string )
  45.     char string[];
  46.     {
  47.     char *pointer;
  48.     pointer = string;
  49.     while( *pointer != NULL )
  50.         {
  51.         lo( *pointer );
  52.         ++pointer;
  53.         }
  54.     }
  55.  
  56. /*    PRINTER - Printer Setup Routine
  57. **    
  58. **    FLprstat =  status of printer initialization:
  59. **        0   = not initialized
  60. **        1   = initialized and ok
  61. **        127 = attempt to initialize failed
  62. **
  63. **    GLprinter data structure:
  64. **        10 possible fields of:
  65. **            10 bytes    identifier string
  66. **            15 bytes    string to send to printer
  67. **
  68. **    GLprnums = number of strings found by dailinit()
  69. */
  70. printer()
  71.     {
  72.     int counter, choice, draw;
  73.     char *pointer;
  74.     /* First check FLprstat status and initialize if necessary */
  75.     if( FLprstat == NULL )
  76.         {
  77.         prntinit();
  78.         }
  79.     if( FLprstat == 127 )
  80.         {
  81.         error( "XWP.PRN NOT FOUND" );
  82.         FLerror = 0;
  83.         return;
  84.         }
  85.     /* Now set up menu areas */
  86.     pointer = GLprinter;
  87.     counter = 0;
  88.     while( counter < GLprnums )
  89.         {
  90.         strcpy( scratch, " " );
  91.         strcat( scratch, pointer );
  92.         setmenu( counter+1, 14, scratch );
  93.         pointer += 25;
  94.         ++counter;
  95.         }
  96.     setmenu( counter+1, 14, " RETURN " );
  97.     /* Save the environment */
  98.     savewindow( 2, 1, 6+GLprnums, 16, 0, 1 );    
  99.     /* Draw menu area */
  100.     outline( 2, 1, 6+GLprnums, 16, OUTBLK, ATTDIM | ATTALT );
  101.     fill( 3, 2, 3, 15, ' ' | ATTINV, ATTDIM | ATTUND );
  102.     spoke( 3, 2, " PRINTER: ", ATTDIM | ATTUND );
  103.     fill( 4, 2, 4, 15, ' ' | ATTINV, ATTDIM | ATTUND );
  104.     spoke( 4, 3, GLprname, ATTDIM | ATTUND );
  105.     draw = 1;
  106.     while( 1 )
  107.         {
  108.         choice = menu( 5, 2, 1, GLprnums+1, 14, draw );
  109.         draw = 0;
  110.         if( choice > GLprnums )
  111.             {
  112.             savewindow( 2, 1, 6+GLprnums, 16, 1, 1 );
  113.             return;
  114.             }
  115.         if( choice <= GLprnums )
  116.             {
  117.             cpoke( 4+choice, 15, '*' | ATTINV, ATTDIM | ATTUND );
  118.             pointer = GLprinter-15+( choice*25);
  119.             los( pointer );
  120.             }
  121.         }
  122.     }
  123.  
  124. prntinit()
  125.     {
  126.     int pdatfile, counter;
  127.     char *pointer;
  128.     if( ( pdatfile = fopen( "XWP.PRN", "r" ) ) == NULL )
  129.         {
  130.         FLprstat = 127;
  131.         return;
  132.         }
  133.     FLprstat = 1;
  134.     pointer = GLprinter = malloc( 500 );
  135.     counter = 0;
  136.     /* Get printer name */
  137.     fscanf( pdatfile, "%s", GLprname );
  138.     while( !feof( pdatfile ) )
  139.         {
  140.         fscanf( pdatfile, "%s %s", pointer, pointer+10 );
  141.         pointer += 25;
  142.         ++counter;
  143.         }
  144.     GLprnums = counter-1;    /* subtract the last (null) line */
  145.     }
  146.  
  147. pointer, pointer+10 );
  148.         pointer += 25;
  149.         ++counter;
  150.         }
  151.     GLprnums =