1. 23 Jan, 2003 1 commit
    • Ben Avison's avatar
      Bugfixes. · d8fd0994
      Ben Avison authored
      Detail:
        * All tasks have erroneously been flagged as receiving all messages since
          version 4.78. Correct behaviour is now restored, and the previous
          fix (to ignore Wimp_AddMessages calls for tasks that already wanted
          all messages) should be unaffected.
        * Check for "P"-validation icon creation under the pointer was broken
          in three ways, now works.
        * The optimisation of multiple Message_SlotSize calls is overenthusiastic,
          and can lead to some messages being lost if the slot size is changed
          (including as a side-effect of OS_ChangeDynamicArea) during
          high-priority pollword-nonzero handlers or message handlers for
          Message_SlotSize - in both situations, a message block that may have
          already been delivered to some tasks is still present at the head of
          the message list. Now, the optimisation always ignores the message at
          the head of the message list.
      Admin:
        Tested on Tungsten.
      
      Version 4.86. Tagged as 'Wimp-4_86'
      d8fd0994
  2. 31 Oct, 2002 1 commit
    • Ben Avison's avatar
      Bugfixes. · 25c8889b
      Ben Avison authored
      Detail:
        * Message list pointers passed into Wimp_Initialises that didn't follow
          Wimp_StartTask used to be corrupted
        * Stack imbalance in ExitPoll if SWI Portable_Speed didn't preserve flags
        * 32-bit mode test speedups
        * Builds without RO4 option set
      Admin:
        Tested on Tungsten and Risc PC.
      
      Version 4.79. Tagged as 'Wimp-4_79'
      25c8889b
  3. 23 Oct, 2002 1 commit
    • Ben Avison's avatar
      Given a good thrashing. · c8e139f1
      Ben Avison authored
      Detail:
        All pointers passed to the Wimp (mode selectors, menus, sprite areas,
        palettes, pollwords, validation strings, message lists, routines etc etc)
        in any of its APIs can now be anywhere within the 32-bit address range.
        In general, whenever "<= 0" was accepted as a null condition, the value
        must now be either 0 or -1. It should also be tolerant of system memory
        areas (supervisor stack and RMA) being in the top half of memory.
        Also:
        * Default next slot now a build option - Ursula builds (eg Tungsten) use
          1024K instead of 640K
        * Ursula builds no longer have a build variant in the help string
        * Autosenses ROM location
        * CR-LFs in *Configure messages replaced with LF-CRs
        * Added Iyonix resources (currently based on Morris4)
        * Morris4 sprites files have gained file_lxa, small_lxa, file_unf,
          small_unf and lo!help sprites
        * Ursula sprites files have gained lo!help sprites
        * *WimpSlot can take memory sizes in megabytes or gigabytes
      Admin:
        Tested on a "traditional" memory-mapped Tungsten.
      
      Version 4.76. Tagged as 'Wimp-4_76'
      c8e139f1
  4. 14 Sep, 2001 1 commit
    • Ben Avison's avatar
      Commit of my Wimp changes that have trickled in over the last four months. · 69d67881
      Ben Avison authored
      Detail:
        * The pointer passed to Wimp_CommandWindow can now be top-bit-set.
        * Bugfix to Wimp_CommandWindow: if the current task was uninitialised,
          or initialised as a non-multitasking task, then although entering the
          CommandWindow would restore escape condition generation to the way it
          was before entering the desktop, exiting the CommandWindow did not
          reset escape condition generation to the default desktop state (which is
          for escape condition generation to be disabled).
        * Escape condition generation is disabled for the duration of SWI
          Wimp_ReportError (instead of setting the default escape key for the
          duration). The previous state is restored on exit.
        * Added a minimal environment for the service call
          Service_ErrorButtonPressed, so that claimants can call OS_Exit without
          leaving the global Wimp error box in an undefined state.
        * In the Wimp_Poll loop, if there are no events to deliver to any tasks
          (not even null events), then rather than sitting in a SVC mode loop,
          the Wimp now triggers transient callbacks. This is particularly
          important in order not to halt all activity in the Internet stack.
          The option LeaveOS can be set to make the Wimp use the as-yet
          unimplemented SWI OS_LeaveOS for this purpose; this is currently unset
          for all builds.
        * By (persistent) request, reinstated the old iconbar popping code,
          though it is currently a build switch that is turned off for all builds.
      Admin:
        Tested on a Risc PC.
      
      Version 4.69. Tagged as 'Wimp-4_69'
      69d67881
  5. 29 May, 2001 1 commit
    • Ben Avison's avatar
      Minor fixes, some of which have been waiting to be committed for a while. · 6fb60dbf
      Ben Avison authored
      Detail:
        * Command line buffer for Wimp_StartTask (and anything that uses it,
          eg *WimpTask) increased from 256 bytes to 1024 bytes.
        * Top-bit-set message list pointers passed to Wimp_Initialise and
          Wimp_RemoveMessages now work (there was never a problem with
          Wimp_AddMessages!)
        * The fix for top-bit-set application name pointers in Wimp 4.65 actually
          only fixed lookup for "<application> may have gone wrong" lookups. They
          now work correctly in error window title construction, and when
          constructing an application sprite name if flag bit 8 is clear.
        * A pointer value of 0 is now accepted in addition to -1 for an
          "<application> may have gone wrong" lookup - this brings it into line
          with the other two places where the application name pointer is
          referenced.
        * When constructing an error window title, the Wimp would skip any leading
          backslash character. Now it does so when constructing "<application> may
          have gone wrong" too - this is a simple way to disable the application
          sprite in the error window.
      Admin:
        Error box behaviour actually tested this time!
      
      Version 4.67. Tagged as 'Wimp-4_67'
      6fb60dbf
  6. 23 Mar, 2001 1 commit
    • Ben Avison's avatar
      Fixed a number of long-standing but low priority bugs in the Wimp. · 223e02a8
      Ben Avison authored
      Detail:
        * Any top-bit-set sprite area pointer in a window definition was treated
          as a null pointer, and any top-bit-set program name pointer in
          Wimp_ReportError was similarly treated as a null pointer.
        * For 24-bit window colour builds, when the Wimp drew a title bar with
          the input focus, and there were sprite icons in the previously redrawn
          window, and the most recently plotted icon sprite was unpaletted and not
          selected or inverted, then the translation table for the icon sprite (in
          the RMA) would leak. I suppose that's what I get for re-using a bit of
          dead code without fully working out why it was bypassed in the first
          place...
        * The key handling code used to be over-eager to read bytes from the
          keyboard buffer: it would attempt to read up to 6 bytes ahead to ease
          the recognition of UTF-8 character sequences. This could cause problems,
          in particular if F12 was one of those 6 bytes, then any following bytes
          would be queued for use as Wimp keypresses, rather than being left in
          the keyboard buffer for use by ShellCLI. The Wimp now analyses the first
          byte read to make a sensible estimate of how many bytes it needs to read
          ahead.
        * Select-dragging (including Select-resizing) of windows with panes used
          to soak up all the processor time. This was because when the task
          received an Open_Window_Request, it would re-open the pane in front of
          the main window, but this would cause the Wimp to believe that it had to
          re-open the main window at the front of the stack again when Wimp_Poll
          was next called. The problem has been fixed so that the Wimp now
          examines all the windows in front of the drag window to see if they have
          the pane window flag bit set, and doesn't reshuffle the windows if they
          all do. (Actually, the test is performed such that foreground windows
          in front of the drag window are also ignored.)
      Admin:
        Tested on a desktop machine.
      
      Version 4.65. Tagged as 'Wimp-4_65'
      223e02a8
  7. 25 Apr, 2000 1 commit
    • Kevin Bracey's avatar
      Made 32-bit compatible. · 1bb3b9d0
      Kevin Bracey authored
      Detail:
        Lots of little changes throughout a lot of source.
      Admin:
        Appears to work - not stress tested with things like lots of tasks, big
        transfers, and all the other things that tend to go wrong.
      
      Version 4.47. Tagged as 'Wimp-4_47'
      1bb3b9d0
  8. 29 Mar, 2000 1 commit
    • Ben Avison's avatar
      Various little changes. · 17fd99f3
      Ben Avison authored
      Detail:
        * New STB Sprites, Templates and Tools files imported, based upon the
          Lazarus UI rather than the old STB UI.
        * STB build now includes WIMPSymbol.
        * No longer attempts to use WIMPSymbol font in UTF8 builds which didn't
          register the font in ResourceFS.
        * Simplified Resources directories by assigning only a single pair of
          Messages files to each locale, rather than for each UI directory within
          each locale directory. The only code change required is to make the Wimp
          error box always use the "Continue" token for NC/STB builds, rather than
          using one of "OK" and "Continue", as with desktop builds.
      Admin:
        Not tested.
      
      Version 4.42. Tagged as 'Wimp-4_42'
      17fd99f3
  9. 29 Apr, 1999 1 commit
  10. 25 Mar, 1999 1 commit
  11. 27 Nov, 1998 1 commit
    • Ben Avison's avatar
      Another bugfix to and a new feature of NC error box code: · 11eaef5f
      Ben Avison authored
      * If pointer was hidden-until-next-mouse-move, the act of confining the mouse
        to the error box window no longer causes it to be redisplayed.
      * In error boxes, the pointer and the IconHigh highlight are now initially
        positioned over the rightmost (default) button. There is one exception to
        this rule: when "Next task" is clicked in a Watchdog window, the pointer
        stays over the "Next task" button.
      
      Version 4.13. Tagged as 'Wimp-4_13'
      11eaef5f
  12. 26 Nov, 1998 1 commit
  13. 09 Nov, 1998 1 commit
    • Ben Avison's avatar
      Optimisation to new WimpSymbol substitution code: in icons containing fonts... · af05965b
      Ben Avison authored
      Optimisation to new WimpSymbol substitution code: in icons containing fonts other than the desktop font, the substitution table is only calculated when a symbol character is encountered.
      
      Embryonic cut-n-paste support introduced (currently in desktop builds only):
        * workspace is allocated and initialised;
        * extended Wimp_GetCaretPosition implemented;
        * pushfontstring adapted to allow insertion of arbitrary control sequences in
          font strings (to allow selected text to be plotted in inverted colours).
      Inverted, unfilled text icons now work properly again in <256-colour modes.
      Reworked NC error box code: see Doc.IconHigh.
      
      Version 4.11. Tagged as 'Wimp-4_11'
      af05965b
  14. 23 Oct, 1998 1 commit
    • Ben Avison's avatar
      Adapted assembly process so that the choice of Options file (previously based... · 26369fa5
      Ben Avison authored
      Adapted assembly process so that the choice of Options file (previously based purely on the "System" variable) can be overridden by passing "OPTIONS=foo" as an argument to either MkRom, or to amu/amu_machine directly, or indirectly, by specifying it in the components file for a build. To accomplish this, it was necessary to switch from using aasm to objasm - hence the large number of source files affected in this commit.
      
      Version 4.09. Tagged as 'Wimp-4_09'
      26369fa5
  15. 20 Oct, 1998 1 commit
    • Ben Avison's avatar
      UTF-8 support from previous version switched in; additional alphabet-... · 2c759475
      Ben Avison authored
      UTF-8 support from previous version switched in; additional alphabet- conditional support added as follows:
      
      * Correctly converts character index returned from Font_FindCaret into byte
        index into raw string.
      * Left-arrow, right-arrow, delete-left and delete-right now act as far as
        the next character boundary, instead of to the next byte.
      * Menu item text justification works again (it relies on overwriting spaces
        with hard space characters, which are two-byte characters in UTF-8).
      * General key handling code has been rewritten. The Wimp now has three
        internal key input buffers - one each for taking keyboard-generated,
        task-generated, and function-key-generated strings. Each input buffer is
        processed in chunks of one character, rather than one byte; malformed
        UTF-8 characters are rejected, so tasks don't have to worry about them
        (simplifying their character-handling code). There is also a key output
        buffer, to ensure that (UTF-8) sequences of Key_Pressed events are not
        broken up.
      * As a result of the above, multiple calls to Wimp_ProcessKey are now
        possible between calls to Wimp_Poll. Previously, this resulted in bytes
        getting jumbled up - making it useless for input of UTF-8 characters.
      * Multi-byte characters are inserted into writeable icons in one go, so you
        don't see a brief flicker of the "malformed character" symbol while the
        initial bytes are being inserted.
      * Multi-byte characters that don't entirely fit in a writeable icon buffer
        are not inserted at all.
      * A new validation string command ("U") can limit the contents of a
        writeable by number of characters, instead of bytes. This will hide the
        character sizes from the user interface.
      * Allowable characters (validation string command "A") now works on Unicode
        characters and character ranges.
      * Various other minor bugs are fixed (Wimp_ProcessKey 13 can activate a
        writeable menu item, Shift-arrow keys are always consistent in firing off
        Key_Pressed events, etc.)
      * Password icons supported: one symbol is displayed for each character
        (instead of for each byte); the display character (validation string
        command "D") can be any UTF-8 character; correctly displays the caret
        after set-caret-by-index calls, even though characters in the processed
        string are different width to those in the raw string, in password icons.
      
      Other changes:
      * The border around NC-style error boxes is resized when the error window
        is grown or shrunk.
      * Messages, CmdHelp and Template files made consistent across resource
        directories, including support for all Ursula features.
      * ShrinkableAreas turned back on in System=RCA builds.
      * User interface features of desktop OS builds standardised.
      
      Version 4.06. Tagged as 'Wimp-4_06'
      2c759475
  16. 07 Oct, 1998 1 commit
  17. 30 Sep, 1998 1 commit
    • Kevin Bracey's avatar
      Spinner branch merged. · 818104e1
      Kevin Bracey authored
      Changed to use srccommit.
      All conditionals on "Version" removed.
      
      Version 4.01. Tagged as 'Wimp-4_01'
      818104e1
  18. 18 Sep, 1998 1 commit
  19. 16 May, 1997 1 commit
  20. 07 May, 1997 1 commit
  21. 13 Jan, 1997 1 commit
  22. 05 Nov, 1996 2 commits