AcornSearch - Acorn and RISC OS information searching
RISC OS Search
containing
"Nutty quip goes here!"
Home  |  About  |  Filebase Archive  |  StrongHelp Manuals  |  Newsgroups  |  Module Database
=>     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.

[sh-index] Back to list of manuals