"h/SaveObject" did not exist on "68c33afaa7145a244adde64fbca45dce62635c7a"
-
Andrew Hodgkinson authored
Created Protocols source file and moved a lot of message handling from handle_messages - the latter now serves as a high level distributor to lower level functions in Protocols. Incidentally, URL files (as used by the ANT suite) can be loaded by dragging to the browser in the same way as URI files - Not A Lot Of People Know That, etc. Merged new hotlist display type Res file to existing resources, added support for DataSave message so items can be dragged from the hotlist to a specific window (RAM transfer for URI and URL files; ScrapFile for HTML and Text but deleted afterwards and there are appropriate guards to stop Reload just saying 'not found'; images run through ScrapFile and there is no choice but to leave them there and do a conventional fetch). All !RunD files now give a WimpSlot of 2304K. Some small changes to the Argo and Ursula build Res files to make the menu trees more sensible. Controls files now take 'file:/' instead of 'file://' in Protocols section. Definitions at top of URLutils.c *not* altered, as then you end up with invalid URLs - so it will accept 'file:/', but always generate 'file://'. This is because some browsers exports 'file:/'. Sigh. make_no_[..._]memory_error functions now return a _kernel_oserror * rather than void. It's always &erb returned, but it enables users to use a more elegant 'return make_no_memory_error(1);', say, rather than something like 'make_no_memory_error(1); return &erb;'. I obviously should've written it like that at the outset, but never mind. All callers have been appropriately updated. The urlutils_leafname_from_url function now replaces illegal characters (A7000 Welcome Guide p54...) in the leaf with legal alternatives. Internal URL scheme is now a bit cleaner, with everything properly defined in URLutils.h. All references to http:, file: and ftp:, with or without a following '//' use the definitions in here now. More tidying and some reorganising of Hotlist source. Auto-open delay is now a Choices item. Some dependencies on statics removed (e.g. the counting functions don't accumulate into the global item_number now). The redraw functions used Wimp_TextOp - oops, so this has been amended to use whatever is supported on your Wimp. This is now in a new function (utils_text_width()), which the History menu routines also use (there was a bug in the width routine there anyway, which is therefore fixed in passing). Several other routines used Wimp_TextOp directly too, and they have been altered to use the new function as well. In hotlist code, one of the larger changes is in the API to hotlist_draw_r() (formerly _hotlist_draw()) which now takes item widths and heights as parameters - discovering these is quite slow, so doing it every time the function calls itself recursively is a little less efficient than passing the values in from elsewhere. Note that underscore prefixed functions are being slowly renamed to _r suffixed functions, to match the convention established by Tony Cheal with is table routines. This makes it much more obvious when something is recursive, as the same naming convention is used in every browser source file. Finally, note that I intend to ditch SaveDBox and use an alternate window with manual control of the messaging in Protocols.c. This will allow various improvements which at present the SaveDBox operational methods preclude. I'm going to have to do at least an alternate Window object for the SaveDBox module to use soon in any case. Getting rid of SaveDBox will help reduce, if only slightly, demands on the RMA.
f3e8124f