/*-- AutoRev header do NOT edit! * * Program : Help.c * Copyright : Copyright © 1991-92 Jaba Development * Author : Jan van den Baard * Creation Date : 05-Apr-92 * Current version : 2.0 * Translator : Dice v2.06.40 * * REVISION HISTORY * * Date Version Comment * --------- ------- ------------------------------------------ * 05-Apr-92 2.0 Help pages. (rewrite) * *-- REV_END --*/ #include "View.h" Prototype long WaitForKey( long ); Prototype void Help( void ); extern struct MsgPort *vwIdPort; extern struct RastPort *vwRPort; extern ULONG vwClass; extern UWORD vwCode, vwQualifier, vwMaxLin; UBYTE *Header = " \033[0;1m" CX_NAME " version " CX_VERSION " © 1991-92 Jaba Development\n"\ " \033[0;33mWritten with DICE C by Jan van den Baard\033[0m\n\n"; #ifdef __DETACH #define NUMHELP 27 #else #define NUMHELP 28 #endif UBYTE *HelpText[] = { " \033[32mSpace\033[0m,\033[32mPg Dn \033[33m \033[0m : Page down (MORE).\n", " \033[32mBackspace\033[0m,\033[32mPg Up\033[0m : Page up (LESS).\n", " \033[32mReturn\033[0m,\033[32mDn\033[0m,\033[32mNk Dn\033[0m : Next line.\n", " \033[32mEnter\033[0m,\033[32mUp\033[0m,\033[32mNk Up\033[0m : Previous line.\n", " \033[32m<\033[0m,\033[32mNk Left\033[0m/\033[32m>\033[0m,\033[32mNk Right\033[0m : First/Last page (TOP/BOTTOM).\n", " \033[32m/\033[0m,\033[32mF\033[0m : Find first (case sensitive).\n", " \033[32mN\033[0m/\033[32mP\033[0m : Find next/previous (case sensitive).\n", " \033[32m.\033[0m,\033[32mS\033[0m : Find first (case insensitive).\n", " \033[32mCTRL+N\033[0m/\033[32mCTRL+P\033[0m : Find next/previous (case insensitive).\n", " \033[32mCTRL+L\033[0m,\033[32mR\033[0m : Refresh display.\n", " \033[32m%\033[0m : Goto N%.\n", #ifndef __DETACH " \033[32mE\033[0m : Edit with ENV:EDITOR (Only Shell !).\n", #endif " \033[32mL\033[0m : Load a new file.\n", " \033[32mJ\033[0m : Jump to last found string.\n", " \033[32mB\033[0m : Goto sleep (loose text).\n", " \033[32mCTRL+B\033[0m : Goto sleep (remember text).\n", " \033[32mLSHIFT+CTRL+D\033[0m/\033[32m+P\033[0m : Dump page/file to printer.\n", " \033[32mH\033[0m,\033[32mHELP\033[0m : Help page(s).\n", " \033[32mQ\033[0m,\033[32mCTRL+C\033[0m,\033[32mESC\033[0m,\033[32mNk 5\033[0m : Quit view\n", " \033[0;32mFn\033[0m : Mark text block #\033[32mn\033[0m.\n", " \033[32mSHIFT+Fn\033[0m : Unmark text block #\033[32mn\033[0m.\n", " \033[32mCTRL+Fn\033[0m : Jump to text block #\033[32mn\033[0m.\n", " \033[32mLSHIFT+CTRL+Fn\033[0m : Print text block #\033[32mn\033[0m.\n", " \033[32mLALT+Fn\033[0m : Save text block #\033[32mn\033[0m.\n", " \033[32mCTRL+S\033[0m : Save whole text.\n", " \033[32mM\033[0m : Toggle mouse-pointer.\n", " \033[32mC\033[0m : Toggle scroll mode.\n", " \033[32mSHIFT+N\033[0m : Goto line #\033[32mn\033[0m.\n" }; long WaitForKey( long onlyesc ) { long ret = FALSE; while( 1 ) { WaitPort( vwIdPort ); while( ReadMsgPort( vwIdPort )) { if ( vwClass == IDCMP_RAWKEY ) { if ((( vwCode & IECODE_UP_PREFIX ) != IECODE_UP_PREFIX ) && ( ! ( vwQualifier & IEQUALIFIER_REPEAT ))) { if ( onlyesc ) { if ( vwCode == 0x45 ) goto breakLoop; } else if ( vwCode == 0x45 ) { ret = TRUE; goto breakLoop; } else goto breakLoop; } } } } breakLoop: ClearMsgPort( vwIdPort ); return( ret ); } void Help( void ) { UWORD i, cnt = 0; while( 1 ) { Move( vwRPort, 0, 0 ); SetAPen( vwRPort, 0 ); SetDrMd( vwRPort, JAM1 ); ClearScreen( vwRPort ); MoveTo( 1,1 ); Inform( Header ); for( i = 0; i < vwMaxLin - 6; i++ ) { Inform( HelpText[ cnt++ ] ); if ( cnt == NUMHELP ) break; } if ( cnt != NUMHELP ) { Inform( "\n \033[0;1mPRESS A KEY FOR MORE (ESC TO CONTINUE)" ); if ( WaitForKey( FALSE )) goto breakIt; } else { Inform( "\n \033[0;1mPRESS ESC TO CONTINUE" ); WaitForKey( TRUE ); goto breakIt; } } breakIt: Move( vwRPort, 0, 0 ); SetAPen( vwRPort, 0 ); SetDrMd( vwRPort, JAM1 ); ClearScreen( vwRPort ); DisplayText(); InfoLine(); }