1. 25 Oct, 2002 1 commit
    • Ben Avison's avatar
      Memory-related stuff. · d085c3c9
      Ben Avison authored
        * 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
        * Bugs in top-bit-safe changes fixed: dragbox resizing was broken, Escape
          state wasn't being restored for new tasks.
        Tested on high-ROM/stack, 48M-appslot Tungsten.
      Version 4.77. Tagged as 'Wimp-4_77'
  2. 23 Oct, 2002 2 commits
    • Ben Avison's avatar
      Put back in a change to Service_Memory that I regressed while tracking down a... · f53c0f0c
      Ben Avison authored
      Put back in a change to Service_Memory that I regressed while tracking down a bug. Retagged as 'Wimp-4_76'.
    • Ben Avison's avatar
      Given a good thrashing. · c8e139f1
      Ben Avison authored
        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.
        * 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
        Tested on a "traditional" memory-mapped Tungsten.
      Version 4.76. Tagged as 'Wimp-4_76'
  3. 22 Aug, 2002 1 commit
  4. 21 Feb, 2002 1 commit
    • Mark Moir's avatar
      Creates Resources.Korea and Resources.Taiwan · cf4b3177
      Mark Moir authored
        Resources.Korea.Messages has translations for Cancel, Continue, OK,
          and Error.
        Resources.Taiwan.Messages has translations for Cancel, Continue, OK,
          and Error.
        No testing
      Version 4.74. Tagged as 'Wimp-4_74'
  5. 20 Feb, 2002 1 commit
    • Steve Revill's avatar
      A fix and some changes. · aa2bbc5d
      Steve Revill authored
        * Makefile change to allow install phase to work correctly with the
          shared makefiles.
        * Added some Japanese resources for the STB.
        Builds and installs.
      Version 4.73. Tagged as 'Wimp-4_73'
  6. 11 Jan, 2002 1 commit
    • Ben Avison's avatar
      Menu-related tinkering. · c7bbe2b5
      Ben Avison authored
        * Keyboard shortcuts in menus are now correctly aligned (and menus will
          be one pixel wider to compensate for the downwards rounding in SWI
        * There is no longer any danger of menu titles being treated as though
          they contain a keyboard shortcut.
        * Dialogue boxes may now contain nested windows.
        Tested on a Risc PC.
      Version 4.72. Tagged as 'Wimp-4_72'
  7. 30 Nov, 2001 1 commit
    • Steve Revill's avatar
      Change to STB build options. · 9536a690
      Steve Revill authored
        Auto scroll in Filer windows is now on to stop blank error boxes
        when you try "rubber band" selections.
        Tested and works.
      Version 4.71. Tagged as 'Wimp-4_71'
  8. 29 Oct, 2001 1 commit
    • Steve Revill's avatar
      Minor resources change to all templates files. · 19856a46
      Steve Revill authored
        The titlebar and input focus colours for the window template for
        error boxes is now cream (12). This is more intuitive. Builds which
        do not have a title bar will not look any different.
        Included the little utility which did the modification in Test/ResMod
        (as in Resources Modifier - but who cares). May be of use in future.
      Version 4.70. Tagged as 'Wimp-4_70'
  9. 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
        * 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.
        Tested on a Risc PC.
      Version 4.69. Tagged as 'Wimp-4_69'
  10. 13 Jul, 2001 1 commit
  11. 26 Jun, 2001 1 commit
    • Andrew Hodgkinson's avatar
      Stack imbalance corrected. · ced17cc1
      Andrew Hodgkinson authored
        When building a copy for RISC OS 3.1, this bug would be hit. Now fixed.
        Checked on RISC OS 3.1; seems to work fine now.
      Version 4.68. Tagged as 'Wimp-4_68'
  12. 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
        * 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
        * 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
        * 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.
        Error box behaviour actually tested this time!
      Version 4.67. Tagged as 'Wimp-4_67'
  13. 25 May, 2001 1 commit
    • Justin Kelly's avatar
      Added Martha components. · 604d85c3
      Justin Kelly authored
              Added Martha directories to Resources/UK by directly coping and renaming Lazarus
            Work in progress on Martha build machine.
      Version 4.66. Tagged as 'Wimp-4_66'
  14. 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
        * 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
        * 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
        * 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.)
        Tested on a desktop machine.
      Version 4.65. Tagged as 'Wimp-4_65'
  15. 16 Mar, 2001 1 commit
  16. 15 Mar, 2001 1 commit
    • Ben Avison's avatar
      A couple of fixes for bugs that were crippling 32-bit Lazarus builds. · 443e5637
      Ben Avison authored
        1) The pointer to the module flags word wasn't made relative to the start
           of the module; because the linker bases an image at &8000 by default,
           this meant that the module flags pointer pointed at a word 32K too far
           into the image, and there were even chances whether a given build of
           the Wimp would appear to be 32-bit compatible.
        2) Due to a missing alignment directive in the Wimp's workspace layout, if
           you did a build of the Wimp where one or more of the ClickSubmenus,
           IconiseButton, StickyEdges or BounceClose switches were on but the
           PoppingIconBar one was off, you would end up with several word-sized
           locations being non-word-aligned. This affected embedded builds, where
           only the ClickSubmenus switch (new in Wimp 4.57) is typically set, but
           not desktop builds, where PoppingIconBar is typically set.
        Only tested on a desktop machine so far, but this wouldn't have shown up
        either of the problems in the first place...
      Version 4.63. Tagged as 'Wimp-4_63'
  17. 23 Feb, 2001 1 commit
    • Stewart Brodie's avatar
      Improvement to menu creation code. · 5345e294
      Stewart Brodie authored
        Instead of continually extending the menu windows icon by icon, this
          version calculates how many icons it is going to need, and claims
          them en bloc, marking all the icons as deleted so that as the menu
          code creates each icon, no more block extending needs to be done.
        int_create_multiple_icons does the extension work; the menu generation
          code in Wimp05 does the initialising before calling int_create_icon
          lots of times (3*number of items in menu)
        Tested in a desktop build.
      Version 4.62. Tagged as 'Wimp-4_62'
  18. 05 Jan, 2001 1 commit
  19. 30 Nov, 2000 1 commit
    • Ben Avison's avatar
      Wimp_SetMode called outside the desktop now has no effect again. · 17b44c2a
      Ben Avison authored
        32-bitising introduced the bug: the routine copy_mode_specifier no longer
        preserves flags, but Wimp_SetMode was relying on it doing so. Wimp_SetMode
        has been changed to re-test the number of active tasks again after the flags
        have been corrupted.
        Tested in a desktop build.
      Version 4.60. Tagged as 'Wimp-4_60'
  20. 08 Nov, 2000 1 commit
  21. 03 Nov, 2000 1 commit
    • Ben Avison's avatar
      Change to behaviour of writeable menu items. · 80663f3f
      Ben Avison authored
        As soon as a menu or submenu that contains a writeable menu item is opened,
        the caret is placed in the (first) writeable menu item. Furthermore, you
        can highlight any other menu item in such a menu without losing the input
        focus from the writeable menu item.
        The initial reason for this change was to allow the use of writeable menu
        items on a touchscreen device, since they have no way for you to move the
        pointer over the writeable menu item without selecting it. But, on the
        basis that this change is actually useful for mouse users, and that it makes
        the behaviour of such submenus more consistent with dialogue boxes, it has
        been made unconditional.
        Tested in a desktop build.
      Version 4.58. Tagged as 'Wimp-4_58'
  22. 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
        * 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
        * 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.
        Tested on a desktop machine.
        Requires HdrSrc 1.06.
      Version 4.57. Tagged as 'Wimp-4_57'
  23. 19 Oct, 2000 1 commit
  24. 08 Sep, 2000 1 commit
  25. 11 Aug, 2000 1 commit
    • Simon Forrest's avatar
      * Translated resources for France, Germany, Italy, Spain and Turkey incorporated. · 6e7890bf
      Simon Forrest authored
        * Files changed include the Messages, Template and Sprite files, all of
          which now contain appropriate translated versions.
          This is a TRUNK version of the changes applied to the Bethany branch.
        * Sprite files contain an equivalent set of sprites to those in the UK
          variant; these have been rationalised recently so as to remove duplicates
          contained in other software components.
        * New file structure preserved; this is NOT a direct copy from the Bethany
          branch version of the Wimp.
      Version 4.54. Tagged as 'Wimp-4_54'
  26. 20 Jun, 2000 1 commit
    • Ben Avison's avatar
      Minor bugfix. · 5443a7f5
      Ben Avison authored
        On previous Wimps, if you chose to disassociate the Wimp's physical colour
        mapping from the Wimp palette (using SWI Wimp_SetColourMapping), then
        subsequent calls to Wimp_SetPalette would write over the physical colour
        mapping instead of the Wimp palette. *WimpPalette, conversely, had the
        correct behaviour (ie it only ever affected the Wimp palette).
        There are actually loads of remaining bugs in the Wimp regarding the
        subtle difference between the physical colour mapping and the palette. Some
        calls try to cause a screen redraw in some circumstances, generally the
        wrong circumstances, and without all the necessary internal Wimp variables
        having been reset (so for example, you might find that window borders end
        up ibeing rendered incorrectly). It probably hasn't all worked properly
        since RISC OS 3.1...
      Version 4.53. Tagged as 'Wimp-4_53'
  27. 15 Jun, 2000 1 commit
    • Ben Avison's avatar
      A number of bugfixes. · 45a23f3f
      Ben Avison authored
        * 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.
        Tested briefly on an Ursula build.
      Version 4.52. Tagged as 'Wimp-4_52'
  28. 06 Jun, 2000 1 commit
    • Ben Avison's avatar
      Bugfix: screen mode is now always correctly set when exiting the desktop. · 2fe401b8
      Ben Avison authored
        When the last task closes, the Wimp tries to change to the configured screen
        mode (as determined using OS_ReadSysInfo 1). However, the Wimp was using
        VDU 22,x to set the screen mode, so results were undefined when the default
        screen mode was a pointer to a mode selector. The Wimp now uses OS_ScreenMode
        to change mode (except on RISC OS 3.1 builds where the SWI is not available).
        Not tested.
      Version 4.51. Tagged as 'Wimp-4_51'
  29. 15 May, 2000 1 commit
    • Stewart Brodie's avatar
      Removed conditional pull on Wimp_CloseDown task validation, · 9fe3d383
      Stewart Brodie authored
        Wimp 4.47-4.49 would die horribly if Wimp_CloseDown was passed an
          invalid task handle in R0 (the Repeat command in BootCommands does
          this!).  The pull is now unconditional.
        Tested in Ursula build.
      Version 4.50. Tagged as 'Wimp-4_50'
  30. 28 Apr, 2000 1 commit
  31. 27 Apr, 2000 1 commit
    • John Beranek's avatar
      Sprites file change · cfde775c
      John Beranek authored
        Removed palette from ptr_default and ptr_double srpites in
         NC2.UK resources.
        Requires a boot structure that sets up the pointer colours
         as you want them.
      Version 4.48. Tagged as 'Wimp-4_48'
  32. 26 Apr, 2000 1 commit
  33. 25 Apr, 2000 1 commit
    • Kevin Bracey's avatar
      Made 32-bit compatible. · 1bb3b9d0
      Kevin Bracey authored
        Lots of little changes throughout a lot of source.
        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'
  34. 13 Apr, 2000 1 commit
    • John Beranek's avatar
      Fixed Japan.NC2 Templates file (hopefully) · 79eb2aec
      John Beranek authored
        !WinEdit appears to have corrupted the Templates file when it was
        editted to change the Japanese translations.
        Hopefully rectified this by reapplying the translation changes using
        !FormEd.  Also changed the translation for the middle button in the
        error box back so that it reads "Cancel" (in Japanese of course).
      Version 4.46. Tagged as 'Wimp-4_46'
  35. 10 Apr, 2000 1 commit
    • John Beranek's avatar
      Updated Japanese translations · ba5e6f2b
      John Beranek authored
        Added Japanese translations received from customer into Messages
        and Templates files
      Version 4.45. Tagged as 'Wimp-4_45'
  36. 06 Apr, 2000 1 commit
  37. 30 Mar, 2000 1 commit
    • Ben Avison's avatar
      System windows (eg STB command window) can now have window furniture but no 1-pixel borders. · 3d310c07
      Ben Avison authored
        The code that checked for a Wimp_Initialise version number of >= 380 before
        applying the new interpretation of title foreground colour &FF was broken:
        it was checking the current task handle instead of the task handle of the
        window's creator. A few other things needed tampering with in order to ensure
        that the window's task handle word is correctly set up at the time that the
        colour check is performed.
        Tested in a desktop build, using STB resources.
      Version 4.43. Tagged as 'Wimp-4_43'
  38. 29 Mar, 2000 2 commits
    • Ben Avison's avatar
      Various little changes. · 17fd99f3
      Ben Avison authored
        * 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.
        Not tested.
      Version 4.42. Tagged as 'Wimp-4_42'
    • Ben Avison's avatar
      Various little changes. · 50103bb6
      Ben Avison authored
        * New STB Sprites, Templates and Tools files imported, based upon the
          Lazarus UI rather than the old STB UI.
        * STB 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.
        Not tested.
      Version 4.42. Tagged as 'Wimp-4_42'