protocol if necessary.
The receiving application needs to register widgets as drop sites. For each drop site, the receiver must specify the valid
data targets and the XmN-dropProc that takes over when a drop occurs in the drop site. The receiver can also
specify an XmN-dragProc to handle special processing during the drag and custom drag−under visuals for the drop
site. The receiver can query and modify the stacking order of drop sites, as well as update information about drop sites
while the application is running. When the user starts a drag operation, the toolkit on the initiating side takes control.
The application needs to create a DragContext by calling XmDragStart(). It must specify the valid targets for the
operation and the XmN-convertProc that processes data transfer requests from the receiving client. The
application can also specify callbacks that are invoked at various points during the drag, custom drag−over visual
effects, and a drop callback that is called when the drop occurs. Receiving clients are not involved in this step. By
default, the toolkit on the initiating side handles all of the drag−over and drag−under visuals under both the preregister
and dynamic protocols. If the preregister protocol is being used, the receiving client is not involved during the drag,
but the initiating application can provide custom drag−over effects. These effects are handled by the various callbacks
that can be specified for a DragContext. At any point during the drag, the initiator can ...