home *** CD-ROM | disk | FTP | other *** search
/ ARM Club 3 / TheARMClub_PDCD3.iso / hensa / text / jonix_1 / !Jonix / !RunImage (.txt) < prev    next >
RISC OS BBC BASIC V Source  |  1996-07-18  |  11KB  |  461 lines

  1.  > !Jonix.!RunImage
  2.  > Jonix front-end
  3.  Chris Rutter 1996
  4.  block% 2048,bounding_box% 32
  5. 8quit%=
  6. :jonix_active%=0:jonix_task%=0:jonix_abort%=
  7. messages_open
  8. messages_choose
  9.  "Wimp_Initialise",310,&4B534154,
  10. msg("TaskName"),block% 
  11.  ,task_handle%
  12. windows_load
  13. menus_initialise
  14. iconbar_create
  15.  "WimpLib_IconSetText",proginfo_window%,7,
  16. msg("Version")+" ("+
  17. msg("Date")+")"
  18. error_wimp
  19.  "OS_ReadMonotonicTime" 
  20.  time%
  21.  "Wimp_PollIdle",1,block%,time%+100 
  22.  action%
  23. process(action%,block%)
  24.  quit%
  25.  "MessageTrans_CloseFile",message_desc%
  26.  "Wimp_CloseDown",task_handle%,&4B534154
  27. messages_open
  28.  message_size%
  29.  "OS_File",5,"<Jonix$Dir>.UK.Messages" 
  30.  ,,,,message_size%
  31.  message_desc% 16, message_filebuff% message_size%+16, message_buff% 256
  32.  "MessageTrans_OpenFile",message_desc%,"<Jonix$Dir>.UK.Messages",message_filebuff%
  33. msg(token$)
  34.  "XMessageTrans_Lookup",message_desc%,token$,message_buff%,256 
  35.  ,,,message_size%;message_found%
  36.  message_found% 
  37.  $message_buff%="" 
  38.  message_buff%?message_size%=13
  39. =$message_buff%
  40. messages_choose
  41. block%!0=3
  42. block%!4=2
  43. .,block%!8=&400C3 :
  44.  Message_TaskCloseDown
  45. block%!12=0
  46. windows_load
  47.  "Wimp_OpenTemplate",,"<Jonix$Dir>.UK.Templates"
  48. 4-proginfo_window%=
  49. window_load("ProgInfo")
  50. 5-xfersend_window%=
  51. window_load("XferSend")
  52. 61processing_window%=
  53. window_load("Processing")
  54. 7'jonix_window%=
  55. window_load("Jonix")
  56.  "Wimp_CloseTemplate"
  57. window_load(window$)
  58.  indirected%,space%,window%
  59.  "Wimp_LoadTemplate",,-1,-1,-1,-1,window$,0 
  60.  ,,space%
  61.  space%>0 
  62.  indirected% space%+1
  63.  "Wimp_LoadTemplate",,block%,indirected%,indirected%+space%+1,-1,window$,0
  64.  "Wimp_LoadTemplate",,block%,-1,-1,-1,window$,0
  65.  "Wimp_CreateWindow",,block% 
  66.  window%
  67. =window%
  68. window_open(window%)
  69. !block%=window%
  70.  "Wimp_GetWindowState",,block%
  71.  "Wimp_OpenWindow",,block%
  72. window_close(window%)
  73. !block%=window%
  74.  "Wimp_CloseWindow",,block%
  75. iconbar_create
  76. block%!0=-1
  77. block%!4=0
  78. block%!8=0
  79. block%!12=94
  80. block%!16=68
  81. block%!20=&3002
  82. $(block%+24)="!jonix"
  83.  "Wimp_CreateIcon",,block% 
  84.  iconbar_icon%
  85. process(action%,block%)
  86.  action% 
  87.  2 : 
  88.  "Wimp_OpenWindow",,block%
  89.  3 : 
  90.  "Wimp_CloseWindow",,block%
  91.  6 : 
  92. process_mouse(block%!0,block%!4,block%!8,block%!12,block%!16)
  93.  7 : 
  94. process_dragfinished
  95.  8 : 
  96. process_keypress(block%!0,block%!4,block%!24)
  97.  9 : 
  98. process_menuselect(block%)
  99.  17,18 : 
  100. process_message(block%)
  101. process_mouse(mx%,my%,mb%,window%,icon%)
  102.  window% 
  103.  icon% 
  104.  iconbar_icon%
  105.  mb% 
  106. o,     
  107.  4,1 : 
  108. window_open(jonix_window%)
  109. p1     
  110.  2 : 
  111. menu_open_iconbar(menu_main%,mx%)
  112. q        
  113.  jonix_window%
  114.  icon% 
  115. u<   
  116.  9 : 
  117. menu_open_icon(menu_lineends%,jonix_window%,9)
  118. v-   
  119.  10 : 
  120. icon_increase(jonix_window%,5)
  121. w-   
  122.  11 : 
  123. icon_decrease(jonix_window%,5)
  124. x0   
  125.  12 : 
  126. icon_increase(jonix_window%,6)   
  127. y-   
  128.  13 : 
  129. icon_decrease(jonix_window%,6)
  130. z-   
  131.  14 : 
  132. icon_increase(jonix_window%,7)
  133. {-   
  134.  15 : 
  135. icon_decrease(jonix_window%,7)
  136.  16 : 
  137. jonix_start
  138. }*   
  139.  17 : 
  140. window_close(jonix_window%)
  141.  processing_window%
  142.  icon% 
  143.  0 : 
  144. jonix_abort
  145.  xfersend_window%
  146.  icon% 
  147.  0 : 
  148. xfersend_ok
  149.  3 : 
  150. xfersend_drag
  151. process_message(block%)
  152.  block%!16 
  153.  0 : quit%=
  154.  2 : 
  155. message_datasaveack(
  156. ct(block%+44))
  157.  3 : 
  158. message_dataload(block%!20,block%!24,block%!40,
  159. ct(block%+44))
  160.  &400C3 : 
  161. message_taskdied(block%!4)
  162. message_dataload(window%,icon%,type%,path$)
  163.  type%=&FFF 
  164.  window%=jonix_window% 
  165.  icon%=19 
  166.  "WimpLib_IconSetText",jonix_window%,19,path$
  167. icon_getvalue(window%,icon%)
  168. icon_gettext(window%,icon%))
  169. icon_gettext(window%,icon%)
  170.  text$
  171. block%!0=window%
  172. block%!4=icon%
  173.  "Wimp_GetIconState",,block%
  174.  (block%!24 
  175.  (1<<8))=(1<<8) 
  176.  text$=
  177. ct(block%!28)
  178.  text$=
  179. ct(block%+28)
  180. =text$
  181. icon_selected(window%,icon%)
  182. block%!0=window%
  183. block%!4=icon%
  184.  "Wimp_GetIconState",,block%
  185.  (block%!24 
  186.  (1<<21))=(1<<21) 
  187. ct(address%)
  188.  string$
  189.  ?address%>31
  190. & string$+=
  191. (?address%):address%+=1
  192. =string$
  193. jonix_start
  194.  out$,text$,command$
  195.  file$,width%,distance%,rowlength%,newline%,remove%
  196.  "XOS_CLI","Wipe <Wimp$ScrapDir>.JonixLog ~C~VFR"
  197.  "XOS_CLI","Wipe <Wimp$ScrapDir>.JonixOut ~C~VFR"
  198. window_close(xfersend_window%)
  199. window_close(processing_window%):
  200. log_display:
  201. notify(
  202. $):jonix_active%=
  203. #out$="<Wimp$ScrapDir>.JonixOut"
  204. $text$="<Wimp$ScrapDir>.JonixLog"
  205. )file$=
  206. icon_gettext(jonix_window%,19)
  207.  file$="" 
  208. msg("E00")
  209. *width%=
  210. icon_getvalue(jonix_window%,5)
  211. -distance%=
  212. icon_getvalue(jonix_window%,6)
  213. .rowlength%=
  214. icon_getvalue(jonix_window%,7)
  215. icon_gettext(jonix_window%,8)="Detect" 
  216.  newline%=0
  217. - newline%=
  218. icon_getvalue(jonix_window%,8)
  219. +remove%=
  220. icon_selected(jonix_window%,4)
  221.  remove%=
  222.  remove%=1
  223. command$="<Jonix$Dir>.Jonix "+file$+" "+out$+" -w "+
  224. (width%)+" -d "+
  225. (distance%)+" -r "+
  226. (rowlength%)+" -n "+
  227. (newline%)+" -v "+
  228. (remove%)+" -s "+text$
  229.  "Wimp_StartTask",command$ 
  230.  jonix_task%
  231.  jonix_task%=0 
  232.  1,""
  233.  "WimpLib_IconSetText",processing_window%,1,"Processing file..."
  234. window_open(processing_window%)
  235. window_close(jonix_window%)
  236. jonix_active%=
  237. message_taskdied(task%)
  238.  task%=jonix_task% 
  239. jonix_stop
  240. jonix_stop
  241. jonix_active%=
  242. window_close(processing_window%)
  243.  jonix_abort% 
  244.  jonix_abort%=
  245. window_aroundmouse(xfersend_window%)
  246. log_display
  247. notify(text$)
  248.  text$<>"" 
  249.  "Wimp_ReportError","Fish"+text$,1,
  250. msg("TaskName")
  251. log_display
  252.  file%,text$
  253. 'file%=
  254. ("<Wimp$ScrapDir>.JonixLog")
  255.  file%>0 
  256.  text$=
  257. #file%:
  258. #file%
  259. text$)="." 
  260.  text$=
  261. text$,
  262. (text$)-1)
  263.  text$<>"" 
  264. notify(text$)
  265. jonix_abort
  266.  jonix_active% 
  267.  block%!0=20
  268.  block%!12=0
  269.  block%!16=0
  270.  "Wimp_SendMessage",17,block%,jonix_task%
  271.  jonix_abort%=
  272. window_aroundmouse(window%)
  273.  x%,y%,w%,h%,lw%,rw%,lh%,rh%,b%
  274.  x%,y%,b%
  275. block%!0=window%
  276.  "Wimp_GetWindowState",,block%
  277. w%=block%!12-block%!4
  278. h%=block%!16-block%!8
  279. lw%=w%/2
  280. rw%=w%-lw%
  281. lh%=h%/2
  282. rh%=h%-lh%
  283. block%!4=x%-lw%
  284. block%!8=y%-lh%
  285. block%!12=x%+rw%
  286. block%!16=y%+rh%
  287.  "Wimp_OpenWindow",,block%
  288.  "Wimp_SetCaretPosition",window%,2,0,0,-1,
  289. icon_gettext(window%,2))
  290. xfersend_drag
  291. block%!0=xfersend_window%
  292.  "Wimp_GetWindowState",,block%
  293. bounding_box%!0=block%!4
  294. bounding_box%!4=block%!16
  295. bounding_box%!8=block%!4
  296. bounding_box%!12=block%!16
  297. bounding_box%!0-=block%!20
  298. bounding_box%!4-=block%!24
  299. bounding_box%!8-=block%!20
  300. bounding_box%!12-=block%!24
  301. (block%!0=xfersend_window%:block%!4=3
  302.  "Wimp_GetIconState",,block%
  303. bounding_box%!0+=block%!8
  304. bounding_box%!4+=block%!12
  305. bounding_box%!8+=block%!16
  306. bounding_box%!12+=block%!20
  307.  "DragASprite_Start",%01000001,1,"file_fff",bounding_box%
  308. process_dragfinished
  309.  size%,window%,icon%,x%,y%
  310.  "DragASprite_Stop"
  311.  "Wimp_GetPointerInfo",,block%
  312. x%=block%!0
  313. y%=block%!4
  314. window%=block%!12
  315. icon%=block%!16
  316.  "OS_File",5,"<Wimp$ScrapDir>.JonixOut" 
  317.  ,,,,size%
  318. +=$(block%+44)=
  319. leafname(
  320. icon_gettext(xfersend_window%,2))
  321. block%!0=252
  322. block%!12=0
  323. block%!16=1
  324. block%!20=window%
  325. block%!24=icon%
  326. block%!28=x%
  327. block%!32=y%
  328. block%!36=size%
  329. block%!40=&fff
  330.  "Wimp_SendMessage",17,block%,block%!20
  331. leafname(path$)
  332.  dot%,position%
  333. path$,".")=0 
  334.  =path$
  335.  position%=
  336. (path$) 
  337. path$,position%,1)="." 
  338.  dot%=0 
  339.  dot%=position%
  340.  position%
  341. path$,dot%+1)
  342. message_datasaveack(path$)
  343. block%!12=block%!8
  344. block%!16=3
  345.  "Wimp_SendMessage",17,block%,block%!4
  346.  "WimpLib_IconSetText",xfersend_window%,2,path$
  347.  "OS_CLI","Copy <Wimp$ScrapDir>.JonixOut "+path$+" ~C~VF"
  348. window_close(xfersend_window%)
  349. xfersend_ok
  350. icon_gettext(xfersend_window%,2),".")=0 
  351. notify(
  352. msg("E01")):
  353. message_datasaveack(
  354. icon_gettext(xfersend_window%,2))
  355. error_wimp
  356.  result%
  357.  0,"Error in error trap: "+
  358. !block%=
  359. $(block%+4)=
  360.  "Wimp_ReportError",block%,1 
  361. msg("TaskName") 
  362.  ,result%
  363.  result%=2 
  364.  "MessageTrans_CloseFile",message_desc%
  365.  "Wimp_CloseDown",task_handle%,&4B534154
  366. menus_initialise
  367.  menu_main% 28+(24*2)
  368. $menu_main%="Jonix"
  369. menu_main%?12=7
  370. menu_main%?13=2
  371. menu_main%?14=7
  372. menu_main%?15=0
  373. menu_main%!16=150
  374. menu_main%!20=44
  375. menu_main%!24=0
  376. menu_main%!28=0
  377. h"menu_main%!32=proginfo_window%
  378. i*menu_main%!36=7<<24 
  379.  3<<12 
  380.  1<<4 
  381. $(menu_main%+40)="Info"
  382. menu_main%!52=1<<7
  383. menu_main%!56=-1
  384. m*menu_main%!60=7<<24 
  385.  3<<12 
  386.  1<<4 
  387. $(menu_main%+64)="Quit"
  388.  menu_lineends% 28+(24*3)
  389. $menu_lineends%="Newline"
  390. menu_lineends%?12=7
  391. menu_lineends%?13=2
  392. menu_lineends%?14=7
  393. menu_lineends%?15=0
  394. menu_lineends%!16=150
  395. menu_lineends%!20=44
  396. menu_lineends%!24=0
  397. menu_lineends%!28=0
  398. menu_lineends%!32=-1
  399. z.menu_lineends%!36=7<<24 
  400.  3<<12 
  401.  1<<4 
  402. {!$(menu_lineends%+40)="Detect"
  403. menu_lineends%!52=0
  404. menu_lineends%!56=-1
  405. ~.menu_lineends%!60=7<<24 
  406.  3<<12 
  407.  1<<4 
  408. $(menu_lineends%+64)="10"
  409. menu_lineends%!76=1<<7
  410. menu_lineends%!80=-1
  411. .menu_lineends%!84=7<<24 
  412.  3<<12 
  413.  1<<4 
  414. $(menu_lineends%+88)="13"
  415. menu_open_iconbar(menu%,x%)
  416.  "Wimp_CreateMenu",,menu%,x%-65,96+(2*44)
  417. menu_last%=menu%
  418. menu_open_icon(menu%,window%,icon%)
  419.  mx%,my%
  420. 4!block%=window%:
  421.  "Wimp_GetWindowState",,block%
  422. Jblock%!128=window%:block%!132=icon%:
  423.  "Wimp_GetIconState",,block%+128
  424. mx%=(block%!144)+block%!4+2
  425. #my%=block%!16+(block%!(136+12))
  426.  "Wimp_CreateMenu",,menu%,mx%,my%
  427. menu_last%=menu%
  428. process_menuselect(block%)
  429.  menu_last% 
  430.  menu_main%
  431.  block%!0 
  432.  1 : quit%=
  433.  menu_lineends%
  434.  block%!0 
  435.  0 : 
  436.  "WimpLib_IconSetText",jonix_window%,8,"Detect"
  437.  1 : 
  438.  "WimpLib_IconSetText",jonix_window%,8,"10"
  439.  2 : 
  440.  "WimpLib_IconSetText",jonix_window%,8,"13"
  441. icon_increase(window%,icon%)
  442.  value%
  443. (value%=
  444. icon_getvalue(window%,icon%)
  445.  "WimpLib_IconSetText",window%,icon%,
  446. (value%+1)
  447. icon_decrease(window%,icon%)
  448.  value%
  449. (value%=
  450. icon_getvalue(window%,icon%)
  451. value%-=1
  452.  value%<0 
  453.  value%=0
  454.  "WimpLib_IconSetText",window%,icon%,
  455. (value%)
  456. process_keypress(window%,icon%,key%)
  457.  window%=xfersend_window% 
  458.  icon%=2 
  459.  key%=13 
  460. xfersend_ok
  461.