home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ARM Club 3
/
TheARMClub_PDCD3.iso
/
programs
/
comms_networking
/
hearsay
/
!Hearsay
/
Libraries
/
Menus
(
.txt
)
< prev
next >
Wrap
RISC OS BBC BASIC V Source
|
1995-12-31
|
2KB
|
106 lines
> Menus library
Chris Rutter, 1995
menu_start(title$,items%)
ael("menu_start")
clear%
menu% 28+(items%*24)+4
!menu%=items%
menu%+=4
$memory_needed%+=28+(items%*24)+4
clear%=menu%
menu%+28+(items%*24)
!clear%=0
clear%
(title$)>12
menu_title%
! menu%!28=(menu%!28
(1<<8))
menu_title%
(title$)+3
memory_needed%+=
(title$)+3
$menu_title%=""
$(menu_title%+2)=title$
menu%!0=menu_title%+2
menu%!4=menu_title%
menu%!8=
(title$)+1
$menu%=title$
menu_longest%=
(title$)
menu%?12=7
menu%?13=2
menu%?14=7
menu%?15=0
menu%!20=44
menu%!24=0
menu_pointer%=menu%+28
=menu%
menu_item(text$)
ael("menu_item")
text$,1)="#"
text$=
text$,2))
))menu_pointer%!0=(menu_pointer%!0
menu_pointer%!4=-1
+2menu_pointer%!8=(7<<24)
(3<<12)
(1<<4)
(text$)>12
menu_text%
menu_text%
(text$)+3
memory_needed%+=
(text$)+3
$menu_text%=""
$(menu_text%+2)=text$
2- menu_pointer%!8=menu_pointer%!8
(1<<8)
3" menu_pointer%!12=menu_text%+2
4 menu_pointer%!16=menu_text%
5 menu_pointer%!20=
(text$)+1
$(menu_pointer%+12)=text$
(text$)>menu_longest%
menu_longest%=
(text$)
menu_pointer%+=24
menu_itemlink(text$,link%)
ael("menu_itemlink")
menu_item(text$)
menu_pointer%!(4-24)=link%
menu_itemsubmenu(text$,link%)
ael("menu_itemsubmenu")
menu_itemlink(text$,link%)
H8menu_pointer%!(0-24)=(menu_pointer%!(0-24)
(1<<3))
menu_finish(menu%)
ael("menu_finish")
N6menu_pointer%!(0-24)=menu_pointer%!(0-24)
(1<<7)
O"menu%!16=(menu_longest%*16)+14
menu_showbar(menu%,x%)
"Wimp_CreateMenu",,menu%,x%-60,96+((menu%!-4)*44)
menu_last%=menu%
menu_showicon(menu%,window%,icon%)
mx%,my%
Z2!wbk2%=window%:
"Wimp_GetWindowState",,wbk2%
[Gwbk2%!128=window%:wbk2%!132=icon%:
"Wimp_GetIconState",,wbk2%+128
mx%=(wbk2%!144)+wbk2%!4+2
mx%-=wbk2%!20
^!my%=wbk2%!16+(wbk2%!(136+12))
"Wimp_CreateMenu",,menu%,mx%,my%
menu_last%=menu%
menu_itemtext(menu%,item%)
pointer%,text$
e pointer%=menu%+28+(item%*24)
(pointer%!8
(1<<8))=(1<<8)
text$=
ct(pointer%!12)
text$=
ct(pointer%+12)
=text$