home *** CD-ROM | disk | FTP | other *** search
/ The Datafile PD-CD 3 / PDCD_3.iso / utilities / utilsm / newfiler / !NewFiler / !RunImage (.txt) < prev    next >
RISC OS BBC BASIC V Source  |  1993-03-03  |  3KB  |  114 lines

  1.  ><NewFiler$Dir>.!RunImage
  2.  Short program to display a window in the centre of the desktop
  3.  Nick Jarman Sat,23 Jan 1993
  4.  "Wimp_Initialise",200,&4B534154,"Filer Patcher"
  5.  "<NewFiler$Dir>.FilerPatch"
  6. indirect_size%=&400
  7.  block% &900,indirect% indirect_size%
  8. display_window
  9. finish%=
  10.  "Wimp_Poll",0,block% 
  11.  reason%,address%
  12.  reason% 
  13. +    
  14.  "Wimp_OpenWindow",,address%
  15.  3: finish%=
  16. drag_finish
  17. A    
  18.  17,18: 
  19.  address%!16=0 
  20.  finish%=
  21. message(address%)
  22.  finish%
  23.  "Wimp_CloseDown"
  24. display_window
  25. %file%=
  26. ("<NewFiler$Dir>.Sprites")
  27.  sprites% 
  28. #file%+&10
  29. sprites%!0=
  30. #file%+&10
  31. sprites%!4=0
  32. sprites%!8=16
  33. sprites%!12=16
  34.  #file%
  35.  "OS_SpriteOp",&20A,sprites%,"<NewFiler$Dir>.Sprites"
  36.  "OS_ReadModeVariable",-1,4 
  37.  ,,XEigFactor
  38.  "OS_ReadModeVariable",-1,5 
  39.  ,,YEigFactor
  40.  "OS_ReadModeVariable",-1,11 
  41.  ,,XWindLimit
  42.  "OS_ReadModeVariable",-1,12 
  43.  ,,YWindLimit
  44. &!Width%=XWindLimit<<XEigFactor
  45. '"Height%=YWindLimit<<YEigFactor
  46.  "Wimp_OpenTemplate",,"<NewFiler$Dir>.Templates"
  47.  "Wimp_LoadTemplate",,block%+4,indirect%,indirect%+indirect_size%,-1,"FwdMotion",0
  48.  "Wimp_CloseTemplate"
  49. +#WindowWidth%=block%!12-block%!4
  50. ,$WindowHeight%=block%!16-block%!8
  51. -&block%!4=Width%/2-(WindowWidth%/2)
  52. .(block%!8=Height%/2-(WindowHeight%/2)
  53. /#block%!12=block%!4+WindowWidth%
  54. 0$block%!16=block%!8+WindowHeight%
  55. block%!68=sprites%
  56.  "Wimp_CreateWindow",,block%+4 
  57.  window_handle%
  58. block%!0=window_handle%
  59. block%!28=-1
  60.  "Wimp_OpenWindow",,block%
  61.  address%!8=64 
  62.  address%!8=16 
  63.  "Wimp_GetIconState",,address%+&C
  64.   address%!&80=address%!&C
  65.  "Wimp_GetWindowState",,address%+&80
  66.   address%!&100=address%!&C
  67.   address%!&104=5
  68. ?:  address%!&108=address%!&14+address%!&84+address%!&94
  69. @:  address%!&10C=address%!&18+address%!&90-address%!&98
  70. A:  address%!&110=address%!&1C+address%!&84+address%!&94
  71. B:  address%!&114=address%!&20+address%!&90-address%!&98
  72.   address%!&118=0
  73.   address%!&11C=0
  74.   address%!&120=Width%
  75.   address%!&124=Height%
  76.  "OS_Byte",161,28 
  77.  ,,dragasprite%
  78.  (dragasprite% 
  79.  1<<1)=0 
  80. I(    
  81.  "Wimp_DragBox",,address%+&100
  82. KK    
  83.  "DragASprite_Start",161,1,"file_ffa",address%+&108,address%+&118
  84. drag_finish
  85.  (dragasprite% 
  86.  1<<1)<>0 
  87.  "DragASprite_Stop" 
  88.  "Wimp_GetPointerInfo",,block%
  89. block%!&100=&3C
  90. block%!&10C=0
  91. block%!&110=1
  92. block%!&114=block%!12
  93. block%!&118=block%!16
  94. block%!&11C=block%!0
  95. block%!&120=block%!4
  96. block%!&124=&7000
  97. block%!&128=&FFA
  98. \"$(block%+&12C)="NewFiler"+
  99.  "Wimp_SendMessage",17,block%+&100,block%!12
  100. message(address%)
  101.  pointer%,filename$
  102.  address%!16=2 
  103.   pointer%=address%+44
  104.  ?pointer%<>0
  105. e(    filename$=filename$+
  106. (?pointer%)
  107.     pointer%+=1
  108.  filename$<>"<Wimp$Scrap>" 
  109. i)    
  110. ("Set NewFiler$Name "+filename$)
  111. patch
  112. k     
  113. ("Unset NewFiler$Name")
  114.