Wimp_PlotIcon
=============

Wimp_PlotIcon has been extended to allow its use more reliably outside of
the redraw loop, such as might be used for drawing icons during drag
operations. These changes have been made to address a number of issues :

  * The new shaded icon operations fade sprites, backgrounds and buttons
    toward the background colour of the window; without information about
    the background colour, the fade would not function correctly outside of
    the redraw loop.
  
  * Without information about the window, sprites rendered from an area
    associated with a window would generate an error when used outside the
    redraw loop.
  
  * A future version of the Window Manager may provide facilities for
    highlighting of icons when the pointer is over them. The changes allow
    for this to be indicated.

The call has been extended in a similar manner to other Wimp SWI extensions,
using a magic word in a previously unused register. In order to allow
flexibility without requiring additional magic values, a flags word is used
to indicate the extra facilities required. Under systems which use earlier
versions of the WindowManager the behaviour will be unaffected by the new
flags, however where sprites are taken from a private pool supplied in the
extensions the operation will be faulted. Where such operations are expected,
alternate measures should be taken to ensure the correct rendering of icons
is performed.

SWIs
----

Wimp_PlotIcon
=> R1 = pointer to icon block
   R2 = &4B534154 ('TASK')
   R3 = x origin to offset icon by (if outside redraw loop)
   R4 = y origin to offset icon by (if outside redraw loop)
   R5 = context flags :
             b0 = if set: R6 contains background colour
                          R7 contains sprite area
                  if clear: R6 contains a window handle to use for the
                            colours and sprite area
             b1 = if set: icon should be treated as if the pointer were
                          over it
                  if clear: icon should be treated as if the pointer were
                          elsewhere
             b2-31 reserved, must be 0
   R6 = window handle to use as context, or background colour
   R7 = sprite area
<= R0 corrupt
   R2 = 0

This SWI is used to plot an icon. If used within a redraw loop, the origin
will be that given by the window. If used outside a redraw loop, the origin
must be supplied by the user. The context flags provide information about
the context under whch the icon is being rendered. 
