1. 12 Sep, 1997 1 commit
    • Andrew Hodgkinson's avatar
      As warned in the last log, pretty much all event codes and component IDs have... · e6b771f8
      Andrew Hodgkinson authored
      As warned in the last log, pretty much all event codes and component IDs have now changed along with many of the names, to provide a consistent name and numberspace for events and components. This also minimises number clashes (e.g. as was, the Save File origin when opened from a
      
      Hotlist menu with an already-used component ID). To get full details on
      this, please carefully read through TBEvents.h.
      
      Res files, Sprites files and Messages files have been updated again both
      due to the above, and routine additions (e.g. message support for a few
      Hotlist bits and pieces). !Run[D] files updated for FTP 0.11 and
      HTTP 0.36.
      
      In the Makefile, the Customer objects list was missing Save - must have
      moved something when I should've copied it, when adding in SaveFile or
      SaveObject in all probability. Now fixed. Couple of other bits and bobs
      fixed in the build environment (e.g. stuff saying !Argo instead of
      !Customer). Oh, and I've altered the MakeFile copy options again to the
      best compromise I can come up with. Newer is turned on for everything
      except !Run[D] and !RunImage, since both of those change between debug
      builds - otherwise if you'd built debug and non-debug versions, it was
      not possible to switch between them - one version would have the newer
      timestamp and thus never get overwritten.
      
      The default hotlist has had a few items added - that'll be about the end
      of it, I think; there's more than enough stuff in there now.
      
      Saving of the hotlist from the document menu and of URI files,
      directories and selections from the hotlist menu tree is now implemented
      - this new save system rocks... Oh, and you can save all images and
      backgrounds as sprites.
      
      Saving of items with Shift+Click to other applications directly now
      works, and is robust. Unique Scrap filenames are used, with data load
      bounces (e.g. if some pra - er, person quits the app they're sending
      to) working correctly - that is, give an error, keep the file, rename
      it to something safe, and open the directory it lies in. As opposed
      to normal app-to-app bounces, where the scrap file is deleted (see
      PRM 3-254). This means you can now look at README files in FTP
      sites, say, without using a disc intermediate. Or you can send pictures
      straight to ChangeFSI, fetch HTML links into editors, and so-on, and
      so-on - it's all very funky. Known problems include the ambiguous
      'invalid component ID' instead of 'file open' for *normal* (straight to
      disc) shift+click saves, and I think I'll introduce a unique name
      guarantee of some sort to stop 'file open' in the first place. Odd
      that the really tricky part (app-to-app) should be least likely to
      suffer from this!
      e6b771f8
  2. 09 Sep, 1997 1 commit
    • Andrew Hodgkinson's avatar
      First a minor warning - the various Res files are out of sync in this build. · 7656a1b3
      Andrew Hodgkinson authored
      Only the Browse resources are currently valid.
      
      Added Utils.Icons - has a few archives inside containing the resources
      (well, some of them) used to build various UI sprites for various builds.
      Archived because these are unlikely to change much, and putting them on
      CVS was a move to, well, archive the stuff...
      
      SaveDBox objects vanquished and requirements in !Run[D] files removed. The
      data save code fits much more neatly in amongst the data load protocol
      stuff now (with the slight exception of having to split the SaveObject
      source into SaveObject and SaveFile - the former handles multiple persistent
      dialogues for Shift+Click on links and the like, the latter handles 'one at
      a time' transient dialogues for save source and similar). Export Link is now
      supported, too, and writes a 'proper' version URI file. You'll find that
      double-clicking on old URI files will work as the URI handler picks them up,
      whilst new version ones don't; however, dragging onto the browser will only
      work with new version files. Note that support for saving and loading URL
      files (ANT suite stuff) is present too, so old URI files can be typed as URL
      files if you want to keep them working without modification - the URI
      handler itself will hopefully support the defined URI file format soon;
      double-clicking on old URI files will stop working at that point. Note
      there are *lots* of changes in every Res file to support all this. This may
      all seem a bit pointless to some, but the changes do in fact make it very
      easy to add new save dialogues all over the place. Certainly much easier
      than with the previous system, anyway. In fact, post script, image
      'save as sprite' took about half an hour, which I hope proves the worth
      of the new system.
      
      Merged in newer hotlist code with support for drag cancelling with Escape
      (all relevant Res files appropriately updated) and cancelling scrolling
      when you've reached the window scroll limit. Had to move some of the
      Wimp message handling stuff to the central Protocols source, as clashes
      were occuring, and also the hotlist routines were using independent saving
      code - a lot of duplicated effort. This was fair enough as at the time the
      Hotlist code was written, the Save code couldn't be used in the way it is
      now.
      
      New Save Source and Print buttons on the toolbar of some builds.
      
      Phoenix Sprites file made more efficient - the Acorn base section has been
      split from the animated upper region. Browse build has a new grey fade
      sprite at the back, which is less grainy than the previous one and only
      uses 16 colours (with a 16 greyscale palette).
      
      Not really a bug, bug the routine to start an image fetch for INPUT
      TYPE=IMAGE forms items only did so if the src field (or equivalent, for
      this tag type) was non-NULL. In fact, you should always call image_new_image
      and let that handle the rest, otherwise other sections of the code will fail
      as they try to obtain an image number for a given HStream and get -1 back.
      This problem only generally manifested itself when loading an HTML file to
      the browser straight from an application, as many src fields become NULL
      when the relativisation routines find nothing to relativise to...
      
      Authentication got broken somewhere along the line - this has been fixed
      (in HTMLLib and the browser).
      
      Ctrl+Click on a cross referenced image updates *all* copies, not just the
      one with the image data attached.
      
      Next big step: Rip up TBEvents.h and rebuild that whole approach somewhat.
      To all those working on the code, my apologies but this means all Res files
      will receive a very large number of alterations and there will be extensive
      code changes too (mostly naming convention stuff), in more or less all
      source files. I am endeavouring to ensure that the new numberspace
      convention does not clash with the work being done by Kevin on
      internationalisation.
      7656a1b3
  3. 28 Aug, 1997 1 commit
    • Andrew Hodgkinson's avatar
      Very long log entry alert - but hey, beats 'Bug fixed' (sorry, Richard) ;-) · 532155bd
      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...
      532155bd
  4. 18 Aug, 1997 1 commit
  5. 18 Jul, 1997 1 commit