XmDragContext(3X)XmDragContext(3X)NAMEXmDragContext — The DragContext widget class
SYNOPSIS
#include <Xm/DragDrop.h>
VERSION
This page documents version 1.2 of the Motif library.
DESCRIPTION
DragContexts are special widgets used in drag and drop transactions. A
DragContext is implemented as a widget, but a client does not explic‐
itly create a DragContext widget. Instead, a client initiates a drag
and drop transaction by calling XmDragStart, and this routine initial‐
izes and returns a DragContext widget. There is a unique DragContext
for each drag operation. The toolkit frees a DragContext when a trans‐
action is complete; therefore, an application programmer should not
explicitly destroy a DragContext.
Initiator and receiver clients both use DragContexts to track the state
of a transaction. When the initiator and receiver of a transaction are
in the same client, they share the same DragContext instance. If they
are in different clients, there are two separate DragContexts. In this
case, the initiator calls XmDragStart and the toolkit provides a Drag‐
Context for the receiver client. The only resources pertinent to the
receiver are XmNexportTargets and XmNnumExportTargets. These can both
be passed as arguments to the XmDropSiteRetrieve function to obtain
information about the current drop site.
In general, in order to receive data, a drop site must share at least
one target type and operation in common with a drag source. The Drag‐
Context resource, XmNexportTargets, identifies the selection targets
for the drag source. These export targets are compared with the XmNim‐
portTargets resource list specified by a drop site. The DragContext
resource, XmNdragOperations, identifies the valid operations that can
be applied to the source data by the initiator. The drop site counter‐
part resource is XmNdropSiteOperations, which indicates a drop site's
supported operations.
A client uses DragIcon widgets to define the drag-over animation
effects associated with a given drag and drop transaction. An initia‐
tor specifies a set of drag icons, selects a blending model, and sets
foreground and background cursor colors with DragContext resources.
The type of drag-over visual used to represent a drag operation depends
on the drag protocol style. In preregister mode, the server is
grabbed, and either a cursor or a pixmap may be used as a drag-over
visual. In dynamic mode, drag-over visuals must be implemented with
the X cursor. If the resulting drag protocol style is Drop Only or
None and the XmNdragInitiatorProtocolStyle is XmDRAG_DYNAMIC or
XmDRAG_PREFER_DYNAMIC, then a dynamic visual style (cursor) is used.
Otherwise, a preregister visual style is used.
Classes
DragContext inherits behavior and resources from Core.
The class pointer is xmDragContextClass.
The class name is XmDragContext.
New Resources
The following table defines a set of widget resources used by the pro‐
grammer to specify data. The programmer can also set the resource val‐
ues for the inherited classes to set attributes for this widget. To
reference a resource by name or by class in a .Xdefaults file, remove
the XmN or XmC prefix and use the remaining letters. To specify one of
the defined values for a resource in a .Xdefaults file, remove the Xm
prefix and use the remaining letters (in either lowercase or uppercase,
but include any underscores between words). The codes in the access
column indicate if the given resource can be set at creation time (C),
set by using XtSetValues (S), retrieved by using XtGetValues (G), or is
not applicable (N/A).
XmDragContext Resource Set
Name Class Type Default Access
───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
XmNblendModel XmCBlendModel unsigned char XmBLEND_ALL CG
XmNclientData XmCClientData XtPointer NULL CSG
XmNconvertProc XmCConvertProc XtConvertSelectionIncrProc NULL CSG
XmNcursorBackground XmCCursorBackground Pixel dynamic CSG
XmNcursorForeground XmCCursorForeground Pixel dynamic CSG
XmNdragDropFinishCallback XmCCallback XtCallbackList NULL CSG
XmNdragMotionCallback XmCCallback XtCallbackList NULL C
XmNdragOperations XmCDragOperations unsigned char XmDROP_COPY | XmDROP_MOVE C
XmNdropFinishCallback XmCCallback XtCallbackList NULL C
XmNdropSiteEnterCallback XmCCallback XtCallbackList NULL C
XmNdropSiteLeaveCallback XmCCallback XtCallbackList NULL C
XmNdropStartCallback XmCCallback XtCallbackList NULL C
XmNexportTargets XmCExportTargets Atom * NULL CSG
XmNincremental XmCIncremental Boolean False CSG
XmNinvalidCursorForeground XmCCursorForeground Pixel dynamic CSG
XmNnoneCursorForeground XmCCursorForeground Pixel dynamic CSG
XmNnumExportTargets XmCNumExportTargets Cardinal 0 CSG
XmNoperationChangedCallback XmCCallback XtCallbackList NULL C
XmNoperationCursorIcon XmCOperationCursorIcon Widget dynamic CSG
XmNsourceCursorIcon XmCSourceCursorIcon Widget dynamic CSG
XmNsourcePixmapIcon XmCSourcePixmapIcon Widget dynamic CSG
XmNstateCursorIcon XmCStateCursorIcon Widget dynamic CSG
XmNtopLevelEnterCallback XmCCallback XtCallbackList NULL C
XmNtopLevelLeaveCallback XmCCallback XtCallbackList NULL C
XmNvalidCursorForeground XmCCursorForeground Pixel dynamic CSG
Specifies which combination of DragIcons are blended to produce a drag-
over visual. Blends all three DragIcons - the source, state and opera‐
tion icon. The icons are layered from top to bottom with the operation
icon on top and the source icon on the bottom. The hotspot is derived
from the state icon. Blends the state and source icons only. The
hotspot is derived from the state icon. Specifies that only the source
icon is used, which the initiator updates as required. Specifies that
no drag-over visual is generated. The client tracks the drop site sta‐
tus through callback routines and updates the drag-over visuals as nec‐
essary. Specifies the client data to be passed to the XmNconvertProc
when it is invoked. Specifies a procedure of type XtConvertSelection‐
IncrProc that converts the source data to the format(s) requested by
the receiver client. The widget argument passed to this procedure is
the DragContext widget. The selection atom passed is _MOTIF_DROP. If
XmNincremental is False, the procedure should ignore the max_length,
client_data, and request_id arguments and should handle the conversion
atomically. Data returned by XmNconvertProc must be allocated using
XtMalloc and will be freed automatically by the toolkit after the
transfer. For additional information on selection conversion proce‐
dures, see X Toolkit Intrinsics—C Language Interface. Specifies the
background pixel value of the cursor. Specifies the foreground pixel
value of the cursor when the state icon is not blended. This resource
defaults to the foreground color of the widget passed to the
XmDragStart function. Specifies the list of callbacks that are called
when the transaction is completed. The type of the structure whose
address is passed to this callback is XmDragDropFinishCallbackStruct.
The reason sent by the callback is XmCR_DRAG_DROP_FINISH. Specifies
the list of callbacks that are invoked when the pointer moves. The
type of structure whose address is passed to this callback is XmDragMo‐
tionCallbackStruct. The reason sent by the callback is
XmCR_DRAG_MOTION. Specifies the set of valid operations associated
with an initiator client for a drag transaction. This resource is a
bit mask that is formed by combining one or more of the following val‐
ues using a bitwise operation such as inclusive OR (|): XmDROP_COPY,
XmDROP_LINK, XmDROP_MOVE. The value XmDROP_NOOP for this resource
indicates that no operations are valid. For Text and TextField wid‐
gets, this resource is set to XmDROP_COPY | XmDROP_MOVE; for List wid‐
gets, it is set to XmDROP_COPY. Specifies the list of callbacks that
are invoked when the drop is completed. The type of the structure
whose address is passed to this callback is XmDropFinishCallbackStruct.
The reason sent by the callback is XmCR_DROP_FINISH. Specifies the
list of callbacks that are invoked when the pointer enters a drop site.
The type of the structure whose address is passed to this callback is
XmDropSiteEnterCallbackStruct. The reason sent by the callback is
XmCR_DROP_SITE_ENTER. Specifies the list of callbacks that are invoked
when the pointer leaves a drop site. The type of the structure whose
address is passed to this callback is XmDropSiteLeaveCallbackStruct.
The reason sent by the callback is XmCR_DROP_SITE_LEAVE. Specifies the
list of callbacks that are invoked when a drop is initiated. The type
of the structure whose address is passed to this callback is XmDrop‐
StartCallbackStruct. The reason sent by the callback is
XmCR_DROP_START. Specifies the list of target atoms associated with
this source. This resource identifies the selection targets this
source can be converted to. Specifies a Boolean value that indicates
whether the transfer on the initiator side uses the Xt incremental
selection transfer mechanism described in X Toolkit Intrinsics—C Lan‐
guage Interface. If the value is True, the initiator uses incremental
transfer; if the value is False, the initiator uses atomic transfer.
Specifies the foreground pixel value of the cursor when the state is
invalid. This resource defaults to the value of the XmNcursorFore‐
ground resource. Specifies the foreground pixel value of the cursor
when the state is none. This resource defaults to the value of the
XmNcursorForeground resource. Specifies the number of entries in the
list of export targets. Specifies the list of callbacks that are
invoked when the drag is started and when the user requests that a dif‐
ferent operation be applied to the drop. The type of the structure
whose address is passed to this callback is XmOperationChangedCallback‐
Struct. The reason sent by the callback is XmCR_OPERATION_CHANGED.
Specifies the cursor icon used to designate the type of operation per‐
formed by the drag transaction. If NULL, XmScreen resources provide
default icons for copy, link, and move operations. Specifies the cur‐
sor icon used to represent the source when a dynamic visual style is
used. If NULL, the XmNdefaultSourceCursorIcon resource of XmScreen
provides a default cursor icon. Specifies the pixmap icon used to rep‐
resent the source when a preregister visual style is used. The icon is
used in conjunction with the colormap of the widget passed to
XmDragStart. If NULL, XmNsourceCursorIcon is used. Specifies the cur‐
sor icon used to designate the state of a drop site. If NULL, XmScreen
resources provide default icons for a valid, invalid, and no drop site
condition. Specifies the list of callbacks that are called when the
pointer enters a top-level window or root window (due to changing
screens). The type of the structure whose address is passed to this
callback is XmTopLevelEnterCallbackStruct. The reason sent by the
callback is XmCR_TOP_LEVEL_ENTER. Specifies the list of callbacks that
are called when the pointer leaves a top level window or the root win‐
dow (due to changing screens). The type of the structure whose address
is passed to this callback is XmTopLevelLeaveCallbackStruct. The rea‐
son sent by the callback is XmCR_TOP_LEVEL_LEAVE. Specifies the fore‐
ground pixel value of the cursor designated as a valid cursor icon.
Inherited Resources
DragContext inherits behavior and resources from the following super‐
class. For a complete description of each resource, refer to the Core
man page.
Core Resource Set
Name Class Type Default Access
───────────────────────────────────────────────────────────────────────────────────────────────────────────────
XmNaccelerators XmCAccelerators XtAccelerators dynamic CSG
XmNancestorSensitive XmCSensitive Boolean dynamic G
XmNbackground XmCBackground Pixel dynamic CSG
XmNbackgroundPixmap XmCPixmap Pixmap XmUNSPECIFIED_PIXMAP CSG
XmNborderColor XmCBorderColor Pixel XtDefaultForeground CSG
XmNborderPixmap XmCPixmap Pixmap XmUNSPECIFIED_PIXMAP CSG
XmNborderWidth XmCBorderWidth Dimension 0 CSG
XmNcolormap XmCColormap Colormap dynamic CG
XmNdepth XmCDepth int dynamic CG
XmNdestroyCallback XmCCallback XtCallbackList NULL C
XmNheight XmCHeight Dimension dynamic CSG
XmNinitialResourcesPersistent XmCInitialResourcesPersistent Boolean True C
XmNmappedWhenManaged XmCMappedWhenManaged Boolean True CSG
XmNscreen XmCScreen Screen * dynamic CG
XmNsensitive XmCSensitive Boolean True CSG
XmNtranslations XmCTranslations XtTranslations dynamic CSG
XmNwidth XmCWidth Dimension dynamic CSG
XmNx XmCPosition Position 0 CSG
XmNy XmCPosition Position 0 CSG
Callback Information
Each of the DragContext callbacks has an associated callback structure.
A pointer to the following structure is passed to the XmNdragDropFin‐
ishCallback callback. typedef struct { int reason;
XEvent *event; Time timeStamp; }XmDragDropFinishCall‐
backStruct, *XmDragDropFinishCallback; Indicates why the callback was
invoked. Points to the XEvent that triggered the callback. Specifies
the time at which either the drag or the drop was completed.
A pointer to the following structure is passed to callbacks for XmN‐
dragMotionCallback. typedef struct { int reason;
XEvent *event; Time timeStamp; unsigned charopera‐
tion; unsigned charoperations; unsigned chardropSiteStatus; Posi‐
tion x; Position y; }XmDragMotionCallbackStruct, *XmDragMo‐
tionCallback; Indicates why the callback was invoked. Points to the
XEvent that triggered the callback. Specifies the timestamp of the
logical event. Identifies an operation.
If the toolkit has just called a DropSite's XmNdragProc, the toolkit
initializes operation to the value of the operation member of the
XmDragProcCallbackStruct at the time the DropSite's XmNdragProc
returns.
If the toolkit has not called an XmNdragProc and the pointer is within
an active drop site, the toolkit initializes operation by selecting an
operation from the bitwise AND of the initial value of the operations
member and the value of the DropSite's XmNdropSiteOperations resource.
The toolkit searches this set first for XmDROP_MOVE, then for
XmDROP_COPY, then for XmDROP_LINK, and initializes operation to the
first operation it finds in the set. If the toolkit finds none of
these operations in the set, it initializes operation to XmDROP_NOOP.
If the toolkit has not called an XmNdragProc and the pointer is not
within an active drop site, the toolkit initializes operation by
selecting an operation from the initial value of the operations member.
The toolkit searches this set first for XmDROP_MOVE, then for
XmDROP_COPY, then for XmDROP_LINK, and initializes operation to the
first operation it finds in the set. If the toolkit finds none of
these operations in the set, it initializes operation to XmDROP_NOOP.
Indicates the set of operations supported for the source data.
If the toolkit has just called a DropSite's XmNdragProc, the toolkit
initializes operations to the bitwise AND of the DropSite's XmNdropOp‐
erations and the value of the operations member of the XmDragProcCall‐
backStruct at the time the DropSite's XmNdragProc returns. If the
resulting set of operations is empty, the toolkit initializes opera‐
tions to XmDROP_NOOP.
If the toolkit has not called an XmNdragProc and the user does not
select an operation (by pressing a modifier key), the toolkit initial‐
izes operations to the value of the DragContext's XmNdragOperations
resource.
If the toolkit has not called an XmNdragProc and the user does select
an operation, the toolkit initializes operations to the bitwise AND of
the corresponding operation and the value of the DragContext's XmNdrag‐
Operations resource. If the resulting set of operations is empty, the
toolkit initializes operations to XmDROP_NOOP. Indicates whether or
not a drop site is valid.
If the toolkit has just called a DropSite's XmNdragProc, the toolkit
initializes dropSiteStatus to the value of the dropSiteStatus member of
the XmDragProcCallbackStruct at the time the DropSite's XmNdragProc
returns.
If the toolkit has not called an XmNdragProc, it initializes dropSiteS‐
tatus as follows: the toolkit initializes dropSiteStatus to
XmNO_DROP_SITE if the pointer is over an inactive drop site or is not
over a drop site. The toolkit initializes dropSiteStatus to
XmDROP_SITE_VALID if all the following conditions are met: The pointer
is over an active drop site. The DragContext's XmNexportTargets and
the DropSite's XmNimportTargets are compatible. The initial value of
the operation member is not XmDROP_NOOP. Otherwise, the toolkit ini‐
tializes dropSiteStatus to XmDROP_SITE_INVALID.
A pointer to the following structure is passed for the XmNdropFinish‐
Callback callback: typedef struct { int reason;
XEvent *event; Time timeStamp; unsigned charopera‐
tion; unsigned charoperations; unsigned chardropSiteStatus;
unsigned chardropAction; unsigned charcompletionStatus; }XmDropFin‐
ishCallbackStruct, *XmDropFinishCallback; Indicates why the callback
was invoked. Points to the XEvent that triggered the callback. Speci‐
fies the time at which the drop was completed. Identifies an opera‐
tion.
If the pointer is over an active drop site when the drop begins, the
toolkit initializes operation to the value of the operation member of
the XmDropProcCallbackStruct at the time the DropSite's XmNdropProc
returns.
If the pointer is not over an active drop site when the drop begins,
the toolkit initializes operation by selecting an operation from the
initial value of the operations member. The toolkit searches this set
first for XmDROP_MOVE, then for XmDROP_COPY, then for XmDROP_LINK, and
initializes operation to the first operation it finds in the set. If
it finds none of these operations in the set, it initializes operation
to XmDROP_NOOP. Indicates the set of operations supported for the
source data.
If the pointer is over an active drop site when the drop begins, the
toolkit initializes operations to the bitwise AND of the DropSite's
XmNdropOperations and the value of the operations member of the XmDrop‐
ProcCallbackStruct at the time the DropSite's XmNdropProc returns. If
the resulting set of operations is empty, the toolkit initializes oper‐
ations to XmDROP_NOOP.
If the pointer is not over an active drop site when the drop begins and
if the user does not select an operation (by pressing a modifier key),
the toolkit initializes operations to the value of the DragContext's
XmNdragOperations resource.
If the pointer is not over an active drop site when the drop begins and
if the user does select an operation, the toolkit initializes opera‐
tions to the bitwise AND of the corresponding operation and the value
of the DragContext's XmNdragOperations resource. If the resulting set
of operations is empty, the toolkit initializes operations to
XmDROP_NOOP. Indicates whether or not a drop site is valid.
If the pointer is over an active drop site when the drop begins, the
toolkit initializes dropSiteStatus to the value of the dropSiteStatus
member of the XmDropProcCallbackStruct at the time the DropSite's XmN‐
dropProc returns.
If the pointer is not over an active drop site when the drop begins,
the toolkit initializes dropSiteStatus to XmNO_DROP_SITE. Identifies
the drop action. The values are: XmDROP, XmDROP_CANCEL, XmDROP_HELP,
and XmDROP_INTERRUPT. The value XmDROP_INTERRUPT is currently unsup‐
ported; if specified, it will be interpreted as an XmDROP_CANCEL. An
IN/OUT member that indicates the status of the drop action. After the
last callback procedure has returned, the final value of this member
determines what visual transition effects will be applied. There are
two values: The drop was successful. The drop was unsuccessful.
A pointer to the following structure is passed to callbacks for XmN‐
dropSiteEnterCallback: typedef struct { int reason;
XEvent *event; Time timeStamp; unsigned charopera‐
tion; unsigned charoperations; unsigned chardropSiteStatus; Posi‐
tion x; Position y; }XmDropSiteEnterCallbackStruct, *XmDrop‐
SiteEnterCallback; Indicates why the callback was invoked. Points to
the XEvent that triggered the callback. Specifies the time the cross‐
ing event occurred. Identifies an operation.
If the toolkit has just called a DropSite's XmNdragProc, the toolkit
initializes operation to the value of the operation member of the
XmDragProcCallbackStruct at the time the DropSite's XmNdragProc
returns.
If the toolkit has not called an XmNdragProc, it initializes operation
by selecting an operation from the bitwise AND of the initial value of
the operations member and the value of the DropSite's XmNdropSiteOpera‐
tions resource. The toolkit searches this set first for XmDROP_MOVE,
then for XmDROP_COPY, then for XmDROP_LINK, and initializes operation
to the first operation it finds in the set. If the toolkit finds none
of these operations in the set, it initializes operation to
XmDROP_NOOP. Indicates the set of operations supported for the source
data.
If the toolkit has just called a DropSite's XmNdragProc, the toolkit
initializes operations to the bitwise AND of the DropSite's XmNdropOp‐
erations and the value of the operations member of the XmDragProcCall‐
backStruct at the time the DropSite's XmNdragProc returns. If the
resulting set of operations is empty, the toolkit initializes opera‐
tions to XmDROP_NOOP.
If the toolkit has not called an XmNdragProc and the user does not
select an operation (by pressing a modifier key), the toolkit initial‐
izes operations to the value of the DragContext's XmNdragOperations
resource.
If the toolkit has not called an XmNdragProc and the user does select
an operation, the toolkit initializes operations to the bitwise AND of
the corresponding operation and the value of the DragContext's XmNdrag‐
Operations resource. If the resulting set of operations is empty, the
toolkit initializes operations to XmDROP_NOOP. Indicates whether or
not a drop site is valid.
If the toolkit has just called a DropSite's XmNdragProc, the toolkit
initializes dropSiteStatus to the value of the dropSiteStatus member of
the XmDragProcCallbackStruct at the time the DropSite's XmNdragProc
returns.
If the toolkit has not called an XmNdragProc, it initializes dropSiteS‐
tatus as follows: the toolkit initializes dropSiteStatus to
XmDROP_SITE_VALID if the DragContext's XmNexportTargets and the Drop‐
Site's XmNimportTargets are compatible and if the initial value of the
operation member is not XmDROP_NOOP. Otherwise, the toolkit initial‐
izes dropSiteStatus to XmDROP_SITE_INVALID. Indicates the x-coordinate
of the pointer in root window coordinates. Indicates the y-coordinate
of the pointer in root window coordinates.
A pointer to the following structure is passed to callbacks for XmN‐
dropSiteLeaveCallback. typedef struct { int reason;
XEvent *event; Time timeStamp; }XmDropSiteLeaveCall‐
backStruct, *XmDropSiteLeaveCallback; Indicates why the callback was
invoked. Points to the XEvent that triggered the callback. Specifies
the timestamp of the logical event.
A pointer to the following structure is passed for the XmNdropStart‐
Callback callback: typedef struct { int reason;
XEvent *event; Time timeStamp; unsigned charopera‐
tion; unsigned charoperations; unsigned chardropSiteStatus;
unsigned chardropAction; Position x; Position y; }XmDrop‐
StartCallbackStruct, *XmDropStartCallback; Indicates why the callback
was invoked. Points to the XEvent that triggered the callback. Speci‐
fies the time at which the drag was completed. Identifies an opera‐
tion.
If the pointer is over an active drop site when the drop begins, the
toolkit initializes operation to the value of the operation member of
the XmDropProcCallbackStruct at the time the DropSite's XmNdropProc
returns.
If the pointer is not over an active drop site when the drop begins,
the toolkit initializes operation by selecting an operation from the
initial value of the operations member. The toolkit searches this set
first for XmDROP_MOVE, then for XmDROP_COPY, then for XmDROP_LINK, and
initializes operation to the first operation it finds in the set. If
it finds none of these operations in the set, it initializes operation
to XmDROP_NOOP. Indicates the set of operations supported for the
source data.
If the pointer is over an active drop site when the drop begins, the
toolkit initializes operations to the bitwise AND of the DropSite's
XmNdropOperations and the value of the operations member of the XmDrop‐
ProcCallbackStruct at the time the DropSite's XmNdropProc returns. If
the resulting set of operations is empty, the toolkit initializes oper‐
ations to XmDROP_NOOP.
If the pointer is not over an active drop site when the drop begins and
if the user does not select an operation (by pressing a modifier key),
the toolkit initializes operations to the value of the DragContext's
XmNdragOperations resource.
If the pointer is not over an active drop site when the drop begins and
if the user does select an operation, the toolkit initializes opera‐
tions to the bitwise AND of the corresponding operation and the value
of the DragContext's XmNdragOperations resource. If the resulting set
of operations is empty, the toolkit initializes operations to
XmDROP_NOOP. Indicates whether or not a drop site is valid.
If the pointer is over an active drop site when the drop begins, the
toolkit initializes dropSiteStatus to the value of the dropSiteStatus
member of the XmDropProcCallbackStruct at the time the DropSite's XmN‐
dropProc returns.
If the pointer is not over an active drop site when the drop begins,
the toolkit initializes dropSiteStatus to XmNO_DROP_SITE. An IN/OUT
member that identifies the drop action. The values are XmDROP,
XmDROP_CANCEL, XmDROP_HELP, and XmDROP_INTERRUPT. The value of
dropAction can be modified to change the action actually initiated.
The value XmDROP_INTERRUPT is currently unsupported; if specified, it
will be interpreted as a XmDROP_CANCEL. Indicates the x-coordinate of
the pointer in root window coordinates. Indicates the y-coordinate of
the pointer in root window coordinates.
A pointer to the following structure is passed to the XmNopera‐
tionChangedCallback callback: typedef struct { int reason;
XEvent *event; Time timeStamp; unsigned charopera‐
tion; unsigned charoperations; unsigned chardropSiteStatus; }XmOp‐
erationChangedCallbackStruct, *XmOperationChangedCallback; Indicates
why the callback was invoked. Points to the XEvent that triggered the
callback. Specifies the time at which the crossing event occurred.
Identifies an operation.
If the toolkit has just called a DropSite's XmNdragProc, the toolkit
initializes operation to the value of the operation member of the
XmDragProcCallbackStruct at the time the DropSite's XmNdragProc
returns.
If the toolkit has not called an XmNdragProc and the pointer is within
an active drop site, the toolkit initializes operation by selecting an
operation from the bitwise AND of the initial value of the operations
member and the value of the DropSite's XmNdropSiteOperations resource.
The toolkit searches this set first for XmDROP_MOVE, then for
XmDROP_COPY, then for XmDROP_LINK, and initializes operation to the
first operation it finds in the set. If the toolkit finds none of
these operations in the set, it initializes operation to XmDROP_NOOP.
If the toolkit has not called an XmNdragProc and the pointer is not
within an active drop site, the toolkit initializes operation by
selecting an operation from the initial value of the operations member.
The toolkit searches this set first for XmDROP_MOVE, then for
XmDROP_COPY, then for XmDROP_LINK, and initializes operation to the
first operation it finds in the set. If the toolkit finds none of
these operations in the set, it initializes operation to XmDROP_NOOP.
Indicates the set of operations supported for the source data.
If the toolkit has just called a DropSite's XmNdragProc, the toolkit
initializes operations to the bitwise AND of the DropSite's XmNdropOp‐
erations and the value of the operations member of the XmDragProcCall‐
backStruct at the time the DropSite's XmNdragProc returns. If the
resulting set of operations is empty, the toolkit initializes opera‐
tions to XmDROP_NOOP.
If the toolkit has not called an XmNdragProc and the user does not
select an operation (by pressing a modifier key), the toolkit initial‐
izes operations to the value of the DragContext's XmNdragOperations
resource.
If the toolkit has not called an XmNdragProc and the user does select
an operation, the toolkit initializes operations to the bitwise AND of
the corresponding operation and the value of the DragContext's XmNdrag‐
Operations resource. If the resulting set of operations is empty, the
toolkit initializes operations to XmDROP_NOOP. Indicates whether or
not a drop site is valid.
If the toolkit has just called a DropSite's XmNdragProc, the toolkit
initializes dropSiteStatus to the value of the dropSiteStatus member of
the XmDragProcCallbackStruct at the time the DropSite's XmNdragProc
returns.
If the toolkit has not called an XmNdragProc, it initializes dropSiteS‐
tatus as follows: the toolkit initializes dropSiteStatus to
XmNO_DROP_SITE if the pointer is over an inactive drop site or is not
over a drop site. The toolkit initializes dropSiteStatus to
XmDROP_SITE_VALID if all the following conditions are met: The pointer
is over an active drop site The DragContext's XmNexportTargets and the
DropSite's XmNimportTargets are compatible The initial value of the
operation member is not XmDROP_NOOP Otherwise, the toolkit initializes
dropSiteStatus to XmDROP_SITE_INVALID.
A pointer to the following structure is passed to callbacks for XmNto‐
pLevelEnterCallback: typedef struct { int reason;
XEvent *event; Time timestamp; Screen screen;
Window window; Position x; Position y; unsigned
chardragProtocolStyle; }XmTopLevelEnterCallbackStruct, *XmTopLevelEn‐
terCallback; Indicates why the callback was invoked. Points to the
XEvent that triggered the callback. Specifies the timestamp of the
logical event. Specifies the screen associated with the top-level win‐
dow or root window being entered. Specifies the ID of the top-level
window or root window being entered. Indicates the x-coordinate of the
pointer in root window coordinates. Indicates the y-coordinate of the
pointer in root window coordinates. Specifies the protocol style
adopted by the initiator. The values are XmDRAG_DROP_ONLY,
XmDRAG_DYNAMIC, XmDRAG_NONE, and XmDRAG_PREREGISTER.
A pointer to the following structure is passed to callbacks for XmNto‐
pLevelLeaveCallback: typedef struct { int reason;
XEvent *event; Time timestamp; Screen screen;
Window window; }XmTopLevelLeaveCallbackStruct, *XmTopLevel‐
LeaveCallback; Indicates why the callback was invoked. Points to the
XEvent that triggered the callback. Specifies the timestamp of the
logical event. Specifies a screen associated with the top-level window
or root window being left. Specifies the ID of the top-level window or
root window being left.
Translations
The XmDragContext translations are listed below. These translations
may not directly correspond to a translation table. BDrag
Motion: DragMotion() BDrag Release: FinishDrag()
KCancel: CancelDrag() KHelp: HelpDrag()
Action Routines
The XmDragContext action routines are described below: Cancels the drag
operation and frees the associated DragContext. Drags the selected
data as the pointer is moved. Finishes the drag operation and starts
the drop operation. Initiates a conditional drop that enables the
receiver to provide help information to the user. The user can cancel
or continue the drop operation in response to this information.
Virtual Bindings
The bindings for virtual keys are vendor specific. For information
about bindings for virtual buttons and keys, see VirtualBindings(3X).
RELATED INFORMATIONCore(3X), XmDisplay(3X), XmDragCancel(3X), XmDragIcon(3X),
XmDragStart(3X), XmDropSite(3X), XmDropTransfer(3X), and XmScreen(3X).
XmDragContext(3X)