home *** CD-ROM | disk | FTP | other *** search
/ APDL Public Domain 1 / APDL_PD1A.iso / clock_time / gssclock / !GSSClock / !RunImage (.txt) < prev    next >
Encoding:
RISC OS BBC BASIC V Source  |  1994-08-27  |  3.9 KB  |  172 lines

  1.  > !RunImage
  2. app$="GSSClock"
  3. version$="v0.01 (11-03-94)"
  4. get_desktop_version
  5.  "Wimp_Initialise",200,&4B534154,app$ 
  6.  ,task%
  7. error 
  8. close : 
  9.  quit%
  10. close
  11.  b% 1000, ws% 1000, men% 1000
  12. wsend%=ws%+1000
  13. menend%=men%+1000
  14. quit%=
  15. load_templates
  16. make_menus
  17. !b%=clock%
  18.  "Wimp_GetWindowState",,b%
  19. get_time
  20. $time%=T$
  21.  "Wimp_OpenWindow",,b%
  22. load_templates
  23.  Loads templates
  24.  "Wimp_OpenTemplate",,"<OBEY$Dir>.Templates"
  25.  "Wimp_LoadTemplate",,b%,ws%,wsend%,-1,"Info",0 
  26.  ,,ws%
  27. $b%!(88+32*3+20)=version$
  28.  "Wimp_CreateWindow",,b% 
  29.  info%
  30.  "Wimp_LoadTemplate",,b%,ws%,wsend%,-1,"clock",0 
  31.  ,,ws%
  32. time%=b%!(88+20)
  33.  "Wimp_CreateWindow",,b% 
  34.  clock%
  35.  "Wimp_CloseTemplate"
  36.  "Wimp_Poll",,b% 
  37.  0     : 
  38.  2     : 
  39. "Wimp_OpenWindow",,b%
  40.  3     : 
  41. "Wimp_CloseWindow",,b%
  42.  6     : 
  43. mouse_click
  44.  9     : 
  45. menu_click
  46.  17,18 : 
  47. receive
  48. error
  49.  Reports error, response: true returned if Cancel
  50. 8    !b%=
  51.  !b% 
  52.  1<<30:err_str$="":box%=3
  53.  (1<<30)+1 : err_str$="":box%=1
  54.  (1<<30)+2 : err_str$="":box%=2
  55.  (1<<30)+3 : err_str$="":box%=(1 
  56.  (1<<4))
  57.  : err_str$=" @ "+
  58. ):box%=2
  59. $(b%+4)=
  60. $+err_str$+
  61.  "Wimp_ReportError",b%,box%,app$ 
  62.  ,response%
  63. =(response%=2)
  64. close
  65.  Closes down the task
  66.  "Wimp_CloseDown",task%,&4B534154
  67. make_menus
  68.  Menus are created here.  Last one should be icon bar menu.
  69.  GSSClock,Info_S,info%,Quit,"
  70. M!icon_menu%=
  71. create_menu_block
  72. create_menu_block
  73.  Creates menu data block, start address returned
  74.  men%+52>menend% 
  75.  (1<<30)+2,"Not enough room for the menu structure."
  76. menustart%=men%
  77.  title$
  78. $(men%)=title$
  79. men%!12=&00070207
  80. men%!20=44
  81. men%!24=0
  82. width%=
  83. (title$)-3
  84. men%+=28
  85. menu_entry=0
  86.  item$
  87.  item$<>"
  88.     menu_entry+=1
  89.     ending%=
  90. item$,"_")
  91.     object$=item$
  92.  ending%>0 
  93. c)      options$=
  94. object$,ending%+1,10)
  95. d#      item$=
  96. object$,ending%-1)
  97.      
  98.       options$=""
  99. g        
  100. hR    
  101.  men%+24>menend% 
  102.  (1<<30)+2,"Not enough room for the menu structure."
  103.     !men%=0
  104.     men%!4=-1
  105.     men%!8=&07000021
  106.     $(men%+12)=item$
  107. m-      
  108. options$,"T") >0 !men%=!men% 
  109. n-      
  110. options$,"D") >0 !men%=!men% 
  111. o3      
  112. options$,"S") >0  
  113.  nex% : men%!4=nex%
  114.  width%<
  115. (item$) 
  116.  width%=
  117. (item$)
  118.   men%+=24
  119.  item$="
  120. t!!(menustart%+16)=width%*16+32
  121. !(men%-24)=!(men%-24) 
  122. =menustart%
  123.  Called when nothing is happening
  124. get_time
  125.  Q$<>T$ 
  126.   $time%=Q$
  127.   T$=Q$
  128.   q%=b%+700
  129.   !q%=clock%
  130.   q%!4=0
  131.  "Wimp_GetIconState",,q%
  132.  "Wimp_ForceRedraw",!q%,8+q%!8,q%!12,-8+q%!16,q%!20
  133.  Called when a button is pressed
  134. mouse_click
  135.  b%!12 
  136.  clock% : 
  137.  b%!8 
  138. 0    
  139.  2 : 
  140. show_menu(icon_menu%,!b%-64,b%!4)
  141. receive
  142.  Sorts incoming messages
  143.  b%!16 
  144.  0 : quit%=
  145.  &502 : 
  146. show_menu(qq%,w%,e%)
  147.  shows menu
  148. top%=qq% : tx%=w% : ty%=e%
  149.  "Wimp_CreateMenu",,qq%,w%,e%
  150. menu_click
  151.  menu item clicked on
  152. A%=b%+800
  153.  "Wimp_GetPointerInfo",,A%
  154. adj%=(A%!8 
  155.  "Wimp_DecodeMenu",,top%,b%,A%
  156.  $A% 
  157.  "Quit" : quit%=
  158.  adj% 
  159. show_menu(top%,tx%,ty%)
  160. get_desktop_version
  161.  Returns the desktop number
  162.  "OS_Byte",129,0,255 
  163.  ,os%
  164.  os% 
  165.  &A1,&A2,&A3 : version%=200
  166.  &A4,&A5     : version%=310
  167.  (1<<30)+2,"Unknown operating system."
  168. =version%
  169.  Interactive help
  170. get_time
  171. $,17,5)
  172.