IconHigh (and pointers) in Wimp error boxes =========================================== Overview -------- NC and STB builds of the Wimp feature support for the use of IconHigh to navigate error boxes. This can also impact upon the pointer that is used during error box display. Spinner branch Wimps since v 3.97, and trunk Wimps v 4.01 - 4.10, have the following functionality: The pointer is always visible throughout error boxes: shape number 1, programmed to ptr_default. IconHigh is activated for the duration, if and only if the pointer shape number was 0 on entry to SWI Wimp_ReportError. Unfortunately, if the hourglass is active on entry to the SWI, the pointer shape is detected as 2 or 3 - even if smashing the hourglass would have returned the pointer shape to 0; this leads to (a) IconHigh not being used and (b) the pointer being incorrectly restored afterwards. For comparison, the browser engages pointer shape 0 (invisible) whenever a key is pressed, and shape 1 whenever the mouse is moved. Changes ------- The following behaviour will be implemented in NC / STB builds of the Wimp in versions 4.11 onwards: 1) IconHigh will be active unconditionally during error box display. 2) SWI Hourglass_Smash will be called before the initial pointer shape is recorded. 3) The pointer shape number will be preserved over opening of the error box. 4) Wimp_Extend 12 will be implemented: this will (a) set the pointer to shape 0, and (b) flag that the Wimp should reprogram the pointer to shape 1 the next time that the mouse state changes (position or buttons). This will be called from IconHigh when it repositions the mouse following an arrow key keypress; the fact that OS_Word 21,3 flushes the mouse buffer means that the Wimp can guarantee that the next read from the mouse buffer will contain the state to compare future reads against. By placing the relevant code inside the "getmouseposn" routine, multi-tasking IconHigh (eg on-screen keyboards) can automatically be supported, as well as single-tasking IconHigh (in error boxes). BAvison 09-Nov-1998