1. 10 Jul, 2021 1 commit
    • Robert Sprowson's avatar
      [378] Extra switches to set button true colours · 583685c0
      Robert Sprowson authored
      WimpVisualFlags gains -ButtonColour -ButtonWellColour -ButtonHighlightColour to allow a theme designer to set the button/well/pressed colours for R1-R7 slabbing to some other colour, and -ButtonBorderFaceColour -ButtonBorderOppColour -ButtonBorderShallowColour for the outlines.
      The given colours are only used when there is no 'C' validation.
      583685c0
  2. 08 Jul, 2020 1 commit
  3. 29 Jun, 2020 1 commit
  4. 14 Dec, 2019 1 commit
    • ROOL's avatar
      Add copy & paste and drag & drop operations to the Wimp · 0fb14a00
      ROOL authored
      Detail:
        The text in writable icons can now be manipulated using the familiar keyboard shortcuts, or using Drag and Drop in conjunction with any compliant applications.
        Further details are in Doc/DragAndDrop along with information on API extensions which are implemented.
      Admin:
        Submission for Clipboard Support bounty.
      
      Version 5.65. Tagged as 'Wimp-5_65'
      0fb14a00
  5. 18 Mar, 2018 1 commit
    • Robert Sprowson's avatar
      Fix for bad error pointer deleting non existent sprite · 431bcb1a
      Robert Sprowson authored
      Doing *WimpKillSprite _not_there_  had the following behaviour
      
      Priority   | Sprite exists  Sprite doesn't  Sprite is ROM
      Lo then Hi | Deletes        Bad error ptr   Silence
      Hi then Lo | Deletes        Silence         Silence
      
      The bad error pointer was caused by an early return if the high priority pool is the ROM sprites (because the earlier failure to find it in the low priority pools set V, and the early return used TEQ, so the error pointer in R0 was the SpriteOp reason code).
      Proceed to try to look up the sprite, even if there's no hope of deleting it, in order to get a valid error message.
      
      Version 5.61. Tagged as 'Wimp-5_61'
      431bcb1a
  6. 16 Sep, 2016 1 commit
  7. 05 Sep, 2014 1 commit
    • Robert Sprowson's avatar
      Fix for background colour too light on non-bordered icons · e5a8bd07
      Robert Sprowson authored
      Wimp04.s:
       Line 991, a register fumble meant the special case check (when the icon background colour equals the window work area colour) always failed so the icon background was lightened.
       Removed unnecessary ADR.
      Wimp10.s:
       Function getborder() made more readable by use of symbols instead of magic numbers
      Fixes ticket #395 reported by Paul Reuvers.
      
      Version 5.45. Tagged as 'Wimp-5_45'
      e5a8bd07
  8. 20 Jul, 2014 1 commit
    • Robert Sprowson's avatar
      Add definitions of button types 11/14/15 · 2ddbcbf5
      Robert Sprowson authored
      Button type 11 was added in 1988 so is about time it had a symbol to refer to it in the sources. Added & used said symbols.
      Removed 'DoubleIcon' switch, prototype button type 12.
      Built binary identical module, not tested.
      
      Version 5.43. Not tagged
      2ddbcbf5
  9. 01 Mar, 2014 1 commit
    • Jeffrey Lee's avatar
      Implement sprite translation table caching · 9187a060
      Jeffrey Lee authored
      Detail:
        This set of changes allows the Wimp to cache the last-used translation table, and cleans up some instances where translation tables were being generated and then not used
        s/Wimp01 - Expand selecttable_args to store all 8 registers needed by ColourTrans_GenerateTable. Add 1K of space for caching the palette that the cached translation table was generated from. Remove unused spriteX, spriteY variables.
        s/Wimp04 - Split cachespritedata in two. cachespritedata now only caches the basic information, while the new cachespritepixtable rotuine will generate a translation table (shaded/inverted if required). This allows table generation to be deferred until we're just about to render the sprite, ensuring that the table isn't generated only to not be used. Also updated icon sprite rendering to check the sprite is within the graphics window before attempting to render it, allowing removal of one more case where tables can be needlessly generated.
        s/NewSWIs, s/Wimp09 - Change ADR to ADRL
        s/Tiling, s/Tiling3D - Use cachespritepixtable when needed
      Admin:
        Tested on Iyonix, BB-xM, StrongARM RiscPC
      
      
      Version 5.36. Tagged as 'Wimp-5_36'
      9187a060
  10. 30 Nov, 2013 1 commit
    • Jeffrey Lee's avatar
      Add support for *iconspriting of alpha-masked sprites. Fix icon... · 03e27cbe
      Jeffrey Lee authored
      Add support for *iconspriting of alpha-masked sprites. Fix icon shading/inverting to work with true colour sprites.
      
      Detail:
        Options/s/!Default, s/NewSWIs, s/Wimp01:
      
        Updated ROM sprite find code, *IconSprites and Wimp_Extend 13 to understand a new spritefile suffix.
        If the Wimp detects that RISC OS Select style alpha masked sprites are supported, and we're not using the mode 23 sprites, then the code will enable support for alpha masked sprites of the form !SpritesA1, !SpritesA2, !SpritesA, etc. Alpha-masked sprites are only looked for when looking for square pixel sprites or just before looking for the default sprites. This means the full search pattern for (e.g.) a !Sprites21 mode would be as follows:
      
        !Sprites21  (original mode)
        !SpritesA2  (next squarer mode, alpha sprites)
        !Sprites22  (next squarer mode)
        !SpritesA   (default alpha sprites)
        !Sprites    (default sprites)
      
        Like with !Sprites11 support, this feature can be toggled off via the SpritesA option if necessary.
      
        s/Wimp01, s/Wimp04:
      
        Updated icon plotting code (wimp_SpriteOp_putsprite and calculateinverse) to allow true colour sprites/icons to be rendered shaded/inverted.
        For this to work the Wimp needs a version of SpriteExtend which supports colour mapping (specifically it checks for the relevant ROOL version number).
        The colour mapping function which is used to build the translation tables used for shading/inverting palettised sprites is too slow to be sensibly used on a per-pixel basis, so the first time a shaded/inverted true colour sprite is requested the Wimp will generate a set of lookup tables which can be used by a much simpler colour mapping routine.
        To keep memory usage down these lookup tables only use 4K colours each; however the quality isn't always that great and so this may need revising in future.
      
      Admin:
        Tested on BB-xM
      
      
      Version 5.34. Tagged as 'Wimp-5_34'
      03e27cbe
  11. 08 Oct, 2013 1 commit
    • Jeffrey Lee's avatar
      Improvement to previous commit · c5074988
      Jeffrey Lee authored
      Detail:
        s/Wimp04, s/Wimp10 - cachespritedata & cachetoolspritedata now force SpriteExtend to be used if the sprite has an alpha channel, to ensure plotting an alpha'd sprite into an alpha'd framebuffer performs blending instead of potentially skipping it (and copying the sprite alpha channel to the screen alpha channel)
      Admin:
        Builds, but untested
      
      
      Version 5.33. Retagged as 'Wimp-5_33'
      c5074988
  12. 07 Oct, 2013 1 commit
    • Jeffrey Lee's avatar
      Fix logic which decides whether to plot sprites using the Kernel or... · b5280514
      Jeffrey Lee authored
      Fix logic which decides whether to plot sprites using the Kernel or SpriteExtend to take into account the new sprite modes
      
      Detail:
        s/Wimp01 - Add NColour mode variable to the list of variables cached for the current screen mode. Add modeflags & ncolour to the sprite & tool sprite variables.
        s/Wimp04, s/Wimp10 - Update cachespritedata and cachetoolspritedata to look at the modeflags, ncolour and alpha mask flag when deciding if sprite_needsfactors should be set or not (i.e. whether the code ultimately uses OS_SpriteOp 52 or 34). This should allow the Wimp to correctly detect if a sprite can safely be rendered by the Kernel or not (except for double pixel vs. non-double pixel - but presumably nobody's using double pixel mode sprites for icons/tool sprites, otherwise it would be fixed by now?)
        s/Wimp04 - Add an extra safety check to icon text rendering after a crash was seen when calling Wimp_PlotIcon outside of a redraw loop
      Admin:
        Tested on BB-xM
        Fixes problem reported on forums with 32bpp, alpha-masked sm!Netsurf icon vanishing from filer when viewed in 32bpp modes
        https://www.riscosopen.org/forum/forums/3/topics/309?page=4#posts-25995
      
      
      Version 5.33. Tagged as 'Wimp-5_33'
      b5280514
  13. 01 Jun, 2013 3 commits
    • Robert Sprowson's avatar
      Add flexible scheme to allow non-grey/opaque toolsprites · 2137a784
      Robert Sprowson authored
      The Wimp can now accept toolsprite sets which have precalculated (non default) colour translation tables supplied by the designer.
      This allows the link between window template colour and displayed tool colour to be reestablished when the tools aren't grey (previously, the Ursula Wimp would only tint greys).
      For full design details see Doc/ToolTables.
      An example test set, TestO/TTTTest is provided. This is the 'Newlook' set but with a splotch in the corner of each sprite which is then replaced by the hex of the Wimp colour being requested.
      Detail:
       Wimp01.s: New workspace requirements
       Wimp04.s: Pull out the RGB to greyscale function so it can be used elsewhere
       Wimp10.s: New tool table support code
      
      Fixes ticket #323.
      Also introduces a disc variant (with the extra EX0 EY0 resolution) of the 'Steel' theme, thus making it generally available.
      
      Version 5.30. Tagged as 'Wimp-5_30'
      2137a784
    • Robert Sprowson's avatar
      Don't try freeing the tool pixel trans table twice · 1f206e86
      Robert Sprowson authored
      In deallocptrs a call to freetoolarea is made, then much the same code repeated inline.
      Excess code deleted.
      
      Tagged as Wimp-5_30-pre2
      1f206e86
    • Robert Sprowson's avatar
      Fix for corrupt register in pushfontstring with password-style substitution · 752b3a8b
      Robert Sprowson authored
      When CnP=TRUE but UTF8=FALSE the code path through pushfontstring for icons using the 'D' validation string would use R11 as a temporary without having preserved it (the UTF8 case preserves it because it uses R11 as a bitmask of substitutes).
      Changed to always preserve R11, the routine is so huge one extra pushed register isn't going to slow it down measurably.
      Adjusted options files now this combination is safe.
      
      Tagged as Wimp-5_30-pre1.
      752b3a8b
  14. 21 May, 2013 1 commit
  15. 18 May, 2013 1 commit
    • Robert Sprowson's avatar
      Fix for missing window gadgets when no tool sprites are loaded · 18031756
      Robert Sprowson authored
      When 'outlinefont' is enabled, the drawicon_system function used to plot the close/back/resize etc icons tries to do so from the currently selected outline font.
      This usually results in various top bit set characters inappropriately being shown.
      Now, when there are no tool sprites loaded the gadgets are forced to be plotted in the system font (where the Wimp has carefully redefined the font), but the remainder of the desktop (eg. the title bar, user text) stays in the selected desktop font.
      
      Version 5.28. Tagged as 'Wimp-5_28'
      18031756
  16. 11 May, 2013 1 commit
  17. 03 May, 2013 1 commit
    • Robert Sprowson's avatar
      Slacken pointer checks · 42e284a3
      Robert Sprowson authored
      The pointer comparison checking required when running in a system with > 64M memory was tightened up from Wimp-4_75 to Wimp-4_76, but to allow the module to target pre RISC OS 5 systems an option to relax those checks is required.
      Each check has been revisited and where appropriate demarked with a "AcceptLoosePointer" macro, which just remaps the pointer into the stricter form and carries on. In the strict checking case, the macro reduces to nothing.
      
      Detail:
      Add AcceptLoosePointers switch.
      Retire singular use of StrongARM switch (calling XOS_SynchroniseCodeAreas is harmless pre StrongARM anyway).
      Rename Ursula_RPC options to RO400.
      Put duplicate documentation in the attic.
      Allow -2 or -1 as the iconbar handle in Wimp_ResizeIcon (ticket #203).
      Tighten up the list terminator check in the DebugMemory switch of Memory.s
      
      Tested on RISC OS 3.10 (emulated), 3.50, 3.60, 3.70, 4.02.
      
      Version 5.24. Tagged as 'Wimp-5_24'
      42e284a3
  18. 13 Apr, 2013 1 commit
    • Robert Sprowson's avatar
      Fix bug in Wimp_WhichIcon · e25bd2b7
      Robert Sprowson authored
      When matching an icon on the iconbar the window is initially matched correctly, but the "is this the right task" filter step was trying to compare the handle with -1. The result was that you would get the first match for any iconbar icon rather than a match for *your* iconbar icon.
      Unrelated: Tiling.s/Iconbar.s add a couple of comments and use symbols instead of magic numbers.
      Tested with a quality 3 line BASIC program, no longer returns icon #0 all the time.
      
      Version 5.23. Tagged as 'Wimp-5_23'
      e25bd2b7
  19. 28 Mar, 2013 1 commit
    • Robert Sprowson's avatar
      Add support for wide translation tables for window tool furniture · cd1be707
      Robert Sprowson authored
      With the introduction of 16bpp/32bpp modes it became possible to request tables from ColourTrans which used > 1 byte per colour, but the Wimp wasn't using this extension. Therefore tool sprites designed in 8bpp or less would be quantised horribly when plotted in a 16bpp or 32bpp mode.
      The Wimp now requests and plots with a wide table, and to avoid thrashing ColourTrans so much with the prevalence of individually paletted icon sprites, keeps the table seperately to the icon sprites ones. At worst (in 32bpp) this uses an extra 256x4 bytes of RAM.
      Trace.s: Split out the tracing routines from Wimp10 as it was getting a bit big.
      Tiling.s: Namespace change for the icons versus tools distinction. Removed some unnecessary PC+8/PC+12 confused NOPs.
      Tiling3D.s: Namespace change for the icons versus tools distinction.
      Wimp01.s: New set of variables to track the tool translation tables separately. Various jiggling to keep ADRs in range.
      Wimp02.s: Namespace change. Remove some double handling in Wimp_SetColourMapping.
      Wimp04.s: Namespace change. Made factor rationalisation common to both the icon and tool grinding code. Removed dual use of cachespritedata for both icons and tools. The tintfunc moves to Wimp10. Service_InvalidateCache confusion resolved by adding a new flag to remember that the tools need regenerating rather than just marking the tool list as missing (which subsequently got restored in Tool_SpriteOp without actually doing any palette work.
      Wimp10.s: Label tools_area renamed as it was immensely confusing to have that (which was actually holding the RMA allocation of the tool_list) and tool_area (which contains the sprite area) hanging around. Changed references to use tools-only cachetolspritedata routine. Added 'wide' flags to sprite op and colour trans calls. Tool_SpriteOp changed to actually regenerate the colour tables when they're known invalid (previously the tools list pointer was merely restored and no colour tables used). Trace functions extracted. Resolved confusion as to what recache_tools_trans and recache_tools_trans2 should be doing.
      
      Tested with 4bpp "NewLook" sprites in 4bpp/8bpp/16bpp/32bpp and 8bpp smooth greyscaled "Steel" tool sprites in same modes.
      Also ran a task window doing repeated Service_InvalidateCache calls while monitoring the RMA for leaks.
      Generally navigated around some directories to ensure that inverse icons (during double click) and filer windows (with individually paletted sprites) were being rendered.
      
      Version 5.20. Tagged as 'Wimp-5_20'
      cd1be707
  20. 14 Jul, 2012 1 commit
  21. 04 Dec, 2010 1 commit
  22. 10 Sep, 2008 1 commit
    • Steve Revill's avatar
      Fixed misalignment of WimpWriteDir code. · 320528b2
      Steve Revill authored
        Fixed corruption of table with characters to be mapped to WimpSymbol.
      Detail:
        There was an ALIGN statement missing just above the code for WimpWriteDir
      
        The table used to map characters to the WimpSymbol font had become corrupted
        which prevented the mapping from working correctly. This resulted in keyboard
        shortcuts disappearing in menus when using fonts that don't have definitions
        for the required characters, in particular the up-arrow representing shift.
      Admin:
        Tested on RO 5.11
      Author:
        Fred Graute
      
      Version 5.02. Tagged as 'Wimp-5_02'
      320528b2
  23. 04 Feb, 2003 1 commit
  24. 17 Jan, 2003 1 commit
    • Ben Avison's avatar
      Menu bugfixes and sprite variation support. · 3ed6d938
      Ben Avison authored
      Detail:
        * Adjust clicking on menu items was leading to Message_MenusDeleted being
          broadcast, resulting in incorrect behaviour in many applications.
        * Sprite-only menu items (eg !Draw's line pattern submenu) now highlight
          correctly when tiled menus are configured.
        * Added Wimp_Extend 13, which works out the appropriate resolution suffix
          for a given sprite pathname - required since Sprites11 support needs
          an iterative approach. This supercedes Wimp_ReadSysInfo 2.
        * *IconSprites now tries prefixing the last element of its path argument
          with "<Wimp$IconTheme>".
      Admin:
        Tested on Tungsten.
      
      Version 4.85. Tagged as 'Wimp-4_85'
      3ed6d938
  25. 05 Dec, 2002 1 commit
    • Ben Avison's avatar
      A few bugfixes, and some muching around with WimpVisualFlags that I did ages... · d2f6d63a
      Ben Avison authored
      A few bugfixes, and some muching around with WimpVisualFlags that I did ages ago but hasn't made it into a build yet.
      
      Detail:
        * Deleting icon 0 in a window that had no windows would rotate the
          contents of word &00000010 by 16 bits. This had the effect of causing
          lazy task swapping to blow up with an "undefined instruction" error.
        * Setting the caret to a byte position beyond the end of an icon's text
          would (a) loop indefinitely if the alphabet is UTF-8, or (b) data abort
          for any other alphabet. This was due to the code trying to determine the
          number of characters in the string, and ignoring the terminator;
          skipcharR would never advance far enough to satisfy the loop in UTF-8,
          in other alphabets it would advance as far as necessary, leading to the
          later code to try to step a huge number of characters through the
          pushfontstring copy of the text, running off the top of the SVC stack
          (which is mapped out on Tungsten, previously it abutted the system heap,
          so no ...
      d2f6d63a
  26. 28 Nov, 2002 1 commit
  27. 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
  28. 30 Oct, 2002 1 commit
    • Ben Avison's avatar
      Merged in RISC OS 4.02 changes (including ROM patches). Also som bugfixes. · 3b1e336c
      Ben Avison authored
      Detail:
        RISC OS 4 changes:
        * Font blending for desktop font (based on NC code, but now configurable)
        * 3-D window/menu/iconbar borders
        * Textured menu backgrounds
        * Loss of rubout box in unfilled text+sprite icons
        * *WimpVisualFlags controls various aspects of cosmetic changes above
        * Iconise button "slot" glyph slightly shorter (but only adopted in the RO400
          Resource directory)
        * Command window has front-window flag set
        * Byte at +39 of the window block has gained two new flag bits:
            bit 2 set => this window must never be given a 3D border
            bit 3 set => this window must always be given a 3D border
            (note that ResEd erroneously created windows with both bits set,
            this case is treated as though both bits were clear)
        * Another two colour specifiers on the end of C validation string command
          for icons controls the foreground and background colours to be used when
          the icon is selected
        * Pointer shape is correctly reprogrammed by the creation of icon
          underneath it
        * Full stops in writable icons are treated the same as spaces from the
          point of view of cursor navigation
        * spritesize routine returns a size of 0 if the sprite didn't exist
          (probably fixes some rendering problems)
        * Adjust-click on back icon brings window to front
        My changes:
        * DeleteRight turned on
        * Icon bar title background is set to default in all resource sets (avoids
          translation table recalc)
        * Error box title now cream across all resource sets
        * RISC OS 4 changes made 32-bit compatible / high addresses safe
        * Undocumented FullIconClipping option disabled
        * Command help made consistent for internationalised and non-
          internationalised builds
        * WimpVisualFlags defaults made sensible
        * Menu side width affected by ThreeD option at *run* time not assemble time
        * Right-clicking on menus with writable items no longer data aborts
        * Auto-opened menus are now at RHS of current icon (matches RISC OS 3.1)
        * Colour menus were knackered unless menu tiling was enabled
        * Fixed a bug whereby adding messages to a task that wanted all messages
          actually caused it to lose all other messages. The RISC OS 4 fix for
          this didn't work
        * Fixed bug introduced in version 4.76: tasks that wanted no messages got
          all of them
        * Autoscrolling is updated every 8 cs rather than every 12 cs
        * Added menu texture to pre-RISC OS 4 sprites files
      Admin:
        Tested on Tungsten.
      
      Version 4.78. Tagged as 'Wimp-4_78'
      3b1e336c
  29. 25 Oct, 2002 1 commit
    • Ben Avison's avatar
      Memory-related stuff. · d085c3c9
      Ben Avison authored
      Detail:
        * Default UpCall handler is installed when an application is paged out,
          so there is no danger of it being called by naughty people issuing
          UpCalls in the background.
        * AMBControl builds now sit on Service_MemoryMoved so that they can issue
          Message_SlotSize when the kernel has resized the application slot
          independently (eg because the memory was needed to grow a dynamic area,
          and nobody objected via Service_Memory or UpCall_MovingMemory).
        * Medusa-onwards builds no longer request Service_ValidateAddress, because
          we're not managing the free pool any more, and the code that was here
          only called an ineffectual SWI!
        * SafeChangeDynamic wasn't setting the CAO high enough to be free of big
          application slots; now it points it at itself.
        * The free pool wasn't being shrunk/grown enough on initfirsttask /
          closelast. It still can't do by more than 1GB without stiffing - bug in
          kernel?
        * Bugs in top-bit-safe changes fixed: dragbox resizing was broken, Escape
          state wasn't being restored for new tasks.
      Admin:
        Tested on high-ROM/stack, 48M-appslot Tungsten.
      
      Version 4.77. Tagged as 'Wimp-4_77'
      d085c3c9
  30. 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
  31. 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
  32. 20 Oct, 2000 1 commit
    • Ben Avison's avatar
      Shock horror - a new feature for the Wimp! And some housekeeping too. · d7d18819
      Ben Avison authored
      Detail:
        * Added new functionality for menu trees: submenus can now be opened by
          clicking on their parent menu item. This is particularly aimed at
          touchscreen devices, and is configurable via the new *Configure keyword
          WimpClickSubmenu.
        * Change to the menu inactivity timeout behaviour after auto-opening of
          submenus (either by hovering over the parent menu item or by the new
          click-to-open functionality): although all hover operations are still
          ignored for this period, any click operations *will* now be obeyed.
        * Corrected numerous misleading comments in the menu handling code.
        * Added some suspiciously absent ALIGNs in the *Configure keyword handlers.
        * Uses new ASCII case-forcing macros so there are now fewer warnings
          printed during assembly (and it should run faster now too).
        * Added an AREA directive so that objasm's -ABS switch is no longer needed.
        * Standardised ErrMem token across all Messages files that use English.
      Admin:
        Tested on a desktop machine.
        Requires HdrSrc 1.06.
      
      Version 4.57. Tagged as 'Wimp-4_57'
      d7d18819
  33. 15 Jun, 2000 1 commit
    • Ben Avison's avatar
      A number of bugfixes. · 45a23f3f
      Ben Avison authored
      Detail:
        * The character codes returned from the Key_Pressed event were incorrect
          when the caret was in a writeable icon with Kd in the validation string,
          and either (a) the caret was not at the start and Delete or Backspace were
          pressed, or (b) the caret was not at the end and Copy was pressed. (This
          was because, in these cases, the writeable icon code exited through
          passbacktouser rather than exitprocess; the former expects the keycode to
          be preserved, but the UTF-8 extensions to key handling were corrupting it.)
          Shift-Copy, Ctrl-Copy and Ctrl-U were not affected.
        * The various checkhandle routines now preserve flags again, as they did
          before 32-bit support was added. This is crucial in a number of spots,
          because the flags are based upon a test of handle, and checkhandle
          corrupts the handle register. This fixes at least two bugs: you can now
          send messages to menus or dialogue boxes again, and Wimp_RedrawWindow
          called without a Redraw_Window_Request is back (so for example, the
          Desktop Welcome screen now works again).
        * Fixed a bit of errant 26-bitism in the multiple-window iconise code.
      Admin:
        Tested briefly on an Ursula build.
      
      Version 4.52. Tagged as 'Wimp-4_52'
      45a23f3f
  34. 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
  35. 06 Apr, 2000 1 commit
  36. 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
  37. 09 Dec, 1998 1 commit
    • Ben Avison's avatar
      Bugfix: if a >=256-colour sprite icon is plotted, and then a shaded and/or... · b2c3268d
      Ben Avison authored
      Bugfix: if a >=256-colour sprite icon is plotted, and then a shaded and/or selected text-plus-sprite icon is plotted, where the sprite in the latter icon is unspecified (no validation string, or no 'S' command), then a SpriteOp call from within ColourTrans data aborts. This caused aborts when certain rectangles of the ImageFS options window were redrawn.
      
      Version 4.13. Not tagged
      b2c3268d
  38. 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