home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The Datafile PD-CD 3
/
PDCD_3.iso
/
utilities
/
utilsm
/
newfiler
/
!NewFiler
/
!RunImage
(
.txt
)
< prev
next >
Wrap
RISC OS BBC BASIC V Source
|
1993-03-03
|
3KB
|
114 lines
><NewFiler$Dir>.!RunImage
Short program to display a window in the centre of the desktop
Nick Jarman Sat,23 Jan 1993
"Wimp_Initialise",200,&4B534154,"Filer Patcher"
"<NewFiler$Dir>.FilerPatch"
indirect_size%=&400
block% &900,indirect% indirect_size%
display_window
finish%=
"Wimp_Poll",0,block%
reason%,address%
reason%
+
"Wimp_OpenWindow",,address%
3: finish%=
drag_finish
A
17,18:
address%!16=0
finish%=
message(address%)
finish%
"Wimp_CloseDown"
display_window
%file%=
("<NewFiler$Dir>.Sprites")
sprites%
#file%+&10
sprites%!0=
#file%+&10
sprites%!4=0
sprites%!8=16
sprites%!12=16
#file%
"OS_SpriteOp",&20A,sprites%,"<NewFiler$Dir>.Sprites"
"OS_ReadModeVariable",-1,4
,,XEigFactor
"OS_ReadModeVariable",-1,5
,,YEigFactor
"OS_ReadModeVariable",-1,11
,,XWindLimit
"OS_ReadModeVariable",-1,12
,,YWindLimit
&!Width%=XWindLimit<<XEigFactor
'"Height%=YWindLimit<<YEigFactor
"Wimp_OpenTemplate",,"<NewFiler$Dir>.Templates"
"Wimp_LoadTemplate",,block%+4,indirect%,indirect%+indirect_size%,-1,"FwdMotion",0
"Wimp_CloseTemplate"
+#WindowWidth%=block%!12-block%!4
,$WindowHeight%=block%!16-block%!8
-&block%!4=Width%/2-(WindowWidth%/2)
.(block%!8=Height%/2-(WindowHeight%/2)
/#block%!12=block%!4+WindowWidth%
0$block%!16=block%!8+WindowHeight%
block%!68=sprites%
"Wimp_CreateWindow",,block%+4
window_handle%
block%!0=window_handle%
block%!28=-1
"Wimp_OpenWindow",,block%
address%!8=64
address%!8=16
"Wimp_GetIconState",,address%+&C
address%!&80=address%!&C
"Wimp_GetWindowState",,address%+&80
address%!&100=address%!&C
address%!&104=5
?: address%!&108=address%!&14+address%!&84+address%!&94
@: address%!&10C=address%!&18+address%!&90-address%!&98
A: address%!&110=address%!&1C+address%!&84+address%!&94
B: address%!&114=address%!&20+address%!&90-address%!&98
address%!&118=0
address%!&11C=0
address%!&120=Width%
address%!&124=Height%
"OS_Byte",161,28
,,dragasprite%
(dragasprite%
1<<1)=0
I(
"Wimp_DragBox",,address%+&100
KK
"DragASprite_Start",161,1,"file_ffa",address%+&108,address%+&118
drag_finish
(dragasprite%
1<<1)<>0
"DragASprite_Stop"
"Wimp_GetPointerInfo",,block%
block%!&100=&3C
block%!&10C=0
block%!&110=1
block%!&114=block%!12
block%!&118=block%!16
block%!&11C=block%!0
block%!&120=block%!4
block%!&124=&7000
block%!&128=&FFA
\"$(block%+&12C)="NewFiler"+
"Wimp_SendMessage",17,block%+&100,block%!12
message(address%)
pointer%,filename$
address%!16=2
pointer%=address%+44
?pointer%<>0
e( filename$=filename$+
(?pointer%)
pointer%+=1
filename$<>"<Wimp$Scrap>"
i)
("Set NewFiler$Name "+filename$)
patch
k
("Unset NewFiler$Name")