home *** CD-ROM | disk | FTP | other *** search
/ QBasic & Borland Pascal & C / Delphi5.iso / C / Samples / CSAPE32.ARJ / EXAMPLES / DEMOHELP.C < prev    next >
C/C++ Source or Header  |  1991-03-09  |  3KB  |  135 lines

  1. /*    
  2.     demohelp.c     
  3.  
  4.     C-scape 3.2    Example Program
  5.     Copyright (c) 1988, 1990 by Oakland Group, Inc.
  6.     ALL RIGHTS RESERVED.
  7.  
  8.     This program demonstrates the use of the C-scape help system.
  9.     The help file "demohelp.hlp" is used.
  10.  
  11.     Revision History:
  12.     -----------------
  13.      4/01/90 jmd    ansi-fied
  14.      6/06/90 jmd    changed main to return an int
  15.      9/14/90 bkd    changed to use exit(0) instead of return(0).
  16.     10/19/90 pmcm    included ostdlib.h for exit(), added return(1)
  17.     12/01/90 ted    prototyped main, except if Turbo C++.
  18.     12/04/90 ted    restored "" includes for C-scape headers (not <> includes).
  19. */
  20.  
  21. #include <stdio.h>
  22.  
  23. #include "cscape.h"
  24. #include "ostdlib.h"    /*    for exit() */
  25. #include "helpdecl.h"
  26. #include "popdecl.h"
  27.  
  28. /*** Function prototypes ***/
  29.  
  30. /* Turbo C++ complains if main is prototyped */
  31. #ifndef TCP
  32. int main(void);
  33. #endif
  34.  
  35. int test(int *i, long *l, long *money, char *s);
  36.  
  37. struct hx_struct hxd = { 0x07, 0x0f, 0x70, 0x07, bd_xref};
  38.  
  39. int main(void)
  40. {
  41.     FILE *fp;
  42.  
  43.     char     string[25];
  44.     int     i = 0;
  45.     long     l = 0L;
  46.     long     money = 0L;
  47.  
  48.     string[0] = '\0';
  49.  
  50.     /* Initialize the display */
  51.     disp_Init(def_ModeText, FNULL);
  52.  
  53.     fp = fopen("demohelp.hlp", "rb");
  54.  
  55.     if (fp == NULL) {
  56.         pop_Prompt("Unable to open help file.\n", -1, -1, -1, 26, (byte) 0x70, bd_2);
  57.  
  58.         /* Close down the display interface */
  59.         disp_Close();
  60.         exit(1);
  61.         return(1);
  62.     }
  63.  
  64. /*
  65.     help_Init sets up the help system.
  66.     The first argument is a pointer to the help file.
  67.     The second argument is a pointer to the help display function.
  68.     The third argument tells the help system how much space to allocate
  69.     to hold the help messages.  This is the maximum size of a help message.
  70.  
  71.     The cscape field functions automatically call help when F1 is pressed.
  72.     (see fnspec.c)
  73. */
  74.  
  75.     help_Init(fp, help_Xref, 6000, (char *) &hxd);
  76.  
  77.     test(&i, &l, &money, string);
  78.  
  79.     fclose(fp);
  80.  
  81.     /* Close down the display interface */
  82.     disp_Close();
  83.  
  84.     exit(0);
  85.     return(0);
  86. }
  87.  
  88. int test(int *i, long *l, long *money, char *s)
  89. {
  90.     menu_type    menu;
  91.     sed_type    sed;
  92.     int         ret;
  93.  
  94.     menu = menu_Open();
  95.  
  96.     menu_Printf(menu, "@p[0,0]int:");
  97.     menu_Printf(menu, "@p[2,0]long:");
  98.     menu_Printf(menu, "@p[4,0]money:");
  99.     menu_Printf(menu, "@p[6,0]string:");
  100.     menu_Printf(menu, "@p[0,11]@fd2[####]",
  101.       i, &int_funcs, "Enter an integer (0-100)", "(0,100)");
  102.     menu_Printf(menu, "@p[2,7]@fd2[########]",
  103.       l, &long_funcs, "Enter a long (0-10000)", "(0,10000)");
  104.     menu_Printf(menu, "@p[4,7]@fd2[########]",
  105.       money, &cmoney_funcs, "Enter the amount (0-100.00)", "(0,10000)");
  106.  
  107.     menu_Printf(menu, "@p[6,8]@fd3[################]   ",
  108.       s, &string_funcs, "Enter a string", NULL, "^");
  109.  
  110.     menu_Flush(menu);
  111.  
  112.     sed = sed_Open(menu);
  113.     sed_SetColors(sed, 0x70, 0x70, 0x07);
  114.     sed_SetBorder(sed, bd_std);
  115.     sed_SetBorderTitle(sed, "Press F1 for help");
  116.     sed_SetPosition(sed, 7, 19);
  117.  
  118.     sed_Repaint(sed);
  119.  
  120. /*
  121.     The label is used to determine which help chapter to use for the sed.
  122.     The field number determines which paragraph to use.
  123.  
  124.     (see demohelp.hlp)
  125. */
  126.     sed_SetLabel(sed, 1);
  127.  
  128.     ret = sed_Go(sed);
  129.  
  130.     menu_Close(menu);
  131.     sed_Close(sed);
  132.     return(ret);
  133. }
  134.  
  135.