home *** CD-ROM | disk | FTP | other *** search
/ The C Users' Group Library 1994 August / wc-cdrom-cusersgrouplibrary-1994-08.iso / listings / v_08_02 / 8n02109a < prev    next >
Text File  |  1990-03-01  |  10KB  |  319 lines

  1. *****Listing 2*****
  2.  
  3. /**
  4. ***
  5. *** CUG.C  
  6. *** November 17, 1989 : C:\CUG\CUG , VEDTMNBT
  7. ***
  8. *** (Calls functions defined in Vermont Views Interface Library)
  9. ***
  10. **/
  11.  
  12. /* Author: Paul Combellick , The Computer Catalyst, (602) 280-2569 */
  13.  
  14.  
  15. #include <string.h>
  16. #include <vv_menu.h>                   /* Vermont Views Header File. */
  17. #include <vv_str.h>                    /* Vermont Views Header File. */
  18. #include <vv_bool.h>                   /* Vermont Views Header File. */
  19. #include <vv_sys.h>                    /* Vermont Views Header File. */
  20. #include <vv_date.h>                   /* Vermont Views Header File. */
  21. #include <vv_time.h>                   /* Vermont Views Header File. */
  22. #include <vv_long.h>                   /* Vermont Views Header File. */
  23. #include <vv_form.h>                   /* Vermont Views Header File. */  
  24. #include <vv_help.h>                   /* Vermont Views Header File. */  
  25.  
  26.  
  27. /* declare external variables. */
  28. /* BOX: extern does not exist */
  29. extern char *name; 
  30. extern char *address; 
  31. extern char *city; 
  32. extern char *state; 
  33. extern char *zip; 
  34. extern char *phone; 
  35. extern char *fax; 
  36.  
  37.  
  38. #ifdef LINT_ARGS
  39.  extern int act_return(MFORMPTR);
  40.  extern int act_bell( MFORMPTR );
  41.  extern int act_SAMELEVEL( void );
  42.  int CUG (void);
  43.  int addCUG (void);
  44.  extern int delCUG (void);
  45.  int editCUG (void);
  46.  extern int findCUG (void);
  47.  extern int nextCUG (void);
  48.  extern int prevCUG (void);
  49.  int quitCUG (void);
  50.  extern int gotopCUG (void);
  51.  extern int insertCUG (void);
  52.  extern int updateCUG (void);
  53.  int blankCUG (void);
  54.  extern int openCUG (void);
  55.  extern int closeCUG (void);
  56.  extern int readCUG (void);
  57.  extern int unlockCUG (void);
  58. #else
  59.  extern int act_return();
  60.  extern int act_bell();
  61.  extern int act_SAMELEVEL();
  62.  int CUG ();
  63.  int addCUG ();
  64.  extern int delCUG ();
  65.  int editCUG ();
  66.  extern int findCUG ();
  67.  extern int nextCUG ();
  68.  extern int prevCUG ();
  69.  int quitCUG ();
  70.  extern int gotopCUG ();
  71.  extern int insertCUG ();
  72.  extern int updateCUG ();
  73.  int blankCUG ();
  74.  extern int openCUG ();
  75.  extern int closeCUG ();
  76.  extern int readCUG ();
  77.  extern int unlockCUG ();
  78. #endif
  79.  
  80.  
  81. /* declare form pointer variables */
  82. DFORMPTR CUG_dfmp ;           /* pointer to the form        */
  83.  
  84. /* declare a pointers to each field */
  85. DFIELDPTR CUG_fld1;
  86. DFIELDPTR CUG_fld2;
  87. DFIELDPTR CUG_fld3;
  88. DFIELDPTR CUG_fld4;
  89. DFIELDPTR CUG_fld5;
  90. DFIELDPTR CUG_fld6;
  91. DFIELDPTR CUG_fld7;
  92.  
  93.  
  94.  
  95. /* declare menu pointer variables */
  96. MFORMPTR CUG_mfmp ;           /* pointer to the menu        */
  97.  
  98.  
  99.  
  100. /* declare a pointers to each menu option */
  101. MFIELDPTR CUG_mn1;
  102. MFIELDPTR CUG_mn2;
  103. MFIELDPTR CUG_mn3;
  104. MFIELDPTR CUG_mn4;
  105. MFIELDPTR CUG_mn5;
  106. MFIELDPTR CUG_mn6;
  107. MFIELDPTR CUG_mn7;
  108.  
  109. /************************ BEGIN: CUG() ***********************
  110.  * CUG: 
  111.  */
  112. CUG()
  113. {
  114.  
  115.   blankCUG();                   /* blank all data field vars */
  116.   if(  openCUG() != 0 )         /* open btrieve file (s). */
  117.   {
  118.     return;
  119.   }
  120.  
  121.   gotopCUG();                   /* get first key in file */
  122.  
  123.   /*********************** define the form ***************************/
  124.  
  125.   /* define a form */
  126.   CUG_dfmp = fm_def( 0, 0, 21,80, LNORMAL, BDR_NULLP );
  127.  
  128.   /* define boxes around form items ****/
  129.   bg_boxdef( 0,0,21,80,LNORMAL,BDR_SPACEP,CUG_dfmp);
  130.   bg_boxdef( 5,14,11,52,LNORMAL,BDR_DLNP,CUG_dfmp);
  131.  
  132.   /*********** define background text  */
  133.   bg_txtdef( 1, 28, "C USER'S GROUP UI2 DEMO", LNORMAL, CUG_dfmp);
  134.   bg_txtdef( 2, 28, "▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓", LNORMAL, CUG_dfmp);
  135.   bg_boxdef( 5,14,11,52,LNORMAL,BDR_DLNP, CUG_dfmp);
  136.   bg_txtdef( 7, 19, "Name     :   [                         ]", LNORMAL,
  137.              CUG_dfmp);
  138.   bg_txtdef( 8, 19, "Address  :   [                         ]", LNORMAL,
  139.              CUG_dfmp);
  140.   bg_txtdef( 9, 19, "City     :   [                         ]", LNORMAL,
  141.              CUG_dfmp);
  142.   bg_txtdef( 10, 19, "State    :   [  ]    Zip :  [     -    ]", LNORMAL,
  143.              CUG_dfmp);
  144.   bg_txtdef( 12, 19, "Phone    :   [             ]", LNORMAL, CUG_dfmp);
  145.   bg_txtdef( 13, 19, "Fax      :   [             ]", LNORMAL, CUG_dfmp);
  146.  
  147.   sfm_help( "*DATA HELP" , CUG_dfmp );  /* define form help keyword */
  148.  
  149.  
  150.   /******* define form data fields *********/
  151.   CUG_fld1 = fld_def( 7,33, NULLP , FADJACENT , "!!!!!!!!!!!!!!!!!!!!!!!!!", 
  152.        F_STRING , (PTR) name, CUG_dfmp );
  153.   CUG_fld2 = fld_def( 8,33, NULLP , FADJACENT , "XXXXXXXXXXXXXXXXXXXXXXXXX" ,
  154.        F_STRING , (PTR) address, CUG_dfmp );
  155.   CUG_fld3 = fld_def( 9,33, NULLP , FADJACENT , "XXXXXXXXXXXXXXXXXXXXXXXXX" ,
  156.        F_STRING , (PTR) city, CUG_dfmp );
  157.   CUG_fld4 = fld_def( 10,33, NULLP , FADJACENT , "!!", F_STRING , 
  158.        (PTR) state, CUG_dfmp );
  159.   CUG_fld5 = fld_def( 10,48, NULLP , FADJACENT , "UUUUU-UUUU", F_STRING , 
  160.        (PTR) zip, CUG_dfmp );
  161.   CUG_fld6 = fld_def( 12,33, NULLP , FADJACENT , "(UUU)UUU-UUUU", F_STRING , 
  162.        (PTR) phone, CUG_dfmp );
  163.   CUG_fld7 = fld_def( 13,33, NULLP , FADJACENT , "(UUU)UUU-UUUU", F_STRING , 
  164.        (PTR) fax, CUG_dfmp );
  165.  
  166.   /******* set all the field options  ***/
  167.   sf_opt( PICSKIP , ON , CUG_fld5 ); 
  168.  
  169.   /*** set all the field ranges ***/
  170.  
  171.   /* Define field help keywords */
  172.  
  173.   /* Define field begin & end functions. */
  174.  
  175.  
  176.   /*********************** define the menu ***************************/
  177.   /* define a menu */
  178.  
  179.   CUG_mfmp = mn_def( MNSTANDARD ,  AUTOPLACE,AUTOPLACE,AUTOSIZE,AUTOSIZE,
  180.                      LMNINACT, BDR_NULLP );
  181.  
  182.  
  183.  
  184.   /******* define menu fields *********/
  185.   CUG_mn1 = mnf_def( 23,15," ADD  ", NULLP, 
  186.    NULLP,  addCUG, CUG_mfmp );
  187.   CUG_mn2 = mnf_def( 23,22," DELETE ", NULLP, 
  188.    NULLP,  delCUG, CUG_mfmp );
  189.   CUG_mn3 = mnf_def( 23,31," EDIT ", NULLP, 
  190.    NULLP,  editCUG, CUG_mfmp );
  191.   CUG_mn4 = mnf_def( 23,38," FIND ", NULLP, 
  192.    NULLP,  findCUG, CUG_mfmp );
  193.   CUG_mn5 = mnf_def( 23,45," NEXT ", NULLP, 
  194.    NULLP,  nextCUG, CUG_mfmp );
  195.   CUG_mn6 = mnf_def( 23,52," PREV ", NULLP, 
  196.    NULLP,  prevCUG, CUG_mfmp );
  197.   CUG_mn7 = mnf_def( 23,59," QUIT ", NULLP, 
  198.    NULLP,  quitCUG, CUG_mfmp );
  199.  
  200.  
  201.   /*********** define background text  */
  202.   bg_txtdef( 1, 28, "C USER'S GROUP UI2 DEMO", LNORMAL, CUG_mfmp);
  203.   bg_txtdef( 2, 28, "▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓", LNORMAL, CUG_mfmp);
  204.   bg_boxdef( 5,14,11,52,LNORMAL,BDR_DLNP, CUG_mfmp);
  205.   bg_txtdef( 7, 19, "Name     :   [                         ]", LNORMAL, CUG_mfmp);
  206.   bg_txtdef( 8, 19, "Address  :   [                         ]", LNORMAL, CUG_mfmp);
  207.   bg_txtdef( 9, 19, "City     :   [                         ]", LNORMAL, CUG_mfmp);
  208.   bg_txtdef( 10, 19, "State    :   [  ]    Zip :  [     -    ]", LNORMAL, CUG_mfmp);
  209.   bg_txtdef( 12, 19, "Phone    :   [             ]", LNORMAL, CUG_mfmp);
  210.   bg_txtdef( 13, 19, "Fax      :   [             ]", LNORMAL, CUG_mfmp);
  211.  
  212.  
  213.   /**************** display variables **/
  214.  
  215.  
  216.   /* define boxes around menu items ****/
  217.   bg_boxdef( 22,14,3,8,LNORMAL,BDR_DLNP,CUG_mfmp);
  218.   bg_boxdef( 22,21,3,10,LNORMAL,BDR_DLNP,CUG_mfmp);
  219.   bg_boxdef( 22,30,3,8,LNORMAL,BDR_DLNP,CUG_mfmp);
  220.   bg_boxdef( 22,37,3,8,LNORMAL,BDR_DLNP,CUG_mfmp);
  221.   bg_boxdef( 22,44,3,8,LNORMAL,BDR_DLNP,CUG_mfmp);
  222.   bg_boxdef( 22,51,3,8,LNORMAL,BDR_DLNP,CUG_mfmp);
  223.   bg_boxdef( 22,58,3,8,LNORMAL,BDR_DLNP,CUG_mfmp);
  224.  
  225.  
  226.   /**** define trigger keys **********/
  227.   smnf_selectch( 1 , LMNSELCH, CUG_mn1 );
  228.   smnf_selectch( 1 , LMNSELCH, CUG_mn2 );
  229.   smnf_selectch( 1 , LMNSELCH, CUG_mn3 );
  230.   smnf_selectch( 1 , LMNSELCH, CUG_mn4 );
  231.   smnf_selectch( 1 , LMNSELCH, CUG_mn5 );
  232.   smnf_selectch( 1 , LMNSELCH, CUG_mn6 );
  233.   smnf_selectch( 1 , LMNSELCH, CUG_mn7 );
  234.  
  235.   mn_up( CUG_mfmp );            /* display menu */
  236.   fm_up( CUG_dfmp );            /* display form */
  237.  
  238.   mn_rd( 0, CUG_mfmp );         /* begin processing the menu */
  239.  
  240.   fm_dn( CUG_dfmp );            /* remove form */
  241.   fm_free( CUG_dfmp );          /* Free memory allocate for form */
  242.  
  243.   mn_dn( CUG_mfmp );            /* remove menu */
  244.   mn_free( CUG_mfmp );          /* free memory allocated for menu */
  245.  
  246.   closeCUG();                   /* close btrieve file (s) */
  247.   return 0;
  248. }
  249. /****************************** END: CUG() *******************/
  250. addCUG()
  251. {
  252.   blankCUG();
  253.   fm_dn( CUG_dfmp );            /* remove form */
  254.   mn_dn( CUG_mfmp );            /* remove menu */
  255.   fm_up( CUG_dfmp );            /* display form */
  256.   if ( fm_rd( 0, CUG_dfmp ) != AC_QUIT ) /* process the form */
  257.   {
  258.     insertCUG();
  259.   }
  260.   fm_dn( CUG_dfmp );            /* remove form */
  261.   mn_up( CUG_mfmp );            /* display menu */
  262.   mn_upd( CUG_mfmp );           /* update the menu background */
  263.   fm_up( CUG_dfmp );            /* display form */
  264. }
  265. /****************************** END: addCUG() **************/
  266. editCUG()
  267. {
  268.    fm_dn( CUG_dfmp );            /* remove the form */
  269.    mn_dn( CUG_mfmp );            /* remove the menu */
  270.    fm_up( CUG_dfmp );            /* display the form */
  271.  
  272.    switch ( readCUG() )          /* read & lock record */
  273.    {
  274.      case 0:                            /* no btrv error      */
  275.        if ( fm_rd( 0, CUG_dfmp ) != AC_QUIT )  /* process the form */
  276.        {
  277.          if ( updateCUG() != 0 )
  278.          {
  279.             blankCUG();
  280.          }
  281.        }
  282.        unlockCUG();
  283.        break;
  284.  
  285.      case 4:                           /* key not found */
  286.        addCUG();
  287.        break;
  288.    }
  289.    fm_dn( CUG_dfmp );            /* remove the form */
  290.    mn_up( CUG_mfmp );            /* display the menu */
  291.    mn_upd( CUG_mfmp );           /* update the menu background */
  292.    fm_up( CUG_dfmp );            /* display the form */
  293. }
  294. /****************************** END: editCUG() **************/
  295. blankCUG()
  296. {
  297.   /* reset all input & display variables to their initial value. */
  298.   strnset( name , ' ' , 25 ); 
  299.   strnset( address , ' ' , 25 ); 
  300.   strnset( city , ' ' , 25 ); 
  301.   strnset( state , ' ' , 2 ); 
  302.   strnset( zip , ' ' , 10 ); 
  303.   strnset( phone , ' ' , 13 ); 
  304.   strnset( fax , ' ' , 13 ); 
  305. }
  306. /****************************** END: blankCUG() **************/
  307. quitCUG()
  308. {
  309.   act_return( CUG_mfmp );
  310. }
  311. /****************************** END: quitCUG() **************/
  312.  
  313.  
  314.  
  315. /****************************** EOF: CUG.C *************************/
  316.  
  317.  
  318.                                  Figure 3.
  319.