home *** CD-ROM | disk | FTP | other *** search
RISC OS BBC BASIC V Source | 1993-12-26 | 11.9 KB | 421 lines |
- Wimp Programming Library
- By R.Peach
- Window Procedures
- Window_Load(window$,template$)
- c%,i%,n%,j%,sp$,sp2$
- "Wimp_OpenTemplate",,template$
- "Wimp_LoadTemplate",,block%,icons%,icon_memory%,font%,window$,0
- ,,icons%
- sprites%
- 1 : block%!64=sprites%
- : block%!64=
- Event_Sprites(window%)
- "Wimp_CreateWindow",,block%
- "Wimp_CloseTemplate"
- "Wimp_WhichIcon",c%,block%+40,1+2+(1<<8),2+(1<<8)
- block%!40
- -1 :
- : i%=40
- ' block%!4=block%!i% : block%!0=c%
- "Wimp_GetIconState",,block%
- . sp$=
- Wimp_GetStringAtAddress(block%!28)
- "Wimp_DeleteIcon",,block%
- sprites%
- 1 : block%!32=1
- /
- "OS_SpriteOp",&108,sprites%
- ,,,n%
- j%=0
-
- : j%+=1
- "=
- "OS_SpriteOp",&10D,sprites%,pointer_block%,20,j%
- #7 sp2$=
- Wimp_GetStringAtAddress(pointer_block%)
-
- j%=n%
- sp$=sp2$
- %8
- sp$=sp2$
- block%!32=sprites%
- block%!32=cc1
- block%!4=c%
- (/
- "Wimp_CreateIcon",,block%+4
- handle%
- i%+=4
- (block%!i%)=-1
- Window_Open(window%,top%)
- !block%=window%
- "Wimp_GetWindowState",,block%
- top%
- block%!28=-1
- "Wimp_OpenWindow",,block%
- Window_OpenLink(window%,top%)
- !block%=window%
- "Wimp_GetWindowState",,block%
- top%
- block%!28=-1
- "WimpExt_OpenLinked",,block%
- Window_Link(window1%,window2%)
- "WimpExt_LinkWindows",,,window1%,window2%
- Window_UnLink(window1%,window2%)
- "WimpExt_UnLinkWindows",,,window1%,window2%
- Window_HideLink(window1%,window2%)
- "WimpExt_HideLink",window1%,,window2%
- Window_CloseLink(window%)
- !block%=window%
- "Wimp_CloseWindow",,block%
- Window_Close(window%)
- !block%=window%
- "Wimp_CloseWindow",,block%
- Window_OpenDialogue(window%,x%,y%)
- "WimpExt_OpenDialogue",,,window%,x%,y%
- Icon Procdures
- Icon_PutText(window%,icon%,text$)
- \%block%!0=window% : block%!4=icon%
- "Wimp_GetIconState",,block%
- ((block%!24)
- &100)=0
- 1,"Icon isn't indirected"
- $(block%!28)=text$
- `%block%!0=window% : block%!4=icon%
- block%!8=0 : block%!12=0
- "Wimp_SetIconState",,block%
- Icon_SetColour(window%,icon%,fcolour%,bcolour%)
- "WimpExt_SetIconColour",,,window%,icon%,fcolour%,bcolour%
- old%
- create_icon(whan%,ix%,iy%,iw%,ih%,flag%,text$,ptr1%,ptr2%,ptr3%)
- !block%=whan%
- block%!4=ix%
- block%!8=iy%
- block%!12=ix%+iw%
- block%!16=iy%+ih%
- block%!20=flag%
- ptr1%=0
- $(block%+24)=text$
- block%!24=ptr1%
- block%!28=ptr2%
- block%!32=ptr3%
- "Wimp_CreateIcon",,block%
- ihandle%
- =ihandle%
- Icon_Validate(whandle%,ihandle%,val1$,val2$,val3$)
- $text%=val1$
- $val%=val2$
- spr%=21
- &!block%=whandle%:block%!4=ihandle%
- "Wimp_GetIconState",,block%
- $(text%)=text$
- block%!24=text%
- block%!28=val%
- block%!32=spr%
- &!block%=whandle%:block%!4=ihandle%
- block%!8=0:block%!12=0
- "Wimp_SetIconState",,block%
- Icon_Dissable(window%,icon%)
- "WimpExt_ShadeIcon",window%,icon%,1,2
- Icon_Enable(window%,icon%)
- "WimExt_ShadeIcon",window%,icon%,0,0
- Icon_GetText(window%,icon%)
- "WimpExt_GetIcon",,,window%,icon%
- ,,,text$
- =text$
- Icon_Caret(window%,icon%)
- "WimpExt_PutCaretIcon",,,window%,icon%
- Icon_Drag(window%,icon%,sp$,shadow%)
- Swindow%=window%
- Sicon%=icon%+1
- shadow%
- "WimpExt_DragIcon",%100000101,sprites%,window%,icon%,sp$
- "WimpExt_DragIcon",%100000111,sprites%,window%,icon%,sp$
- Icon_Create(whandle%,x%,y%,w%,h%,flag%,text$,icon1%,icon2%,icon3%)
- handle%,ist%
- !block%=whandle%:block%!4=x%
- #block%!8=-y%-h%:block%!12=x%+w%
- !block%!16=-y%:block%!20=flag%
- !ist%=((flag%>>6)
- 4)+(flag%
- ist%
- 1,2,3:$(block%+24)=text$
- 5,6,7:block%!24=icon1%:block%!28=icon2%:block%!32=icon3%:$icon1%=text$
- "Wimp_CreateIcon",,block%
- handle%
- =handle%
- Icon_PutSprite(window%,icon%,sprite$)
- #block%!0=window%:block%!4=icon%
- "Wimp_GetIconState",,block%
- "Wimp_DeleteIcon",,block%
- Cblock%!4=block%!8 : block%!8=block%!12 : block%!12=block%!16
- Dblock%!16=block%!20 : block%!20=block%!24 : $(block%+24)=sprite$
- "Wimp_CreateIcon",,block%
- icon%
- Menus
- Menu_Tick(menu%,item%)
- 7menu%!(28+(item%-1)*24)=(menu%!(28+(item%-1)*24))
- MenuPop(menu%,mx%,my%)
- menuopen%=menu%
- "WimpExt_CreateMenu",,menu%,mx%,my%
- Menu_Colours(coltick%)
- coltick%>15
- "Error 0 colour to high max 15" quit%=
- "WimpExt_ColoursMenu",coltick%,0
- cmenu%
- =cmenu%
- Menu_Font(system%,title$)
- "WimpExt_GetFontMenu",system%,title$
- ,fmenu%
- =fmenu%
- Menu_Write(menu%,item%,buffer%,val%,BuffLength%)
- 7menu%!(28+(item%-1)*24)=(menu%!(28+(item%-1)*24))
- 8menu%!(36+(item%-1)*24)=menu%!(36+(item%-1)*24)
- #menu%!(40+(item%-1)*24)=buffer%
- menu%!(44+(item%-1)*24)=val%
- 'menu%!(48+(item%-1)*24)=BuffLength%
- Menu_PutFontInIcon(window%,icon%)
- "WimpExt_DecodeFontMenu",block%+256,block%
- "WimpExt_SetIconString",,,window%,icon%,block%+256
- Menu_Choice(level%)
- =(block%!(4*level%))+1
- Menu_NoOfEntries(menu$)
- n% ,j% : n%=0 : j%=0
- menu$,"\",j%+1)
- j%<>0
- n%+=1
- j%=0
- Menu_Create(menu$)
- menu%,index%,width%,length%,k%,s%
- menu% 28+
- Menu_NoOfEntries(menu$)*24
- 7menu%?12=7 : menu%?13=2 : menu%?14=7 :menu%?15=0
- +menu%!16=140 : menu%!20=44 : menu%!24=0
- index%=menu%+28
- $menu%=
- menu$,
- menu$,"\")-1)
- #width%=
- menu$,
- menu$,"\")-1))
- $menu$+="\" : Menu_NoOfEntries%=0
- menu$<>""
- menu$=
- menu$,
- menu$,"\")+1)
- menu$
- 1 !index%=0 : index%!4=-1 : index%!8=&7000021
- length%=
- menu$,"\")-1
- k%=
- menu$,length%),">")
- % s%=
- menu$,k%+1,length%-k%))
- index%!4=s%
- length%=k%-1
- " $(index%+12)=
- menu$,length%)
- length%>width%
- width%=length%
- index%+=24
- menu%!16=16*(width%+1)
- (index%!-24=index%!-24
- &80 : =menu%
- Sprite Functions
- Bar_IconBarTextSprite(spritename$,text$,place%,buttype%)
- text$ > 127 Chars
- "ERROR 0 to many Chars max 128" :quit%=
- "WimpExt_IconBarText",,,place%,spritename$,text$,buttype%
- baricon%
- =baricon%
- Bar_Sprite(Spritename$,place%)
- "WimpExt_IconBarSprite",,,place%,Spritename$,,3
- ibar%
- =ibar%
- load_sprites(file$)
- file%,size%,sprite%
- file%=
- file$
- size%=
- #file%+16:
- #file%
- sprite% size%
- !sprite%=size%:sprite%!8=16
- "OS_SpriteOp",&109,sprite%
- "OS_SpriteOp",&10A,sprite%,file$
- =sprite%
- Error And RecrestorWindows
- RequesterMessage(text$)
- buttons(buttons%,"OK","","","")
- "WimpExt_OpenRequester",,,("Message From"+appname$),text$,buttons%,0
- ErrorMessage(err$)
- !block%=255
- $(block%+4)=err$+
- "Wimp_ReportError",block%,1,appname$
- buttons(but%,a$,b$,c$,d$)
- 5K$but%=a$:but%+=
- a$+1:$but%=b$:but%+=
- b$+1:$but%=c$:but%+=
- c$+1:$but%=d$
- OpenReq(a$,b$,c$,d$,title$,text$,esc%,why$)
- Rec$=why$
- buttons(buttons%,a$,b$,c$,d$)
- "WimpExt_OpenRequester",,,title$,text$,buttons%,esc%
- Extra
- Put_TextAtCaret(text$)
- a%=1
- text$
- text$,a%)
- key%=
- "Wimp_ProcessKey",key
- b%=1
- 400 :
- Pointer_Limit(window%)
- "WimpExt_LimitPointer",window%
- Pointer_Release
- "WimpExt_ReleasePointer"
- Wimp_Start(appname$,font%,wimp_memory%,icon%,interface%)
- xdragasprite_stop%=&62401
- block% wimp_memory%,icons% icon%,font% 5
- path$="":type$="":obj$=""
- desc$="Object is a"
- sbspr% 8,sbtext% 255,sbval% 3
- [*$sbspr%="file_fff":$sbtext%="TestFile"
- $sbval%="A~ "
- wimp_memory%<256
- wimp_memory%=256
- icon_memory%=icons%+icon%
- task% 256 ,mainind 150, name% 11 ,text% 20 ,val% 20,spr% 20
- item$(20)
- request% 3
- quit%=
- list% 15
- d.!list%=2 :list%!4=3 :list%!8=8 :list%!12=0
- "Wimp_Initialise",200,&4B534154,appname$,list%
- block%!2=font%
- block%!0=0
- ErrorMessage(
- $+" at line "+
- "Wimp_CloseDown":
- "WimpExt_Initialise",12,task%,%100001111
- Wimp_PollCloseWindow
- "Wimp_GetPointerInfo",,block%
- o+ window%=block%!12 : buttons%=block%!8
- p7 !block%=window% :
- "WimpExt_CloseLinked",,block%
- Wimp_Poll
- mask%,event%
- finished%=
- mask%=%111000011001
- "XWimpExt_SlabIcon",,,0,0,0
- "WimpExt_PrePoll"
- "Wimp_Poll",mask%,block%
- event%
- "WimpExt_Action",task%,block%,event%
- event%
- event%
- Wimp_PollDrawWindow
- "WimpExt_OpenLinked",,block%
- Wimp_PollCloseWindow
- Wimp_PollMouseClick
- Wimp_PollSaveMessage
- Wimp_PollKeyPress
- RunUser_MenuChoice(menuopen%)
- 17,18:
- Wimp_PollMessages
- quit%
- "Wimp_CloseDown",,block%
- "WimpExt_CloseDown",task%
- Wimp_PollDrawWindow
- more%
- "Wimp_RedrawWindow",,block%
- more%
- window%=block%!0
- Ex_origin%=16+block%!4-block%!20:y_origin%=-16+block%!16-block%!24
- more%
- "WimpExt_Redraw",,block%
- interface%
- "Wimp_BorderWindow",,block%
- PROCEvent_Draw(window%,x_origin%,y_origin%)
- "Wimp_GetRectangle",,block%
- more%
- Wimp_PollCloseWindow
- "Wimp_GetPointerInfo",,block%
- + window%=block%!12 : buttons%=block%!8
- Event_WindowClose(window%,buttons%)
- 7 !block%=window% :
- "WimpExt_CloseLinked",,block%
- Wimp_PollMouseClick
- O button%=block%!8:window%=block%!12:icon%=block%!16:x%=block%!0:y%=block%!4
- button%
- 2 :x%=x%-40 :
- RunUser_MenuCallOpen(window%,icon%,x%,y%)
- RunUser_MouseButton(icon%,button%,window%) :
- interface%
- "Wimp_BorderIcon",,block%
- Wimp_PollKeyPress
- "Wimp_ProcessKey",block%!24
- 4 window%=block%!0:icon%=block%!4:key%=block%!24
- RunUser_KeyPress(window%,icon%,key%)
- Wimp_PollSaveMessage
- file$,window%,icon%,x%,y%
- "Wimp_GetPointerInfo",,block%
- > window%=block%!12:icon%=block%!16:x%=block%!0:y%=block%!4
- I block%!0=Swindow% : block%!4=Sicon% :
- "Wimp_GetIconState",,block%
- file$=$(block%!28)
- + file$=
- Wimp_GetFileFromPathname(file$)
- block%!20=window%
- block%!24=icon%
- block%!28=x%:block%!32=y%
- block%!36=length%
- block%!0=64
- block%!12=0
- block%!16=1
- block%!40=&FFF
- $(block%+44)=file$
- "Wimp_SendMessage",17,block%,block%!20,block%!24
- Wimp_PollMessages
- PROCErrorMessage(STR$block%!16)
- file$
- -file$=
- Wimp_GetStringAtAddress(block%+44)
- block%!16
-
- 0 : finished%=
-
-
- N block%!0=Swindow% : block%!4=Sicon% :
- "Wimp_GetIconState",,block%
- $(block%!28)=file$
- /
- RunUser_Save(file$,Swindow%,Sicon%)
-
- H type$=
- Wimp_FileType(block%!40) :
- Input_LoadFile(file$,type$)
-
- Wimp_GetStringAtAddress(array%)
- s$:s$=""
- (?array%<>13)
- (?array%<>0):s$+=
- (?array%):array%+=1:
- Wimp_GetFileFromPathname(f$)
- f$,".")
- 0 :=f$
- Wimp_GetFileFromPathname(
- (f$)-
- f$,".")))
- Wimp_FileType(type%)
- type%
- &FFF:="Text"
- &FFD:="Data"
- &FFB:="Basic"
- &FF9:="Sprite"
- &FED:="Palette"
- &FEC:="Template"
- &AFF:="Draw"
- &1000:="Folder"
- &2000:="Application"
- ~(type%)
-