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

  1. /*
  2.       helpdecl.h
  3.  
  4.     % Header for C-scape help system.
  5.  
  6.     written by Joe DeSantis.
  7.  
  8.     C-scape 3.2
  9.     Copyright (c) 1986, 1987, by Oakland Group, Inc.
  10.     ALL RIGHTS RESERVED.
  11.  
  12.     Revision History:
  13.     -----------------
  14.      9/01/87 jmd     added NO_PROTO option
  15.      9/16/88 jmd     added help_fptr, _arg
  16.     12/13/88 jmd     added hshow_fptr
  17.  
  18.      4/22/89 jmd    renamed border element in structures to bord
  19.      7/15/89 ted    Converted '_func' prototypes from typedef to macro.
  20.  
  21.      3/08/90 jmd    improved index array scheme
  22.      3/28/90 jmd    ansi-fied
  23.      5/08/90 jmd    added underscores to func macros for vms compiler
  24. */
  25.  
  26. #define    HELPLINE    100                /* size of help line buffer */
  27.  
  28. /** help_Init return values **/
  29.  
  30. #define    HELP_OK            0
  31. #define    HELP_NOMEM        1
  32. #define    HELP_BADARG        2
  33. #define    HELP_BADFILE    3
  34. #define    HELP_NOMSG        4
  35.  
  36.  
  37. #define help_func(fname)            int fname(struct help_struct *_help)
  38.  
  39. /** the help structure **/
  40.  
  41. typedef struct help_struct {
  42.  
  43.         int         msg;            /* the current message */
  44.         int         chap;            /* the current chapter */
  45.         int            par;            /* the current paragraph */
  46.  
  47.         int         high_msg;        /* highest accessed message */
  48.  
  49.         FILE       *fp;             /* the help file */
  50.         larray        offset;            /* larray of offsets in help file */
  51.  
  52.         unsigned int size;            /* size of text */
  53.         char        *text;            /* message text buffer */
  54.         char        title[HELPLINE+3];  /* title string */
  55.  
  56.         int           *index;            /* the index of messages */
  57.         int            chap_count;        /* number of chapters */
  58.         int            par_count;        /* number of paragraphs */
  59.  
  60.         help_func ((*disp));        /* the display function */
  61.  
  62.         VOID       *data;            /* the help data pointer */
  63.  
  64. } *help_type;
  65.  
  66. /** the help display function type **/
  67.  
  68. typedef help_func ((*help_fptr));
  69.  
  70. #define    help_GetMessage(h)         ((h)->msg)
  71. #define    help_GetChapter(h)         ((h)->chap)
  72. #define    help_GetParagraph(h)    ((h)->par)
  73.  
  74. #define    help_GetData(h)     ((h)->data)
  75. #define    help_GetTitle(h)     ((h)->title)
  76. #define    help_GetText(h)     ((h)->text)
  77. #define    help_GetSize(h)     ((h)->size)
  78.  
  79. /*** Functions ***/
  80.  
  81. #define hshow_func(fname)            int fname(int _chap, int _par)
  82. typedef hshow_func ((*hshow_fptr));
  83.  
  84. /* HELP.C */
  85. extern int      help_Init(FILE *fp, help_fptr disp, unsigned size, VOID *data);
  86. extern int      _help_Show(int chap, int par);
  87. extern int      help_Index(int chap, int par);
  88. extern boolean  help_LookUp(int msg);
  89. extern void     help_Close(void);
  90.  
  91. /* HELPSHOW.C */
  92. extern int      help_Show(int chap, int par);
  93. extern void     _help_InitShow(hshow_fptr func);
  94.  
  95. /* HELPVIEW.C */
  96. extern int      help_View(help_type h);
  97.  
  98. /* HELPXREF.C */
  99. extern int      help_Xref(help_type h);
  100.  
  101. /* misc data structures */
  102.  
  103. struct hv_struct {                    /* used by help_View */
  104.         int            row;            /* row position of help window */
  105.         int            col;            /* col position of help window */
  106.         int         height;            /* height of help window */
  107.         int            width;            /* width of help window */
  108.         char         color;            /* color of help window */
  109.         bd_fptr        bord;            /* help window border function */
  110. };
  111.  
  112. struct hx_struct {                    /* used by help_Xref */
  113.         char         bk_clr;            /* background color of help window */
  114.         char         reg_clr;        /* color of choices */
  115.         char         sel_clr;        /* color of selected choice */
  116.         char         bd_clr;            /* color of help window border */
  117.         bd_fptr        bord;            /* help window border function */
  118. };
  119.