/*=====[ The TesSeRact(TM) CXL User Interface Development System ]======* | Copyright (c) 1987-1990, Innovative Data Concepts. All Rights Reserved | | This Library is part of IDC's TesSeRact Development Tools product | line. For information about other IDC products, call 1-215-884-3373. *----------------------------------------------------------------------* | : Public definitions and prototypes for TCXL Help system | (User level). *----------------------------------------------------------------------* | PGS : $Id: tcxlhlp.h 5.51 90/10/01 00:00:00 MLM Release Locker: MLM $ | $Log: tcxlhlp.h $ | Revision 5.51 90/10/01 00:00:00 MLM | TCXL 5.51 | *======================================================================*/ #ifndef _TCXLhlp_ # define _TCXLhlp_ 1 # ifndef _TCXLwin_ # include /* Middle level Window system */ # endif #define HCTL_STK 20 /* help-stack depth */ /*------------------[ Data objects and access macros ]------------------*/ TYP struct Hctl HctlT, *HctlP; struct Hctl /*-[ Help-control object ]-------*/ { TagT hstk[HCTL_STK]; /* 00|00 : help stack */ ChrP hfil; /* 28|28 : help file name */ VfvCP hopn; /* 2A|2C : open function */ IntT hptr; /* 2C|30 : help stack pointer */ KeyT hkey; /* 2E|32 : help hot key */ AtrT hwat; /* 30|34 : window attribute */ AtrT htat; /* 31|35 : text attribute */ AtrT hsat; /* 32|36 : selection attribute */ AtrT hbat; /* 33|37 : bar attribute */ VposT hbeg; /* 34|38 : window start position */ VposT hend; /* 36|3A : window end position */ BytT hbox; /* 38|3C : window box type */ BytT hflg; /* 39|3D : control flag bits */ }; /* 3A|3E ]-----------------------*/ GBL HctlP CDC _HlpCtl; /*- global help-control pointer ----------*/ #define HctlStk(h,i) ((h)->hstk[i]) /* stack-element[i] */ #define HctlFil(h) ((h)->hfil) /* filename */ #define HctlOpn(h) ((h)->hopn) /* open-function */ #define HctlPtr(h) ((h)->hptr) /* stack-pointer */ #define HctlKey(h) ((h)->hkey) /* hot-key */ #define HctlWat(h) ((h)->hwat) /* window attr */ #define HctlTat(h) ((h)->htat) /* text attr */ #define HctlSat(h) ((h)->hsat) /* select attr */ #define HctlBat(h) ((h)->hbat) /* bar attr */ #define HctlBeg(h) ((h)->hbeg) /* start pos */ #define HctlBegW(h) (VposW(HctlBeg(h))) /* word */ #define HctlBegR(h) (VposR(HctlBeg(h))) /* row */ #define HctlBegC(h) (VposC(HctlBeg(h))) /* col */ #define HctlEnd(h) ((h)->hend) /* end pos */ #define HctlEndW(h) (VposW(HctlEnd(h))) /* word */ #define HctlEndR(h) (VposR(HctlEnd(h))) /* row */ #define HctlEndC(h) (VposC(HctlEnd(h))) /* col */ #define HctlBox(h) ((h)->hbox) /* frame type */ #define HctlFlg(h) ((h)->hflg) /* flag bits */ #define HctlTtl(h) (0 != ((h)->hflg & 0x01)) /* display title */ /*------------------------[ Function prototypes ]-----------------------*/ #ifdef __cplusplus /* no mangling, please */ extern "C" { #endif IntT CTYP HlpAdd(TagT ht); /* Push current, then set tag-id */ IntT CTYP HlpClr(NOARG); /* Clear help-stack */ IntT HlpCur(NOARG); /* Push current help tag-id */ IntT CTYP HlpDef(ChrP fn, WrdT ky, /* Define help hot-key, file, */ IntT wa, IntT ta, IntT sa, IntT ba, /* colors, open-function */ VfvCP fo); IntT CTYP HlpDrop(NOARG); /* Drop current category */ IntT CTYP HlpOff(NOARG); /* Undefine help */ IntT CTYP HlpPop(NOARG); /* Pop help stack */ IntT CTYP HlpPush(TagT ct); /* Push help tag-id */ IntT CTYP HlpSet(TagT ct); /* Set help category by tag-id */ VOID CTYP HlpShow(NOARG); /* Display help window */ IntT CTYP HlpWind(IntT sr, IntT sc, /* Define help window */ IntT er, IntT ec, IntT bt, IntT ti); #define HlpCur() (HlpPush(WctlHlp)) #ifdef __cplusplus } #endif #endif /* _TCXLhlp_ -- End of TCXLhlp.h */