home *** CD-ROM | disk | FTP | other *** search
/ QBasic & Borland Pascal & C / Delphi5.iso / C / Samples / CSAPE32.ARJ / INCLUDE / SLEDPROT.H < prev    next >
C/C++ Source or Header  |  1990-06-13  |  3KB  |  91 lines

  1. /*
  2.     sledprot.h
  3.  
  4.     % Prototypes and macros for sled row/column protection and marking.
  5.  
  6.     C-scape 3.2
  7.     Copyright (c) 1989, by Oakland Group, Inc.
  8.     ALL RIGHTS RESERVED.
  9.  
  10.     Revision History:
  11.     -----------------
  12.      6/04/89 gam    Created...and there was light!
  13.      6/07/89 gam    made sled_getrowflags a function for Microsoft
  14.      8/14/89 jmd    added arg macros (again!)
  15.      3/28/90 jmd    ansi-fied
  16.      5/01/90 jmd    added UnProtect macros
  17.      6/13/90 jdc    fixed scrolling with protection
  18. */
  19.  
  20. /* Bit specification for the special bytes */
  21. #define    SLED_PROTECT_MASK        0x0001
  22. #define SLED_MARK_MASK            0x0002
  23.  
  24. /* Function prototypes */
  25. /* SLEDPROT.C */
  26. extern void     sled_GetMarkAttr(sed_type sed, byte *regular, byte *selected);
  27. extern void     sled_SetMarkAttr(sed_type sed, byte regular, byte selected);
  28. extern void     sled_setrowflags(sed_type sed, int row, boolean torf, int mask);
  29. extern void     sled_setcolflags(sed_type sed, int col, boolean torf, int mask);
  30.  
  31. /* SLEDWIN.C */
  32. extern int      sled_getrowspecial(sed_type sed, int row);
  33.  
  34. /* Higher level macros */
  35. #define sled_IsProtectedRow(sed, row)    \
  36.     (sled_getrowflags((sed), (row), SLED_PROTECT_MASK))
  37.  
  38. #define sled_ProtectRow(sed, row) \
  39.     (sled_setrowflags((sed), (row), TRUE, SLED_PROTECT_MASK))
  40.  
  41. #define sled_UnProtectRow(sed, row) \
  42.     (sled_setrowflags((sed), (row), FALSE, SLED_PROTECT_MASK))
  43.  
  44. #define sled_IsProtectedCol(sed, col) \
  45.     (sled_getcolflags((sed), (col), SLED_PROTECT_MASK))
  46.  
  47. #define sled_ProtectCol(sed, col) \
  48.     (sled_setcolflags((sed), (col), TRUE, SLED_PROTECT_MASK))
  49.  
  50. #define sled_UnProtectCol(sed, col) \
  51.     (sled_setcolflags((sed), (col), FALSE, SLED_PROTECT_MASK))
  52.  
  53. #define sled_IsMarkedRow(sed, row)    \
  54.     (sled_getrowflags((sed), (row), SLED_MARK_MASK))
  55.  
  56. #define sled_MarkRow(sed, row) \
  57.     (sled_setrowflags((sed), (row), TRUE, SLED_MARK_MASK))
  58.  
  59. #define sled_UnMarkRow(sed, row) \
  60.     (sled_setrowflags((sed), (row), FALSE, SLED_MARK_MASK))
  61.  
  62. #define sled_IsMarkedCol(sed, col) \
  63.     (sled_getcolflags((sed), (col), SLED_MARK_MASK))
  64.  
  65. #define sled_MarkCol(sed, col) \
  66.     (sled_setcolflags((sed), (col), TRUE, SLED_MARK_MASK))
  67.  
  68. #define sled_UnMarkCol(sed, col) \
  69.     (sled_setcolflags((sed), (col), FALSE, SLED_MARK_MASK))
  70.  
  71.  
  72. /* Implementation macros. */
  73.  
  74. /* Get the column special bytes */
  75. #define sled_getcflags(sed)            ((sled_getxd(sed))->cflags)
  76. #define sled_setcflags(sed, c)         ((sled_getxd(sed))->cflags = (c))
  77.  
  78. /* Macros to test and set row and column special bits. */
  79. #define sled_getrowflags(sed,row,mask) \
  80.     ((boolean)sled_getrowspecial(sed, row) & mask)
  81.  
  82. #define sled_getcolflags(sed,col,mask) \
  83.     ((boolean)ia_Get(sled_getcflags(sed), col) & mask)
  84.  
  85. #define sled_GetRegAttr(sed) ((sled_getxd(sed))->regattr)
  86. #define sled_GetSelAttr(sed) ((sled_getxd(sed))->selattr)
  87.  
  88. #define sled_SetRegAttr(sed, m) ((sled_getxd(sed))->regattr = (m))
  89. #define sled_SetSelAttr(sed, s) ((sled_getxd(sed))->selattr = (s))
  90.  
  91.