- 19 Nov, 1997 1 commit
-
-
Andrew Hodgkinson authored
This is an intermediate check-in to allow work on Choices for the new table options and History choices as detailed below. Res files are not up to date except where indicated and there are several known bugs that will be fixed before the 'final' v1.27 is created. Any work on resources should only be done for the testbed !Browse. Client side image maps implemented. There is code to draw highlighted borders in CSIM.c, but this is not wired in yet; other than that, the implementation is functionally complete. As part of this, centralised the fetching of a targetted URL taking into account user request of a new view and full screen mode, in fetchpage_fetch_targetted. The forms library now uses this too, so form buttons respond to both adjust-clicks and TARGET attributes. Fixed APPLET handling where '.class' isn't present in the CODE attribute. Paragraphs squashed at the top of cells/pages - browser would insert white space before. Now append a ' ' to the end of History menu items to prevent the Wimp thinking the end of entries represents a keyboard shortcut (e.g. 'Home'). Netscape's handling of 'meta http-equiv="refresh"' is to start counting when the fetch has completed and everything else has died down. The browser will now not start counting until the animation handler is deregistered (so formatting is complete) to show similar behaviour (note that this checks the main handler, not the 'idle but returning to first frame' drift handler). URLs from requests for fetches by Plug-Ins are now relativised. Page width change tolerance prior to reformat upped from 16 to 32 OS units. Hoping to provoke a loosely connected bug with this change! TableOuter, TableInner and SeeFetches choices added to all Choices files, with appropriate loading and saving code in Main.c and Save.c. AuthorFTP and AuthorFSh messages added for FTP authentication, and dialogue handling code (the component in FetchHTML.c) updated to recognise an FTP fetch and alter the dialogue presentation appropriately. All Messages file version numbers taken up to 1.27 (20 Nov 1997). Following a UseNet suggestion, Ctrl+Toggle Size will increase the window size to fill the screen vertically only; horizontal size/positioning is not changed. Shift+Tab in the URL writable will cycle through alternative fetcher protocols (from both the Controls file and checking the fetcher modules are actually present). Hotlist doesn't require '://' in URLs when loading HTML, just ':/' - so 'file:/' URLs now will be reloaded correctly. History system rewritten completely. GHistSize and VHistSize options removed, and replaced by MaxSize and ExpiryAge. Now have global history menus with most recently visited items at the top, and local history menus which reflect the path that forward/back buttons would take. Browsers are robust to background expiry of the History though this is not implemented - date expiry and size checks are carried out on history_record only. This does mean that with two windows open one could have the history expired underneath it whilst another fetched, though; the code handles this and update toolbars (greying items) as necessary. It is possible to have the history limits so tight that even one entry will not fit and again the code copes with this, though values read from Choices are limit checked to ensure rather more useful results! Implemented 'Save' button in save dialogues. Remembers pathnames and just replaces the leaf now (hard coded exceptions for <Wimp$Scrap>... and <Wimp$ScrapDir>...) - it did before, but only if you'd typed the path in. Not many people did, given that you couldn't press Return or click on a Save button to use that path... In a similar vein, files of type Data or DOS will be checked for a '/xxx' type extension and the MimeMap module will be used to find a more meaningful filetype. If this can be handled, the file is loaded. This only works for files dragged to the browser - the behaviour with inline data in web pages will depend on the File module, and similarly, if File doesn't spot what is going on and claims that the object is data, the browser will just open a save dialogue for it. !RunD files taken up to 3072K WimpSlot. Hotlist's saved HTML page title wasn't internationalised - is now. This opened up a significant can of worms; on file write error, the file would never be closed, and if a caller of the save or load functions passed in a filename held in the global Messages lookup buffer then subsequent lookups in the callees would corrupt that filename. All sorted out now. Local (not very useful) or global (useful) histories can be saved as HTML, which opens up the possibility of sending your history to the hotlist by saving to it. Local and global histories can also be emptied, though this is probably not a feature that current release Desktop browsers need. Inheritance of local history and certain UI features is now done more or less for all cases where one browser window spawns another, too. Vertical alignment on images is rather less ropey than it was (e.g. ALIGN=TOP stands half a chance of working) but is still far from perfect. This was part of fixing a nasty little bug in Redraw.c's setting of an image position via. image_set_token_image_position, which was making (amongst possibly many other things) client side image maps fail. Image update where images had large borders was affected by a similar problem too (more cans with more worms...). Fixed image background filler functions; two problems. When cross referenced images were replaced by base images in a browser because the original owner was closing down, the original owner browser would stay registered with ImageLib. Fixed; secondly, when images were deleted from the image array causing those above to be renumbered, images registered with ImageLib did not have their numbers updated (this was the one that lead to the visible drop out of background images with PNGs on the Acorn Internet home page when there were two views of the page and the first was closed). This is now also sorted out.
-
- 05 Nov, 1997 1 commit
-
-
Kevin Bracey authored
Stopped UNIFONT forcing system font use and added calls to Font_WideFormat. Made sure the system font option is read before fm_init is called! User agent string now set if Netscape faking is disabled (format used is "Acorn Browse/1.26 (RISC OS 3.71)".
-
- 20 Oct, 1997 1 commit
-
-
Andrew Hodgkinson authored
Main.c, so the last log was incorrect; Navigate menu items wouldn't have been greyed out. Probably a(nother?) CVS update screw up on my part; now fixed. This sort of thing is happening far too often... Font manager would crash in system font or if a font face was not found in the previous release - that hacky business of returning weird font handles when system font is to be used instead ensured a rather less than valid array reference on behalf of fm_claim_basic_typefaces. Added in a few more calls to the 'check the button bar' routines, to ensure that things like Stop are greyed/ungreyed when needed. Cellpadding code could lead to rmarg overlapping lmarg, or the sum being greater than dwidth, or something like that (!) in the reformatter. Anyway the results were unpleasant; this has been sorted out by range checking right and left margins w.r.t. display width in the relevant section of the code. People who specify 'td width = 2000' in tables expecting to get something sensible now do, though I was half inclined to leave it alone... I can only assume that they don't know about % specification or it didn't work in their browser at authorship time, and the huge width served as an attempt to get the table to fill the available window width. Anyway, the table reformatter spots when the maximum width a cell requires is less than half of what it asks for, and ignores the width specifier if this is the case.
-
- 18 Oct, 1997 1 commit
-
-
Andrew Hodgkinson authored
Sorted out Res files, including fixing position of 'bytes' label in one of the Choices dialogues (I'd missed it out of a selection when everything else got moved down a bit). Unfaded Enc_Chinese menu entries, made sure text labels were wide enough for system font, changed 'Apply' on Choices dialogue to 'Set', and added ^K to hotlist keyboard shortcut lists. Print Setup (i.e. Print dialogue) buttons all set to 'local', so the stupid Toolbox doesn't close the dialogue and lose the caret before I can see if it was in there to start with... 256 colour hotlist sprites taken back to standard 16 colour versions, since there's a significant speed penalty on slower machines. The testbed browser still has the 256 colour versions so the designs aren't completely lost. Changed access settings to exported builds to wr/r - lr/r was really getting on my nerves whenever I wanted to try something temporary out. View source, save source and print handlers would all try to work if there was no source to act on - despite the fact that toolbar buttons would be greyed out form them. This is fixed. The Navigate menu has components greyed to match the toolbar state, when opened. It isn't kept up to date dynamically, though this shouldn't really be a problem (reopen the submenu...). As part of this, finally sorted out conditions for the Stop button to be greyed, or the GoTo/Go/Stop tristate to be at 'Stop' versus 'GoTo'. Deferred reformatting is now disabled for external image fetches. Browser-local client pull flag removed; hitting the Stop button simply cancels any null handlers working for it. That way, client pull switches back on in passing at the next fetch (it was never really switched off). So to stop client pull, hit the stop button at any point. Done CELLPADDING attribute; cellpadding field in reformat_cell (Global.h) is redundant since the table token is accessible from there, and so it has been removed. CELLSPACING support also added.
-
- 17 Oct, 1997 1 commit
-
-
David Brown authored
Implemented font size choices.
-
- 16 Oct, 1997 1 commit
-
-
Andrew Hodgkinson authored
Now handles PARAM tags. Sorted out Plug-In bug that was related to Java setting a 0 by 0 graphics window before calling Wimp_Poll (fixed in Java). Implemented queue for Plug-Ins so multiple broadcasts aren't sent for several Objects in one data chunk. Added Docs directory with some documentation in it. More things to keep checking for stylistic consistency, horray ;-) Corrected !Run[D] for Ursula build to need AcornURI but not TaskModule (URI handler needed for !Mail to pick up mailto: links). Added display_height field to browser_data, analogous to display_width, to cope with % sized objects by width and height (see how HRs are handled in Redraw.c for an example of how it was always fairly easy with width, but not height until this addition). Though you do have to reload to get a new size; reformat isn't enough. Must see to this some time... Fixed bug where basic typefaces were claimed *before* the Choices file had been read. For unusual Choices settings, this could create some 'interesting' problems now and again. This was part of narrower scope work in the Choices code to allow font changing without leaking font handles (now done; fm_shutdown only ditches fonts, it keeps internal structures - must then call fm_lose_fonts for all browsers to get the bitfields up to date, then rewrite the typeface definitions and reclaim basic fonts). Noticed that fm_claim_basic_typefaces would claim multiple instances of the same font if there were several cases of the same font mapped to different typeface styles - fixed. Implemented PlugInControl settings, but not SupportObject (fully).
-
- 15 Oct, 1997 1 commit
-
-
David Brown authored
-
- 13 Oct, 1997 1 commit
-
-
Andrew Hodgkinson authored
More reformatter code bugs fixed; this one regarding width of items. Any kerned string was overestimated (causing redraw bugs and caret position problems in forms, apart from other minor bits elsewhere) and the default size of a writable icon wasn't especially clever. Crude Plug-In support; just about manages Java, but can't fetch on behalf of Plug-In (for example). Had to change the default file access URL construction to be 'file:/' instead of 'file://', or local file fetches that reference Java applets won't work. This is in its very early stages, and is being checked in mostly so that various Choices issues can be worked on.
-
- 08 Oct, 1997 1 commit
-
-
Kevin Bracey authored
FRAMES_SUPPORT #define removed. Optimised fm_token_font_info(). Added support for LI tokens with text (for ordered lists). Now outdents bullets from indent value, rather than indenting bullets by the indent value and further indenting text. May need to look at default Choices files because of this. Limited the margin to always be non-negative.
-
- 03 Oct, 1997 1 commit
-
-
Andrew Hodgkinson authored
Updated Res files in appropriate builds to hold various (similar) Choices designs. Choices related menus were flagged as Shared, but none of the dialogues (including ColourDBox) were - potential future problems, though shouldn't cause any leaks at present. This has been sorted out anyway. Encoding function encoding_init no longer returns an error from toolbox_create_object, so the Encoding menu and all those attached to it do not have to be present (e.g. the Customer build). SUB, SUP, STRIKE and U supported. U underlines the baseline of the body text font, whilst STRIKE will go through roughly the middle of the lower case chars even if the font is SUP or SUB. Note that Navigator appears to shift the underline point for SUB and SUP; it may be necessary to copy this behaviour, but testing on real sites must proceed before that. There could also be a problem with the automatic lowering of font size, which Navigator doesn't do, so any FONT SIZE = -n commands could make it too small. Again, this needs testing on real sites. 'http://' is added to URLs with no protocol specified, unless they start with 'ftp.', in which case the new behaviour is to add 'ftp://'. Choices code altered to do less error checking on components! They should be able to be missing without raising errors. Referencing of the subwindow array changed from *(subwindows + number) to subwindows[number]. Made trace_tag_name code look pretty... reformat_useless_token now checks tagno is non-zero. User Agent string setting now done through URL_GetURL, on a per-session basis. Ellipsis character removed from all Messages files, replaced with '...'. There's little difference between the two in an outline font, and in System font the latter looks much better. Smart quotes left in, as they look better in all cases.
-
- 26 Sep, 1997 1 commit
-
-
Andrew Hodgkinson authored
Text items with no VALUE specified in the HTML were not cleared on hitting a Reset button as the text field of the token is NULL; fixed. SELECT lists with no default selection item were not being changed on hitting a Reset button; fixed. In radio groups with no default selection specified, no item will be selected. This goes against the HTML 2 spec but allows broken Navigator-esque forms behaviour. In consequence, radios can be deselected by clicking on the same one twice. I'd fixed the flickering experienced when doing this recently, but that, now, is irrelevant, since the state of a radio must always change. Reformatter's new 'find width of a SELECT field' didn't account for the width of <none> and <many> items, and now does (particularly important for broken items with no OPTION contents). Under certain circumstances, illegally named targets would open in the ancestor rather than a new window - a deliberate decision in the code, but now reversed due to a test suite failure; they'll open in a new window instead. Altered the left hand indent handling for lists so that headings and body text follow the Navigator 48 pixel indent and the bullet point items drop to the left of the left hand margin, rather than sitting on the margin with the text indented to the right. Tightened up the hotlist_load_directory checking of URLs, so that only those with '://' in - i.e. look fully specified - are accepted. HTML files are loaded into a new directory now. Items without a descriptive title in hotlist_new_url will have the URL substituted in instead. White space before and after descriptions and after URLs is stripped. Directories with zero length names or null strings (after white space is stripped) will still be created, with a generic name (see Messages, token 'HotlistUntitled').
-
- 22 Sep, 1997 2 commits
-
-
Andrew Hodgkinson authored
Choices and Controls files are now loaded into malloc space (use chf and cof to address them). Previously only in Main.c, task_dir is now globally visible. Choices updated to allow 16ths of a point in the font size specification and the System font face has been removed - it isn't used. The use of serif and sans serif fonts has been rationalised across builds (e.g. Desktop builds use what they say, but the Customer build uses Homerton as the default body (serif, so to speak) font as it matches the box's look and feel better). Font loading altered a bit to work properly! Font library defines some standard startup fonts without using Choices, which Choices can then override.
-
Andrew Hodgkinson authored
Now working on source merged with Kevin Bracey's internationalisation support. UNIFONT is undefined in the Make File for now. All Res and Choices files updated appropriately. Having sorted out the old Choices and Messages to form Choices, Controls and Messages, this build has had the same cleaning up done internally. This includes greater consistency in naming schemes and the removal of the inconsitent choices items - e.g. Choices file entries saying 'delay images' and 'plain backgrounds' where internally all the flags say 'show images' and 'show backgrounds'. ChoiceDefs.h and CtrlDefs.h added to clarify the meaning of some fields, though usage of these is not 100% in the source (there are cases where parameters are passed through to functions as ints, and those functions still check these against hard coded values rather than the #define stuff). Fetcher status return bits (connected, sent request, etc.) now reflected in status bar. Progress during fetchs to files are reported by %, where the size of th...
-
- 18 Sep, 1997 1 commit
-
-
Kevin Bracey authored
Encoding support added: if UNIFONT is defined then the browser will attempt to use the system font to render Unicode characters (new International module required). If not defined, the browser will just handle Acorn Latin-1 characters, but HTMLLib will convert other encodings into Latin-1. Must keep the UNIFONT define in sync with HTMLLib (if defined HTMLLib outputs UTF-8, otherwise Acorn Latin-1). Still needed: Reverse encoding (converting form input etc back into the server's character set). Reparse when encoding changes. Setting of charset from an attribute on the <A> tag.
-
- 31 Aug, 1997 1 commit
-
-
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 *no...
-
- 28 Aug, 1997 1 commit
-
-
Andrew Hodgkinson authored
Open URL implementation more or less complete, though may undergo UI revision at a later date to allow named frames to be targetted. Hope to use the ideas in this code as the foundation for other general dialogues. In token stream dump for TRACE builds, table head items were not indented as far as they should have been - this is fixed; and manual toolbar redraw routines have been removed. They never worked, were commented out, and would never be used in that form anyway. DragBox source added, but it isn't at all complete and won't work - this is an 'in spare time' thing. We need custom drag boxes constrained to windows for the hotlist, and unconstrained for frame border resizing... Hey ho. Ancestor window extents match visible areas if there are frames (no more scrolling framesets...!). Frame resizing works whilst new documents fetch without pulling the extent down now. However, frame horizontal extents never shrink until a reload which is nasty, and this is all due for a rewrite. Frames border redrawing routine moved out of Redraw.c and into Frames.c. Bug regarding the mouse rectangle and frame border widths (rectangle was too large, so you could squash the edges) for edge-drag frame resizes fixed. Window width change reformat tolerance fixed; you could creep the window width down or up forever without any reformat, and centred objects would move but not be redrawn (thereby giving rise to subsequent redraw errors). Filetype on objects saved through Shift+Click correct. Save Source dialogue recognises if that source is plain text, rather than assuming HTML. A browser that fetches a file remembers the old store size it had before the save, so even though the data is now ditched, it reports the same amount of data fetched afterwards (looked awful when this could, for example, suddenly say '0' after a file save). Progress indicator is now fully aware of one or many file saves inside a frameset and reports the number of saves, a colon, and the cumulative saved data count, instead of reporting the sum total of fetched data in all frames, including non-file save stuff (note that for just 1 save, '1:' is not shown as a special case for the most common condition). A bug related to this, where you could in fact only do one fetch per frame*set*, has been corrected (only one fetch allowed per frame still, this is unlikely to ever change). Hotlist support added (D.Brown's source), with various bits of integration and modification still in progress there. Note additions to the Messages files. On the subject of Messages, the whole mucky business about what goes in Messages or Choices (and a few bugs where lookup_choice was used instead of lookup_token or vice versa) has been sorted out. Messages contains, more or less, just that. Choices contains user configurable stuff which generally can't mess things up too badly. A new file, Controls, is a Messages file holding the non-user configurable choices, which can generally make things go badly wrong if misused. A lot of these are tied to the Res file. StrongED users can get these to automatically fold out the various sections (EMail me for details). Sorry, but at the time of writing, Zap doesn't do folding... =8*P Two bugs with images. Asking for images to be shown in browser B when browser A uses the same ones and was loaded first didn't work correctly, and now does (a bit weird - browser A does the fetch and browser B does the display...). Second one occurred when the background image was also used on the page as a foreground image. This has been fixed by flagging background images in the image_info structure, and checking this before cross referencing. This bit also allowed the image_restart_fetches API to be extended, so that just background or foreground images may be fetched if they weren't already and the user asked the browser to show them. Before, the whole lot had to be fetched together (so turning on 'display backgrounds' will now kick off an image fetch if required, you don't need to reload the page anymore). Makefile copy options tweaked to be 'newer' (so if you're testing with some temporary Choices file or something, it won't write over it at the end of every export), and REMOTE_HOTLIST flag added for Customer builds - means the Hotlist.c functions aren't needed; the old, hotlist-by-file method is used. Added support for Customer build (see later), though there were very few additions needed in practice. Table printing fixed - in many ways it wasn't broken, it was image printing causing the oddities ever since the global image pool was introduced (this is, again, fixed). The 'reformat to fit page' option didn't work as coded any more; tables store cell addresses in the HStreams, so you can't then do a background reformat in a different browser. Hence, it now has to reformat to the page width, print, then put the page back again, all in the actual displayed browser. This doesn't feel as slow in use as it perhaps should, considering what is going on... Note that a line of a defined fraction (see Print.h) of page height will now split over page boundaries, so tall images or tall tables don't cause problems now (aside from the obvious problem of having the line split over a page at all!). There was a bug in the routine to print from a given start point until 'n' pages had been filled, in that it always filled 'n + 1' - now fixed. Finally, as part of the printing tweaks, a new dialogue exists - PrintStyle - with a similarly named source file added to deal with it. Global history auto save / load done, but only to the Choices file path - the whole browser is still strictly single user at present, with all the extra work for a multiuser Customer environment yet to be done. This has shown up a global history corruption problem which I haven't fixed yet. Rationalising TBEvents.h - things are migrating out of it, and into more appropriate sources (e.g. definitions relating to the Open URL dialogue are going into OpenURL.h, etc.). Event codes were at one stage deliberately diverged in numberspace from the component IDs of typical gadgets raising the events, to avoid anyone getting confused and thinking the IDs and event codes must match. However, this is in fact unlikely and it is much easier to remember the fewer numbers that result from tying the two together where possible. This has resulted in changes to event codes raised in the following objects of all Res files: Authorise, Find, OpenURL, and PrintStyle. And finally - !Run[D] files for all variants updated to require the latest toolbox and fetcher modules. All Res files updated for hotlists etc. and sprites files updated appropriately. All Messages, Choices and Controls files brought in sync., and an Customer build has been added (based on the Desktop build binary with different resources). That's all for now...
-
- 18 Aug, 1997 3 commits
-
-
Kevin Bracey authored
-
Kevin Bracey authored
-
Andrew Hodgkinson authored
Limits.h, and ensured consistent comment styling throughout all sources. Fetch.c/h split to Fetch, FetchHTML and URLveneer. URLstat.c/h produced to cope with this. OpenURL and Find sources created from bits in the Windows source file that shouldn't have been there... These will get filled out shortly. Note that a few functions in Fetch are due to be renamed and moved; probably to Tokenutils.
-
- 05 Aug, 1997 1 commit
-
-
Andrew Hodgkinson authored
Fixed problems with unsourced images in tables and a couple of other bugs here and there - nothing earth shattering... Just wanted to keep the CVS source up to date.
-
- 01 Aug, 1997 1 commit
-
-
Kevin Bracey authored
-
- 18 Jul, 1997 1 commit
-
-
Ben Laughton authored
-