home *** CD-ROM | disk | FTP | other *** search
/ Frozen Fish 1: Amiga / FrozenFish-Apr94.iso / bbs / alib / d9xx / d969 / ace.lha / ACE / ACE-2.0.lha / PRGS.lha / Misc / ACEgadgets.b next >
Text File  |  1994-01-19  |  2KB  |  86 lines

  1. '..**************************************************************
  2. '..* A demo of the FOUR (yes 4!) ways to handle gadgets in ACE: *
  3. '..* WAIT for any gadget; WAIT for one gadget; event trapping;  *
  4. '..* polling for gadgets. The first and second are the nicest     *
  5. '..* operating-system-wise.                     *
  6. '..*                                    *
  7. '..* Remove ONE set of curly brackets to use a method.          *
  8. '..* (Method #1 is already uncommented).                        *
  9. '..**************************************************************
  10.  
  11. '..When polling for gadgets (method #4), comment the 
  12. '..next line out as the two tend to conflict.
  13.  
  14. OPTION w+    '..Define window close-gadget trapping too.
  15.  
  16. '..set up some gadgets
  17. window 1,"Gadgets",(0,0)-(640,200),31
  18.  
  19. gadget 1,1,"Hello World!",(10,75)-(420,86),2    '..string
  20.  
  21. gadget 2,1,50,(420,150)-(520,160),4        '..horizontal slider
  22.  
  23. gadget 3,1,50,(505,100)-(520,150),5        '..vertical slider
  24.  
  25. gadget 4,1,"Quit",(100,160)-(200,185),1     '..boolean
  26.  
  27. '..handle gadgets in one of 4 ways!
  28.  
  29. '..await any gadget!            METHOD #1
  30. WHILE -1
  31.   gadget wait 0
  32.   gosub handle_gad
  33. WEND
  34.  
  35. {'..await gadgets 1 and 4 in turn    METHOD #2
  36. gadget wait 1
  37. gosub handle_gad
  38. gadget wait 4
  39. goto quit}
  40.  
  41. {'..gadget event trapping        METHOD #3
  42. ON GADGET GOSUB handle_gad
  43. GADGET ON
  44.  
  45. ON WINDOW GOTO quit            '..this will compete with OPTION w+
  46. WINDOW ON
  47.  
  48. while -1
  49.   sleep
  50. wend}
  51.  
  52. {'..poll gadgets            METHOD #4
  53. while -1
  54.   while not gadget(0)
  55.     sleep
  56.   wend
  57.   gosub handle_gad
  58. wend}
  59.  
  60. '..general purpose gadget handling routine
  61. handle_gad:
  62.   gad = gadget(1)
  63.   if gad=4 then quit  
  64.   locate 5,1:print "gadget:";gad
  65.   if gad<>4 then
  66.     locate gad,1
  67.     print gad;"-->> ";
  68.     if gad=2 or gad=3 then
  69.       print gadget(3);chr$(8);"    "
  70.     else
  71.       print cstr(gadget(2))
  72.     end if
  73.   end if
  74. return
  75.  
  76. '..cleanup!
  77. quit:
  78. gadget close 4
  79. gadget close 3
  80. gadget close 2
  81. gadget close 1
  82.  
  83. window close 1
  84.  
  85. END
  86.