home *** CD-ROM | disk | FTP | other *** search
/ AMOS PD CD / amospdcd.iso / 451-475 / apd472 / wbk_window.amos / wbk_window.amosSourceCode < prev   
AMOS Source Code  |  1993-03-13  |  5KB  |  185 lines

  1. Screen Open 0,640,256,4,Hires
  2. Flash Off : Curs Off : Cls 0
  3. Get Sprite Palette 
  4. Colour Back 2440
  5. A#=0.0
  6. '  
  7. 'Amos Lock 
  8. '
  9. Dim ICX(5),ICY(5),ICTX(5),ICTY(5),ICM$(5)
  10. Global WW,WH,WX,WY,WWMIN,WWMAX,WHMIN,WHMAX,WFULL,WEXIST,ICX(),ICY(),ICTX(),ICTY(),ICM$()
  11. Global SELECTED
  12. '
  13. WW=200 : WH=100 : WX=50 : WY=50 : WWMIN=50 : WWMAX=640 : WHMIN=50 : WHMAX=250 : WFULL=50 : WEXIST=1
  14. Reserve Zone 9
  15. '
  16. For N=1 To 5
  17.    Read A,B,C,D,M$
  18.    ICX(N)=A : ICY(N)=B : ICTX(N)=C : ICTY(N)=D : ICM$(N)=M$
  19. Next N
  20. '
  21. Data 572,23,560,52,"RAM Disk",572,57,576,86,"HDD1",572,111,560,140,"No_Click"
  22. Data 572,145,556,174,"Workbench",572,213,560,242,"ASDG-RAM"
  23. '
  24. _WBDRAW
  25. _WINDOW
  26. '
  27. Do 
  28.    '
  29.    Limit Mouse 
  30.    If Key State(69) Then _QUIT
  31.    If Mouse Key=2 Then _RMB
  32.    If Mouse Zone=1 and Mouse Key=1 and WEXIST<>0 Then _WINDMOVE
  33.    If Mouse Zone=2 and Mouse Key=1 and WEXIST<>0 Then _WINDCLOSE
  34.    If Mouse Zone=3 and Mouse Key=1 and WEXIST<>0 Then _WINDSIZE
  35.    If Mouse Zone=4 and Mouse Key=1 Then _SCRNPULL
  36.    If Mouse Zone>4 and Mouse Zone<10 and Mouse Key=1 Then _SELECT
  37.    '
  38. Loop 
  39. '
  40. Procedure _RMB
  41.    Gr Writing 1
  42.    Ink 1
  43.    Bar 0,7 To 639,16
  44.    Ink 0
  45.    Text 30,14,"Workbench"
  46.    Text 130,14,"Disk"
  47.    Text 190,14,"Special"
  48.    Repeat 
  49.    Until Mouse Key<>2
  50.    Bar 0,7 To 639,16
  51.    _WBDRAW
  52. End Proc
  53. Procedure _WBDRAW
  54.    Gr Writing 1
  55.    Ink 1
  56.    Bar 0,7 To 587,16
  57.    Ink 0
  58.    MEM=Chip Free+Fast Free
  59.    Text 5,14,"Workbench release.     "+Str$(MEM)+" free memory"
  60.    Paste Bob 589,7,2
  61.    Set Zone 4,0,7 To 587,16
  62.    Ink 1,0
  63.    For N=1 To 5
  64.       Paste Bob ICX(N),ICY(N),16
  65.       Text ICTX(N),ICTY(N),ICM$(N)
  66.       Set Zone N+4,ICX(N),ICY(N) To ICX(N)+32,ICY(N)+32
  67.    Next N
  68.    Ink 0,1
  69. End Proc
  70. Procedure _WINDOW
  71.    Set Zone 1,WX+28,WY To WX+WW-1,WY+9
  72.    Set Zone 2,WX,WY To WX+30,WY+9
  73.    Set Zone 3,WX+WW+36,WY+WH-8 To WX+WW+50,WY+WH
  74.    Ink 0
  75.    Bar WX,WY To WX+WW+50,WY+9
  76.    Ink 1 : Set Pattern -11
  77.    Paste Bob WX,WY,1
  78.    Paste Bob WX+WW-1,WY,2
  79.    Ink 2
  80.    Bar WX+28,WY+1 To WX+WW-5,WY+9
  81.    Ink 1
  82.    Draw WX+WW-3,WY To WX+WW-3,WY+9
  83.    Draw WX+WW-5,WY To WX+WW-5,WY+9
  84.    Box WX+28,WY To WX+WW-4,WY+9
  85.    Box WX,WY+WH-8 To WX+WW+23,WY+WH
  86.    Draw WX+1,WY+WH-10 To WX+1,WY+WH
  87.    Paste Bob WX+2,WY+WH-8,6
  88.    Paste Bob WX+WW+23,WY+WH-8,7
  89.    Paste Bob WX+WW+36,WY+WH-8,3
  90.    Bar WX+17,WY+WH-6 To WX+WW+19,WY+WH-2
  91.    Draw WX+14,WY+WH-8 To WX+14,WY+WH
  92.    Draw WX+WW+22,WY+WH-8 To WX+WW+22,WY+WH
  93.    Set Pattern 0
  94.    Ink 1
  95.    Bar WX,WY+10 To WX+15,WY+WH-15
  96.    Bar WX+WW+35,WY+17 To WX+WW+50,WY+WH-16
  97.    Ink 0
  98.    Box WX+WW+37,WY+17 To WX+WW+48,WY+WH-16
  99.    Box WX+WW+38,WY+17 To WX+WW+47,WY+WH-16
  100.    Ink 2
  101.    Bar WX+2,WY+10 To WX+13,WY+WH-9
  102.    Paste Bob WX,WY+10,4
  103.    Paste Bob WX,WY+WH-15,5
  104.    Paste Bob WX+WW+35,WY+10,8
  105.    Paste Bob WX+WW+35,WY+WH-15,9
  106.    Ink 3
  107.    VV#=((WH-33.0)/100.0)*WFULL
  108.    If VV#>0 Then Bar WX+2,WY+WH-16-VV# To WX+13,WY+WH-16
  109. End Proc
  110. Procedure _WINDMOVE
  111.    Gr Writing 2
  112.    Ink 1
  113.    WXADJ=X Screen(X Mouse)-WX : WYADJ=Y Screen(Y Mouse)-WY
  114.    OLDWX=WX : OLDWY=WY
  115.    While Mouse Key=1
  116.       WXT=WX : WYT=WY
  117.       If X Screen(X Mouse)<>X or Y Screen(Y Mouse)<>Y
  118.          Ink 0 : Box WX,WY To WX+WW+50,WY+WH
  119.          WX=X Screen(X Mouse)-WXADJ : WY=Y Screen(Y Mouse)-WYADJ
  120.          If WX<0 or WX+WW>589
  121.             WX=WXT
  122.          End If 
  123.          If WY<7 or WY+WH>254
  124.             WY=WYT
  125.          End If 
  126.          Ink 2 : Box WX,WY To WX+WW+50,WY+WH
  127.          X=X Screen(X Mouse) : Y=Y Screen(Y Mouse)
  128.       End If 
  129.    Wend 
  130.    Cls 0,OLDWX,OLDWY To OLDWX+WW+51,OLDWY+WH+1
  131.    _WBDRAW
  132.    _WINDOW
  133. End Proc
  134. Procedure _WINDSIZE
  135.    Cls 0,WX,WY To WX+WW+51,WY+WH+1
  136.    WWADJ=WX+WW+50-X Screen(X Mouse) : WHADJ=(WY+WH)-Y Screen(Y Mouse)
  137.    While Mouse Key=1
  138.       If X Screen(X Mouse)<>X or Y Screen(Y Mouse)<>Y
  139.          Ink 0 : Box WX,WY To WX+WW+50,WY+WH
  140.          WWT=WW : WHT=WH
  141.          WW=X Screen(X Mouse)-(WX+WWADJ)-35 : WH=Y Screen(Y Mouse)-(WY+WHADJ)+10
  142.          If WW<WWMIN or WW>WWMAX
  143.             WW=WWT
  144.          End If 
  145.          If WH<WHMIN or WH>WHMAX
  146.             WH=WHT
  147.          End If 
  148.          _WBDRAW
  149.          Ink 2 : Box WX,WY To WX+WW+50,WY+WH
  150.          X=X Screen(X Mouse) : Y=Y Screen(Y Mouse)
  151.       End If 
  152.    Wend 
  153.    _WINDOW
  154. End Proc
  155. Procedure _WINDCLOSE
  156.    Cls 0,WX,WY To WX+WW+51,WY+WH+1
  157.    _WBDRAW
  158.    WEXIST=0
  159. End Proc
  160. Procedure _SCRNPULL
  161.    YADJ=Y Screen(Y Mouse)
  162.    While Mouse Key=1
  163.       If Y Mouse-YADJ>41
  164.          Screen Display 0,,Y Mouse-YADJ,,
  165.       End If 
  166.       Wait Vbl 
  167.    Wend 
  168. End Proc
  169. Procedure _SELECT
  170.    If SELECTED>0
  171.       Cls 0,ICX(SELECTED),ICY(SELECTED) To ICX(SELECTED)+38,ICY(SELECTED)+20
  172.       Paste Bob ICX(SELECTED),ICY(SELECTED),16
  173.       Wait Vbl 
  174.    End If 
  175.    SELECTED=Mouse Zone-4
  176.    Paste Bob ICX(SELECTED),ICY(SELECTED),17
  177.    Wait Vbl 
  178.    Repeat 
  179.    Until Mouse Key<>1
  180. End Proc
  181. Procedure _QUIT
  182.    Default 
  183.    Amos Unlock 
  184.    Edit 
  185. End Proc