home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
AMOS PD CD
/
amospdcd.iso
/
sourcecode
/
routines
/
simple_menu.amos
/
simple_menu.amosSourceCode
Wrap
AMOS Source Code
|
1993-03-31
|
3KB
|
154 lines
'
'********************************************
'
' Simple Menu
' -----------------
'
' By Malcolm Lavery 1993
'
'********************************************
'
'
Screen Open 0,640,256,8,Hires
Palette $0,$FFF,$DDD,,$AAA,$444
Curs Off : Cls 0 : Flash Off
'
Screen Open 1,640,20,8,Lowres
Get Palette 0 : Cls 4
Def Scroll 1,0,0 To 640,20,-4,0
Screen To Back 1
'
Screen 0
'
Bob Update Off
'
TEXY$="Hello there! and welcome to my little menu program hope you find it of some use byeeeee.... "
POS=1 : TIM=0
Global POS,TIM,TEXY$
'
Reserve Zone 10
'
'
_3D_DISPLAY[0,0,640,10,0,4]
_3D_DISPLAY[0,11,640,200,0,4]
_3D_DISPLAY[7,15,625,192,1,4]
_3D_DISPLAY[15,192,608,10,1,4]
'
Ink 0,4
Text 200,8,"Easy Menu by Malcolm Lavey 1993"
'
'
_3D_BUTTON[1,150,40,350,20,0,"Program number one",4,0]
'
'
Do
'
TEST=Mouse Zone
TESTTWO=Mouse Key
'
If TESTTWO=1 and TEST=1
_3D_BUTTON[1,150,40,350,20,1,"Program number one",4,0]
Bell
Wait 10
_3D_BUTTON[1,150,40,350,20,0,"Program number one",4,0]
End If
'
_MESSAGE[TEXY$]
'
Loop
'
Procedure _3D_BUTTON[_ZONENUMBER,X,Y,WIDTH,HEIGHT,IN_OUT,TEX$,_FILL,_INK]
'
'
'
LE=Text Length(TEX$)
X_TEXT=X+WIDTH/2
Y_TEXT=Y+HEIGHT/2+3
'
'
If IN_OUT=0
HILIGHT=2
SHADOW=5
End If
'
'
If IN_OUT=1
HILIGHT=5
SHADOW=2
End If
'
'
Ink HILIGHT
Draw X,Y To X+WIDTH,Y
Draw X,Y To X,Y+HEIGHT
'
Ink SHADOW
Draw X+WIDTH,Y To X+WIDTH,Y+HEIGHT
Draw X+WIDTH,Y+HEIGHT To X,Y+HEIGHT
'
Ink _FILL
Bar X+1,Y+1 To X+WIDTH-1,Y+HEIGHT-1
'
Gr Writing 0
Ink _INK
Text X_TEXT-LE/2,Y_TEXT,TEX$
Gr Writing 1
'
Set Zone _ZONENUMBER,X,Y To X+WIDTH,Y+HEIGHT
'
End Proc
'
Procedure _3D_DISPLAY[X,Y,WIDTH,HEIGHT,IN_OUT,_FILL]
'
'
'
If IN_OUT=0
HILIGHT=2
SHADOW=5
End If
'
'
If IN_OUT=1
HILIGHT=5
SHADOW=2
End If
'
'
Ink HILIGHT
Draw X,Y To X+WIDTH,Y
Draw X,Y To X,Y+HEIGHT
'
Ink SHADOW
Draw X+WIDTH,Y To X+WIDTH,Y+HEIGHT
Draw X+WIDTH,Y+HEIGHT To X,Y+HEIGHT
'
Ink _FILL
Bar X+1,Y+1 To X+WIDTH-1,Y+HEIGHT-1
'
'
'
End Proc
'
Procedure _MESSAGE[TEXY$]
Screen 1
LE=Len(TEXY$)
TEX$=Mid$(TEXY$,POS,1)
If TIM=3
Ink 0,4
Text 628,7,TEX$
Inc POS
If POS=LE+1
POS=1
End If
TIM=0
End If
Inc TIM
If TIM>3
TIM=0
End If
Screen Copy 1,0,0,603,9 To 0,16,193
Scroll 1
Wait Vbl
Screen 0
End Proc