home *** CD-ROM | disk | FTP | other *** search
RISC OS BBC BASIC V Source | 1994-08-27 | 3.9 KB | 172 lines |
- > !RunImage
- app$="GSSClock"
- version$="v0.01 (11-03-94)"
- get_desktop_version
- "Wimp_Initialise",200,&4B534154,app$
- ,task%
- error
- close :
- quit%
- close
- b% 1000, ws% 1000, men% 1000
- wsend%=ws%+1000
- menend%=men%+1000
- quit%=
- load_templates
- make_menus
- !b%=clock%
- "Wimp_GetWindowState",,b%
- get_time
- $time%=T$
- "Wimp_OpenWindow",,b%
- load_templates
- Loads templates
- "Wimp_OpenTemplate",,"<OBEY$Dir>.Templates"
- "Wimp_LoadTemplate",,b%,ws%,wsend%,-1,"Info",0
- ,,ws%
- $b%!(88+32*3+20)=version$
- "Wimp_CreateWindow",,b%
- info%
- "Wimp_LoadTemplate",,b%,ws%,wsend%,-1,"clock",0
- ,,ws%
- time%=b%!(88+20)
- "Wimp_CreateWindow",,b%
- clock%
- "Wimp_CloseTemplate"
- "Wimp_Poll",,b%
- 0 :
- 2 :
- "Wimp_OpenWindow",,b%
- 3 :
- "Wimp_CloseWindow",,b%
- 6 :
- mouse_click
- 9 :
- menu_click
- 17,18 :
- receive
- error
- Reports error, response: true returned if Cancel
- 8 !b%=
- !b%
- 1<<30:err_str$="":box%=3
- (1<<30)+1 : err_str$="":box%=1
- (1<<30)+2 : err_str$="":box%=2
- (1<<30)+3 : err_str$="":box%=(1
- (1<<4))
- : err_str$=" @ "+
- ):box%=2
- $(b%+4)=
- $+err_str$+
- "Wimp_ReportError",b%,box%,app$
- ,response%
- =(response%=2)
- close
- Closes down the task
- "Wimp_CloseDown",task%,&4B534154
- make_menus
- Menus are created here. Last one should be icon bar menu.
- GSSClock,Info_S,info%,Quit,"
- M!icon_menu%=
- create_menu_block
- create_menu_block
- Creates menu data block, start address returned
- men%+52>menend%
- (1<<30)+2,"Not enough room for the menu structure."
- menustart%=men%
- title$
- $(men%)=title$
- men%!12=&00070207
- men%!20=44
- men%!24=0
- width%=
- (title$)-3
- men%+=28
- menu_entry=0
- item$
- item$<>"
- menu_entry+=1
- ending%=
- item$,"_")
- object$=item$
- ending%>0
- c) options$=
- object$,ending%+1,10)
- d# item$=
- object$,ending%-1)
-
- options$=""
- g
- hR
- men%+24>menend%
- (1<<30)+2,"Not enough room for the menu structure."
- !men%=0
- men%!4=-1
- men%!8=&07000021
- $(men%+12)=item$
- m-
- options$,"T") >0 !men%=!men%
- n-
- options$,"D") >0 !men%=!men%
- o3
- options$,"S") >0
- nex% : men%!4=nex%
- width%<
- (item$)
- width%=
- (item$)
- men%+=24
- item$="
- t!!(menustart%+16)=width%*16+32
- !(men%-24)=!(men%-24)
- =menustart%
- Called when nothing is happening
- get_time
- Q$<>T$
- $time%=Q$
- T$=Q$
- q%=b%+700
- !q%=clock%
- q%!4=0
- "Wimp_GetIconState",,q%
- "Wimp_ForceRedraw",!q%,8+q%!8,q%!12,-8+q%!16,q%!20
- Called when a button is pressed
- mouse_click
- b%!12
- clock% :
- b%!8
- 0
- 2 :
- show_menu(icon_menu%,!b%-64,b%!4)
- receive
- Sorts incoming messages
- b%!16
- 0 : quit%=
- &502 :
- show_menu(qq%,w%,e%)
- shows menu
- top%=qq% : tx%=w% : ty%=e%
- "Wimp_CreateMenu",,qq%,w%,e%
- menu_click
- menu item clicked on
- A%=b%+800
- "Wimp_GetPointerInfo",,A%
- adj%=(A%!8
- "Wimp_DecodeMenu",,top%,b%,A%
- $A%
- "Quit" : quit%=
- adj%
- show_menu(top%,tx%,ty%)
- get_desktop_version
- Returns the desktop number
- "OS_Byte",129,0,255
- ,os%
- os%
- &A1,&A2,&A3 : version%=200
- &A4,&A5 : version%=310
- (1<<30)+2,"Unknown operating system."
- =version%
- Interactive help
- get_time
- $,17,5)
-