home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus 2004 #2 / Amiga Plus CD - 2004 - No. 02.iso / AmigaPlus / Tools / Development / RxMUI / Examples / Balance.rexx < prev    next >
Encoding:
OS/2 REXX Batch file  |  2004-01-31  |  4.3 KB  |  151 lines

  1. /* Balancing objects example */
  2.  
  3. signal on halt
  4. signal on break_c
  5.  
  6. call init
  7. call CreateApp
  8. call handleApp
  9. /* never reached */
  10. /***********************************************************************/
  11. init: procedure expose global.
  12.     l="rmh.library";if ~show("L",l) then;if ~addlib(l,0,-30) then exit
  13.     if AddLibrary("rexxsupport.library","rxmui.library")~=0 then exit
  14.  
  15.     global.background.0="BACKGROUND"
  16.     global.background.1="SHADOW"
  17.     global.background.2="SHINE"
  18.     global.background.3="FILL"
  19.     global.background.4="SHADOWBACK"
  20.     global.background.5="SHADOWFILL"
  21.     global.background.6="SHADOWSHINE"
  22.     global.background.7="FILLBACK"
  23.     global.background.8="FILLSHINE"
  24.     global.background.9="SHINEBACK"
  25.     global.background.10="FILLBACK2"
  26.     global.background.11="HSHINEBACK"
  27.     global.background.12="HSHADOWBACK"
  28.     global.background.13="HSHINESHINE"
  29.     global.background.14="HSHADOWSHADOW"
  30.     global.background.14="MARKSHINE"
  31.     global.background.15="MARKHALFSHINE"
  32.     global.background.16="MARKBACKGROUND"
  33.  
  34.     call randu(time(s)) /* init seed */
  35.  
  36.     return
  37. /***********************************************************************/
  38. CreateApp: procedure expose global.
  39.  
  40.     app.Title="Balancing"
  41.     app.Version="$VER: Balancing 1.3 (25.1.2002)"
  42.     app.Copyright="Copyright © 2002 by Alfonso Ranieri"
  43.     app.Author="Alfonso Ranieri"
  44.     app.Description="Balancing example"
  45.     app.Base="BALANCING"
  46.     app.SubWindow="win"
  47.  
  48.      win.ID="MAIN"
  49.      win.Title="Balancing"
  50.      win.width=-250
  51.      win.height=-250
  52.         g0.Frame="Group"
  53.         g0.Weight=15
  54.         g1.Frame="group"
  55.         g2.Frame="group"
  56.         g3.Frame="group"
  57.         g4.Frame="group"
  58.         g5.Frame="group"
  59.         g6.Frame="group"
  60.      win.Contents=MakeObj(,"HGroup",,
  61.        MakeObj("g0","VGroup",,
  62.         RectangleObject(50),,
  63.         RectangleObject(100),,
  64.         MakeObj(,"Balance"),,
  65.         RectangleObject(200)),,
  66.        MakeObj("Bal","Balance"),,
  67.        MakeObj("g1","VGroup",,
  68.         MakeObj(,"HGroup",,
  69.          RectangleObject(1),,
  70.          MakeObj(,"Balance"),,
  71.          RectangleObject(1)),,
  72.         MakeObj(,"HGroup",,
  73.          RectangleObject(),,
  74.          MakeObj(,"Balance"),,
  75.          RectangleObject(),,
  76.          MakeObj(,"Balance"),,
  77.          RectangleObject(),,
  78.          MakeObj(,"Balance"),,
  79.          RectangleObject(),,
  80.          MakeObj(,"Balance"),,
  81.          RectangleObject()),,
  82.         MakeObj("g2","HGroup",,
  83.          MakeObj(,"HGroup",,
  84.            RectangleObject(),,
  85.            MakeObj(,"Balance"),,
  86.            RectangleObject()),,
  87.          MakeObj(,"Balance"),,
  88.          MakeObj(,"HGroup",,
  89.           RectangleObject(),,
  90.           MakeObj(,"Balance"),,
  91.           RectangleObject())),,
  92.         MakeObj("g3","HGroup",,
  93.          RectangleObject(50),,
  94.          RectangleObject(100),,
  95.          MakeObj(,"Balance"),,
  96.          RectangleObject(200)),,
  97.         MakeObj("g4","HGroup",,
  98.          button("also","Also"),,
  99.          MakeObj(,"Balance"),,
  100.          button("try","Try"),,
  101.          MakeObj(,"Balance"),,
  102.          button("sizing","Sizing"),,
  103.          MakeObj(,"Balance"),,
  104.          button("with","With"),,
  105.          MakeObj(,"Balance"),,
  106.          button("shift","Shift")),,
  107.         MakeObj("g5","HGroup",,
  108.          label("Label 1:"),,
  109.          text("data","data..."),,
  110.          MakeObj(,"Balance"),,
  111.          label("Label 2:"),,
  112.          text("more","more data..."))))
  113.  
  114.     if NewObj("APPLICATION","APP")>0 then exit
  115.  
  116.     call Notify("WIN","CLOSEREQUEST",1,"APP","RETURNID","QUIT")
  117.  
  118.     call set("win","defaultobject","Bal")
  119.     call set("win","open",1)
  120.  
  121.     return
  122. /**************************************************************************/
  123. handleApp: procedure
  124.     ctrl_c=2**12
  125.     s=0
  126.     do forever
  127.         call handle("app","h",s)
  128.         do i=0 to h.num-1
  129.             if h.i="QUIT" then exit
  130.         end
  131.         s=Wait(or(h.signals,ctrl_c))
  132.         if and(s,ctrl_c)~=0 then exit
  133.     end
  134. /***********************************************************************/
  135. halt:
  136. break_c:
  137.     exit
  138. /**************************************************************************/
  139. RectangleObject: procedure expose global.
  140. parse arg w,f
  141.  
  142.     if arg(1,'e') then rec.Weight=w
  143.     if arg(2,'e') then rec.Frame=f
  144.     else rec.Frame="Text"
  145.  
  146.     i=random(0,17)
  147.     rec.Background=global.Background.i
  148.  
  149.     return XNewObj("Rectangle",,"rec")
  150. /**************************************************************************/
  151.