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

  1. /*
  2.     demofsav.c
  3.  
  4.     jmd 6/89
  5.  
  6.     C-scape 3.2    Example Program
  7.     Copyright (c) 1989, 1990 by Oakland Group, Inc.
  8.     ALL RIGHTS RESERVED.
  9.  
  10.     This program demonstrates saving a sed to a screen file.
  11.  
  12.     It saves the sed to the screen file "test.lnf"
  13.     with the screen name "test"
  14.  
  15.     You can use the example program DEMOFLOD to load the screen.
  16.  
  17.     Note: this version of this program is slightly more sophisticated
  18.     than the one mentioned in the C-scape manual.  It contains an
  19.     embedded sed.
  20.  
  21.     Revision History:
  22.     -----------------
  23.      1/10/90 jmd    added bobs
  24.      6/06/90 jmd    changed main to return an int
  25.      9/14/90 bkd    changed to use exit(0) instead of return(0).
  26.     10/19/90 pmcm    included ostdlib.h for exit(), added return(1)
  27.     12/01/90 ted    prototyped main, except if Turbo C++.
  28.     12/04/90 ted    restored "" includes for C-scape headers (not <> includes).
  29. */
  30.  
  31. #include <stdio.h>
  32.  
  33. #include "cscape.h"
  34. #include "ostdlib.h"    /*    for exit() */
  35. #include "sfile.h"
  36.  
  37. /* function symbol table */
  38.  
  39. fsyminit_struct my_list[] = {
  40.  
  41.     {FSYM_CLASS},
  42.     {"sedwin_Class",    (VOID_FPTR)    sedwin_Class    ,  NULL },
  43.  
  44.     {FSYM_FIELDFUNCS },
  45.     {"bob_funcs",      FNULL, (VOID *) &bob_funcs},
  46.     {"string_funcs", FNULL, (VOID *) &string_funcs},
  47.     {"cmoney_funcs", FNULL, (VOID *) &cmoney_funcs},
  48.  
  49.     {FSYM_USER },
  50.  
  51.     {FSYM_BORDER },
  52.     {"bd_prompt", (VOID_FPTR) bd_prompt, NULL},
  53.  
  54.     {FSYM_MOUSE },
  55.     {FSYM_MOVEMETHOD },
  56.     {FSYM_EXPLODE },
  57.     {FSYM_SPECIAL },
  58.     {"spc_Embed",         (VOID_FPTR)    spc_Embed,        NULL    },
  59.  
  60.     {FSYM_AUX },
  61.     {FSYM_LISTEND}
  62. };
  63.  
  64. /* Turbo C++ complains if main is prototyped */
  65. #ifndef TCP
  66. int main(void);
  67. #endif
  68.  
  69. int main(void)
  70. {
  71.     menu_type menu, bmenu;
  72.     sed_type sed, bsed;
  73.     sfile_type sfile;
  74.     int     i;
  75.  
  76.     /* Initialize the display */
  77.     disp_Init(def_ModeText, FNULL);
  78.  
  79.     /* Open the sfile */
  80.     sfile = sfile_Open("test.lnf", my_list);
  81.  
  82.     /* Create the sed */
  83.     menu = menu_Open();
  84.  
  85.     menu_Printf(menu, "\n  Customer:\n\n Boat Name:\n\n Boat Cost:");
  86.  
  87.     menu_Printf(menu, "@p[1,12]@f{customer}[@[21,#]]",
  88.       NULL, &string_funcs);
  89.     menu_Printf(menu, "@p[3,12]@f{boatname}[@[21,#]]",
  90.       NULL, &string_funcs);
  91.     menu_Printf(menu, "@p[5,12]@f{boatcost}[@[14,#]]",
  92.       NULL, &cmoney_funcs);
  93.  
  94.         /* Generate bobbed sed */
  95.  
  96.         bmenu = menu_Open();
  97.  
  98.         for (i = 0; i < 10; i++) {
  99.             menu_Printf(bmenu, "@p[%d,0]%2d @fd[@[26,#]]", i, i, 
  100.                 NULL, &string_funcs, "Enter a sail type");
  101.         }
  102.  
  103.         menu_Flush(bmenu);
  104.  
  105.         bsed = sed_Open(bmenu);
  106.         sed_SetColors(bsed, 0x17, 0x17, 0x71);
  107.  
  108.         sed_SetBorder(bsed, bd_prompt);
  109.         sed_SetBorderTitle(bsed, "Sail types purchased");
  110.         sed_SetPosition(bsed, 10, 21);
  111.         sed_SetHeight(bsed, 4);
  112.         sed_SetWidth(bsed, 30);
  113.         sed_SetSpecial(bsed, spc_Embed);
  114.  
  115.     menu_Printf(menu, "@p[8,2]@f{list}b[]",
  116.       NULL, &bob_funcs, sed_CreateBob(bsed, BOB_DEPENDENT));
  117.  
  118.     menu_Flush(menu);
  119.  
  120.     sed = sed_Open(menu);
  121.     sed_SetColors(sed, 0x34, 0x30, 0x40);
  122.  
  123.     sed_SetBorder(sed, bd_prompt);
  124.     sed_SetBorderTitle(sed, "Sails Tracker");
  125.     sed_SetPosition(sed, 2, 18);
  126.     sed_SetHeight(sed, 15);
  127.     sed_SetWidth(sed, 38);
  128.  
  129.     /* Put the sed into the sfile */
  130.     sfile_SaveSed(sfile, sed, "test");
  131.  
  132.     /* allocate variables for the sed so that we can use it */
  133.     sed_Alloc(sed);
  134.  
  135.     sed_Repaint(sed);
  136.     sed_Go(sed);
  137.     sed_Close(sed);
  138.  
  139.     sfile_Close(sfile);
  140.     disp_Close();
  141.  
  142.     exit(0);
  143.     return(0);
  144. }
  145.