home *** CD-ROM | disk | FTP | other *** search
/ ARM Club 3 / TheARMClub_PDCD3.iso / hensa / filemanager / director_1 / !Director / !ChangeLog next >
Text File  |  1995-08-04  |  20KB  |  547 lines

  1. 0.00 - 05Aug94
  2. --------------
  3.  
  4. First version that even vaguely works
  5. Does TreeMenu functions but not BackMenu yet!
  6.  
  7. 0.01 - 11Aug94
  8. --------------
  9.  
  10. *DirectorMemory added to allow tracing of dynamic memory allocations and
  11. malloc, free and realloc changed to keep the totals updated.
  12.  
  13. Filters initialised by task instead of module.
  14.  
  15. BMG parsing added for BackMenus
  16.  
  17. Static menus kept in sorted linked list
  18.  
  19. -path items added for BMG so can now attach TreeMenus to BackMenus!
  20.  
  21. "Main" menu attached to icon bar icon on select
  22.  
  23. Filter on pinboard to intercept the menu opening the menu called "Pinboard"
  24.  
  25. Sprites in the file menus
  26.  
  27. 0.02 - 11Aug94
  28. --------------
  29.  
  30. OS_GBPB uses a malloc-ed 4k block for much improved speed
  31.  
  32. -key made to work for hot keyed items
  33.  
  34. Hotkeys can now be added to "Menu" command via a -key, so a key can open a
  35. menu
  36.  
  37. TreeMenu takes 64k
  38. Pinboard+ uses 18k (module) + 42k (menu)
  39. Total 124k
  40.  
  41. DirectorMemory
  42.  
  43. Program code      10704
  44. Workspace          3408
  45. Heap              21456 (143 blocks)
  46. -----------------------
  47. Total             35568 Bytes
  48.  
  49. Saving 90k
  50.  
  51. 0.03 - 12Aug94
  52. --------------
  53.  
  54. DirectorObey implemented.  Cuts time to load 14k menu from 5.2 seconds to
  55. 0.75 seconds (with cached directories)
  56.  
  57. System variable MenuText set to the text of the menu whenever a command
  58. option is chosen
  59.  
  60. -len implemented.  Size of buffer allocated is the greater of the string
  61. supplied and the length so 'Option FillMeIn -len 0' is acceptable.  However
  62. it doesn't set %0, use <MenuText> instead
  63.  
  64. These system variables are set whenever a sub menu is opened or an item is
  65. chosen off a menu
  66.     Director$CurrentPath - full path of object
  67.     Director$CurrentDir - directory object lives in
  68.     Director$CurrentLeaf - leaf name of object
  69. If the object is a root directory (eg ADFS::4.$ or Root:) then CurrentPath =
  70. CurrentDir = CurrentLeaf
  71.  
  72. "MenuMenu" opened when menu clicked on a path menu, otherwise the command is
  73. run as normal
  74.  
  75. Bug fix: menus always removed from displayed even when error occurs.  Fixes
  76. Menu not found after choosing an option that caused an error
  77.  
  78. Bug fix: module always removed on task shutdown (stops error after choosing
  79. cancel on an error box, loading a script and then rmkilling the module).
  80.  
  81. Bug fix: number of paramters to Menu increased so can have aliased menus with
  82. keys!
  83.  
  84. Dash command to add a dashed line underneath the last option
  85.  
  86. 0.04 - 15Aug94
  87. --------------
  88.  
  89. Put scaled large icon in menu if small sprite not available
  90.  
  91. Keys added to menus by name
  92.     Keys are case insensitive
  93.     Can be modified by ⇧ (shift) ^ (ctrl) or ~ (alt)
  94.     Keys are done by name, eg F1 or ⇧^Insert (case insensitive)
  95.         Home, Return, Ret, Enter, Backspace, BkSp, Space, Delete,
  96.         Del, Esc, Print, Pnt, F1, F2, F3, F4, F5, F6, F7, F8, F9,
  97.         Tab, Copy, Cpy, End, Left, Right, Down, Up, PageDown, PgDn,
  98.         PageUp, PgUp, F10, F11, F12, Insert, Ins
  99.     ^Number keys don't work, ^KeyPad numbers should
  100.     Haven't found any keys that work with ALT!
  101.     ⇧A = ⇧a and A = a (ie keys are independent of CapsLock state)
  102.  
  103. If an option or a menu has a key definition it is added to the text with a
  104. space before it.  If you want the items to line up then you will have to add
  105. spaces after the menu text.  RISCOS 3.5 will line them up for you (most of
  106. the time!).
  107.  
  108. Bug fix: "Too Many Menus" error removed.  If the Wimp ever allows more than 8
  109. menus then Director will be able to cope just fine.  (Director allows that
  110. one error to pass un-reported afer making the sub-menu).
  111.  
  112. 0.05 - 17Aug94
  113. --------------
  114.  
  115. Commands and submenus are now parsed when run
  116.     "Text" for normal command or sub-menu
  117.     "Menu:Name" to bring up named menu
  118.     "Save:Path" for save box of the given path (*)
  119.     "Path:Path" for menu of that path (*)
  120.     "Command:Text" runs the text as if it were a command
  121.     "Quit:" Quits Director
  122.     "Info:" Brings up Director's info window
  123.     "OldMenu:" To open the last filtered menu (for getting pinboard menu)
  124.  
  125.     (*) If the path is missing eg "Path:" or "Save:" then it will use
  126.     the path of the window that the pointer is over.  If the path is
  127.     present it is GS_Trans-ed before use.
  128.  
  129. Director no longer has any native menus.  Icon bar menus changed to
  130. "IconMenu" and "IconClick".
  131.  
  132. If you click on an option which has no commands attached, but does have a
  133. sub-menu, Director will open the sub-menu
  134.  
  135. Save: implemented.  Brings up a box with an icon like a large info icon in a
  136. filer window which you can drag to an application or pinboard. (The save box
  137. was much more difficult than I thought.  On reading of the PRMs I though I'll
  138. just pretend to be the Filer (which is what I am doing really) and send a
  139. Message_DataLoad.  This works fine sending data to applications.  However It
  140. put the icons in really odd places on the pinboard so I worked out I had to
  141. send out another message (FilerSelected or something like that).  Then the
  142. pinboard and applications worked but the filer didn't want to do anything
  143. with my DataLoads, and even worse it Acknowledged them!  So I had to write a
  144. bit which discovered whether the task was the Filer and then do a DataSave,
  145. DataSaveAck and then use FilerAction to copy the files, reading the default
  146. state of the Verbose etc from the CMOS.  Phew!)
  147.  
  148. DirectorDo Implemented
  149.  
  150. DirectorIcon implemented for defineable icons.  Director no longer has any
  151. inbuilt icons.
  152.  
  153. 0.06 - 05Sep94
  154. --------------
  155.  
  156. Changed the way mouse clicks are intercepted by intercepting MouseV rather
  157. than EventV.  This works because the Wimp uses SWI XOS_Mouse internally. 
  158. This means that the Wimp always gets the menu click on the title bar before
  159. we open our menu so we can have the menus opening on the downward press of
  160. menu rather than its release as before.  We can also stop the wimp getting
  161. the mouse button clicks at all.  This seems to imply that the Wimp module is
  162. re-entrant, at least with Wimp_PointerInfo and Wimp_SendMessage.  Don't know
  163. how far you could push it though!
  164.  
  165. Bug fix: When computer busy, menu click over title bar opens menu then
  166. closes it! (See above)
  167.  
  168. Discovered how to cancel an open menu (with Wimp_CreateMenu with r1 = -1) and
  169. this is used to cancel an open menu if menu is clicked twice over a title
  170. bar.  Why oh why can't I call a SWI to ask the Wimp whether a menu is open
  171. and if so ask it for the address of the MenuBlock?  This would make it all
  172. much simpler!
  173.  
  174. Bug fix: SaveBox icon is no longer filled so it now looks like the filer with
  175. textured window backgrounds in RISOCS 3.5.
  176.  
  177. Icons kept in sorted linked list (referred to by sprite name) and duplicates
  178. deleted.  -alias <name> added to DirectorIcon to allow reference to icons by
  179. other than their sprite name.
  180.  
  181. Icons now created on a PollWord rather than a Null which makes them appear
  182. much quicker.
  183.  
  184. -time implemented for DirectorIcon.  The length of the string is the length
  185. of the -text or the length of the -time string if no text is supplied
  186. Eg DirectorIcon !Director -time "%24:%MI:%SE" -text "00:00:00"
  187.  
  188. The time string is updated with ForceRedraw on the icon text to avoid the
  189. icon flickering in RISCOS 3.5.  The text still flickers in a rather
  190. unsatisfactory manner.
  191.  
  192. The first item above the divider (in the UpMenus) in an automatically
  193. generated menu does not now have a sub-menu.  There is no need for one since
  194. the contents of the directory is visible below the divider.
  195.  
  196. Bug fix: updating a menu from itself didn't work. (If a menu is returned to
  197. the stored list and a menu of that name already exists then the menu being
  198. returned is deleted.  This means that if you update a menu from a itself, the
  199. new menu will appear as soon as you open it again (the old menu will persist
  200. as long as you keep it open).)
  201.  
  202. Bug fix: can't open the MenuMenu from the MenuMenu.  (Was firstly because the
  203. displayed list was not being checked for opening a menu and second because
  204. the adjust click code looked at the menu handle and decided it hadn't changed
  205. so deleted the new menu.)
  206.  
  207. MenuMenu now opened when the File 'XXXX' item clicked on in filer menus (with
  208. any button).
  209.  
  210. "MenuMenu:Path" menu command added.  Takes path, adds .<leaf> to it, sets up
  211. the Director system variables and opens the MenuMenu.  A bit obscure maybe!
  212.  
  213. Method of discovering a window's taskhandle changed to use UserMessageAck as
  214. per 3-198.  Avoids disturbing the task with a null event.
  215.  
  216. A WimpMessage defined for opening a menu which is a Wimp_Pointer block with a
  217. menu name on the end.  This is used internally rather than the cumbersome way
  218. it was done before.  Could also be used externally.
  219.  
  220. Adjust click on disc drive icons produces a directory menu of the path that
  221. would have been opened.
  222.  
  223. Wrote the !Help file.  Changed file structure slightly.
  224.  
  225. BMGon and BMGoff changed to MenuProcessing <On|Off|1|0|Yes|No>
  226.  
  227. Memoriser added.  A new extended menu type Memoriser: opens it.  (NB I spell
  228. Memoriser with an 's' (English) not with a 'z' (American) as doen Ben
  229. Summers!).
  230.  
  231. MemoriserItems command added to control the growth of the Memoriser menu.
  232.  
  233. Argument to -sub is now GSTransed as originally intended.  You may have to
  234. change your MenuMenu changing -sub Path:<Director$CurrentDir> to
  235. -sub Path:|<Director$CurrentDir> 
  236.  
  237. -up added to Option.  When used with -path will cause the sub-menu produced
  238. to have upmenus.  Used with Memoriser.
  239.  
  240. ProcessKeys implemented.
  241.  
  242. 0.07 - 09Sep94
  243. --------------
  244.  
  245. Name changed :-)
  246.  
  247. Sprites and Sprites22 made
  248.  
  249. Made a strlen1 for length of a string + terminator since this seems to be the
  250. most common usage, and added it in.
  251.  
  252. Deleted some unused printing routines.
  253.  
  254. Memoriser files now have submenu pointers.
  255.  
  256. A Path: or -path can now be given of a file as well as a directory.  It puts
  257. the file above the dotted line as well as below.
  258.  
  259. Anywhere that used the directory that the pointer was over (eg Path: or
  260. Save:) now is given the straight path (whether it is a file or directory)
  261. instead of the path is it was a directory or the ^ path if it was a file. 
  262. Not sure what effect this will have on existing Menus.
  263.  
  264. Removed some unused message types
  265.  
  266. Where using SaveRegs and ROUTINE changed the saved registers to NONE
  267.  
  268. Added a -v or -verbose option to DirectorObey
  269.  
  270. Included &, @ and % in ParsePath (fixes problem with & when using the net).
  271.  
  272. Fixed root directories appearing as unknown files
  273.  
  274. 0.08 - 04Oct94
  275. --------------
  276.  
  277. Swi chunk (&4A100) and error chunk (&80D000) arrived from Acorn.
  278.  
  279. Error numbers rationalised (but not documented :-)
  280.  
  281. Installation of pinboard filter changed so it doesn't give an error if there
  282. is no pinboard installed
  283.  
  284. 0.09 - 10Oct94
  285. --------------
  286.  
  287. Dynamic: made.  Works like Command: except the command should set
  288. Director$Menu to the name of the extended menu to open on its return.
  289.  
  290. -up makes the item have a submenu even if it is a file
  291.  
  292. SWI interface made.  Pass r0 as a string with the parameters to the
  293. equivalently named * command to speed up dynamic menus.
  294.  
  295. GSTrans: command made.  It GSTranses the following command and then
  296. reinterprets it.
  297.  
  298. Director$MenuMenu used to get name of MenuMenu to open (could/should do this
  299. to the pinboard menu also)
  300.  
  301. -temp option added to Menu.  A menu with -temp will be displayed once and
  302. then destroyed.  Useful for dynamic menus and used internally with directory
  303. menus.  Temporary menus show on ListMenus with a * appended.
  304.  
  305. MenuText system variable is set whenever a menu selection is decoded so it
  306. can be used in dynamic menus attached as sub-menus, not just commands.
  307.  
  308. 0.10 - 19Oct94
  309. --------------
  310.  
  311. Menu over filer menu had stopped working.
  312.  
  313. DirectorPathParse implemented (an external interface to an existing routine).
  314.  
  315. 0.11 - 21Oct94    *** Public Release #1
  316. -------------------------------------
  317.  
  318. DirectorEdit changed so it works in a task window and at the F12 star prompt. 
  319. Should work from every possible situation now.
  320.  
  321. DirectorMouseDir implemented (an external interface to an existing routine).
  322.  
  323. 0.12 - 15Mar95
  324. --------------
  325.  
  326. MakeRelease corrected to include my menu, not two copies of the default menu.
  327.  
  328. OpenFiles and Tasks dynamic menus added.
  329.  
  330. Dynamic MenuMenu converted into BASIC for speed, and fiddled with
  331. extensively.
  332.  
  333. Lots more small changes and bug fixes in the menus.
  334.  
  335. Fixed director and Filer Short Cuts interaction by making director stricter
  336. about which menu entry in the filer it allows a click over.
  337.  
  338. 0.13 - 17Mar95
  339. --------------
  340.  
  341. Claimed UpCallV to intercept Media not present and Media not known.  This is
  342. done when generating path menus and when generating directory menus.  For
  343. some reason using OS_ChangeEnvironment didn't work, maybe it doesn't for
  344. module tasks.  Using OS_Claim on UpCallV worked fine.
  345.  
  346. Added 256 bytes space on the end of the OS_GBPB block when reading
  347. directories.  This is for badly behaved file systems (like CDFS) which write
  348. off the end of the block.  Fixes only getting partial directory menus on some
  349. CD-ROMs with very large directories.
  350.  
  351. If a file (or directory) in the memoriser menu is not found when Memoriser:
  352. is being opened (eg you've deleted it) then it will be removed from memorised
  353. files and won't show on the menu.
  354.  
  355. An optional parameter has been added to Memoriser:.  It is numeric in the
  356. range 0 - 7.  If it is omitted memoriser works as before.
  357.  
  358.     Memoriser:1 - memoriser shows applications
  359.     Memoriser:2 - memoriser shows directories and images
  360.     Memoriser:4 - memoriser shows files
  361.  
  362. The parameters can be combined in a linear fashion, eg Memoriser:6 shows
  363. directories, images and applications but not files.
  364.  
  365. Invented an error exit macro which save an instruction sometimes (when
  366. exiting from a routine with a stack frame), and at least 4 cycles.  Makes the
  367. macros more logical and easier to use also.
  368.  
  369. 0.14 - 21Mar95
  370. --------------
  371.  
  372. Made director use Dynamic areas if the OS supports them.  This has the
  373. advantage of reducing RMA fragmentation.  The module code and its main
  374. workspace (3.5k) are still held in the RMA, but all other allocations will
  375. come from the dynamic area.  The area should shrink and grow as necessary.
  376.  
  377. DirectorMemory altered to return information about the dynamic area if it is
  378. in operation.
  379.  
  380.     Dynamic area      24576    - total size of dynamic area
  381.     Free in area       2168    - total free space in area
  382.     Largest block      1564    - largest block that could be allocated
  383.                 - without extending the heap
  384.  
  385. Fixed MenuMenu over filers (again).
  386.  
  387. MemoriserSave and MemoriserLoad implemented.
  388.  
  389. 0.15 - 07Apr95
  390. --------------
  391.  
  392. Implemented DirectorShowMenu.  This means that you can create obey files to
  393. be pinned to the backdrop and clicked on to get menus appearing.
  394.  
  395. -nosprite added to the option command.  This stops a sprite appearing in a
  396. path menu.  It also stops the menu entry being greyed out if it did not
  397. exist.
  398.  
  399. -remove option added to Menu
  400. -remove option added to DirectorIcon
  401. If the menu or icon is not found then they don't return an error.
  402.  
  403. Added colours and icon numbers to Menu.Aliases
  404.  
  405. Added DirectorFilter to director and removed the built in filters on the
  406. pinboard, and title bars.  Now need to add the following to get the previous
  407. default setup.
  408.  
  409.   DirectorFilter "Title Bar Directory Menu" * Path: -icon TitleBar -menu
  410.   DirectorFilter "Alt Menu Directory Menu" * Path: -menu -alt
  411.   DirectorFilter "Pinboard Menu" Pinboard Pinboard -icon WorkArea -menu
  412.  
  413. Put auto detection of tasks starting and closing to keep the task handles up
  414. to date.  You can now filter on a task which isn't started, and director will
  415. notice when it starts and change the task handle.
  416.  
  417. Enumerated lists of menus/icons/filter added using a SWI interface and
  418. dynamic menus, using new SWI Director_Enumerate.
  419.  
  420. Added memory information SWI Director_Memory and a dynamic menu to show it.
  421.  
  422. Removed DirectorMemory and ListMenus as they are redundant along with the
  423. number printing routines as they are no longer used.  This saved 920 bytes.
  424.  
  425. 0.16 - 11Apr95
  426. --------------
  427.  
  428. Changed the source files into h and s directories and made the h files import
  429. the correct labels.  Shows up all the places where routines are in the wrong
  430. place!
  431.  
  432. Started using Straylight's setdate program.  It finally sorts out the
  433. makefile problems of creating a bit of source program with the date in it.
  434.  
  435. 0.17 - 02May95
  436. --------------
  437.  
  438. Fixed: When the computer is busy the menus don't always work properly.  When
  439. we are using Wimp_GetPointerInfo from within the OS_Mouse routine, we are
  440. etting old information.  This includes the mouse position AND the window
  441. handle / icon.  Updating the mouse position in the window pointer block fixes
  442. the problem.
  443.  
  444. Made dynamic menus (only) set Director$Window and Director$Icon to the window
  445. handle and icon number that the request was over respectively.
  446.  
  447. Fixed: directorfilter "xxxx" xxxx pinboard -menu, where xxxx isn't a valid
  448. task name, causes everything to be intercepted!
  449.  
  450. Fixed: Can't attach a filter to an iconbar icon.
  451.  
  452. Added a pretend icon type IconBar so it is possible to filter on icon bar
  453. icons only.  Eg
  454.   DirectorFilter "CDFS" "CDFS Filer" "CDFS" -icon IconBar -menu
  455.  
  456. 0.18 - 05May95    *** Public Release #2
  457. -------------------------------------
  458.  
  459. Fixed: a bug in the Ack routine.  Would have crashed director if anyone had
  460. sent it a recorded message.
  461.  
  462. You can now drag files from the filer or pinboard into the savebox.  It
  463. leaves bits of the old icon behind for some reason.
  464.  
  465. Added -dragto to DirectorIcon.  This specifies a menu which is run when a
  466. file is dragged to a director icon.  The file path is is Director$CurrentPath
  467. …Leaf and …Dir as usual.
  468.  
  469. Added -dragfrom to DirectorIcon.  This either takes a path which then acts
  470. exactly like the SaveBox or takes a menu preceeded by * which will be run
  471. with Director$CurrentPath …Leaf and …Dir set up.
  472.  
  473. Added -file to DirectorMouseDir.  This indicates that a file result is
  474. acceptable.  Changed MenuMenu to use it.
  475.  
  476. Fixed: untyped files don't disply an icon
  477.  
  478. 0.19 - 16Jun95
  479. --------------
  480.  
  481. Made menu entry icon validation strings fixed length so they can be changed
  482. later.  Interestingly padding with ; provokes the RISOS 3.5 menu width bug,
  483. padding with space doesn't.
  484.  
  485. Before opening a menu, any path items have their sprites updated.  At last
  486. application and file sprites get updated properly as the applications are
  487. seen!  (Dom, this one is for you :-)  However it only updates it once from
  488. unknown app to sprite, so opening menus with path items doesn't take too
  489. long.
  490.  
  491. Not found path items will now go from shaded to un-shaded if they are later
  492. found.
  493.  
  494. Filter's system changed to use Wimp_Filter for all non -ve icons.  This makes
  495. it much better behaved when the machine is busy.
  496.  
  497. Made director use Service_FilterManagerInstalled and
  498. Service_FilterManagerDying to restart its filters if the filter manager is
  499. restarted (eg when running the toolbox on RISCOS 3.10)
  500.  
  501. We now restart the filer wimp filter if the filer is restarted.
  502.  
  503. Added -sprite to Option.  This can be used to specify a sprite which must be
  504. of the correct size, for a menu entry.  If the sprite is not found then
  505. small_xxx will be used.
  506.  
  507. 0.20 - 22Jun95
  508. --------------
  509.  
  510. Support interactive help in a basic form, prior to adding display of what
  511. each menu entry does.
  512.  
  513. Made -key exit quietly if given an empty string to enable the passing of keys
  514. in system variables, null variable meaning no key.
  515.  
  516. 0.21 - 21Jul95    *** Public Release #3 via Acorn User October 1995 issue
  517. -----------------------------------------------------------------------
  518.  
  519. Opened the keys window with a position of -3 so it never becomes visible.
  520. *** took it out again as it stiffs the machine when you press ⇧F12 :-(
  521.  
  522. Only update time icons when the time string has changed.  This stops the once
  523. per second flicker if you have a HH:MM time display.
  524.  
  525. IfThereIs had another parameter -X to suppress errors added.
  526.  
  527. Fixed a bug in Utils.FilerAc which stopped delete working on RISCOS 3.10
  528.  
  529. Fixed a bug in System.Variables which stopped "text working.
  530.  
  531.  
  532. Known bugs
  533. ==========
  534.  
  535. DirectorMouseDir x causes any BASIC program after it in a dynamic menu to
  536. emit "not enough application memory to start BASIC".  This is because it
  537. starts up and shuts down a wimp task, which removes all the application
  538. memory.  Workaround: put the DirectorMouseDir into a separate file.
  539.  
  540. Dragging from the icon bar to pinboard does not quite put the icon in the
  541. right place.  Must be something to do with the fact that the icon bar isn't a
  542. proper window.
  543.  
  544. Director menus with sprites in are sometimes the wrong width under
  545. RISCOS 3.5.  I think this is a bug in the OS.  If you re-open the menu then
  546. it may correct itself.
  547.