home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The Datafile PD-CD 5
/
DATAFILE_PDCD5.iso
/
utilities
/
k
/
keyboard
/
!Keyboard
/
Library
(
.txt
)
< prev
next >
Wrap
RISC OS BBC BASIC V Source
|
1993-12-26
|
12KB
|
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