XmDropSite(3X)

XmDropSite - The DropSite Registry

As shipped in IRIX 6.5.30. Added in IRIX 6.5.5.

     NAME
          XmDropSite - The DropSite Registry

     SYNOPSIS
          #include <Xm/DragDrop.h>

     VERSION
          This page documents Motif 2.1.

     DESCRIPTION
          A client registers a widget or gadget as a drop site using
          the XmDropSiteRegister function. In addition, this routine
          defines the behavior and capabilities of a drop site by
          specifying appropriate resources. For example, the
          XmNimportTargetsand XmNnumImportTargets resources identify
          respectively the selection target types and number of types
          supported by a drop site. The visual animation effects
          associated with a drop site are also described with DropSite
          resources.

          Drop site animation effects that occur in response to the
          pointer entering a valid drop site are called drag-under
          effects. A receiver can select from several animation styles
          supplied by the toolkit or can provide customized animation
          effects. Drag-under effects supplied by the toolkit include
          border highlighting, shadow in/out drawing, and pixmap
          representation.

          When a preregister drag protocol style is used, the toolkit
          generates drag-under visual effects based on the value of
          the XmNanimationStyleresource. In dynamic mode, if the drop
          site XmNdragProcresource is NULL, the toolkit also provides
          animation effects based on the XmNanimationStyle resource.
          Otherwise, if the XmNdragProcroutine is specified, the
          receiver can either assume responsibility for animation
          effects (through the XmNdragProc routine) or rely on the
          toolkit to provide animation.  An application can either
          handle all or none of the animation effects for a particular
          drop site.  That is, an application should never do a
          partial job of animation on a particular drop site.

          Drop sites may overlap. The initial stacking order
          corresponds to the order in which the drop sites were
          registered. When a drop site overlaps another drop site, the
          drag-under effects of the drop site underneath are clipped
          by the obscuring drop site(s).

          The XmDropSiteUpdate routine sets resources for a widget
          that is registered as a drop site. XmDropSiteRetrieve gets
          drop site resource values previously specified for a
          registered widget. These routines are used instead of
          XtSetValues and XtGetValues.
        Classes
          XmDropSite does not inherit from any widget class.

        New Resources
          The following table defines a set of widget resources used
          by the programmer to specify data. To reference a resource
          by name or by class in a .Xdefaults file, remove the XmN or
          XmCprefix 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 XmDropSiteUpdate (S), retrieved by using
          XmDropSiteRetrieve (G), or is not applicable (N/A).

                                                  XmDropSite Resource Set
          Name                      Class                     Type             Default                     Access
          XmNanimationMask          XmCAnimationMask          Pixmap           XmUNSPECIFIED_PIXMAP        CSG
          XmNanimationPixmap        XmCAnimationPixmap        Pixmap           XmUNSPECIFIED_PIXMAP        CSG
          XmNanimationPixmapDepth   XmCAnimationPixmapDepth   int              0                           CSG
          XmNanimationStyle         XmCAnimationStyle         unsigned char    XmDRAG_UNDER_HIGHLIGHT      CSG
          XmNdragProc               XmCDragProc               XtCallbackProc   NULL                        CSG
          XmNdropProc               XmCDropProc               XtCallbackProc   NULL                        CSG
          XmNdropRectangles         XmCDropRectangles         XRectangle *     dynamic                     CSG
          XmNdropSiteActivity       XmCDropSiteActivity       unsigned char    XmDROP_SITE_ACTIVE          CSG
          XmNdropSiteOperations     XmCDropSiteOperations     unsigned char    XmDROP_MOVE | XmDROP_COPY   CSG
          XmNdropSiteType           XmCDropSiteType           unsigned char    XmDROP_SITE_SIMPLE          CG
          XmNimportTargets          XmCImportTargets          Atom *           NULL                        CSG
          XmNnumDropRectangles      XmCNumDropRectangles      Cardinal         1                           CSG
          XmNnumImportTargets       XmCNumImportTargets       Cardinal         0                           CSG

          XmNanimationMask
                    Specifies a mask to use with the pixmap specified
                    by XmNanimationPixmap when the animation style is
                    XmDRAG_UNDER_PIXMAP.

          XmNanimationPixmap
                    Specifies a pixmap for drag-under animation when
                    the animation style is XmDRAG_UNDER_PIXMAP. The
                    pixmap is drawn with its origin at the upper left
                    corner of the bounding box of the drop site. If
                    the drop site window is larger than the animation
                    pixmap, the portion of the window not covered by
                    the pixmap will be tiled with the window's
                    background color.

          XmNanimationPixmapDepth
                    Specifies the depth of the pixmap specified by the
                    XmNanimationPixmap resource. When the depth is 1,
                    the colors are taken from the foreground and
                    background of the drop site widget. For any other
                    value, drop site animation occurs only if the
                    XmNanimationPixmapDepth matches the depth of the
                    drop site window. Colors are derived from the
                    current colormap.

          XmNanimationStyle
                    Specifies the drag-under animation style used when
                    a drag enters a valid drop site. The possible
                    values are

                    XmDRAG_UNDER_HIGHLIGHT
                              The drop site uses highlighting effects.

                    XmDRAG_UNDER_SHADOW_OUT
                              The drop site uses an outset shadow.

                    XmDRAG_UNDER_SHADOW_IN
                              The drop site uses an inset shadow.

                    XmDRAG_UNDER_PIXMAP
                              The drop site uses the pixmap specified
                              by XmNanimationPixmapto indicate that it
                              can receive the drop.

                    XmDRAG_UNDER_NONE
                              The drop site does not use animation
                              effects. A client using a dynamic
                              protocol, may provide drag-under effects
                              in its XmNdragProc routine.

          XmNdragProc
                    Specifies the procedure that is invoked when the
                    drop site receives a crossing, motion, or
                    operation changed message. This procedure is
                    called only when a dynamic protocol is used.  The
                    type of structure whose address is passed to this
                    procedure is XmDragProcCallbackStruct.  The reason
                    sent to the procedure is one of the following:

                       o  XmCR_DROP_SITE_ENTER_MESSAGE

                       o  XmCR_DROP_SITE_LEAVE_MESSAGE

                       o  XmCR_DRAG_MOTION

                       o  XmCR_OPERATION_CHANGED

                    The drag procedure may change the values of some
                    members of the XmDragProcCallbackStruct passed to
                    it.  After the drag procedure returns, the toolkit
                    uses the final values in initializing some members
                    of the callback structure passed to the
                    appropriate callbacks of the initiator (the
                    DragContext's XmNdropSiteEnterCallback,
                    XmNdropSiteLeaveCallback, XmNdragMotionCallback,
                    or XmNoperationChangedCallbackcallbacks).

          XmNdropProc
                    Specifies the procedure that is invoked when a
                    drop (excluding a cancel or interrupt action)
                    occurs on a drop site regardless of the status of
                    the drop site. The type of the structure whose
                    address is passed to this procedure is
                    XmDropProcCallbackStruct. The reason sent to the
                    procedure is XmCR_DROP_MESSAGE.

                    The drop procedure may change the values of some
                    members of the XmDropProcCallbackStruct passed to
                    it.  After the drop procedure returns, the toolkit
                    uses the final values in initializing some members
                    of the XmDropStartCallbackStruct passed to the
                    initiator's drop start callbacks (the
                    DragContext's XmNdropStartCallback callbacks).

          XmNdropRectangles
                    Specifies a list of rectangles that describe the
                    shape of a drop site. The locations of the
                    rectangles are relative to the origin of the
                    enclosing object. When XmNdropRectanglesis NULL,
                    the drop site is assumed to be the sensitive area
                    of the enclosing widget. If XmNdropSiteType is
                    XmDROP_SITE_COMPOSITE, this resource cannot be
                    specified by the application.

                    Retrieving this resource returns allocated memory
                    that needs to be freed with the XtFree function.

          XmNdropSiteActivity
                    Indicates whether a drop site is active or
                    inactive. The values are XmDROP_SITE_ACTIVE,
                    XmDROP_SITE_INACTIVE, and XmDROP_SITE_IGNORE.  An
                    active drop site can receive a drop, whereas an
                    inactive drop site is dormant. An inactive drop
                    site is treated as if it was not a registered drop
                    site and any drag-under visuals associated with
                    entering or leaving the drop site do not occur.
                    However, it is still used for clipping drag-under
                    effects.  A value of XmDROP_SITE_IGNORE indicates
                    that a drop site should be ignored for all
                    purposes.

          XmNdropSiteOperations
                    Specifies the set of valid operations associated
                    with a drop site.  This resource is a bit mask
                    that is formed by combining one or more of the
                    following values using a bitwise operation such as
                    inclusive OR (|):  XmDROP_COPY, XmDROP_LINK, and
                    XmDROP_MOVE.  The value XmDROP_NOOP for this
                    resource indicates that no operations are valid.

          XmNdropSiteType
                    Specifies the type of the drop site. The possible
                    values are

                    XmDROP_SITE_SIMPLE
                              The widget does not have any additional
                              children that are registered as drop
                              sites.

                    XmDROP_SITE_COMPOSITE
                              The widget will have children that are
                              registered as drop sites.

          XmNimportTargets
                    Specifies the list of target atoms that this drop
                    site accepts.

          XmNnumDropRectangles
                    Specifies the number of rectangles in the
                    XmNdropRectangleslist. If the drop site type is
                    XmDROP_SITE_COMPOSITE, this resource can not be
                    specified by the application.

          XmNnumImportTargets
                    Specifies the number of atoms in the target atom
                    list.

        Callback Information
          A pointer to the following structure is passed to the
          XmNdragProc routine when the drop site receives crossing,
          motion, or operation changed messages:

          typedef struct
          {
                  int reason;
                  XEvent *event;
                  Time timeStamp;
                  Widget dragContext;
                  Position x;
                  Position y;
                  unsigned char dropSiteStatus;
                  unsigned char operation;
                  unsigned char operations;
                  Boolean animate;
          } XmDragProcCallbackStruct, *XmDragProcCallback;

          reason    Indicates why the callback was invoked.

          event     Points to the XEvent that triggered the callback.

          timeStamp Specifies the timestamp of the logical event.

          dragContext
                    Specifies the ID of the DragContext widget
                    associated with the transaction.

          x         Indicates the x-coordinate of the pointer relative
                    to the drop site.

          y         Indicates the y-coordinate of the pointer relative
                    to the drop site.

          dropSiteStatus
                    An IN/OUT member that indicates whether or not a
                    drop site is valid.

                    When reason is XmCR_DROP_SITE_ENTER_MESSAGE or
                    XmCR_OPERATION_CHANGED, or reason is
                    XmCR_DRAG_MOTIONor XmCR_DROP_SITE_LEAVE_MESSAGE
                    and the pointer is not in the same drop site as on
                    the previous invocation of the drag procedure, the
                    toolkit initializes dropSiteStatus to
                    XmDROP_SITE_VALIDif the DragContext's
                    XmNexportTargets and the DropSite's
                    XmNimportTargets are compatible and if the initial
                    value of the operation member is not XmDROP_NOOP.
                    Otherwise, the toolkit initializes dropSiteStatus
                    to XmDROP_SITE_INVALID.

                    When the reason is XmCR_DRAG_MOTIONor
                    XmCR_DROP_SITE_LEAVE_MESSAGE and the pointer is
                    within the same drop site as on the previous
                    invocation of the drag procedure, the toolkit
                    initializes dropSiteStatus to the value of
                    dropSiteStatus at the time the previous invocation
                    of the drag procedure returns.

                    The drag procedure may change the value of this
                    member.  After the drag procedure returns, the
                    toolkit uses the final value in initializing the
                    dropSiteStatus member of the callback struct
                    passed to the appropriate callbacks of the
                    initiator.

          operation An IN/OUT member that identifies an operation.

                    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.

                    The drag procedure may change the value of this
                    member.  After the drag procedure returns, the
                    toolkit uses the final value in initializing the
                    operation member of the callback struct passed to
                    the appropriate callbacks of the initiator.

          operations
                    An IN/OUT member that indicates the set of
                    operations supported for the source data.

                    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 user does
                    select an operation, the toolkit initializes
                    operations 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.

                    The drag procedure may change the value of this
                    member.  After the drag procedure returns, the
                    toolkit uses the final value in initializing the
                    operations member of the callback struct passed to
                    the appropriate callbacks of the initiator.

          animate   An OUT member that indicates whether the toolkit
                    or the receiver client provides drag-under effects
                    for a valid drop site. If animate is set to True,
                    the toolkit provides drop site animation per the
                    XmNanimationStyleresource value; if it is set to
                    False, the receiver generates drag-under animation
                    effects.

          A pointer to the following structure is passed to the
          XmNdropProcroutine when the drop site receives a drop
          message:

          typedef struct
          {
                  int reason;
                  XEvent *event;
                  Time timeStamp;
                  Widget dragContext;
                  Position x;
                  Position y;
                  unsigned char dropSiteStatus;
                  unsigned char operation;
                  unsigned char operations;
                  unsigned char dropAction;
          } XmDropProcCallbackStruct, *XmDropProcCallback;

          reason    Indicates why the callback was invoked.

          event     Specifies the XEvent that triggered the callback.

          timeStamp Specifies the timestamp of the logical event.

          dragContext
                    Specifies the ID of the DragContext widget
                    associated with the transaction.

          x         Indicates the x-coordinate of the pointer relative
                    to the drop site.

          y         Indicates the y-coordinate of the pointer relative
                    to the drop site.

          dropSiteStatus
                    An IN/OUT member that indicates whether or not a
                    drop site is valid.

                    The toolkit initializes dropSiteStatus to
                    XmDROP_SITE_VALIDif the DragContext's
                    XmNexportTargets and the DropSite's
                    XmNimportTargets are compatible and if the initial
                    value of the operation member is not XmDROP_NOOP.
                    Otherwise, the toolkit initializes dropSiteStatus
                    to XmDROP_SITE_INVALID.

                    The drop procedure may change the value of this
                    member.  After the drop procedure returns, the
                    toolkit uses the final value in initializing the
                    dropSiteStatus member of the
                    XmDropStartCallbackStruct passed to the
                    initiator's drop start callbacks (the
                    DragContext's XmNdropStartCallback callbacks).

          operation An IN/OUT member that identifies an operation.

                    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 it finds
                    none of these operations in the set, it
                    initializes operation to XmDROP_NOOP.

                    The drop procedure may change the value of this
                    member.  After the drop procedure returns, the
                    toolkit uses the final value in initializing the
                    operation member of the XmDropStartCallbackStruct
                    passed to the initiator's drop start callbacks
                    (the DragContext's XmNdropStartCallback
                    callbacks).

          operations
                    An IN/OUT member that indicates the set of
                    operations supported for the source data.

                    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 user does
                    select an operation, the toolkit initializes
                    operations 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.

                    The drop procedure may change the value of this
                    member.  After the drop procedure returns, the
                    toolkit uses the final value in initializing the
                    operations member of the XmDropStartCallbackStruct
                    passed to the initiator's drop start callbacks
                    (the DragContext's XmNdropStartCallback
                    callbacks).

          dropAction
                    An IN/OUT member that identifies the action
                    associated with the drop.  The possible values are

                    XmDROP    A drop was attempted. If the drop site
                              is valid, drop transfer handling
                              proceeds.

                    XmDROP_HELP
                              The user has requested help on the drop
                              site.

                    The drop procedure may change the value of this
                    member.  After the drop procedure returns, the
                    toolkit uses the final value in initializing the
                    dropAction member of the XmDropStartCallbackStruct
                    passed to the initiator's drop start callbacks
                    (the DragContext's XmNdropStartCallback
                    callbacks).

     RELATED INFORMATION
          XmDragContext(3), XmDragIcon(3),
          XmDropSiteConfigureStackingOrder(3), XmDropSiteEndUpdate(3),
          XmDropSiteQueryStackingOrder(3), XmDropSiteRegister(3),
          XmDropSiteStartUpdate(3), XmDropSiteUpdate(3),
          XmDropSiteUnregister(3), XmDropTransfer(3), and
          XmTargetsAreCompatible(3).