- 30 Nov, 2013 1 commit
-
-
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'
-
- 01 Jun, 2013 2 commits
-
-
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'
-
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.
-
- 06 May, 2013 1 commit
-
-
Robert Sprowson authored
Previous attempt to disable Sprites11 support for 3.10 and 3.50 hadn't spotted it was reenabled in the common options, also the Sprites11 switch was also tied up in Wimp$IconTheme support. Title bars would flicker when picked up when using a tool sprite set with no 'p' pushed equivalents on RISC OS 4.0x due to screen cache. Makefile now installs a default set of tools & sprites when target is ThemeDefs. CLI limit reduced to 256 pre Ursula to save RAM. Options/!Common: Promote Sprites11 switch into !Default Remove fixrmatools Options/!Default: Sprites11 true by default LongCommandLines true by default, false on targets pre Ursula Remove ServiceCallTable (harmless to have it in all cases) NewSWIs.s: Enable Wimp_Extend 13 all the time Wimp01.s: Reduce RMA use by vital 1.5k for non long command line case Change sense of Sprites11 switch to adopt all its previous functionality, but not look for '11' suffix when the switch is false Adopt ServiceCallTable switch permanently Wimp02.s: Comments ammended Wimp07.s: Range of ADR Wimp10.s: Change sense of Sprites11 switch to adopt all its previous functionality, but not look for '11' suffix when the switch is false Adopt :LNOT: fixrmatools switch permanently Supress title bar sprite plotting when none of the sprites exist Version 5.25. Tagged as 'Wimp-5_25'
-
- 04 May, 2013 1 commit
-
-
Robert Sprowson authored
Kernel can't chew new format sprites, so don't try using them in EX0/EY0. Retagged as Wimp-5_24.
-
- 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'
-
- 10 Apr, 2013 1 commit
-
-
Robert Sprowson authored
Minor fixups as part of univeral !Boot work. Options no longer ASSERT on International_Help (which is a definition exported by the kernel, rather than a build switch), and instead define a switch which is true for > 3.50. Non UTF8 supporting case has simple substitutes for Wimp_TextOp. Legacy_DomainId and LegacyIRQsema no longer cause NULL pointer dereference. MOVeQ => MOVEQ to placate ObjAsm. Ursula_RPC version built and used briefly on RISC OS 4.02 host. No other run time testing. Version 5.22. Tagged as 'Wimp-5_22'
-
- 26 Apr, 2005 1 commit
-
-
Kevin Bracey authored
Icon bar Shift F12 behaviour changed back to RISC OS 3.7 style, which made far more sense than the bizarre "simplified" scheme some Ursula spec review cooked up. Version 4.94. Tagged as 'Wimp-4_94'
-
- 24 Jan, 2003 1 commit
-
-
Ben Avison authored
Added automatic translation of spaces to hard spaces in writeable icons that forbid the former but allow the latter. This effectively allows spaces in filenames. Version 4.87. Tagged as 'Wimp-4_87'
-
- 20 Dec, 2002 1 commit
-
-
Ben Avison authored
Detail: * Bugfix: the contents of the pollword returned in the poll block by a PollWordNonZero event, where the pollword was flagged as high priority, was rotated by 8 bits due to a internal top-bit-set workaround. This no longer happens. (This was causing OmniClient never to complete initialisation on my machine.) * Extended the alternate resolution icon scheme for RAM/ROM sprites and toolsprites to be multi-pass, enabling the use of extra sprite sets for weird modes (most notably EX0 EY0 ones). After '23' or '0' suffixes (the latter still only applies to toolsprites), the suffix for the equivalent polychromatic resolution is tried. After rectangular suffixes, the next larger squarer suffix is tried. After '11', '22' is tried. Failing all of these, a match is attempted with no suffix. * The command window is now scaled and centred to match the current screen mode - up to a maximum size of 1280 x 1024 OS units. * Fixed the *WimpVisualFlags help strings (again). * Fixed 'task2' debugging to know about the structure of the SVC stack on 32-bit machines. * Added support for generation of GPA files. Admin: Tested on Tungsten. Version 4.84. Tagged as 'Wimp-4_84'
-
- 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'
-
- 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'
-
- 14 Sep, 2001 1 commit
-
-
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'
-
- 16 Mar, 2001 1 commit
-
-
Stewart Brodie authored
Updated to build using objasm instead of aasm. Sources changed to be objasm-compatible. Admin: Requires Library 0.71 or later. Requires BuildSys 3.06 or later. Requires Env 0.65 or later. Version 4.64. Tagged as 'Wimp-4_64'
-
- 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 Messa...
-
- 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'
-
- 07 Oct, 1999 1 commit
-
-
Ben Avison authored
(This stops system font character 128 being reprogrammed to a tick, and also stops the desktop font being switched to WimpSymbol when character 128 is encountered.) Version 4.32. Tagged as 'Wimp-4_32'
-
- 03 Aug, 1999 1 commit
-
-
Ben Avison authored
(this was clashing with the Interlace module at one point during STB development, and had the potential to trip us up again in the future). No longer produces build errors if some resources are absent. Corrected token in Japan messages file to use valid UTF-8 character. Service call table now included by default. Version 4.23. Tagged as 'Wimp-4_23'
-
- 29 Apr, 1999 1 commit
-
-
Kevin Bracey authored
Version 4.20. Tagged as 'Wimp-4_20'
-
- 23 Nov, 1998 1 commit
-
-
Ben Avison authored
Added options file for Ursula_RiscPC builds: similar to Ursula options file, but without UTF8 support (it's unlikely the rest of the modules will be updated sufficiently for this to be useful) and without the development cut-n-paste support. Also removed module postfix (we don't want "Ursula" appearing during a *Help Modules). Retagged as bavison_Wimp-4_11.
-
- 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'
-
- 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'
-
- 20 Oct, 1998 2 commits
-
-
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'
-
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
-
- 01 Sep, 1997 1 commit
-
-
John Farrell authored
-
- 12 May, 1997 1 commit
-
-
Kevin Bracey authored
-
- 07 May, 1997 2 commits
-
-
Kevin Bracey authored
Made options files specify any text wanted after the module version number. Auto-fronting iconbar now returns to previous position rather than back, so it interacts with Shift+F12 better.
-
Kevin Bracey authored
-