home *** CD-ROM | disk | FTP | other *** search
/ ARM Club 3 / TheARMClub_PDCD3.iso / programs / desktop / twitcher / !Twitcher / !Source (.txt) < prev    next >
RISC OS BBC BASIC V Source  |  1997-06-05  |  9KB  |  322 lines

  1.  > !Twitcher
  2.  Version 0.08
  3.  temp_blk% 256,blk% 700,fonts% 256:end% = 0
  4.  end% = 
  5. report(2,
  6. $+" - "+
  7.  "XOS_CLI","Set Twitcher$Running TRUE"
  8.     V!blk% = 0:
  9.  "Wimp_Initialise",350,&4B534154,"Twitcher",blk% 
  10.  wimp_version%,task%
  11. 0task_manager% = 
  12. task_loaded("Task Manager")
  13.  task_manager% = 0 
  14.  (1<<30),"Task Manager is not present. Patch can be applied."
  15. task_manager_icon% = 0
  16. ?icon_bar_toggle% = 
  17. system_var("Twitcher$IconBarToggle"))
  18. =desktop_stop%    = 
  19. system_var("Twitcher$QuestionEnd"))
  20. twitcher_started_it% = 0
  21. icbar_switch% = 0
  22. load_templates
  23. set_os_version
  24. hide_taskmanager
  25. create_menus
  26. create_icon
  27.  end% = 
  28. report(2,
  29. $+" - "+
  30.  icon_bar_toggle% 
  31.  mask% = 0 
  32.  mask% = 1 
  33.  end%
  34.  "OS_ReadMonotonicTime" 
  35.  time%
  36.  "Wimp_PollIdle",mask%,blk%,time%+20 
  37.  icon_bar_toggle% 
  38. icon_bar_toggle
  39.  "XWimp_OpenWindow",,blk%
  40.  "XWimp_CloseWindow",,blk%
  41. mouse_command(blk%!12,blk%!16,blk%!8)
  42.  blk%!24 = 10 
  43. mouse_command(com_h%,1,4)
  44. menu_selection(blk%)
  45.  17,18:
  46. messages(blk%)
  47. unhide_taskmanager
  48. lose_fonts
  49.  "XOS_CLI","Set Twitcher$Running FALSE"
  50.  "Wimp_CloseDown",task%,&4B534154
  51. icon_bar_toggle
  52.  x%,y%,b%
  53.  y% < 10 
  54.  icbar_switch% = 0 
  55. menu_open = 0 
  56. 43      !blk% = -2:
  57.  "Wimp_GetWindowState",,blk%
  58. 5H      
  59.  blk%!28 <> -1 
  60.  "Wimp_ProcessKey",&1DC:icbar_switch% = -1
  61. 6        
  62.  (y% > 164) 
  63.  (icbar_switch% = -1) 
  64.  "Wimp_ProcessKey",&1DC:icbar_switch% = 0
  65. load_templates
  66. =1info_h% = -1:
  67.  lp% = 0 
  68.  256:fonts%?lp% = 0:
  69. >0indir% = 600:
  70.  `% indir%:J%=`%:ca%=`%+indir%
  71.  "Wimp_OpenTemplate",,"Twitcher:Templates"
  72.  "Wimp_LoadTemplate",,blk%,J%,ca%,fonts%,"rosinfo",0 
  73.  ,,J%,,,,f%
  74.  "Wimp_CreateWindow",,blk% 
  75.  info_h%
  76.  "Wimp_LoadTemplate",,blk%,J%,ca%,fonts%,"command",0 
  77.  ,,J%,,,,f%
  78.  "Wimp_CreateWindow",,blk% 
  79.  com_h%
  80.  "Wimp_CloseTemplate"
  81. set_os_version
  82. !blk% = info_h%:blk%!4 = 3
  83.  "Wimp_GetIconState",,blk%
  84.  "XOS_Byte",0,0 
  85.  "XOS_WriteN",a%+4,0 
  86. L!$(blk%!28) = 
  87. a$,"OS")+3)
  88. create_icon
  89. blk%!0  = -8
  90. Q)blk%!4  = ic_minx%:blk%!8  = ic_miny%
  91. R)blk%!12 = ic_maxx%:blk%!16 = ic_maxy%
  92. S3blk%!20 = &1700200A:$(blk%+24)="!twitcher"+
  93.  "Wimp_CreateIcon",&6<<28,blk%
  94. hide_taskmanager
  95. X/!blk%  = -2:
  96.  "Wimp_GetWindowInfo",,blk%+1
  97. icons% = blk%!92
  98.  lp% = 0 
  99.  icons%
  100.   blk%!0 = 20
  101.   blk%!8 = 0
  102.   blk%!12= 0
  103.   blk%!16= 0
  104.  "Wimp_SendMessage",19,blk%,-2,lp% 
  105.  ,,handle%
  106.  handle% = task_manager% 
  107.  task_manager_icon% = lp%
  108. c*!blk% = -2:blk%!4 = task_manager_icon%
  109.  "Wimp_GetIconState",,blk%
  110. e'ic_minx%= blk%!8 :ic_miny%= blk%!12
  111. f'ic_maxx%= blk%!16:ic_maxy%= blk%!20
  112.  wimp_version% >= 350 
  113.  "Wimp_ResizeIcon",-2,0,-100,-100,-99,-99
  114. create_menus
  115. k-dmenu% = 
  116. create_menu_title("*Command",3)
  117. create_menu_item(dmenu%,0,&80+%100,-1,&7000111,"",255)
  118. n1cmenu% = 
  119. create_menu_title("Command line",4)
  120. create_menu_item(cmenu%,0,&00,-1,&7000111,"Task window  ^F12",-1)
  121. create_menu_item(cmenu%,1,&00,com_h% ,&7000111,"New task",-1)
  122. create_menu_item(cmenu%,2,&00,-1,&7000111,"*Commands  F12",-1)
  123. create_menu_item(cmenu%,3,&80,-1,&7000111,"Exit",-1)
  124. t-mmenu% = 
  125. create_menu_title("Twitcher",4)
  126. create_menu_item(mmenu%,0,&00,info_h%,&7000111,"Info",-1)
  127. create_menu_item(mmenu%,1,&00,cmenu%,&7000111,"Command line",-1)
  128. create_menu_item(mmenu%,2,&00,-1,&7000111,"Display help",-1)
  129. create_menu_item(mmenu%,3,&80,-1,&7000111,"Shutdown ^
  130. F12",-1)
  131.  Wimp_PollIdle commands
  132. mouse_command(win%,ic%,b%)
  133.  "Wimp_CreateMenu",,-1
  134.  win% = -2 
  135. 2  com$ = 
  136. system_var("Twitcher$Button_"+
  137. (b%))
  138. convert_lower(com$) 
  139. /    
  140.  "ic_toggle":
  141.  "Wimp_ProcessKey",&1DC
  142. 2    
  143.  "open_menu":mx% = blk%!0:my% = 96+(4*44)
  144. -     
  145.  "Wimp_CreateMenu",,mmenu%,mx%,my%
  146. A    
  147.  "pass_on"  :
  148. emulate_mouse_click(task_manager%,b%,-2,0)
  149. @    
  150.  "button1"  :
  151. emulate_mouse_click(task_manager%,1,-2,0)
  152. @    
  153.  "button2"  :
  154. emulate_mouse_click(task_manager%,2,-2,0)
  155. @    
  156.  "button4"  :
  157. emulate_mouse_click(task_manager%,4,-2,0)
  158.  "Wimp_StartTask",com$
  159.    blk%!0 = com_h%:blk%!4 = 0
  160.  "Wimp_GetIconState",,blk%
  161.  "OS_WriteN",blk%!28,0 
  162.  command$
  163.  "Wimp_StartTask",command$
  164. menu_selection(ptr%)
  165. path$ = 
  166. (blk%!0):lp% = 4
  167.  blk%!lp% <> -1:path$+="."+
  168. (blk%!lp%):lp%+=4:
  169.  path$ 
  170.    "0":
  171.    "1":
  172.    "2":
  173.  "Wimp_StartTask",
  174. system_var("Twitcher$HelpApp")
  175.    "3":
  176.  "TaskManager_Shutdown",%0
  177.  "1.0":
  178.  "Wimp_ProcessKey",&1EC
  179.  "1.1":
  180.  x%,y%,b%:
  181.  "Wimp_CreateMenu",,com_h%,x%,y%
  182.  "1.2":
  183.  "Wimp_ProcessKey",&1CC
  184.  "1.3":
  185.  "TaskManager_Shutdown",%1:twitcher_started_it% = -1
  186.  "1.1.0":
  187.  "OS_WriteN",!(dmenu%+12+28),0 
  188.  "Wimp_StartTask",a$
  189.  "Wimp_GetPointerInfo",,blk%
  190.  blk%!8 <> 4 
  191.  "Wimp_CreateMenu",,mmenu%,mx%,my%
  192. messages(ptr%)
  193.  ptr%!16 
  194.  0:end% = -1
  195.  ptr%!4 <> this_task% 
  196. ,     ptr%!0     = 60:ptr%!12    = ptr%!8
  197. (     ptr%!16    = 2 :ptr%!36    = -1
  198. $     $(ptr%+44) = "<Wimp$Scrap>"
  199. -     
  200.  "Wimp_SendMessage",17,ptr%,ptr%!4
  201. D   blk%!12=blk%!8:blk%!16=4:
  202.  "Wimp_SendMessage",17,blk%,blk%!4
  203.  "OS_WriteN",(blk%+44),0 
  204.    type$ = 
  205. ~blk%!40
  206. 4   com$ = 
  207. system_var("Twitcher$Command_"+type$)
  208.  com$ = "" 
  209.  com$ = 
  210. system_var("Twitcher$Command_None")
  211. com$,"%*0") <> 0
  212.      pos% = 
  213. com$,"%*0")
  214. .     com$ = 
  215. com$,pos%-1)+a$+
  216. com$,pos%+3)
  217.  "Wimp_StartTask",com$
  218.  (blk%?20 = 0) 
  219.  (desktop_stop% = -1) 
  220. $    
  221.  twitcher_started_it% = 0 
  222. j      report% = 
  223. report(3,"Are you sure you want to shut down the desktop. Click on cancel to abort.")
  224.       
  225.  report% = 0 
  226. A        blk%!12 = blk%!8:
  227.  "Wimp_SendMessage",19,blk%,blk%!4
  228.       
  229. "      twitcher_started_it% = 0
  230.         
  231. unhide_taskmanager
  232.  wimp_version% >= 350 
  233.  "Wimp_ResizeIcon",-2,task_manager_icon%,ic_minx%,ic_miny%,ic_maxx%,ic_maxy%
  234. lose_fonts
  235.  lp% = 0 
  236.  fonts%?lp% <> 0:
  237.  "XFont_LoseFont",lp%:fonts%?lp%-=1:
  238. create_menu_title(title$,items%)
  239.  text%,menu%
  240.  menu% (24*items%)+28
  241.  lp% = 0 
  242.  (24*items%)+28:menu%?lp% = 0:
  243.  text% 
  244. (title$)+5:$(text%) = title$+
  245. menu%!0 = text%
  246. menu%!4 = text%+
  247. (title$)+2
  248. menu%!8 = 
  249. (title$)
  250. %menu%?12=7 :menu%?13=2:menu%?14=7
  251. *menu%?15=0 :menu%!16=(
  252. (title$)*16)+16
  253. menu%!20=44:menu%!24=0
  254. menu%!28=(1<<8)
  255. = menu% 
  256. create_menu_item(menu%,line%,flags%,sub%,icon%,text$,size%)
  257.  menu%!16 < (
  258. (text$)*16)+16 
  259.  menu%!16 = (
  260. (text$)*16)+16
  261.  size% = -1 
  262.  size% = 
  263. (text$)
  264.  vali% (size%+10):
  265.  ptr% = 0 
  266.  size%+10:vali%?ptr% = 0:
  267. $(vali%) = text$+
  268. %!(menu%+(line%*24)+28+00)+=flags%
  269. $!(menu%+(line%*24)+28+04) = sub%
  270. %!(menu%+(line%*24)+28+08) = icon%
  271. %!(menu%+(line%*24)+28+12) = vali%
  272. -!(menu%+(line%*24)+28+16) = vali%+size%+2
  273. %!(menu%+(line%*24)+28+20) = size%
  274. task_loaded(taskname$)
  275.  loaded%,task%
  276.  "XWimp_ReadSysInfo",0 
  277.  apps_running%
  278.  "TaskManager_EnumerateTasks",task%,temp_blk%,16 
  279.  task%
  280.  "OS_WriteN",temp_blk%!4,0 
  281.  taskname$ = a$ 
  282.  loaded% = temp_blk%!0:task% = -1
  283.  task% = -1
  284. =loaded%
  285. emulate_mouse_click(task%,button%,window%,icon%)
  286.  blk%!0,blk%!4,b%
  287. 6blk%!8 = button%:blk%!12 = window%:blk%!16 = icon%
  288.  "Wimp_SendMessage",6,blk%,task%
  289. system_var(sys_var$)
  290.  length%,text$
  291. "XOS_ReadVarVal",sys_var$+
  292. (0),temp_blk%,-1 
  293.  ,,length%
  294.  length% <> 0 
  295. "XOS_ReadVarVal",sys_var$+
  296. (0),temp_blk%,255,0,1 
  297.  ,,length%
  298.  lp% = 0 
  299.  length%-1:text$+=
  300. (temp_blk%?lp%):
  301. = text$
  302. report(base%,message$)
  303.  flags%
  304. $message$=
  305. 0+message$+
  306. -256 > &A4 
  307.  flags% = (%1<<9)+256+base% 
  308.  flags% = base%
  309.  "Wimp_ReportError",message$,flags%,"Twitcher","!Twitcher",1 
  310.  ,sent%
  311. = sent%-2
  312. menu_open
  313. convert_lower(text$)
  314.  "XTerritory_LowerCaseTable",-1 
  315.  ptr%
  316.  lp% = 1 
  317. (text$)
  318. text$,lp%,1) = 
  319. (ptr%?
  320. text$,lp%,1)))
  321. = text$
  322.