Skip site navigation (1)Skip section navigation (2)

  
 
  

home | help
XmDropSite(3)		    Library Functions Manual		   XmDropSite(3)

NAME
     XmDropSite -- The DropSite Registry

SYNOPSIS
     #include <Xm/DragDrop.h>

DESCRIPTION
     A	client	registers  a  widget  or gadget as a drop site using the XmDrop-
     SiteRegister function. In addition, this routine defines the  behavior  and
     capabilities  of a drop site by specifying appropriate resources. For exam-
     ple, the XmNimportTargets and XmNnumImportTargets	resources  identify  re-
     spectively  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 bor-
     der 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 XmNanimationStyle  resource.
     In dynamic mode, if the drop site XmNdragProc resource is NULL, the toolkit
     also  provides  animation	effects based on the XmNanimationStyle resource.
     Otherwise, if the XmNdragProc routine is specified, the receiver can either
     assume responsibility for animation effects (through the  XmNdragProc  rou-
     tine)  or rely on the toolkit to provide animation.  An application can ei-
     ther 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  previ-
     ously 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 program-
     mer to specify data. To reference a resource by name or by class in a .Xde-
     faults 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,  re-
     move  the	Xm  prefix and use the remaining letters (in either lowercase or
     uppercase, but include any underscores between words). The codes in the ac-
     cess 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 XmNanima-
	       tionPixmap 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 XmNanimation-
	       Pixmap 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 XmNanimation-
	       PixmapDepth 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 XmNanima-
			 tionPixmap to 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 ef-
			 fects in its XmNdragProc routine.

     XmNdragProc
	       Specifies the procedure that is invoked when the  drop  site  re-
	       ceives  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:

		  *  XmCR_DROP_SITE_ENTER_MESSAGE

		  *  XmCR_DROP_SITE_LEAVE_MESSAGE

		  *  XmCR_DRAG_MOTION

		  *  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 call-
	       backs of the initiator (the  DragContext's  XmNdropSiteEnterCall-
	       back,  XmNdropSiteLeaveCallback, XmNdragMotionCallback, or XmNop-
	       erationChangedCallback callbacks).

     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  ad-
	       dress  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 initia-
	       tor's drop start callbacks (the	DragContext's  XmNdropStartCall-
	       back 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 XmNdropRectangles is 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_IG-
	       NORE.   An  active drop site can receive a drop, whereas an inac-
	       tive drop site is dormant. An inactive drop site is treated as if
	       it was not a registered drop site and any drag-under visuals  as-
	       sociated  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 Xm-
	       DROP_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 XmNdropRectangles list.
	       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  mes-
     sages:

     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_OPERA-
	       TION_CHANGED,	or     reason	  is	 XmCR_DRAG_MOTION     or
	       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_VALID if
	       the DragContext's XmNexportTargets and the DropSite's  XmNimport-
	       Targets	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_MOTION or XmCR_DROP_SITE_LEAVE_MES-
	       SAGE and the pointer is within the same drop site as on the  pre-
	       vious  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  Xm-
	       DROP_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  Xm-
	       DROP_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.

     operationsAn 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 se-
	       lect an operation, the toolkit initializes operations to the bit-
	       wise 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 Xm-
	       DROP_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 ani-
	       mate is set to True, the toolkit provides drop site animation per
	       the XmNanimationStyle resource value; if it is set to False,  the
	       receiver generates drag-under animation effects.

     A	pointer  to the following structure is passed to the XmNdropProc routine
     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_VALID  if
	       the  DragContext's XmNexportTargets and the DropSite's XmNimport-
	       Targets 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	XmDropStartCall-
	       backStruct  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  Xm-
	       DROP_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  XmDropStartCallback-
	       Struct  passed to the initiator's drop start callbacks (the Drag-
	       Context's XmNdropStartCallback callbacks).

     operationsAn 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 se-
	       lect an operation, the toolkit initializes operations to the bit-
	       wise 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 Xm-
	       DROP_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  XmDropStartCallback-
	       Struct  passed to the initiator's drop start callbacks (the Drag-
	       Context's XmNdropStartCallback callbacks).

     dropActionAn 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  XmDropStartCallback-
	       Struct  passed to the initiator's drop start callbacks (the Drag-
	       Context's XmNdropStartCallback callbacks).

RELATED INFORMATION
     XmDragContext(3), XmDragIcon(3),  XmDropSiteConfigureStackingOrder(3),  Xm-
     DropSiteEndUpdate(3),   XmDropSiteQueryStackingOrder(3),	XmDropSiteRegis-
     ter(3), XmDropSiteStartUpdate(3),	XmDropSiteUpdate(3),  XmDropSiteUnregis-
     ter(3), XmDropTransfer(3), and XmTargetsAreCompatible(3).

								   XmDropSite(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=XmDropSite&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>

home | help