Introduction and Overview
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.
Technical Details
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) :
| Reason | Meaning |
|---|---|
| 0 | Read number of active tasks |
| 1 | Read current Wimp mode |
| 2 | Read suffix to append to filenames |
| 3 | Read status of command window |
| 4 | Current write direction |
| 5 | Current task handle |
| 6 | Reserved for internal use |
| 7 | Wimp version number |
| 8 | Outline font being used as system font |
| 9 | Toolsprites sprite area |
| 10 | Reserved for internal use |
| 11 | Application space size |
| 12 | Reserved for internal use |
| 13 | Reserved for internal use |
| 14 | Reserved for internal use |
| 15 | Reserved for internal use |
| 16 | Read user/ROM sprite pools |
| 17 | Default autoscroll pause delay |
| 18 | Reserved for internal use |
| 19 | Read low/high/priority sprite pools |
| 20 | Read special highlighting colours |
| 21 | Read text selection details |
| 22 | Read default caret colour |
| 23 | Read mouse drag detection settings |
| 24 | Read double click detection settings |
| 25 | Read auto-menu opening settings |
| 26 | Read iconbar speed and acceleration |
| 27 | Read screen edge notification settings |
Any reason which is not understood by the WindowManager will return an error. The new Wimp_ReadSysInfo calls are documented here :
SWI Calls
| R0 | = | 19 (reason code) |
| R0 | = | Pointer to priority sprite pool |
| R1 | = | Pointer to high sprite pool |
| R2 | = | Pointer to low sprite pool |
This SWI is used to read the sprite pools being used to locate sprites. The sprites are searched in the order 'priority', 'high', 'low' 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 to be looked at 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.
This call is provided for information only.
| R0 | = | 20 (reason code) |
| R0 | = | Special highlighting background colour, or -1 if disabled |
| R1 | = | Special highlighting foreground colour if R0 = -1 |
This SWI is used to read 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.
| R0 | = | 21 (reason code) |
| R2 | = | 1 |
| R0 | = | Text selection background colour, or -1 if selection colours disabled | |||||||||||||||||||||||||||||||
| R1 | = | Text selection foreground colour if R0 = -1 | |||||||||||||||||||||||||||||||
| R2 | = | Text selection flags:
| |||||||||||||||||||||||||||||||
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 supply a sensible default in R2. It is recommended that R2 be set to 1 to indicate that text selections are enabled as a standard default.
| R0 | = | 22 (reason code) |
| 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.
| R0 | = | 23 (reason code) |
| 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.
| R0 | = | 24 (reason code) |
| 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.
| R0 | = | 25 (reason code) |
| 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.
| R0 | = | 26 (reason code) |
| 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.
| R0 | = | 27 (reason code) |
| 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.