*nix Documentation Project
·  Home
 +   man pages
·  Linux HOWTOs
·  FreeBSD Tips
·  *niX Forums

  man pages->HP-UX 11i man pages -> DtDndVaDragStart (3)              
Title
Content
Arch
Section
 

Contents


 DtDndDragStart(library call)                   DtDndDragStart(library call)




 NAME    [Toc]    [Back]
      DtDndDragStart, DtDndVaDragStart - initiate a drag

 SYNOPSIS    [Toc]    [Back]
      #include <Dt/Dnd.h>
      Widget DtDndDragStart(
      Widget dragSource,
      XEvent *event,
      DtDndProtocol protocol,
      Cardinal numItems,
      unsigned char operations,
      XtCallbackList convertCallback,
      XtCallbackList dragFinishCallback,
      ArgList argList,
      Cardinal argCount);

      Widget DtDndVaDragStart(
      Widget dragSource,
      XEvent *event,
      DtDndProtocol protocol,
      Cardinal numItems,
      unsigned char operations,
      XtCallbackList convertCallback,
      XtCallbackList dragFinishCallback,
      ...);

 DESCRIPTION    [Toc]    [Back]
      The DtDndDragStart and DtDndVaDragStart functions initiate a Motif
      drag, with drag visuals appropriate to the type of data being dragged,
      and updates the translation table of the drag context.  Either of the
      functions is called from the application's event handler, which
      interprets mouse events to determine when a drag should begin.

      The only difference between DtDndDragStart and DtDndVaDragStart is how
      the argument list is passed.  The argument list is passed as an
      ArgList to DtDndDragStart and using varargs for DtDndVaDragStart.

      The dragSource argument is the widget that received the event that
      triggered the drag.

      The event argument is the button press or button motion event that
      triggered the drag.

      The protocol argument specifies the protocol used for the data
      transfer.  Valid values are:

      DtDND_TEXT_TRANSFER
                A list of text is being transferred.

      DtDND_FILENAME_TRANSFER
                A list of file names is being transferred.



                                    - 1 -       Formatted:  January 24, 2005






 DtDndDragStart(library call)                   DtDndDragStart(library call)




      DtDND_BUFFER_TRANSFER
                A list of memory buffers is being transferred.

      The numItems argument specifies the number of items being dragged.

      The operations argument indicates which operations the dragSource
      supports.  The operations are:

      XmDROP_COPY
                Copy operations are valid.

      XmDROP_LINK
                Link operations are valid.

      XmDROP_MOVE
                Move operations are valid.

      A drag source can support any combination of these operations.  A
      combination of operations is specified by the bitwise inclusive OR of
      several operation values.  For example, to support the move and copy
      operations, the application can specify:

      XmDROP_MOVE | XmDROP_COPY

      The convertCallback argument is a callback function that is invoked
      when a drop has started and the drop site has requested data from the
      drag source.  The convertCallback is responsible for providing the
      data that is transferred to the drop site.  The arguments for the
      convertCallback are the Motif Drag Context, an XtPointer to
      application-supplied client data, and an XtPointer to a
      DtDndConvertCallbackStruct structure.

      The dragFinishCallback argument is a callback function that is invoked
      when the drag and drop transaction is complete.  The
      dragFinishCallback is called after the convertCallback, if applicable.
      (The convertCallback is called only after a drop has started on an
      eligible drop site, whereas dragFinishCallback is called after the
      drag finishes, whether or not a drop occurred.) The dragFinishCallback
      should reset any drag motion handler and free any memory allocated by
      the drag source during the drag and drop transaction.  The arguments
      for the dragFinishCallback are the Motif Drag Context, an XtPointer to
      application-supplied client data, and an XtPointer to a
      DtDndDragFinishCallbackStruct structure.

    Argument Value Pairs    [Toc]    [Back]
      The DtDndDragStart and DtDndVaDragStart functions support the
      following optional argument-value pairs.  Motif resources can be set
      via the argument list as well, provided they are not resources that
      are used by the drag and drop subsystem; see Motif Resources.





                                    - 2 -       Formatted:  January 24, 2005






 DtDndDragStart(library call)                   DtDndDragStart(library call)




      DtNsourceIcon (Widget)
                Specifies the XmDragIcon used to represent the data being
                dragged.  This icon is created using either
                DtDndCreateSourceIcon(3) or . If DtNsourceIcon is NULL, then
                a default icon is used, which is appropriate for the data
                begin dragged.  The default value is NULL.

      DtNbufferIsText (Boolean)
                Specifies whether the dragged buffer should also be sourced
                as text, allowing the buffer to be dropped onto text
                widgets.  This attribute is only valid if protocol
                DtDND_BUFFER_TRANSFER and is ignored for other transfers.
                If DtNbufferIsText is True, the buffer is sourced as text in
                addition to being sourced as buffers; if it is False, the
                buffers are sourced only as buffers.

      DtNdropOnRootCallback    [Toc]    [Back]
                Specifies the callback to be invoked when the drop occurs on
                the desktop.  This callback is only for use by specialized
                clients such as file managers.  If DtNdropOnRootCallback is
                NULL, then drops onto the desktop background are not
                allowed.  The default value is NULL.

    Callbacks    [Toc]    [Back]
      Once the rendezvous with the drop site has been accomplished, the
      application-provided callback functions are called to perform the
      transfer of the dragged data.

      First, the convertCallback is called with a reason of
      DtCR_DND_CONVERT_DATA. The application must set the DtDndContext
      fields appropriate to the transfer protocol to provide the data to be
      transferred to the drop site.

      If the drag operation is XmDROP_MOVE and the drop site requests that
      the move be completed, the convertCallback is called again with a
      reason of DtCR_DND_CONVERT_DELETE. The application should delete its
      version of the dragged data.

      Once the data transfer is complete, the dragFinishCallback is called
      with a reason of DtCR_DND_DRAG_FINISH. The application should free any
      memory allocated in the convertCallback and restore any application
      state.

    Callback Information    [Toc]    [Back]
      Each of the callbacks for DtDndDragStart and DtDndVaDragStart has an
      associated callback structure.  These callbacks cannot be used with
      the XtAddCallback(3) interface.

      A pointer to the following structure is passed to the convertCallback:





                                    - 3 -       Formatted:  January 24, 2005






 DtDndDragStart(library call)                   DtDndDragStart(library call)




      typedef struct {
              int reason;
              XEvent *event;
              DtDndContext *dragData;
              DtDndStatus status;
      } DtDndConvertCallbackStruct, *DtDndConvertCallback;

      The reason argument indicates why the callback was invoked.  The
      possible reasons for this callback are:

      DtCR_DND_CONVERT_DATA
                The callback provides the requested data by setting
                appropriate fields in the dragData structure.

      DtCR_DND_CONVERT_DELETE
                The callback completes the XmDROP_MOVE operation by deleting
                its copy of the dragged data.

      The event argument points to the XEvent that triggered the callback.

      The dragData argument specifies the DtDndContext that contains the
      data to be dragged.  If the reason argument is DtCR_DND_CONVERT_DATA,
      the application must provide the data by setting the relevant fields
      in the DtDndContext, as described in the following Structures section.
      If the reason argument is DtCR_DND_CONVERT_DELETE, the application
      must delete the original data that completes a move operation.

      The status argument indicates the status of the conversion.  The
      application can set this to DtDND_FAILURE to cancel the conversion and
      consequently the drag and drop operation.  The value of status is
      normally DtDND_SUCCESS.

      A pointer to the following structure is passed to the
      dragFinishCallback:

      typedef struct {
              int reason;
              XEvent *event;
              DtDndContext *dragData;
              Widget sourceIcon;
      } DtDndDragFinishCallbackStruct, *DtDndDragFinishCallback;

      The reason argument indicates why the callback was invoked.  The valid
      reason for this callback is DtCR_DND_DRAG_FINISH.

      The event argument points to the XEvent that triggered the callback.

      The sourceIcon argument specifies the source icon registered in the
      call to DtDndDragStart. This widget is provided to allow the
      application to free data associated with the source icon and
      optionally destroy the source icon.



                                    - 4 -       Formatted:  January 24, 2005






 DtDndDragStart(library call)                   DtDndDragStart(library call)




      The dragData argument specifies the DtDndContext that contains the
      data that was dragged.  The application should free any data it
      associated with the dragData.

    Structures    [Toc]    [Back]
      The following structures are used by the drag source in the
      convertCallback and dragFinishCallback to communicate data between the
      application and the drag and drop subsystem.  The DtDndContext
      structure is passed to these callbacks as dragData in the callback
      structure appropriate to the callback.

      In the convertCallback, the application that is acting as the drag
      source is responsible for filling in the DtDndContext structure with
      the data being transferred.

      In the dragFinishCallback, the application acting as the drag source
      is responsible for freeing any data it allocated for use in the
      DtDndContext structure.

      typedef struct _DtDndContext {
              DtDndProtocol protocol;
              int numItems;
              union {
                      XmString *strings;
                      String *files;
                      DtDndBuffer *buffers;
              } data;
      } DtDndContext;

      The protocol argument indicates the data transfer protocol under which
      the data in the DtDndContext is being transferred.  Valid values are:

      DtDND_TEXT_TRANSFER
                A list of text is being transferred.

      DtDND_FILENAME_TRANSFER
                A list of file names is being transferred.

      DtDND_BUFFER_TRANSFER
                A list of memory buffers is being transferred.

      The numItems argument indicates the number of items being transferred.

      The data argument is a union containing data that should be stored and
      read in the format corresponding to the specified protocol. The data
      structures corresponding to the transfer protocols are as follows.

      The strings argument is valid if the protocol is DtDND_TEXT_TRANSFER.
      The strings argument is an array of pointers to Motif strings
      containing the text being transferred.




                                    - 5 -       Formatted:  January 24, 2005






 DtDndDragStart(library call)                   DtDndDragStart(library call)




      The files argument is valid if the protocol is
      DtDND_FILENAME_TRANSFER. It is an array of pointers to the names of
      the files being transferred.  The file names have been converted to
      local host file names where possible.

      The buffers argument is valid if the protocol is
      DtDND_BUFFER_TRANSFER. It is an array of pointers to DtDndBuffer
      structures containing the meory buffers being transferred.

      The following structure is used with DtDND_FILENAME_TRANSFER:

      typedef struct _DtDndBuffer {
              void *bp;
              int size;
              string name;
      } DtDndBuffer;

      The bp argument points to the buffer data being transferred.

      The size argument indicates the number of bytes in the buffer.

      The name argument points to the name of the buffer.

    Motif Resources    [Toc]    [Back]
      When it calls , the DtDndDragStart function sets Motif resources; the
      application must not modify the values of any of these resources.
      Resources other than those listed here can be used and are passed
      through to the underlying XmDragStart call.

      The following resources are modified by DtDndDragStart and
      DtDndVaDragStart in the Motif Drag Context:

         +  XmNblendModel

         +  XmNclientData

         +  XmNconvertProc

         +  XmNcursorBackground

         +  XmNcursorForeground

         +  XmNdragDropFinishCallback

         +  XmNdragOperations

         +  XmNdropFinishCallback

         +  XmNdropStartCallback





                                    - 6 -       Formatted:  January 24, 2005






 DtDndDragStart(library call)                   DtDndDragStart(library call)




         +  XmNexportTargets

         +  XmNnumExportTargets

         +  XmNsourcePixmapIcon

         +  XmNtopLevelEnterCallback

      The following resources are modified by DtDndDragStart and
      DtDndVaDragStart in the Motif Drag Icon:

         +  XmNattachment

         +  XmNdepth

         +  XmNheight

         +  XmNhotX

         +  XmNhotY

         +  XmNmask

         +  XmNoffsetX

         +  XmNoffsetY

         +  XmNpixmap

         +  XmNwidth

 RETURN VALUE    [Toc]    [Back]
      Upon successful completion, the DtDndDragStart function returns the
      drag context widget created when the Motif drag is started; otherwise,
      it returns NULL if the drag could not be started.

 SEE ALSO    [Toc]    [Back]
      Dt/Dnd.h - DtDnd(5), DtDtsFileToDataType(3), DtDndCreateSourceIcon(3),
      DtDndDropRegister(3), DtDndDropRegister(3), DtDndDropUnregister(3), ,
      , , .


                                    - 7 -       Formatted:  January 24, 2005
[ Back ]
      
      
 Similar pages
Name OS Title
XmDragCancel IRIX A Drag and Drop function that terminates a drag transaction
XmDragCancel HP-UX A Drag and Drop function that terminates a drag transaction
XmDragCancel Tru64 A Drag and Drop function that terminates a drag transaction
XmDragStart IRIX A Drag and Drop function that initiates a drag and drop transaction
XmDragStart Tru64 A Drag and Drop function that initiates a drag and drop transaction
XmDragStart HP-UX A Drag and Drop function that initiates a drag and drop transaction
physio NetBSD initiate I/O on raw devices
physio OpenBSD initiate I/O on raw devices
physio FreeBSD initiate I/O on raw devices
pam_start FreeBSD initiate a PAM transaction
Copyright © 2004-2005 DeniX Solutions SRL
newsletter delivery service