Wimp_ReadSysInfo

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) :

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

Wimp_ReadSysInfo 13Wimp_ReadSysInfo_BaseOfSprites2SWI &400F2
Read the sprite pools used to locate sprites
R0=19 (reason code)
R0=Pointer to priority sprite pool
R1=Pointer to high sprite pool
R2=Pointer to low sprite pool
Interrupts are undefined
Fast interrupts are undefined
Processor is in undefined mode
Not defined

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.

Wimp_ReadSysInfo 14Wimp_ReadSysInfo_HighlightColoursSWI &400F2
Read the special highlighting colours
R0=20 (reason code)
R0=Special highlighting background colour, or -1 if disabled
R1=Special highlighting foreground colour if R0 = -1
Interrupts are undefined
Fast interrupts are undefined
Processor is in undefined mode
Not defined

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.

Wimp_ReadSysInfo 15Wimp_ReadSysInfo_TextSelectionSWI &400F2
Read the text selection colours and flags
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:
Bit(s)Meaning
0Text selections are enabled
1-2Operation on text insert:
ValueMeaning
0No operation, leave selection alone
1Delete selection
2Clear selected region
3Cut selection
3-4Operation on text delete (as above)
5-6Operation on caret move within icon (as above)
7Auto-select text on caret entering icon
8-31Reserved for future expansion
Interrupts are undefined
Fast interrupts are undefined
Processor is in undefined mode
Not defined

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.

Wimp_ReadSysInfo 16Wimp_ReadSysInfo_CaretColourSWI &400F2
Read the default caret colour
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)
Interrupts are undefined
Fast interrupts are undefined
Processor is in undefined mode
Not defined

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 17Wimp_ReadSysInfo_DragSettingsSWI &400F2
Read the settings used to detect a drag
R0=23 (reason code)
R0=OS units movement which will cancel a drag
R1=Delay with button pressed before a drag is detected (cs)
Interrupts are undefined
Fast interrupts are undefined
Processor is in undefined mode
Not defined

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 18Wimp_ReadSysInfo_DoubleClickSettingsSWI &400F2
Read the settings used to detect a double-click
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)
Interrupts are undefined
Fast interrupts are undefined
Processor is in undefined mode
Not defined

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 19Wimp_ReadSysInfo_AutoMenuSettingsSWI &400F2
Read the settings used to open submenus automatically
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)
Interrupts are undefined
Fast interrupts are undefined
Processor is in undefined mode
Not defined

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 1AWimp_ReadSysInfo_IconBarScrollSWI &400F2
Read the settings used to scroll the iconbar
R0=26 (reason code)
R0=Speed of iconbar scrolling (OS units/second)
R1=Acceleration of iconbar scrolling (OS units/second^2)
Interrupts are undefined
Fast interrupts are undefined
Processor is in undefined mode
Not defined

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 1BWimp_ReadSysInfo_ScreenEdgeSWI &400F2
Read the screen edge notification settings
R0=27 (reason code)
R0=Delay at edge of the screen before a notification is issued (cs)
Interrupts are undefined
Fast interrupts are undefined
Processor is in undefined mode
Not defined

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.