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

  1. *****Listing 1*****
  2.  
  3. <<title Edit-Menu C , Vermont Views , Btrieve : vedtmnbt.tem >>
  4. <<uicode>>
  5.  
  6. * load libraries used by this template
  7.  
  8. load_lib("stdfuns")                 ** load basic stuff
  9. load_lib("optfuns")                 ** option-related stuff
  10. load_lib("varfunsc")                ** c variable library
  11. load_lib("pclib")                   ** unorg c library
  12. load_lib("vv")                      ** Vermont Views c library
  13. load_lib("vvdispc")                 ** Vermont Views c library
  14. load_lib("BtrieveC")                ** Btrieve C library
  15.  
  16. declare_formbox()
  17. declare_menubox()
  18. *******************************
  19. *** end of template startup ***
  20. *******************************
  21. <<enduicode>>
  22. /**
  23. ***
  24. *** {file}  
  25. *** {date} : {striptag(wwfile)} , {striptag(stripdir(template))}
  26. ***
  27. *** (Calls functions defined in Vermont Views Interface Library)
  28. ***
  29. **/
  30. <<author()>>
  31.  
  32. #include <string.h>
  33. #include <vv_menu.h>                   /* Vermont Views Header File. */
  34. #include <vv_str.h>                    /* Vermont Views Header File. */
  35. #include <vv_bool.h>                   /* Vermont Views Header File. */
  36. #include <vv_sys.h>                    /* Vermont Views Header File. */
  37. #include <vv_date.h>                   /* Vermont Views Header File. */
  38. #include <vv_time.h>                   /* Vermont Views Header File. */
  39. #include <vv_long.h>                   /* Vermont Views Header File. */
  40. #include <vv_form.h>                   /* Vermont Views Header File. */  
  41. #include <vv_help.h>                   /* Vermont Views Header File. */  
  42.  
  43. <<menuname = stripdir(striptag(file))      ** global name for this main menu>>
  44.  
  45. /* declare external variables. */
  46. <<include_extern_memvars()>>
  47.  
  48.  
  49. #ifdef LINT_ARGS
  50.  extern int act_return(MFORMPTR);
  51.  extern int act_bell( MFORMPTR );
  52.  extern int act_SAMELEVEL( void );
  53.  int {menuname} (void);
  54.  int add{menuname} (void);
  55.  extern int del{menuname} (void);
  56.  int edit{menuname} (void);
  57.  extern int find{menuname} (void);
  58.  extern int next{menuname} (void);
  59.  extern int prev{menuname} (void);
  60.  int quit{menuname} (void);
  61.  extern int gotop{menuname} (void);
  62.  extern int insert{menuname} (void);
  63.  extern int update{menuname} (void);
  64.  int blank{menuname} (void);
  65.  extern int open{menuname} (void);
  66.  extern int close{menuname} (void);
  67.  extern int read{menuname} (void);
  68.  extern int unlock{menuname} (void);
  69. #else
  70.  extern int act_return();
  71.  extern int act_bell();
  72.  extern int act_SAMELEVEL();
  73.  int {menuname} ();
  74.  int add{menuname} ();
  75.  extern int del{menuname} ();
  76.  int edit{menuname} ();
  77.  extern int find{menuname} ();
  78.  extern int next{menuname} ();
  79.  extern int prev{menuname} ();
  80.  int quit{menuname} ();
  81.  extern int gotop{menuname} ();
  82.  extern int insert{menuname} ();
  83.  extern int update{menuname} ();
  84.  int blank{menuname} ();
  85.  extern int open{menuname} ();
  86.  extern int close{menuname} ();
  87.  extern int read{menuname} ();
  88.  extern int unlock{menuname} ();
  89. #endif
  90.  
  91.  
  92. /* declare form pointer variables */
  93. DFORMPTR {menuname}_dfmp ;           /* pointer to the form        */
  94.  
  95. /* declare a pointers to each field */
  96. <<declare_ptr_to_all_fields()>>
  97.  
  98.  
  99.  
  100. /* declare menu pointer variables */
  101. MFORMPTR {menuname}_mfmp ;           /* pointer to the menu        */
  102.  
  103.  
  104.  
  105. /* declare a pointers to each menu option */
  106. <<declare_ptr_to_all_options()>>
  107.  
  108. /************************ BEGIN: {menuname}() ***********************
  109.  * {menuname}: 
  110.  */
  111. {menuname}()
  112. %{
  113.   <<q_indent=2>>
  114.  
  115.   blank{menuname}();                   /* blank all data field vars */
  116.   if(  open{menuname}() != 0 )         /* open btrieve file (s). */
  117.   %{
  118.     return;
  119.   %}
  120.  
  121.   gotop{menuname}();                   /* get first key in file */
  122.  
  123.   /*********************** define the form ***************************/
  124.   <<menuform = 'form'       ** set UI var to 'form' for vvdispc.tlb >>
  125.  
  126.   /* define a form */
  127.   {menuname}_dfmp = fm_def( {formbox.row}, {formbox.col},
  128.                     {formbox.height}, {formbox.width}, LNORMAL, BDR_NULLP );
  129.  
  130.  
  131.   /* define boxes around form items ****/
  132.   <<define_all_form_boxes()>>
  133.  
  134.   /*********** define background text  */
  135.   <<display_text()>>
  136.  
  137.   sfm_help( "*DATA HELP" , {menuname}_dfmp );  /* define form help keyword */
  138.  
  139.   <<define_form_options()>>
  140.  
  141.   /******* define form data fields *********/
  142.   <<define_all_form_fields()>>
  143.  
  144.   /******* set all the field options  ***/
  145.   <<define_all_field_options()>>
  146.  
  147.   /*** set all the field ranges ***/
  148.   <<define_all_field_range()>>
  149.  
  150.   <<define_all_field_help_keywords()>>
  151.  
  152.   <<define_all_field_functions()>>
  153.  
  154.  
  155.   /*********************** define the menu ***************************/
  156.   <<menuform = 'menu'       ** set UI var to 'form' for vvdispc.tlb >>
  157.   /* define a menu */
  158.  
  159.   {menuname}_mfmp = mn_def( MNSTANDARD ,  AUTOPLACE,AUTOPLACE,AUTOSIZE,AUTOSIZE,
  160.                      LMNINACT, BDR_NULLP );
  161.  
  162.   <<define_menu_options()>>
  163.  
  164.  
  165.   /******* define menu fields *********/
  166.   <<define_all_menu_fields()>>
  167.  
  168.  
  169.   /*********** define background text  */
  170.   <<display_text()>>
  171.  
  172.  
  173.   /**************** display variables **/
  174.   <<display_all_vars()>>
  175.  
  176.  
  177.   /* define boxes around menu items ****/
  178.   <<define_all_menu_boxes()>>
  179.  
  180.  
  181.   /**** define trigger keys **********/
  182.   <<define_all_option_triggers()>>
  183.  
  184.   mn_up( {menuname}_mfmp );            /* display menu */
  185.   fm_up( {menuname}_dfmp );            /* display form */
  186.  
  187.   mn_rd( 0, {menuname}_mfmp );         /* begin processing the menu */
  188.  
  189.   fm_dn( {menuname}_dfmp );            /* remove form */
  190.   fm_free( {menuname}_dfmp );          /* Free memory allocate for form */
  191.  
  192.   mn_dn( {menuname}_mfmp );            /* remove menu */
  193.   mn_free( {menuname}_mfmp );          /* free memory allocated for menu */
  194.  
  195.   close{menuname}();                   /* close btrieve file (s) */
  196.   return 0;
  197. %}
  198. /****************************** END: {menuname}() *******************/
  199. add{menuname}()
  200. %{
  201.   blank{menuname}();
  202.   fm_dn( {menuname}_dfmp );            /* remove form */
  203.   mn_dn( {menuname}_mfmp );            /* remove menu */
  204.   fm_up( {menuname}_dfmp );            /* display form */
  205.   if ( fm_rd( 0, {menuname}_dfmp ) != AC_QUIT ) /* process the form */
  206.   %{
  207.     insert{menuname}();
  208.   %}
  209.   fm_dn( {menuname}_dfmp );            /* remove form */
  210.   mn_up( {menuname}_mfmp );            /* display menu */
  211.   mn_upd( {menuname}_mfmp );           /* update the menu background */
  212.   fm_up( {menuname}_dfmp );            /* display form */
  213. %}
  214. /****************************** END: add{menuname}() **************/
  215. edit{menuname}()
  216. %{
  217.    fm_dn( {menuname}_dfmp );            /* remove the form */
  218.    mn_dn( {menuname}_mfmp );            /* remove the menu */
  219.    fm_up( {menuname}_dfmp );            /* display the form */
  220.  
  221.    switch ( read{menuname}() )          /* read & lock record */
  222.    %{
  223.      case 0:                            /* no btrv error      */
  224.        if ( fm_rd( 0, {menuname}_dfmp ) != AC_QUIT )  /* process the form */
  225.        %{
  226.          if ( update{menuname}() != 0 )
  227.          %{
  228.             blank{menuname}();
  229.          %}
  230.        %}
  231.        unlock{menuname}();
  232.        break;
  233.  
  234.      case 4:                           /* key not found */
  235.        add{menuname}();
  236.        break;
  237.    %}
  238.    fm_dn( {menuname}_dfmp );            /* remove the form */
  239.    mn_up( {menuname}_mfmp );            /* display the menu */
  240.    mn_upd( {menuname}_mfmp );           /* update the menu background */
  241.    fm_up( {menuname}_dfmp );            /* display the form */
  242. %}
  243. /****************************** END: edit{menuname}() **************/
  244. blank{menuname}()
  245. %{
  246.   /* reset all input & display variables to their initial value. */
  247.   <<init_all_vars()>>
  248. %}
  249. /****************************** END: blank{menuname}() **************/
  250. quit{menuname}()
  251. %{
  252.   act_return( {menuname}_mfmp );
  253. %}
  254. /****************************** END: quit{menuname}() **************/
  255.  
  256.  
  257.  
  258. /****************************** EOF: {file} *************************/
  259.