home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 7 / 07.iso / c / c185 / 1.ddi / FUNCS.EXE / CSCAPE / SOURCE / SPCEMBED.C < prev    next >
Encoding:
C/C++ Source or Header  |  1989-09-07  |  1.9 KB  |  101 lines

  1. /*
  2.     spcembed.c      8/22/88
  3.  
  4.     % spc_Embed
  5.  
  6.     C-scape 3.1
  7.     Copyright (c) 1988, by Oakland Group, Inc.
  8.     ALL RIGHTS RESERVED.
  9.  
  10.     Revision History:
  11.     -----------------
  12.     11/28/88 jmd    renamed
  13.     12/01/88 jmd    replaced LEFT/RIGHT with TAB/SHFT_TAB
  14.     12/06/88 jmd    added nested bob support
  15.  
  16.      5/16/89 jmd    removed ENTER support
  17. */
  18.  
  19. #include <stdio.h>
  20. #include <ctype.h>
  21.  
  22. #include "cscape.h"
  23. #include "scancode.h"
  24.  
  25. /* special function for embedded seds */
  26.  
  27. boolean spc_Embed(sed, scancode)
  28.     sed_type sed;
  29.     int scancode;
  30. /*
  31.     effects:    Handles movement between fields.
  32.                     ESC        sets baton to 0, exits
  33.                     UP         goes up a field,
  34.                     DOWN     goes down a field,
  35.                     RIGHT      goes right a field,
  36.                     LEFT    goes left a field,
  37.  
  38.     returns:    TRUE if intercepted a key, FALSE otherwise.
  39.  
  40.     Note:  This routine also tests for BOB_ values because
  41.     it might be called from bob_funcs.
  42. */
  43. {
  44.     switch (scancode) {
  45.     case BOB_QUIT:
  46.     case ESC:
  47.         sed_SetBaton(sed, BOB_QUIT);
  48.         sed_ToggleExit(sed);
  49.         return(TRUE);
  50.  
  51. #ifdef COMMENTED_OUT
  52.     case ENTER:
  53.         /* try to go to the next field else exit */
  54.         if (sed_IncField(sed) == SED_STUCK) {
  55.             sed_SetBaton(sed, sed_GetFieldNo(sed) + 1);
  56.             sed_ToggleExit(sed);
  57.         }
  58.         return(TRUE);
  59. #endif
  60.  
  61.     case BOB_UP:
  62.     case UP:
  63.         if (sed_UpField(sed) == SED_STUCK) {
  64.             sed_SetBaton(sed, BOB_UP);
  65.             sed_ToggleExit(sed);
  66.         }
  67.         return(TRUE);
  68.  
  69.     case BOB_DOWN:
  70.     case DOWN:    
  71.         if (sed_DownField(sed) == SED_STUCK) {
  72.             sed_SetBaton(sed, BOB_DOWN);
  73.             sed_ToggleExit(sed);
  74.         }
  75.         return(TRUE);
  76.  
  77.     case BOB_RIGHT:
  78.     case TAB:
  79.         if (sed_RightField(sed) == SED_STUCK) {
  80.             sed_SetBaton(sed, BOB_RIGHT);
  81.             sed_ToggleExit(sed);
  82.         }
  83.         return(TRUE);
  84.  
  85.     case BOB_LEFT:    
  86.     case SHFT_TAB:    
  87.         if (sed_LeftField(sed) == SED_STUCK) {
  88.             sed_SetBaton(sed, BOB_LEFT);
  89.             sed_ToggleExit(sed);
  90.         }
  91.         return(TRUE);
  92.  
  93.     default:
  94.         break;
  95.     }
  96.     return(FALSE);
  97. }
  98.  
  99.  
  100.  
  101.