home *** CD-ROM | disk | FTP | other *** search
/ ARM Club 3 / TheARMClub_PDCD3.iso / programs / comms_networking / hearsay / !Hearsay / Libraries / Menus (.txt) < prev    next >
RISC OS BBC BASIC V Source  |  1995-12-31  |  2KB  |  106 lines

  1.  > Menus library
  2.  Chris Rutter, 1995
  3. menu_start(title$,items%)
  4. ael("menu_start")
  5.  clear%
  6.  menu% 28+(items%*24)+4
  7. !menu%=items%
  8. menu%+=4
  9. $memory_needed%+=28+(items%*24)+4
  10.  clear%=menu% 
  11.  menu%+28+(items%*24) 
  12.  !clear%=0
  13.  clear%
  14. (title$)>12 
  15.  menu_title%
  16. ! menu%!28=(menu%!28 
  17.  (1<<8))
  18.  menu_title% 
  19. (title$)+3
  20.   memory_needed%+=
  21. (title$)+3
  22.  $menu_title%=""
  23.  $(menu_title%+2)=title$
  24.  menu%!0=menu_title%+2
  25.  menu%!4=menu_title%
  26.  menu%!8=
  27. (title$)+1
  28.  $menu%=title$
  29. menu_longest%=
  30. (title$)
  31. menu%?12=7
  32. menu%?13=2
  33. menu%?14=7
  34. menu%?15=0
  35. menu%!20=44
  36. menu%!24=0
  37. menu_pointer%=menu%+28
  38. =menu%
  39. menu_item(text$)
  40. ael("menu_item")
  41. text$,1)="#" 
  42.  text$=
  43. text$,2))
  44. ))menu_pointer%!0=(menu_pointer%!0 
  45. menu_pointer%!4=-1
  46. +2menu_pointer%!8=(7<<24) 
  47.  (3<<12) 
  48.  (1<<4) 
  49. (text$)>12 
  50.  menu_text%
  51.  menu_text% 
  52. (text$)+3
  53.  memory_needed%+=
  54. (text$)+3
  55.  $menu_text%=""
  56.  $(menu_text%+2)=text$
  57. 2- menu_pointer%!8=menu_pointer%!8 
  58.  (1<<8)
  59. 3" menu_pointer%!12=menu_text%+2
  60. 4  menu_pointer%!16=menu_text%
  61. 5  menu_pointer%!20=
  62. (text$)+1
  63.  $(menu_pointer%+12)=text$
  64. (text$)>menu_longest% 
  65.  menu_longest%=
  66. (text$)
  67. menu_pointer%+=24
  68. menu_itemlink(text$,link%)
  69. ael("menu_itemlink")
  70. menu_item(text$)
  71. menu_pointer%!(4-24)=link%
  72. menu_itemsubmenu(text$,link%)
  73. ael("menu_itemsubmenu")
  74. menu_itemlink(text$,link%)
  75. H8menu_pointer%!(0-24)=(menu_pointer%!(0-24) 
  76.  (1<<3))
  77. menu_finish(menu%)
  78. ael("menu_finish")
  79. N6menu_pointer%!(0-24)=menu_pointer%!(0-24) 
  80.  (1<<7)
  81. O"menu%!16=(menu_longest%*16)+14
  82. menu_showbar(menu%,x%)
  83.  "Wimp_CreateMenu",,menu%,x%-60,96+((menu%!-4)*44)
  84. menu_last%=menu%
  85. menu_showicon(menu%,window%,icon%)
  86.  mx%,my%
  87. Z2!wbk2%=window%:
  88.  "Wimp_GetWindowState",,wbk2%
  89. [Gwbk2%!128=window%:wbk2%!132=icon%:
  90.  "Wimp_GetIconState",,wbk2%+128
  91. mx%=(wbk2%!144)+wbk2%!4+2
  92. mx%-=wbk2%!20
  93. ^!my%=wbk2%!16+(wbk2%!(136+12))
  94.  "Wimp_CreateMenu",,menu%,mx%,my%
  95. menu_last%=menu%
  96. menu_itemtext(menu%,item%)
  97.  pointer%,text$
  98. e pointer%=menu%+28+(item%*24)
  99.  (pointer%!8 
  100.  (1<<8))=(1<<8) 
  101.  text$=
  102. ct(pointer%!12)
  103.  text$=
  104. ct(pointer%+12)
  105. =text$
  106.