home *** CD-ROM | disk | FTP | other *** search
/ Amiga MA Magazine 1998 #6 / amigamamagazinepolishissue1998.iso / coders / jËzyki_programowania / ace_basic / ace / prgs / gui / acegadgets.b next >
Text File  |  1977-12-31  |  2KB  |  95 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,ON,"1234567",(10,75)-(200,88),LONGINT        '..string
  20.  
  21. gadget 2,ON,50,(420,160)-(510,168),POTX            '..horizontal slider
  22.  
  23. gadget 3,ON,25,(505,100)-(520,150),POTY            '..vertical slider
  24.  
  25. gadget 4,ON,"Quit",(110,165)-(190,181),BUTTON         '..boolean
  26.  
  27. gadget 5,ON,"Move",(115,140)-(185,156),BUTTON        '..boolean
  28.  
  29.  
  30. '..handle gadgets in one of 4 ways!
  31.  
  32. '..await any gadget!            METHOD #1
  33. WHILE -1
  34.   gadget wait 0
  35.   gosub handle_gad
  36. WEND
  37.  
  38. {'..await gadgets 1 and 4 in turn    METHOD #2
  39. gadget wait 1
  40. gosub handle_gad
  41. gadget wait 4
  42. goto quit}
  43.  
  44. {'..gadget event trapping        METHOD #3
  45. ON GADGET GOSUB handle_gad
  46. GADGET ON
  47.  
  48. ON WINDOW GOTO quit            '..this will compete with OPTION w+
  49. WINDOW ON
  50.  
  51. while -1
  52.   sleep
  53. wend}
  54.  
  55. {'..poll gadgets            METHOD #4
  56. while -1
  57.   while not gadget(0)
  58.     sleep
  59.   wend
  60.   gosub handle_gad
  61. wend}
  62.  
  63. '..general purpose gadget handling routine
  64. handle_gad:
  65.   gad = gadget(1)
  66.   if gad=4 then if MsgBox("Are you sure?","Yes","No Way!") then quit  
  67.   if gad=5 then 
  68.     gadget mod 2,25
  69.     gadget mod 3,25
  70.     return
  71.   end if
  72.   locate 5,1:print "gadget:";gad
  73.   if gad<5 then
  74.     locate gad,1
  75.     print gad;"-->> ";
  76.     if gad=2 or gad=3 then
  77.       print gadget(3);chr$(8);"    "
  78.     else
  79.       print gadget(2)
  80.     end if
  81.   end if
  82. return
  83.  
  84. '..cleanup!
  85. quit:
  86. gadget close 5
  87. gadget close 4
  88. gadget close 3
  89. gadget close 2
  90. gadget close 1
  91.  
  92. window close 1
  93.  
  94. END
  95.