AcornSearch - Acorn and RISC OS information searching
RISC OS Search
containing
"Nutty quip goes here!"
Home  |  About  |  Filebase Archive  |  StrongHelp Manuals  |  Newsgroups  |  Module Database
Entry
     R1 = 0 or -1     : close immediate window
        = 1          : check for mouse click in immediate window
        = 2          : open immediate requester and wait for mouse click
        = 3          : redraw icon - icon handle in R0
        = 4          : slab icon - icon handle in R0 (-1 to use currently slabbed icon), R2 = 1 to slab in, 0 to slab out
        = 5          : limit pointer to immediate window
        = 6          : redraw icon‘s 3D border - icon handle in R0
        = 7          : redraw icon 
           R0 = pointer to icon block
           R2 = Work area‘ X origin
           R3 = Work area‘ Y origin
        = 8          : open immediate window using handle in R0
        >= &8000     : open immediate window using data pointed to by R1
     If R1 = 2 then rest of registers as for WimpExt_OpenRequester
     If R1 = 8 then R0 = window handle
Exit
     If R1 = 1 or 2 : R0 = Icon handle of icon clicked on, or -1 for none

This SWI is for using windows like the Wimp_ReportError window that are not multi-tasking.  You can only have one immediate window‘ open at a time, it is always on top of the window pile, and you MUST NOT call Wimp_Poll‘ while the immediate window is open.

If R1 is 0 or -1 on entry, the immediate window is closed.  If it was not open then no error is generated.

If R1 is 1 on entry, then the program will check for mouse clicks on icons in the window. 3D icons will be slabbed automatically.  -1 is returned if no icon was clicked on.

If R1 is 2 on entry, the rest of the registers are as for WimpExt_OpenRequester.  It opens an immediate requester‘ and waits for a mouse click on one of the action buttons, or ESCAPE or RETURN.  The icon clicked on is returned in R0.

If R1 is 3 on entry, the icon in the immediate window whose handle is in R0 will be redrawn (presumably because you have changed the indirected data).  The 3D border is not redrawn.

If R1 is 4 on entry, the icon whose handle is in R0 will be slabbed in or out depending on R2 - similar to WimpExt_SlabIcon for normal icons. If the specified icon handle is -1 and R2 is 0 then the currently slabbed icon (if any) is used.

If R1 is 5, the mouse rectangle is redefined to be the size of the immediate window - similar to WimpExt_LimitPointer for normal windows. Use WimpExt_ReleasePointer to release the pointer again afterwards.

If R1 is 6, the specified icon‘s 3D border is redrawn.

If R1 is 7, the specified icon is drawn. This call does not work if you have an immediate window open at the same time.

If R1 is 8 then the window corresponding to the window handle passed in R0 will be forcefully created on the screen now rather than at the next available moment the Wimp has.

If R1 is greater than or equal to &8000 on entry, then an immediate window is created from the Wimp_CreateWindow block pointed to by R1.

If you call WimpExt_PrePoll while an immediate window is open then it will be closed automatically - the Wimp does not know about immediate windows and the screen display would become corrupted if you kept an immediate window open over a call to Wimp_PollIdle.

Provided by ControlImmediate

[sh-index] Back to list of manuals