Bits Meaning
0-1 Horizontal location of sprite in box:
00 Left
01 Centre
10 Right
11 undefined
2-3 Vertical location of sprite in box:
00 Bottom
01 Centre
10 Top
11 undefined
4-5 Drag bounding box is:
00 Whole screen
01 Display area of window that the pointer is over
10 User specified
11 undefined
6 Bounding box applies to:
0 The box
1 The pointer
7 Use drop shadow
8 Don't dither sprite (RISC OS 3.50)
9 Centre sprite around pointer (RISC OS 4.00)
10-15 Reserved for future use, should be set to 0.
16 Rendering is done by:
0 a SWI
1 a C/assembler function
17 If the renderer is a function, it is called in:
0 User mode
1 SVC mode
18 Actually use user mode
19-31 Reserved for future use, should be set to 0.
Note about DragAnObject User mode
Prior to version 0.09 (Castle), DragAnObject would call client functions in
SVC mode even when asked to call them in user mode. On 32 bit systems, this
leads to an incorrect stack limit which leads to aborts.
Rather than fix the module, which may cause further faults in existing
clients, a new bit (b18) indicates that the function should actually be
called in user mode. If bit 18 is set, bit 17 should be clear.
The calling environment should be set up sufficiently to allow access to user
and C library statics, provided that DragAnObject_Start was called via a
veneer that preserves R10 and R11 (sl and fp). OSLib and _kernel_swi veneers
are fine, and _swi is fine except on an unpatched RISC OS 3.70/3.71.
|
|
|