=> R1 = pointer to block, or -1 to cancel drag
R2 = "TASK" invokes R3 as flags word [3.80+]
R3 = flags
<= R0 corrupt
If R2 was "TASK" on entry, it is cleared
All other registers preserved.
This SWI initiates a drag. A drag can span several calls to Wimp_Poll, so the task must remember what is being dragged and why. The termination of a drag is reported by Wimp message 7.
See PRM 3, page 145.
Wimp_DragBox flags
Bit Meaning when set
0 Keep fixed end of rubber-box drags in line with work area of the window whose handle is given in R1
1 Clip the dragbox so that it is only displayed within the work area of the window whose handle is given in R1
Other bits are reserved.
Block describing drag
0 Window handle (for dragtypes 1-4 only)
4 Dragtype
8 Min x of initial dragbox
12 Min y
16 Max x
20 Max y
For types 5-11 only :
24 Min x of parentbox
28 Min y
32 Max x
36 Max y
For types 8-11 only :
40 R12 value for userroutines
44 Address of drawbox routine
48 Address of removebox routine
52 Address of movebox routine (or < 0 if none - move is remove followed by draw)
Dragtypes
1 Drag window position
2 Drag window size
3 Drag horizontal scroll
4 Drag vertical scroll
5 Drag fixed size box
6 Drag rubberbox
7 Drag point
8 Drag fixed size userbox
9 Drag rubber userbox
10 As 8, but don't cancel when buttons are released
11 As 9, but don't cancel when buttons are released
12 Drag horizontal and vertical scrollbars
Dragtype 1 is useful for dragging windows with no titlebar.
|
|
|