- 18 May, 2013 1 commit
-
-
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'
-
- 11 May, 2013 1 commit
-
-
Robert Sprowson authored
Substitute magic numbers through the code. Squash some UAL warnings from missing #'s in Wimp10.s Version 5.27. Tagged as 'Wimp-5_27'
-
- 03 May, 2013 1 commit
-
-
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'
-
- 13 Apr, 2013 1 commit
-
-
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'
-
- 28 Mar, 2013 1 commit
-
-
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'
-
- 14 Jul, 2012 1 commit
-
-
Jeffrey Lee authored
Detail: s/Wimp04 - in SWIWimp_ReadPixTrans, check whether we've got a pixtable before trying to read from it Admin: Tested on BB-xM with high processor vectors Although I was unable to reproduce the issue myself, judging by the address given in the bug report this should fix an abort when dragging certain files in the filer See here for bug report: http://www.riscosopen.org/forum/forums/2/topics/226?page=2#posts-13500 Version 5.17. Tagged as 'Wimp-5_17'
-
- 04 Dec, 2010 1 commit
-
-
Jeffrey Lee authored
Detail: s/Wimp04 - The checkhandle* routines now checks that the window pointer is word aligned before attempting to load any data from it. This prevents alignment faults on ARMv6+, and should result in more accurate sanity checks in general. Admin: Tested on rev C2 beagleboard. Fixes issue reported on forums: http://www.riscosopen.org/forum/forums/5/topics/517 Version 5.10. Tagged as 'Wimp-5_10'
-
- 10 Sep, 2008 1 commit
-
-
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'
-
- 04 Feb, 2003 1 commit
-
-
Ben Avison authored
Version 4.88. Tagged as 'Wimp-4_88'
-
- 17 Jan, 2003 1 commit
-
-
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'
-
- 05 Dec, 2002 1 commit
-
-
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 ill effects were observed). * Keyboard shortcuts are now correctly positoned when 3D menus are selected. * Corrected spelling of "dialogue" in *WimpVisualFlags help. * Changed *WimpVisualFlags so that no parameters gives RISC OS 3 behaviour, and -All gives default RISC OS 4 behaviour. (Previously, font blending was enabled in both cases, unless explicitly disabled by an additional -NoFontBlending switch.) This required a sense change in the font blending switch: -FontBlending now enables font blending. -NoFontBlending is still accepted without error, but is ineffectual (since the no-options state upon which it acts already has font blending disabled). * Default setting is now as though *WimpVisualFlags -RemoveIconBoxes had been executed. (In practice, this will not be noticeably different from previous Tematic versions, see below.) * The state -RemoveIconBoxes switch was previously assumed always set - now, if it is not specified, you get the old RISC OS 3 behaviour back. Admin: Tested on Tungsten. Version 4.82. Tagged as 'Wimp-4_82'
-
- 28 Nov, 2002 1 commit
-
-
Kevin Bracey authored
Fix to Wimp_DeleteIcon stiffing the machine when trying to delete an icon which doesn't yet exist.Now fails gracefully. Import of another set of awful icons in the Iyonix resources. Tweak to the number of CLI parameters accepted by * commands. Version 4.80. Tagged as 'Wimp-4_80'
-
- 31 Oct, 2002 1 commit
-
-
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'
-
- 30 Oct, 2002 1 commit
-
-
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'
-
- 25 Oct, 2002 1 commit
-
-
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'
-
- 23 Oct, 2002 1 commit
-
-
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'
-
- 23 Mar, 2001 1 commit
-
-
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'
-
- 20 Oct, 2000 1 commit
-
-
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'
-
- 15 Jun, 2000 1 commit
-
-
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'
-
- 25 Apr, 2000 1 commit
-
-
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'
-
- 06 Apr, 2000 1 commit
-
-
Ben Avison authored
Version 4.44. Tagged as 'Wimp-4_44'
-
- 29 Mar, 2000 1 commit
-
-
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'
-
- 09 Dec, 1998 1 commit
-
-
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
-
- 27 Nov, 1998 1 commit
-
-
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'
-
- 09 Nov, 1998 1 commit
-
-
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'
-
- 29 Oct, 1998 1 commit
-
-
Ben Avison authored
* Deprecated Font SWIs no longer used * Height of UTF-8 strings now calculated correctly * Fancy fonts in icons are now aligned the same as outline desktop-font icons * Text rubout boxes for icons with text above the sprite are correctly sized Lazy WimpSymbol subsitution implemented: characters are only substituted if they are not already present in the font. For the first time, substitution now works in UTF-8 text - but for the proper Unicode positions of the relevant symbols, instead of usurping undefined positions (as in other alphabets). Version 4.10. Tagged as 'Wimp-4_10'
-
- 23 Oct, 1998 1 commit
-
-
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'
-
- 21 Oct, 1998 1 commit
-
-
Ben Avison authored
Service_SwitchingOutputToSprite code optimised: graphics parameters are now only cached when making the first Wimp_PlotIcon call while output is switched to a sprite, and upon return to screen output after such an occurrence. All error box templates featuring "border" icons updated to have button type 0 (never). This prevents IconHigh from mistakenly allowing them to be selected. Version 4.07. Tagged as 'Wimp-4_07'
-
- 20 Oct, 1998 1 commit
-
-
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'
-
- 30 Sep, 1998 1 commit
-
-
Kevin Bracey authored
Changed to use srccommit. All conditionals on "Version" removed. Version 4.01. Tagged as 'Wimp-4_01'
-
- 18 Sep, 1998 1 commit
-
-
Ben Avison authored
-
- 20 Jun, 1997 1 commit
-
-
Neil Turton authored
-
- 07 May, 1997 1 commit
-
-
Kevin Bracey authored
-
- 13 Jan, 1997 1 commit
-
-
Neil Turton authored
-
- 05 Nov, 1996 1 commit
-
-
Neil Turton authored
-