home *** CD-ROM | disk | FTP | other *** search
/ AMOS PD CD / amospdcd.iso / sourcecode / routines / simple_menu.amos / simple_menu.amosSourceCode
AMOS Source Code  |  1993-03-31  |  3KB  |  154 lines

  1. '
  2. '********************************************
  3. '
  4. '               Simple Menu    
  5. '            ----------------- 
  6. '
  7. '         By Malcolm Lavery 1993 
  8. '
  9. '********************************************
  10. '
  11. '
  12. Screen Open 0,640,256,8,Hires
  13. Palette $0,$FFF,$DDD,,$AAA,$444
  14. Curs Off : Cls 0 : Flash Off 
  15. '
  16. Screen Open 1,640,20,8,Lowres
  17. Get Palette 0 : Cls 4
  18. Def Scroll 1,0,0 To 640,20,-4,0
  19. Screen To Back 1
  20. '
  21. Screen 0
  22. '
  23. Bob Update Off 
  24. '
  25. TEXY$="Hello there!   and welcome to my little menu program   hope you find it of some use   byeeeee....       "
  26. POS=1 : TIM=0
  27. Global POS,TIM,TEXY$
  28. '
  29. Reserve Zone 10
  30. '
  31. '
  32. _3D_DISPLAY[0,0,640,10,0,4]
  33. _3D_DISPLAY[0,11,640,200,0,4]
  34. _3D_DISPLAY[7,15,625,192,1,4]
  35. _3D_DISPLAY[15,192,608,10,1,4]
  36.  
  37. '
  38. Ink 0,4
  39. Text 200,8,"Easy Menu by Malcolm Lavey 1993"
  40. '
  41. '
  42. _3D_BUTTON[1,150,40,350,20,0,"Program number one",4,0]
  43. '
  44. '
  45. Do 
  46.    '
  47.    TEST=Mouse Zone
  48.    TESTTWO=Mouse Key
  49.    '
  50.    If TESTTWO=1 and TEST=1
  51.       _3D_BUTTON[1,150,40,350,20,1,"Program number one",4,0]
  52.       Bell 
  53.       Wait 10
  54.       _3D_BUTTON[1,150,40,350,20,0,"Program number one",4,0]
  55.    End If 
  56.    '
  57.    _MESSAGE[TEXY$]
  58.    '
  59. Loop 
  60. '
  61. Procedure _3D_BUTTON[_ZONENUMBER,X,Y,WIDTH,HEIGHT,IN_OUT,TEX$,_FILL,_INK]
  62.    '
  63.    '
  64.    '
  65.    LE=Text Length(TEX$)
  66.    X_TEXT=X+WIDTH/2
  67.    Y_TEXT=Y+HEIGHT/2+3
  68.    '
  69.    '
  70.    If IN_OUT=0
  71.       HILIGHT=2
  72.       SHADOW=5
  73.    End If 
  74.    '
  75.    '
  76.    If IN_OUT=1
  77.       HILIGHT=5
  78.       SHADOW=2
  79.    End If 
  80.    '
  81.    '
  82.    Ink HILIGHT
  83.    Draw X,Y To X+WIDTH,Y
  84.    Draw X,Y To X,Y+HEIGHT
  85.    '
  86.    Ink SHADOW
  87.    Draw X+WIDTH,Y To X+WIDTH,Y+HEIGHT
  88.    Draw X+WIDTH,Y+HEIGHT To X,Y+HEIGHT
  89.    '
  90.    Ink _FILL
  91.    Bar X+1,Y+1 To X+WIDTH-1,Y+HEIGHT-1
  92.    '
  93.    Gr Writing 0
  94.    Ink _INK
  95.    Text X_TEXT-LE/2,Y_TEXT,TEX$
  96.    Gr Writing 1
  97.    '
  98.    Set Zone _ZONENUMBER,X,Y To X+WIDTH,Y+HEIGHT
  99.    '  
  100. End Proc
  101. '
  102. Procedure _3D_DISPLAY[X,Y,WIDTH,HEIGHT,IN_OUT,_FILL]
  103.    '
  104.    '
  105.    '
  106.    If IN_OUT=0
  107.       HILIGHT=2
  108.       SHADOW=5
  109.    End If 
  110.    '
  111.    '
  112.    If IN_OUT=1
  113.       HILIGHT=5
  114.       SHADOW=2
  115.    End If 
  116.    '
  117.    '
  118.    Ink HILIGHT
  119.    Draw X,Y To X+WIDTH,Y
  120.    Draw X,Y To X,Y+HEIGHT
  121.    '
  122.    Ink SHADOW
  123.    Draw X+WIDTH,Y To X+WIDTH,Y+HEIGHT
  124.    Draw X+WIDTH,Y+HEIGHT To X,Y+HEIGHT
  125.    '
  126.    Ink _FILL
  127.    Bar X+1,Y+1 To X+WIDTH-1,Y+HEIGHT-1
  128.    '
  129.    '
  130.    '
  131. End Proc
  132. '
  133. Procedure _MESSAGE[TEXY$]
  134.    Screen 1
  135.    LE=Len(TEXY$)
  136.    TEX$=Mid$(TEXY$,POS,1)
  137.    If TIM=3
  138.       Ink 0,4
  139.       Text 628,7,TEX$
  140.       Inc POS
  141.       If POS=LE+1
  142.          POS=1
  143.       End If 
  144.       TIM=0
  145.    End If 
  146.    Inc TIM
  147.    If TIM>3
  148.       TIM=0
  149.    End If 
  150.    Screen Copy 1,0,0,603,9 To 0,16,193
  151.    Scroll 1
  152.    Wait Vbl 
  153.    Screen 0
  154. End Proc