home *** CD-ROM | disk | FTP | other *** search
/ QBasic & Borland Pascal & C / Delphi5.iso / C / Samples / CSAPE32.ARJ / INCLUDE / SLED.H < prev    next >
C/C++ Source or Header  |  1990-12-11  |  4KB  |  135 lines

  1. /*
  2.     sled.h
  3.  
  4.     % The sled window class header
  5.  
  6.     C-scape 3.2
  7.     Copyright (c) 1988, by Oakland Group, Inc.
  8.     ALL RIGHTS RESERVED.
  9.  
  10.     Revision History:
  11.     -----------------
  12.     12/12/88 jdc    new! from the bobsled_Class
  13.     12/13/88 jdc    added:  #define sled_funcs bob_funcs
  14.      3/29/89 jmd    converted seds to 'pure' objects, moved sleddata to sled_xd
  15.      4/28/89 jdc    added sled_GetFieldRow()
  16.      7/15/89 ted    Converted '_func' prototypes from typedef to macro.
  17.      8/04/89 gam    renamed this file to sled.h. Used to be sledwin.h
  18.      8/05/89 gam    added protection/marking for rows and columns
  19.      8/21/89 jdc    broke out close code into sledwin_Close (LNF)
  20.      8/25/89 gam    removed obsolete sld_rpnt() and sled_fkey() prototypes
  21.  
  22.     10/17/89 jdc    added sled_GetCol macro
  23.     11/27/89 ted    removed obsolete sed_GetSled() macro.
  24.     11/27/89 gam    changed sled_Repaint to sed_Repaint
  25.      2/24/90 jdc    removed sled_GetHeight
  26.      3/14/90 jmd    made sled_SetColVar a boolean
  27.      3/28/90 jmd    ansi-fied
  28.      4/11/90 jmd    removed height element from sled struct
  29.      4/23/90 jmd    changed class to winclass
  30.     06/11/90 jsm    Added right paren to sled_GetCol
  31.      6/13/90 jdc    fixed scrolling with protection
  32.      6/25/90 jdc    added sled_GetHeight macro
  33.     12/11/90 jdc    added paging macros
  34. */
  35.  
  36. #define SLEDWM_LASTMSG    (SEDWM_LASTMSG + 0)
  37.  
  38. typedef struct _sledxd {
  39.  
  40.     sed_xd            wd;                        /* sed superclass xdata */
  41.  
  42.     unsigned int    offset;
  43.     unsigned int    size;
  44.     xarray            xa;
  45.  
  46.     iarray            cflags;            /* Column special flags */
  47.     unsigned int    flagsize;        /* size of the mark/protect flag sarray */
  48.  
  49.     byte            regattr;
  50.     byte            selattr;
  51.  
  52.     unsigned int    width;
  53.  
  54.     VOID            *blank;
  55.  
  56. } sled_xd;
  57.  
  58. #define sled_getxd(sled)                 ((sled_xd *) sed_getxd(sled))
  59.  
  60. #define SLED_BSIZE 50
  61. #define SLED_ASIZE 10
  62.  
  63. /* function prototypes */
  64.  
  65. /* SLDDROWS.C */
  66. extern void     sled_DeleteRows(sed_type sed, int row, int count);
  67.  
  68. /* SLDIROWS.C */
  69. extern boolean  sled_InsertRows(sed_type sed, int row, int count);
  70.  
  71. /* SLEDOPEN.C */
  72. extern sed_type sled_ReallyOpen(menu_type menu, int hgt, spc_fptr spec_func, class_fptr winclass);
  73. extern boolean  sled_Init(sed_type sed, int hgt, spc_fptr spec_func);
  74. extern boolean  sled_remapper(sed_type sed, int offset);
  75.  
  76. /* SLEDWIN.C */
  77. extern class_func (sledwin_Class);
  78.  
  79. extern void     sledwin_Close(sed_type sed);
  80. extern int        sled_Remap(sed_type sed, int offset);
  81. extern VOID    *sled_GetColVar(sed_type sed, int col, int row);
  82. extern boolean  sled_SetColVar(sed_type sed, int col, int row, VOID *data);
  83.  
  84. /* SPCSLED.C */
  85. extern spc_func (spc_Sled);
  86.  
  87. /* the sled remapping code is now contained completely in spc_Sled */
  88. #define sled_funcs bob_funcs
  89.  
  90. /* macros */
  91.  
  92. #define    sled_Open(m, h, s)        sled_ReallyOpen(m, h, s, sledwin_Class)
  93.  
  94. #define    sled_Repaint(sed)        sed_Repaint(sed)
  95.  
  96. #define sled_GetOffset(sed)     ((sled_getxd(sed))->offset)
  97. #define sled_GetColSize(sed)     ((sled_getxd(sed))->size)
  98. #define sled_GetWidth(sed)         ((sled_getxd(sed))->width)
  99. #define sled_GetXa(sed)             ((sled_getxd(sed))->xa)
  100. #define sled_GetBlank(sed)         ((sled_getxd(sed))->blank)
  101. #define sled_GetHeight(sed)         sed_GetHeight(sed)
  102.  
  103. #define sled_SetOffset(sed, o)     ((sled_getxd(sed))->offset = (o))
  104. #define sled_SetColSize(sed, c) ((sled_getxd(sed))->size = (c))
  105. #define sled_SetWidth(sed, w)    ((sled_getxd(sed))->width = (w))
  106. #define sled_SetXa(sed, x)         ((sled_getxd(sed))->xa = (x))
  107. #define sled_SetBlank(sed, b)    ((sled_getxd(sed))->blank = (b))
  108.  
  109. #define sled_GetTextHeight(sed)    \
  110.     (menu_GetFieldRow(sed_GetMenu(sed), sed_GetGridField(sed, 0, 0)) + 1)
  111.  
  112. #define sled_PageUp(sed)        \
  113.     sled_Remap(sed, - sed_GetHeight(sed) + sled_GetTextHeight(sed))
  114.  
  115. #define sled_PageDown(sed)        \
  116.         sled_Remap(sed, sed_GetHeight(sed) - sled_GetTextHeight(sed));
  117.  
  118. #define sled_flagsize(sed)        ((sled_getxd(sed))->flagsize)
  119.  
  120. /* Get the "current" row in the column array */
  121. #define sled_GetRow(sed) \
  122.     (sed_GetGridRow(sed, sed_GetFieldNo(sed)) + sled_GetOffset(sed))
  123.  
  124. /* Get the "current" col in the sled         */
  125. #define sled_GetCol(sed) \
  126.     (sed_GetGridCol(sed, sed_GetFieldNo(sed)))
  127.  
  128. /* Get the row in the column array that a particular field displays */
  129. #define sled_GetFieldRow(sed, fldno) \
  130.     (sed_GetGridRow(sed, fldno) + sled_GetOffset(sed))
  131.  
  132. #define sled_IsLastRow(sed) \
  133.     ((sled_GetRow(sed) >= sled_GetColSize(sed) - 1 ) ? TRUE : FALSE)
  134.  
  135.