home *** CD-ROM | disk | FTP | other *** search
/ Stars of Shareware: Programmierung / SOURCE.mdf / programm / msdos / c / txcl552 / inc / tcxleng.h < prev    next >
Encoding:
C/C++ Source or Header  |  1991-04-22  |  4.3 KB  |  100 lines

  1. /*=====[ The TesSeRact(TM) CXL User Interface Development System ]======*
  2.  | Copyright (c) 1987-1991, Innovative Data Concepts, Inc.
  3.  | All Rights Reserved.
  4.  |
  5.  | This Library is part of IDC's TesSeRact Development Tools product
  6.  | line. For information about other IDC products, call 1-215-443-9705.
  7.  *-V--------------------------------------------------------------------*
  8.  | $Header:   tcxleng.h     552.3   16 Apr 1991 12:45:02  $
  9.  |
  10.  | $Log:   tcxleng.h    $
  11.  *-D--------------------------------------------------------------------*
  12.  | <TCXLeng.h> : Internal Definitions and prototypes for the TCXL page
  13.  | selection engine
  14.  *-N-----------------------[ Notes and Caveats ]------------------------*
  15.  | 1) The _Elst object is TRANSIENT and not intended for user access.
  16.  *======================================================================*/
  17. #ifndef  _TCXLeng_
  18. #  define   _TCXLeng_ 1                /* Only once!                    */
  19. #  ifndef   _TCXLdef_
  20. #    include <TCXLdef.h>               /* Standard definitions          */
  21. #  endif
  22.  
  23. #define  ENG_HOR  0x01
  24. #define  ENG_VER  0x02
  25. #define  ENG_BOT  0x03 
  26. #define  ENG_OMN  0x04
  27. #define  ENG_BDR  0x08
  28. #define  ENG_PGU  0x10
  29. #define  ENG_PGD  0x20
  30. #define  ENG_WRA  0x40
  31. #define  ENG_HOT  0x80
  32.  
  33. #define  ENG_NOA  0x01
  34. #define  ENG_DRP  0x02
  35. #define  ENG_QUT  0x04
  36.  
  37. /*------------------[ Data objects and access macros ]------------------*/
  38.  
  39. TYP   struct   _Elst ElstT, *ElstP;
  40.  
  41. struct   _Elst                /*-[ Transient page engine object ]-------*/
  42. {  VposP    epos;             /* 00|00 : Item position array            */
  43.    BytP     elen;             /* 02|04 : Item length array              */
  44.    KeyP     eret;             /* 06|0C : Pointer to return keycode      */
  45.    IntT     ecnt;             /* 08|10 : Number of items on page        */
  46.    IntT     ewid;             /* 0A|12 : Number of columns on page      */
  47.    IntT     ecur;             /* 0C|14 : Initial Item on page           */
  48.    IfiCP    ebef;             /* 0E|16 : Function to call before bar    */
  49.    IfiCP    eaft;             /* 10|1A : Function to call after bar     */
  50.    BytT     ebln;             /* 12|1E : Width of Selection Bar         */
  51.    AtrT     ewat;             /* 13|1F : Attribute of Current Window    */
  52.    AtrT     esat;             /* 14|20 : Attribute of Selection Bar     */
  53.    AtrT     eqat;             /* 15|21 : Attribute of Quick-Sel Char    */
  54.    BytT     eflg;             /* 16|22 : Page Selection Engine Flags    */
  55.    BytT     efut;             /* 17|23 : Reserved for future            */
  56. };                            /* 18|24 ]--------------------------------*/
  57.  
  58. #define  EngPos(e)      ((e)->epos)
  59. #define  EngPosI(e,i)   ((e)->epos[i])
  60. #define  EngRowI(e,i)   (VposR((e)->epos[i]))
  61. #define  EngColI(e,i)   (VposC((e)->epos[i]))
  62. #define  EngLen(e)      ((e)->elen)
  63. #define  EngLenI(e,i)   ((e)->elen[i])
  64. #define  EngRet(e)      ((e)->eret)
  65. #define  EngRetP(e)     (*((e)->eret))
  66. #define  EngCnt(e)      ((e)->ecnt)
  67. #define  EngWid(e)      ((e)->ewid)
  68. #define  EngCur(e)      ((e)->ecur)
  69. #define  EngBef(e)      ((e)->ebef)
  70. #define  EngAft(e)      ((e)->eaft)
  71. #define  EngBln(e)      ((e)->ebln)
  72. #define  EngWat(e)      ((e)->ewat)
  73. #define  EngSat(e)      ((e)->esat)
  74. #define  EngQat(e)      ((e)->eqat)
  75. #define  EngFlg(e)      ((e)->eflg)
  76. #define  EngHor(e)      (0 != (EngFlg(e) & ENG_HOR))
  77. #define  EngVer(e)      (0 != (EngFlg(e) & ENG_VER))
  78. #define  EngBoth(e)     (ENG_BOT == (EngFlg(e) & ENG_BOT))
  79. #define  EngBdr(e)      (0 != (EngFlg(e) & ENG_BDR))
  80. #define  EngPgUp(e)     (0 != (EngFlg(e) & ENG_PGU))
  81. #define  EngPgDn(e)     (0 != (EngFlg(e) & ENG_PGD))
  82. #define  EngWrap(e)     (0 != (EngFlg(e) & ENG_WRA))
  83. #define  EngHot(e)      (0 != (EngFlg(e) & ENG_HOT))
  84. #define  EngFut(e)      ((e)->efut)
  85. #define  EngNoa(e)      (0 != (EngFut(e) & ENG_NOA))
  86. #define  EngDrp(e)      (0 != (EngFut(e) & ENG_DRP))
  87. #define  EngQut(e)      (0 != (EngFut(e) & ENG_QUT))
  88.  
  89. /*------------------------[ Function prototypes ]-----------------------*/
  90.  
  91. #ifdef __cplusplus                     /* No mangling, please           */
  92.    extern "C" {
  93. #endif
  94. IntT  CTYP  _SelPag(ElstP el);
  95. IntT  CTYP  _SelMou(VposP pos, BytP len, IntT cnt);
  96. #ifdef __cplusplus
  97.    }
  98. #endif
  99. #endif   /*- _TCXLsel_ : End of TCXLeng.h ------------------------------*/
  100.