The DragASprite module provides SWI calls with which you can make the pointer drag a sprite around the screen. Since not all users will prefer this effect to dragging an outline - whether for aesthetics or performance - there is a bit in the CMOS RAM used to indicate their preference. (See the chapter entitled Non-volatile memory (CMOS RAM).) You should examine that bit before using this module; if it shows that the user would prefer to drag outlines, oblige them!
To drag a sprite:
| R0 | = | flags :
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| R1 | = | sprite area holding sprite:
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| R2 | = | pointer to sprite name | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| R3 | = | pointer to 16-byte block containing box | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| R4 | = | pointer to optional 16-byte block containing bounding box (see flags) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| R0-4 | preserved | |
This call starts dragging a sprite. The sprite you supply is copied, so there is no problem if you dispose of your copy of the sprite. If there is insufficient memory available to start the drag, the call reverts to a normal drag of a dotted outline.
The blocks pointed to by R3 and - optionally - R4 have the following format:
| Offset | Use | |
|---|---|---|
| +0 | x-low | |
| +4 | y-low | bottom-left (x-low, y-low) is inclusive |
| +8 | x-high | top-right (x-high, y-high) is exclusive |
| +12 | y-high |
This call terminates any current drag operation, and releases any workspace claimed by the DragASprite module to do a drag. You should make this call when your application receives the User_Drag_Box reason code from Wimp_Poll during a drag.
| Maintainer(s): | RISCOS Ltd <developer@riscos.com> | ||||||||
|---|---|---|---|---|---|---|---|---|---|
| History: |
| ||||||||
| Disclaimer: |
Copyright © Pace Micro Technolgy plc, 2002. |