1. 05 Aug, 1998 1 commit
    • Ben Avison's avatar
      Text is now correctly justified when in an icon with validation string commands R8, R9, R10, ... · 6a6eb34c
      Ben Avison authored
      R5/R6 type icons now behave more usefully with button types other than click,
      release and auto-repeat.
      
      Prevented coordinate overflow in dragboxes.
      
      Stopped clipped dragboxes from flickering more than non-clipped ones.
      
      Fixed a bug whereby data aborts occurred when generating the translation table
      for inverted and/or shaded 256-colour sprites, if the first 256-colour sprite
      plotted since the Wimp's cached translation table was invalidated (either by
      Service_InvalidateCache or by plotting a 256-colour sprite after a non-256-
      colour sprite one) was at an address that had since been invalidated or paged
      out. This fixes a long-standing problem with 256-colour sprites in the desktop,
      but which only happened sporadically.
      
      Prevented palette corruption in paletted ( <256-colour) modes when the pointer
      reverts from an autoscroll pointer to its original setting.
      
      Fixed bug introduced in last build, where clicking on the bottom pixel row of a
      horixontal scrollbar, or the left pixel column of a back icon, caused a crash.
      
      All Wimp-drawn solid rectangles are now be plotted much faster - typically
      around twice as fast - translating to a typical 30% increase in speed of
      plotting filled icons. Improvements will be better still in cases where icons
      are drawn in a non-contiguous order: this commonly affects Toolbox applications.
      
      When a dialogue box is opened from a menu, the Wimp will no longer attempt to
      place the caret in a shaded or deleted icon, but it will do so for a type-14
      (writable/click/drag) icon, as well as the standard type-15 (writable) icons.
      This brings it in line with KA-validation up/down arrow actions.
      6a6eb34c
  2. 28 Jul, 1998 1 commit
    • Ben Avison's avatar
      Corrected active point for autoscrolling pointers (was wrong in low-res modes). · 93a63da6
      Ben Avison authored
      Certain user-drawn dragbox routines (eg via DragASprite) don't pass the object
      bounding box as the box; this was conflicting with one of the redraw
      optimisations, and causing smearing when the underlying object was redrawn.
      Relevant optimisation optioned out.
      
      If a window stack-change causes the iconise button to appear or disappear,
      this is now caught, and the window border is redrawn immediately.
      
      Toggling of child windows now works - the return coordinates are linked to
      the parent in the same way as the current ones. Note that this is unlikely to
      be useful for anything other than alignment 0/0/0/0/0/0 children.
      
      Return codes for the "Quit" and "Continue" buttons in "xxx may have gone wrong"
      error boxes can now be specified.
      
      Both scrollbars push in for adjust-drags.
      93a63da6
  3. 14 Jul, 1998 1 commit
    • Ben Avison's avatar
      Redraw of unfilled, font-specified icons now fixed; this caused antialising... · e6daf715
      Ben Avison authored
      Redraw of unfilled, font-specified icons now fixed; this caused antialising errors, for example in CC applications' banner windows.
      
      No longer maps anti-aliased system font character 128 to WimpSymbol tick;
      this leaves character 128 free for use by Euro currency glyph.
      
      Fixed Data Aborts in Wimp_SpriteOps 54, 57 and 58, and in *WimpKillSprite for
      a sprite name found only in the ROM sprite pool.
      
      Eureka window titles should now be redrawn correctly, without impacting the
      redraw of Wimp-drawn titlebars, provided the ROM toolsprites are used. Note
      that the toolsprite spritefile has regained sprite masks, but the colours
      "behind" the mask are different to those in the last masked toolsprite file.
      e6daf715
  4. 25 May, 1998 1 commit
  5. 08 May, 1998 1 commit
    • Ben Avison's avatar
      The title bar, and the back, close and iconise buttons, are no longer redrawn... · 6301aa47
      Ben Avison authored
      The title bar, and the back, close and iconise buttons, are no longer redrawn when a window is resized in just the vertical direction.
      
      All window colours can now be specified in 24-bit colour.
      
      Where a sprite is used to plot the back, close, title, iconise, toggle-size,
      adjust-size or scroll arrow icons, the sprite is now plotted using a distorted
      translation table, to give the sprites the appearance of being coloured
      according to the window colours.
      
      The 3D toolsprite set now has solid titlebar sprites.
      
      The icon bar template now uses the standard title bar colours (this optimises
      redraw because of the new border tinting code).
      
      When the toggle-size icon or title bar are to be plotted using solid sprites,
      the background is no longer filled in just prior to the event (although this
      will still be performed if the relevant sprite is masked). This is to reduce
      flicker. Similarly, the erroneous rectangle outlines plotted behind scrollbars
      have been removed.
      
      New "TASK"-form Wimp_ForceRedraw reason codes:
        R2 = 0 => redraw whole window border (includes line borders).
        R2 = 8 => redraw iconise button.
      6301aa47
  6. 21 Apr, 1998 1 commit
    • Ben Avison's avatar
      Bugfixes: · 85016583
      Ben Avison authored
      Re-opening a menu structure containing a dialogue box (especially one
      containing the caret) was causing data aborts under some OSes/builds.
      
      The minimum title bar length is now the same for windows without line borders,
      even if the vertical scroll bar is also absent. This prevents cases when the
      title bar shrunk so far that a graphics clipping error occurred.
      
      Wimp_DragBox was looking in R0 for its flags, rather than R3, as specified!
      
      If the pointer was to the right of the central zone, vertical autoscrolling
      was working too slowly.
      
      On Service_SwitchingOutputToSprite, the Wimp now re-assesses its idea of the
      screen limits. This prevents Wimp_PlotIcon plots outside the current screen
      bounds from being optimised out.
      85016583
  7. 17 Apr, 1998 1 commit
    • Ben Avison's avatar
      Redraw of dragboxes when being resized/translated optimised to reduce flicker. · cb05448e
      Ben Avison authored
      Autoscroll update period extended to 12cs to reduce flicker.
      
      Added Wimp_ReadSysInfo 17 to return configured drag-and-drop scroll startup
      delay (in cs) because the CMOS storage isn't easy to read.
      
      Identified and bracketed changes from 3.9x responsible for 24-bit icon colours.
      
      defaultfontcolours now works correctly again.
      
      Introduced new icon colour code. This holds icon colours in 24 bits internally
      throughout, rather than treating 24-bit colour specifiers as a special case.
      This results in the following bugfixes/improvements:
       * 3D faces and moat colours, and slabbed-in action button backgrounds, can
         all be specified in 24-bits
       * fading of icons is now consistent across icon types, and utilises the
         colour range of >16 colour modes
       * 3D borders now get faded along with the rest of the icon
       * action buttons can now contain sprites (background is correct, and sprite
         is not inverted)
       * various cases where anti-aliasing didn't blend in to the background
         correctly are now fixed
       * conventional and 24-bit specifiers now behave equivalently to each other -
         the same colour specified either way behaves the same when faded, used as
         an EOR colour etc. (greys are now always dithered in 1-bpp modes, even if
         specified in 24-bit)
       * behaviour is now the same whether the Wimp font is the system font or a
         fancy font (amazingly, this wasn't always the case)
       * except for 3D icons, if the icon background matches the work area
         background, it is unaffected by fading - so for example, group boxes can now
         be faded correctly
      
      Switched out AutoHourglass (Mike was concerned about the speed hit).
      
      Corrected *Help syntax strings for On/Off configuration options.
      cb05448e
  8. 10 Mar, 1998 1 commit
    • Ben Avison's avatar
      Main new features in Ursula build so far · 9e035568
      Ben Avison authored
      (some are also available in other builds):
      
      * New icon highlighting scheme - hue rotated 180 degrees, photographic negative,
        darkened 25% - suits Ursula icons better.
      * Release-button window tools compile-time switch turned on.
      * Any "TASK" word cleared on exit from Wimp_OpenWindow, Wimp_GetWindowState,
        Wimp_ForceRedraw and Wimp_CloseDown.
      * Child windows are no longer allowed to be opened inside the icon bar.
      * Message_IconizeAt generation optimised, and no longer calls non-X SWIs.
      * Message_IconsChanged implemented, and switched out on speed grounds.
      * Wimp_ReadSysInfo 15 removed, replaced with (new) Wimp_Extend 11.
      * Backwindows are now segregated from normal windows. A new category,
        foreground windows, are added, and stay above all other windows. (The error
        box template is updated to make it a foreground window.)
      * ROM sprites override RAM sprites (and duplicate RAM sprites are deleted
        during the building of the sprite lookup list, preceding the first sprite
        plot after a sprite pool update).
      * Wimp_ReadSysInfo 16 added, to return sprite area pointers in order of
        priority (Wimp_BaseOfSprites retains the ROM/RAM distinction).
      * Error box code altered:
        + symbolic names used for offsets into tempworkspace
        + error button text buffer enlarged
        + stretched error buttons now shrink back for next use
        + int_flush_opens called at appropriate points to ensure buttons are seen to
          slab in, and to reduce flicker when redisplaying error box at a different
          width (also fixes some redraw bugs)
        + Cancel button given the R6 type border when it will be activated by Return
          (and is therefore moved to the extreme right in such cases)
        + Escape now always selects the second-right button (unless there's only one
          button!) - this also fixes a bug when there's a single user-defined button
        + keypresses in "xxx may have gone wrong" error boxes are now correctly
          interpreted - previously the buttons available in the underlying box were
          being used to determine the effect of keys
        + maximum number of buttons increased from 4 to 8, and the machine no longer
          crashes when the maximum is exceeded
        + window stretches horizontally to keep error message to 7 lines or less
      * Bugfix: opening or creating a window with a minimum x visible area coordinate
        of -1 was leading to any of smearing/flickering/recursive drawing. (This was
        actually due to a failure to recognise which windows' positions had been
        updated.)
      * Features merged in from spinner branch Wimp:
        + support for UpCall_MediaSearchEndMessage added
        + control-termination allowed in upcalls (used to require null-termination)
        + escape character switched to default during error box display, then
          switched back again afterwards
      * GetRectangle filters are now called with (internal) window handle in R10.
      * Autohourglass is deactivated whenever WrchV is invoked. (Also optimised.)
      * Action button bugfixes:
        + action buttons now deselect if the pointer is dragged off and a window tool
          is the pressed before all the buttons have been released
        + action buttons now slab in following a long (autorepeating) press on a
          scroll arrow window tool
      9e035568
  9. 02 Feb, 1998 1 commit
  10. 07 May, 1997 1 commit
  11. 13 Jan, 1997 1 commit
  12. 05 Nov, 1996 1 commit