home *** CD-ROM | disk | FTP | other *** search
/ Crawly Crypt Collection 2 / crawlyvol2.bin / program / c / fldlib93 / examples / demo2.c < prev    next >
Encoding:
C/C++ Source or Header  |  1994-05-21  |  2.0 KB  |  95 lines

  1. /**************************************************************************
  2.  *                                                                        *
  3.  *                             FLDLIB DEMO 2                              *
  4.  *                  Demonstrates multiple form management                 *
  5.  *                                                                        *
  6.  **************************************************************************/
  7.  
  8. #include <stdlib.h>
  9. #include <aes.h>
  10. #include "fldlib.h"
  11. #include "demo.h"
  12.  
  13. OBJECT *form1, *form2;
  14. short form1handle, form2handle;
  15.  
  16. void object_handle(short, short);
  17. int  main(void);
  18.  
  19. void object_handle(short object, short type)  {
  20.     switch(type)  {
  21.     case FORM1:
  22.  
  23.         switch (object)  {
  24.         case FM1_EXIT1:
  25.             form_alert(1, "[1][ Exit 1 | selected ][ OK ]");
  26.             fld_exit();
  27.             rsrc_free();
  28.             appl_exit();
  29.             exit(0);
  30.             break;
  31.         case FM1_EXIT2:
  32.             form_alert(1, "[1][ Exit 2 | selected ][ OK ]");
  33.             fld_exit();
  34.             rsrc_free();
  35.             appl_exit();
  36.             exit(0);
  37.             break;
  38.         case FM_DL2:
  39.             form2handle = fld_open(form2, FLDC_MOUSE, "FLDLIB Demo", FORM2);
  40.             form1[FM_DL2].ob_state &= ~SELECTED;
  41.             fld_draw(form1handle, FM_DL2, 0);
  42.             break;
  43.         }
  44.  
  45.         break;
  46.     case FORM2:
  47.  
  48.         switch (object)  {
  49.         case FM2_OK:
  50.             fld_close(form2handle);
  51.             form2[FM2_OK].ob_state &= ~SELECTED;
  52.             break;
  53.         }
  54.  
  55.         break;
  56.     }
  57. }
  58.  
  59.  
  60. int main(void)  {
  61.     short ret, type, handle;
  62.  
  63.     appl_init();
  64.     
  65.     fld_ability(FLDA_CLOSE|FLDA_ICON);
  66.  
  67.     if (!rsrc_load("DEMO.RSC"))  {
  68.         form_alert(1,"[3][ Could not find | DEMO.RSC ][ Exit ]");
  69.         appl_exit();
  70.         return 0;
  71.     }
  72.  
  73.     rsrc_gaddr(R_TREE, FORM1, &form1);
  74.     rsrc_gaddr(R_TREE, FORM2, &form2);
  75.     
  76.     form1handle = fld_open(form1, FLDC_SCREEN, "FLDLIB Demo", FORM1);
  77.  
  78.     graf_mouse(ARROW, NULL);
  79.  
  80.     while (1)  {
  81.         if ( (ret = fld_domulti(&type, &handle)) > -1)  {
  82.             object_handle(ret, type);
  83.         } else  {
  84.             fld_close(-ret);
  85.             if (-ret == form1handle)  {
  86.                 fld_exit();
  87.                 rsrc_free();
  88.                 appl_exit();
  89.                 return 0;
  90.             }
  91.         }
  92.     }
  93.  
  94.     return 0;
  95. }