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

  1. /*
  2.     sledirows.c
  3.  
  4.     % sled_InsertRows
  5.  
  6.     C-scape 3.2
  7.     Copyright (c) 1988, by Oakland Group, Inc.
  8.     ALL RIGHTS RESERVED.
  9.  
  10.     Revision History:
  11.     -----------------
  12.     10/14/88 jdc    created
  13.     11/09/88 jdc     rewrote for sarrays
  14.     
  15.      3/29/89 jmd    converted seds to 'pure' objects, cleaned up macros
  16.      4/13/89 jmd    added Fenter, Fexit support
  17.      5/23/89 jdc    added check for varsize == 0
  18.      8/04/89 gam    changed #include <sledwin.h> to sled.h
  19.      8/05/89 gam    added protection/marking for rows and columns
  20.  
  21.      2/22/90 jdc    preened
  22.      3/28/90 jmd    ansi-fied
  23.      7/25/90 jdc    changed DoFieldFexit to sd_exitfield
  24.      8/27/90 jdc    added active check for sed_DoSexits
  25.     10/07/90 jdc    fixed GoHome and Fenter
  26.     10/28/90 jdc    fixed boolean/int ret conflict
  27. */
  28.  
  29. #include "sed.h"
  30. #include "sadecl.h"
  31. #include "sled.h"
  32.  
  33. boolean sled_InsertRows(sed_type sed, int row, int count)
  34. {
  35.     int col;
  36.     boolean ret = TRUE;
  37.     sarray_type sa;
  38.  
  39.     /* call fexit cause we are 'leaving' the field */
  40.     if (!sd_exitfield(sed)) {
  41.         return(FALSE);
  42.     }
  43.  
  44.     /* Save current field vars */
  45.     if (sed_IsActive(sed)) {
  46.         sed_DoSexits(sed);
  47.     }
  48.  
  49.     /* Don't forget to do the protection column (notice the "<=") */
  50.     for (col = 0; col <= sled_GetWidth(sed); col++) {
  51.  
  52.         /* set the columns, sa == NULL means varsize == 0 */
  53.         sa = (sarray_type) xa_Get(sled_GetXa(sed), col);
  54.         if (sa != NULL && sa_Blank(sa, (long)row, count, TRUE) == NULL) {
  55.             ret = FALSE;
  56.         }
  57.     }
  58.     if (ret) {
  59.         sled_SetColSize(sed, sled_GetColSize(sed) + count);
  60.         sed_SetMenuVHeight(sed, sled_GetColSize(sed));
  61.  
  62.         sled_remapper(sed, 0);
  63.  
  64.         /* the field should appear to be newly entered */
  65.         sed_GoHome(sed);
  66.         sed_DoFieldFenter(sed, sed_GetFieldNo(sed));
  67.     }
  68.  
  69.     return(ret);
  70. }
  71.