home *** CD-ROM | disk | FTP | other *** search
- /*-- AutoRev header do NOT edit!
- *
- * Program : event.c
- * Copyright : Copyright © 1991-92 Jaba Development
- * Author : Jan van den Baard
- * Creation Date : 04-Apr-1992
- * Current version : 2.0
- * Translator : Dice v2.06.40
- *
- * REVISION HISTORY
- *
- * Date Version Comment
- * --------- ------- ------------------------------------------
- * 04-Apr-92 2.0 View keyboard event-handler. (rewrite)
- *
- *-- REV_END --*/
-
- #include "view.h"
-
- /*
- * All kinds of qualifier-key combinations.
- */
- #define MOUSE IEQUALIFIER_RELATIVEMOUSE
- #define REPEAT IEQUALIFIER_REPEAT
- #define LOCK IEQUALIFIER_CAPSLOCK
- #define NUMPAD IEQUALIFIER_NUMERICPAD
- #define LSHIFT IEQUALIFIER_LSHIFT
- #define RSHIFT IEQUALIFIER_RSHIFT
- #define CONTROL IEQUALIFIER_CONTROL
- #define ALT IEQUALIFIER_LALT
-
- #define NORM1 MOUSE
- #define NORM2 NORM1+REPEAT
- #define NORM3 NORM1+LOCK
- #define NORM4 NORM2+LOCK
-
- #define LALT1 MOUSE+ALT
- #define LALT2 LALT1+REPEAT
- #define LALT3 LALT1+LOCK
- #define LALT4 LALT2+LOCK
-
- #define NUMP1 MOUSE+NUMPAD
- #define NUMP2 NUMP1+REPEAT
- #define NUMP3 NUMP1+LOCK
- #define NUMP4 NUMP2+LOCK
-
- #define CTRL1 MOUSE+CONTROL
- #define CTRL2 CTRL1+REPEAT
- #define CTRL3 CTRL1+LOCK
- #define CTRL4 CTRL2+LOCK
-
- #define PRIN1 CTRL1+LSHIFT
- #define PRIN2 CTRL3+LSHIFT
-
- #define SHIF1 MOUSE+LSHIFT
- #define SHIF2 MOUSE+RSHIFT
- #define SHIF3 SHIF1+REPEAT
- #define SHIF4 SHIF2+REPEAT
- #define SHIF5 SHIF1+LOCK
- #define SHIF6 SHIF2+LOCK
- #define SHIF7 SHIF3+LOCK
- #define SHIF8 SHIF4+LOCK
-
- /*
- * hot-keys to be pressed together with LALT+LAMIGA
- * when view is taking a nap.
- */
- #define VIEW 0x34
- #define QUIT 0x10
- #define FLUSH 0x23
-
- /*
- * some external referenced globals.
- */
- #ifndef __DETACH
- extern ULONG vwArgs[];
- #else
- extern ULONG *vwArgs;
- #endif
- extern UWORD vwPMark;
- extern UWORD vwMode, vwPMode;
- extern UBYTE vwPrinting, vwErr;
- extern UBYTE ClearStr[];
- extern struct Screen *vwScreen;
- extern UBYTE vwFound;
- extern struct AsciiText *vwText;
- extern UBYTE KeyTable[];
- extern UBYTE SKeyTable[];
-
- extern __far struct Custom custom;
-
- Prototype void HandleKeyboard( UWORD, UWORD );
-
- /*
- * Handle all incoming RAWKEY messages.
- */
- void HandleKeyboard( code, qualifier )
- UWORD code, qualifier;
- {
- if(( code & IECODE_UP_PREFIX) != IECODE_UP_PREFIX ) {
- if ( vwErr ) InfoLine();
-
- switch( qualifier ) {
-
- case NORM1:
- case NORM2:
- case NORM3:
- case NORM4:
- if ( code < 64 ) {
- switch( KeyTable[ code ] ) {
-
- case 'm':
- if ( vwArgs[ 11 ] ) {
- vwArgs[ 11 ] = NULL;
- ON_SPRITE;
- } else {
- vwArgs[ 11 ] = ~0;
- OFF_SPRITE;
- }
- break;
-
- case 'c':
- if ( vwArgs[ 12 ] )
- vwArgs[ 12 ] = NULL;
- else
- vwArgs[ 12 ] = ~0;
- break;
-
- case 'h':
- Help();
- break;
-
- case 'q':
- if ( ! vwPrinting ) Quit( RETURN_OK );
- break;
-
- case '/':
- case 'f':
- vwMode = TRUE;
- Find();
- break;
-
- case '.':
- case 's':
- vwMode = FALSE;
- Find();
- break;
-
- case 'n':
- vwMode = TRUE;
- FindNP( SR_FORWARD );
- break;
-
- case 'p':
- vwMode = TRUE;
- FindNP( SR_BACKWARD );
- break;
-
- case 'r':
- Inform( ClearStr );
- DisplayText();
- break;
- #ifndef __DETACH
- case 'e':
- EditFile();
- break;
- #endif
- case 'l':
- if ( ! vwPrinting ) LoadFile( TRUE );
- break;
-
- case 'j':
- if ( vwFound )
- DoFound();
- break;
-
- case 'b':
- if ( ! vwPrinting ) {
- if ( vwText ) FreeAscii( vwText );
- vwText = NULL;
- CloseDisplay();
- }
- break;
-
- case '<':
- Top();
- break;
-
- default:
- break;
- }
- } else if ( code >= 0x50 && code <= 0x59 ) {
- SetMark(( UWORD )( code - 0x50 ));
- break;
- } else {
- switch( code ) {
-
- case 0x40:
- PageDown();
- break;
-
- case 0x41:
- PageUp();
- break;
-
- case 0x4d:
- case 0x44:
- LineDown();
- break;
-
- case 0x4c:
- LineUp();
- break;
-
- case 0x5f:
- Help();
- break;
-
- case 0x45:
- if ( ! vwPrinting) Quit( RETURN_OK );
- break;
-
- default:
- break;
- }
- }
- break;
-
- case NUMP1:
- case NUMP2:
- case NUMP3:
- case NUMP4:
- if ( code < 64 ) {
- switch( KeyTable[ code ] ) {
-
- case '7':
- case '4':
- Top();
- break;
-
- case '1':
- case '6':
- Bottom();
- break;
-
- case '8':
- LineUp();
- break;
-
- case '2':
- LineDown();
- break;
-
- case '9':
- PageUp();
- break;
-
- case '3':
- PageDown();
- break;
-
- case '5':
- if ( ! vwPrinting ) Quit( RETURN_OK );
- break;
-
- default:
- break;
- }
- } else if ( code == 0x43 ) {
- LineUp();
- break;
- }
- break;
-
- case CTRL1:
- case CTRL2:
- case CTRL3:
- case CTRL4:
- if ( code < 64 ) {
- switch( KeyTable[ code ] ) {
-
- case 'c':
- if ( ! vwPrinting ) Quit( RETURN_OK );
- break;
-
- case 'n':
- vwMode = FALSE;
- FindNP( SR_FORWARD );
- break;
-
- case 'p':
- vwMode = FALSE;
- FindNP( SR_BACKWARD );
- break;
-
- case 'l':
- Inform( ClearStr );
- DisplayText();
- break;
-
- case 'b':
- if ( ! vwPrinting )
- CloseDisplay();
- break;
-
- case 's':
- SaveBlock( -1 );
- break;
-
- default:
- break;
- }
- } else if ( code >= 0x50 && code <= 0x59 ) {
- JumpMark(( UWORD )( code - 0x50 ));
- break;
- }
- break;
-
- case PRIN1:
- case PRIN2:
- if ( code < 64 ) {
- switch( KeyTable[ code ] ) {
-
- case 'd':
- if ( ! vwPrinting ) {
- vwPMode = PRT_PAGE;
- PrintFile();
- }
- break;
-
- case 'p':
- if ( ! vwPrinting ) {
- vwPMode = PRT_FILE;
- PrintFile();
- }
- break;
-
- default:
- break;
- }
- } else if ( code >= 0x50 && code <= 0x59 ) {
- vwPMode = PRT_BLOCK;
- vwPMark = ( UWORD )( code - 0x50 );
- PrintFile();
- break;
- }
- break;
-
- case SHIF1:
- case SHIF2:
- case SHIF3:
- case SHIF4:
- case SHIF5:
- case SHIF6:
- case SHIF7:
- case SHIF8:
- if ( code < 64 ) {
- switch( SKeyTable[ code ] ) {
-
- case '<':
- Top();
- break;
-
- case '>':
- Bottom();
- break;
-
- case '%':
- Goto( GT_PERC );
- break;
-
- case 'N':
- Goto( GT_LINE );
- break;
-
- default:
- break;
- }
- } else if ( code >= 0x50 && code <= 0x59 ) {
- UnSetMark(( UWORD )( code - 0x50 ));
- break;
- }
- break;
-
- case LALT1:
- case LALT2:
- case LALT3:
- case LALT4:
- if ( code >= 0x50 && code <= 0x59 ) {
- SaveBlock(( WORD )( code - 0x50 ));
- break;
- }
- break;
-
- default:
- break;
- }
- }
- }
-