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 >
Wrap
C/C++ Source or Header
|
1992-05-15
|
5KB
|
136 lines
/*-- 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();
}