home *** CD-ROM | disk | FTP | other *** search
/ QBasic & Borland Pascal & C / Delphi5.iso / C / Samples / CSAPE32.ARJ / SOURCE / FUNCS / SPCEMBED.C < prev    next >
C/C++ Source or Header  |  1990-08-07  |  2KB  |  107 lines

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