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
     R0 = flags :
           0-1 Horizontal position :
                 00 = left
                 01 = middle
                 10 = right
                 11 = undefined
           2-3 Vertical position :
                 00 = bottom
                 01 = middle
                 10 = top
                 11 = undefined
           4-5 Mouse bounding box :
                 00 = whole screen
                 01 = constrain to parent window
                 10 = constrain to box pointed to by R5
                 11 = undefined
           6   constrain sprite if set, otherwise constrain pointer
           7   shadow if set
           8   use DragASprite even if CMOS flag isn‘t set
           9-31 reserved; MUST BE 0
     R1 = pointer to sprite block, +1 for Wimp sprite area, 0 to use dash box
     R2 = window handle
     R3 = icon handle
     R4 = pointer to sprite name (if R1<>0)
     R5 = pointer to mouse bounding box (only if necessary - see flags)
           +00 = xmin
           +04 = ymin
           +08 = xmax
           +12 = ymax

This SWI does one of two things. If the DragASprite module is loaded, and bit 1 of byte 28 of the CMOS RAM is set, and R1<>0 then it will use the DragASprite module as follows :

· Work out the parameters to DragASprite_Start‘ and call it.
· If this produces an error then try again with dash box as described below.

Otherwise it makes an ordinary rotating dash box as follows :

· Work out the parameters to Wimp_DragBox‘ and call it.
· Bits 0-3 and 7 of the flags are ignored.

If you are using this SWI at any time with R1<>0 then remember to call XDragASprite_Stop at appropriate points. You MUST use the X form of the SWI, and you must ignore errors.

Note that if you want to have the simplest form of drag, with the bounding box being the entire screen and using a rotating dash-box rather than a sprite for the drag, then you can simply set R0=R1=0, and not worry about R4 and R5.

Provided by Icons

[sh-index] Back to list of manuals