home *** CD-ROM | disk | FTP | other *** search
/ QBasic & Borland Pascal & C / Delphi5.iso / C / Samples / CSAPE32.ARJ / SOURCE / CSSRC / SD1STFLD.C < prev    next >
C/C++ Source or Header  |  1990-03-28  |  1KB  |  61 lines

  1. /*    
  2.     sd1stfld.c    11/10/86    
  3.  
  4.     % sed_GotoFirstField
  5.  
  6.     C-scape 3.2
  7.     Copyright (c) 1986, 1987, by Oakland Group, Inc.
  8.     ALL RIGHTS RESERVED.
  9.  
  10.     Revision History:
  11.     -----------------
  12.     11/18/87 jmd     changed names of some low-level funcs
  13.      4/08/88 jmd     changed sed->fieldcount to sed_GetFieldCount()
  14.  
  15.      3/24/89 jmd    added sed_ macros
  16.     
  17.      3/17/90 jmd    added Cache/Flush
  18.      3/28/90 jmd    ansi-fied
  19. */
  20.  
  21. #include "sed.h"
  22.  
  23. int sed_GotoFirstField(sed_type sed)
  24. /*
  25.     modifies:    sed object.
  26.     effects:    tries to go to the first unprotected editing field
  27.                 (contingent upon passing the fexit test).  
  28.                 If the sed is active, call the fenter and fexit functions.
  29. */
  30. {
  31.     register int    first_fld;
  32.  
  33.     cs_Assert(sed_Ok(sed), CS_SD_GFF_SED, 0);
  34.  
  35.     /* find next unprotected field */
  36.     for (first_fld = 0; first_fld < sed_GetFieldCount(sed); first_fld++) {
  37.         if (!menu_IsProtected(sed_GetMenu(sed), first_fld)) 
  38.             break;
  39.     }
  40.  
  41.     if (first_fld >= sed_GetFieldCount(sed)) {    /* no unprotected fields found */
  42.         return(SED_STUCK);
  43.     }
  44.  
  45.     if (!sd_exitfield(sed)) {
  46.         return(SED_INVALID);
  47.     }
  48.  
  49.     disp_Cache();
  50.     sd_scroll_adjust(sed, first_fld);
  51.     sd_goto_field(sed, first_fld);
  52.  
  53.     if (sed_IsActive(sed)) {
  54.         sed_DoFieldFenter(sed, sed_GetFieldNo(sed));
  55.     }
  56.     disp_Flush();
  57.     
  58.     return(SED_MOVED);
  59. }
  60.  
  61.