[Select]

The WIMP


Index

 

Wimp_ReadSysInfo

Wimp_ReadSysInfo provides a generic means of reading various details from the Window Manager about its capabilities, configuration and operation. The SWI has been extended in most versions of the module to cover the new features and allow them to be used in a more robust and reliable manner.

With Select 3 the list has again been extended to cover new features which have been introduced. For completeness, the full list of reasons that this SWI may take are (see elsewhere for details of their use) :

  1. Read number of active tasks
  2. Read current Wimp mode
  3. Read suffix to append to filenames
  4. Read status of command window
  5. Current write direction
  6. Current task handle
  7. Reserved for internal use
  8. Wimp version number
  9. Outline font being used as system font
  10. Toolsprites sprite area
  11. Reserved for internal use
  12. Application space size
  13. Reserved for internal use
  14. Reserved for internal use
  15. Reserved for internal use
  16. Reserved for internal use
  17. Read user/ROM sprite pools
  18. Default autoscroll pause delay
  19. Reserved for internal use
  20. Read low/high/priority sprite pools
  21. Read special highlighting colours
  22. Read text selection details
  23. Read default caret colour
  24. Read mouse drag detection settings
  25. Read double click detection settings
  26. Read auto-menu opening settings
  27. Read iconbar speed and acceleration
  28. Read screen edge notification settings

Any reason which is not understood by the WindowManager will return an error.

Wimp_ReadSysInfo 19
On entry
   R0 = 19
On exit
   R0 = pointer to priority sprite pool
   R1 = pointer to high sprite pool
   R2 = pointer to low sprite pool

This SWI reads the sprite pools being used to hold sprites. These are searched in the order 'priority', 'high' before the sprite is declared not found. The 'priority' sprite pool can be added to with the '*IconSprites -priority' command. The 'high' sprite pool is the pool is examined first. If 'Protect ROM sprites' is enabled the 'high' pool is the ROM pool and the 'low' pool is the standard RAM pool. If 'Protect ROM sprites' is disabled the 'high' pool is the RAM pool and the 'low' pool is the ROM pool.

Wimp_ReadSysInfo 20
On entry
   R0 = 20
On exit
   R0 = special highlighting background colour, or -1 if disabled
   R1 = special highlighting foreground colour if R0 = -1

This SWI reads the 'special' highlighting colours defined with *WimpVisualFlags. The special highlighting colours are used when an icon uses the 'standard' colours (background of grey 1, and foreground of black) and is selected. This can make selections easier to see for the user. Where applications render icons themselves (without the WindowManager's interaction) it may be necessary to read these settings to ensure that the application follows the users configured choices.

Wimp_ReadSysInfo 21
On entry
   R0 = 21
   R2 = 1
On exit
   R0 = text selection background colour, or -1 if selection colours disabled
   R1 = text selection foreground colour if R0 = -1
   R2 = text selection flags:
         bit 0 - Text selections are enabled
         bit 1-2 - Operation on text insert:
                     0 = no operation, leave selection alone
                     1 = delete selection
                     2 = clear selected region
                     3 = cut selection
         bits 3-4 -      Operation on text delete (as above)
         bits 5-6 -      Operation on caret move within icon (as above)
         bit 7 -      Auto-select text on caret entering icon
         bits 8-31 - Reserved for future expansion

This SWI is used to read the text selection colours and flags, as defined with *WimpTextSelection. The text selection colours are used for selections of text made by the user in writable icons. Applications drawing text themselves (without the WindowManager's interaction) may need to read the settings with this call in order to ensure that it follows the users configured choices.

Under some versions of the WindowManager the flags were not returned in this call and it is therefore necessary to pass R2 as 1 to indicate that text selections are enabled as a standard default.

Wimp_ReadSysInfo 22
On entry
   R0 = 22
On exit
   R0 = default caret colour, or -1 if standard colour in use (Wimp 11)
   R1 = actual caret colour, R0 or colour value of Wimp 11 if standard colour is in use

This SWI is used to read the default caret colour. The default caret colour under earlier versions of the WindowManager has been Wimp 11 (red), but this can be modified by the user to allow for cases where the standard colour is not visible. This may also be used to better match the selection colours used by the user. The colour may be changed by *WimpVisualFlags.

On earlier systems, this call will generate an error.

Wimp_ReadSysInfo 23
On entry
   R0 = 23
On exit
   R0 = OS units movement which will cancel a drag
   R1 = delay with button pressed before a drag is detected (cs)

This SWI is used to read the settings used to detect a drag. The settings are configured through *Configure WimpDragMove and WimpDragDelay.

On earlier systems, this call will generate an error.

Wimp_ReadSysInfo 24
On entry
   R0 = 24
On exit
   R0 = OS units movement which will cancel a double click
   R1 = delay between clicks for which a double click will be detected (cs)

This SWI is used to read the settings used to detect a double-click. The settings are configured through *Configure WimpDoubleClickMove and WimpDoubleClickDelay. It is expected that clients implementing multiple clicks (for example triple or quadruple clicks) will require these settings in order to follow the configured behaviour of the Wimp.

On earlier systems, this call will generate an error.

Wimp_ReadSysInfo 25
On entry
   R0 = 25
On exit
   R0 = delay over a menu item after which the menu will open (cs)
   R1 = delay after an automatic open for which mouse moves are ignored (cs)

This SWI is used to read the settings used to detect whether a submenu entry should be opened automatically. The settings are configured through *Configure WimpAutoMenuDelay and *Configure WimpMenuDragDelay. It is expected that clients providing a private implementation of menu-like dialogues will require these settings in order to follow the configured behaviour of the Wimp.

On earlier systems, this call will generate an error.

Wimp_ReadSysInfo 26
On entry
   R0 = 25
On exit
   R0 = speed of iconbar scrolling (OS units/second)
   R1 = acceleration of iconbar scrolling (OS units/second^2)

This SWI is used to read the settings used to scroll the iconbar when the mouse is at its edge. The settings are configured through *Configure WimpIconBarSpeed and *Configure WimpIconBarAcceleration.

On earlier systems, this call will generate an error.

Wimp_ReadSysInfo 27
On entry
   R0 = 27
On exit
   R0 = delay at edge of the screen before a notification is issued (cs)

This SWI is used to read the settings used to notify applications that the mouse has idled at the edge of the screen. This setting is not presently configurable.

On earlier systems, this call will generate an error.


This documentation is copyright 3QD Developments Ltd 2013 and may not be reproduced or published in any form without the copyright holders permission. RISC OS is subject to continuous development and improvement as such all information is reproduced by 3QD Developments Ltd in good faith and is believed to be correct at the time of publication E&OE. 3QD Developments Ltd cannot accept any liability for any loss or damage arising from the use of any information provided as part of the RISC OS Documentation.

HTML document version 1.03 3rd November 2015