home *** CD-ROM | disk | FTP | other *** search
/ Frozen Fish 1: Amiga / FrozenFish-Apr94.iso / bbs / alib / d6xx / d658 / view.lha / View / Source / Help.c < prev    next >
C/C++ Source or Header  |  1992-05-15  |  5KB  |  136 lines

  1. /*-- AutoRev header do NOT edit!
  2. *
  3. *   Program         :   Help.c
  4. *   Copyright       :   Copyright © 1991-92 Jaba Development
  5. *   Author          :   Jan van den Baard
  6. *   Creation Date   :   05-Apr-92
  7. *   Current version :   2.0
  8. *   Translator      :   Dice v2.06.40
  9. *
  10. *   REVISION HISTORY
  11. *
  12. *   Date          Version         Comment
  13. *   ---------     -------         ------------------------------------------
  14. *   05-Apr-92     2.0             Help pages. (rewrite)
  15. *
  16. *-- REV_END --*/
  17.  
  18. #include "View.h"
  19.  
  20. Prototype long WaitForKey( long );
  21. Prototype void Help( void );
  22.  
  23. extern struct MsgPort           *vwIdPort;
  24. extern struct RastPort          *vwRPort;
  25. extern ULONG                     vwClass;
  26. extern UWORD                     vwCode, vwQualifier, vwMaxLin;
  27.  
  28. UBYTE           *Header = " \033[0;1m" CX_NAME " version " CX_VERSION " © 1991-92 Jaba Development\n"\
  29.                           "     \033[0;33mWritten with DICE C by Jan van den Baard\033[0m\n\n";
  30.  
  31. #ifdef __DETACH
  32. #define NUMHELP 27
  33. #else
  34. #define NUMHELP 28
  35. #endif
  36.  
  37. UBYTE   *HelpText[] = {
  38.     " \033[32mSpace\033[0m,\033[32mPg Dn \033[33m \033[0m          : Page down (MORE).\n",
  39.     " \033[32mBackspace\033[0m,\033[32mPg Up\033[0m        : Page up (LESS).\n",
  40.     " \033[32mReturn\033[0m,\033[32mDn\033[0m,\033[32mNk Dn\033[0m        : Next line.\n",
  41.     " \033[32mEnter\033[0m,\033[32mUp\033[0m,\033[32mNk Up\033[0m         : Previous line.\n",
  42.     " \033[32m<\033[0m,\033[32mNk Left\033[0m/\033[32m>\033[0m,\033[32mNk Right\033[0m   : First/Last page (TOP/BOTTOM).\n",
  43.     " \033[32m/\033[0m,\033[32mF\033[0m                    : Find first (case sensitive).\n",
  44.     " \033[32mN\033[0m/\033[32mP\033[0m                    : Find next/previous (case sensitive).\n",
  45.     " \033[32m.\033[0m,\033[32mS\033[0m                    : Find first (case insensitive).\n",
  46.     " \033[32mCTRL+N\033[0m/\033[32mCTRL+P\033[0m          : Find next/previous (case insensitive).\n",
  47.     " \033[32mCTRL+L\033[0m,\033[32mR\033[0m               : Refresh display.\n",
  48.     " \033[32m%\033[0m                      : Goto N%.\n",
  49. #ifndef __DETACH
  50.     " \033[32mE\033[0m                      : Edit with ENV:EDITOR (Only Shell !).\n",
  51. #endif
  52.     " \033[32mL\033[0m                      : Load a new file.\n",
  53.     " \033[32mJ\033[0m                      : Jump to last found string.\n",
  54.     " \033[32mB\033[0m                      : Goto sleep (loose text).\n",
  55.     " \033[32mCTRL+B\033[0m                 : Goto sleep (remember text).\n",
  56.     " \033[32mLSHIFT+CTRL+D\033[0m/\033[32m+P\033[0m       : Dump page/file to printer.\n",
  57.     " \033[32mH\033[0m,\033[32mHELP\033[0m                 : Help page(s).\n",
  58.     " \033[32mQ\033[0m,\033[32mCTRL+C\033[0m,\033[32mESC\033[0m,\033[32mNk 5\033[0m      : Quit view\n",
  59.     " \033[0;32mFn\033[0m                     : Mark text block #\033[32mn\033[0m.\n",
  60.     " \033[32mSHIFT+Fn\033[0m               : Unmark text block #\033[32mn\033[0m.\n",
  61.     " \033[32mCTRL+Fn\033[0m                : Jump to text block #\033[32mn\033[0m.\n",
  62.     " \033[32mLSHIFT+CTRL+Fn\033[0m         : Print text block #\033[32mn\033[0m.\n",
  63.     " \033[32mLALT+Fn\033[0m                : Save text block #\033[32mn\033[0m.\n",
  64.     " \033[32mCTRL+S\033[0m                 : Save whole text.\n",
  65.     " \033[32mM\033[0m                      : Toggle mouse-pointer.\n",
  66.     " \033[32mC\033[0m                      : Toggle scroll mode.\n",
  67.     " \033[32mSHIFT+N\033[0m                : Goto line #\033[32mn\033[0m.\n"  };
  68.  
  69. long WaitForKey( long onlyesc )
  70. {
  71.     long ret = FALSE;
  72.  
  73.     while( 1 ) {
  74.         WaitPort( vwIdPort );
  75.         while( ReadMsgPort( vwIdPort )) {
  76.             if ( vwClass == IDCMP_RAWKEY ) {
  77.                 if ((( vwCode & IECODE_UP_PREFIX ) != IECODE_UP_PREFIX ) && ( ! ( vwQualifier & IEQUALIFIER_REPEAT )))  {
  78.                     if ( onlyesc ) {
  79.                         if ( vwCode == 0x45    )
  80.                             goto breakLoop;
  81.                     } else if ( vwCode == 0x45 ) {
  82.                         ret = TRUE;
  83.                         goto breakLoop;
  84.                     } else
  85.                         goto breakLoop;
  86.                 }
  87.             }
  88.         }
  89.     }
  90.  
  91.     breakLoop:
  92.  
  93.     ClearMsgPort( vwIdPort );
  94.     return( ret );
  95. }
  96.  
  97. void Help( void )
  98. {
  99.     UWORD       i, cnt = 0;
  100.  
  101.     while( 1 ) {
  102.  
  103.         Move( vwRPort, 0, 0 );
  104.         SetAPen( vwRPort, 0 );
  105.         SetDrMd( vwRPort, JAM1 );
  106.         ClearScreen( vwRPort );
  107.  
  108.         MoveTo( 1,1 );
  109.         Inform( Header );
  110.  
  111.         for( i = 0; i < vwMaxLin - 6; i++ ) {
  112.             Inform( HelpText[ cnt++ ] );
  113.             if ( cnt == NUMHELP ) break;
  114.         }
  115.  
  116.         if ( cnt != NUMHELP ) {
  117.             Inform( "\n    \033[0;1mPRESS A KEY FOR MORE (ESC TO CONTINUE)" );
  118.             if ( WaitForKey( FALSE ))
  119.                 goto breakIt;
  120.         } else {
  121.             Inform( "\n    \033[0;1mPRESS ESC TO CONTINUE" );
  122.             WaitForKey( TRUE );
  123.             goto breakIt;
  124.         }
  125.     }
  126.  
  127.     breakIt:
  128.  
  129.     Move( vwRPort, 0, 0 );
  130.     SetAPen( vwRPort, 0 );
  131.     SetDrMd( vwRPort, JAM1 );
  132.     ClearScreen( vwRPort );
  133.     DisplayText();
  134.     InfoLine();
  135. }
  136.