You generally register drop zones just after the widget that is going to be the drop zone is created. If you want a modal drop zone, you may register the widget as a drop zone when you want users to be able to drop on it and unregister it when you do not want users to drop on it.
Motif text widgets are automatically registered as drop zones for text when they are created. Dual registration is allowed. If you want a text widget to accept drops of other data, such as file names, in addition to text, you may register the text widget as a drop zone for file names as well. The text drop functionality provided by Motif is preserved. The functionality for file-name (or other data-type) drops is layered on top.
Use the function DtDndDropRegister() to register a widget as a drop zone. This function handles dual registration, if necessary, performs desktop-specific setup, and calls XmDropSiteRegister(). The DtDndDropRegister() function synopsis and parameter use are as follows.
void DtDndDropRegister( Widget dropSite, DtDndProtocol protocols; unsigned char operations; XtCallbackList transferCallback; ArgList argList; Cardinal argCount)
Widget dropSite
The widget that is being registered as a drop zone.
DtDndProtocol protocols
Specifies the list of data transfer protocols that the drop zone can use. To specify the use of more than one protocol, use OR with the protocol values.
unsigned char operations
The operations supported by the drop zone. The drop zone may support any combination of XmDROP_MOVE, XmDROP_COPY, and XmDROP_LINK by using OR for the desired combination of operations.
XtCallbackList transferCallback
This function accepts the data that is dropped on the drop zone. The transfer callback is explained in greater detail in the next section.
ArgList argList
Specifies an optional argument list.
Cardinal argCount
Specifies the number of arguments in argList.