Provided by: inventor-doc_2.1.5-10-18_all bug

NAME

       SoXtClipboard — Provides Inventor copy/paste support

INHERITS FROM

       SoXtClipboard

SYNOPSIS

       #include <Inventor/Xt/SoXtClipboard.h>

     typedef void        SoXtClipboardPasteCB(void *userData, SoPathList *pathList)
     typedef   void        SoXtClipboardImportCB(void   *userData,  Atom  dataType,  void  *data,
                              uint32_t numBytes)

                              #define _XA_CLIPBOARD_ ((Atom) 0)

          Methods from class SoXtClipboard:

                         SoXtClipboard(Widget w, Atom selectionAtom = _XA_CLIPBOARD_)
                         ~SoXtClipboard()
     void                copy(SoNode *node, Time eventTime)
     void                copy(SoPath *path, Time eventTime)
     void                copy(SoPathList *pathList, Time eventTime)
     void                copy(Atom dataType, void *data, uint32_t numBytes, Time eventTime)
     void                paste(Time   eventTime,   SoXtClipboardPasteCB   *pasteDoneFunc,    void
                              *userData = NULL)
     void                addPasteInterest(Atom  dataType, SoXtClipboardImportCB *pasteImportFunc,
                              void *userData = NULL)

DESCRIPTION

       This class manages data transfers for copy and paste. Transfers may occur within the  same
       process, or between different processes. This uses the Xt selection mechanism to implement
       the ICCCM protocol for the transfer of data.

METHODS

                         SoXtClipboard(Widget w, Atom selectionAtom = _XA_CLIPBOARD_)
                         ~SoXtClipboard()
          Constructor and destructor. w is the Xt widget for which  this  clipboard  acts  as  an
          agent.  selectionAtom  is the X selection through which data should be transferred. For
          quick data transfers, this should be XA_PRIMARY.  The default is  _XA_CLIPBOARD_  which
          uses the X clipboard selection.

     void                copy(SoNode *node, Time eventTime)
     void                copy(SoPath *path, Time eventTime)
     void                copy(SoPathList *pathList, Time eventTime)
          This  copies  the  passed scene graph object, and tells the X server that the clipboard
          now owns the selection which was specified by selectionAtom in the constructor. When  a
          paste  happens  (in this window, another window, or another process), the X server will
          ask this clipboard for the data it copied here. The eventTime should be the time  found
          in  the  X  event  structure  which triggered the copy operation, and is used to ensure
          synchronization of copy and paste requests.  Data  targets  supported  for  export  are
          INVENTOR_2_1,    INVENTOR_2_1_FILE,    INVENTOR_2_0,    INVENTOR_2_0_FILE,    VRML_1_0,
          VRML_1_0_FILE.  Also  exported   for   backwards   compatibility   are   INVENTOR   and
          INVENTOR_FILE, which are equivalent to INVENTOR_2_0 and INVENTOR_2_0_FILE.

     void                copy(Atom dataType, void *data, uint32_t numBytes, Time eventTime)
          This  behaves  like  the  above  copy  routines,  but  the data can be in any format as
          specified by dataType.

     void                paste(Time   eventTime,   SoXtClipboardPasteCB   *pasteDoneFunc,    void
                              *userData = NULL)
          This  makes  a  request  to  the  X  server  for  data to paste from the selection atom
          specified in the constructor (selectionAtom), then returns. When the data is  retrieved
          from the selection owner, the pasteDoneFunc callback is invoked.  The newly pasted data
          is passed as the callback function's pathList argument (an  SoPathList).  Data  targets
          supported    for    import    are    INVENTOR_2_1,   INVENTOR_2_1_FILE,   INVENTOR_2_0,
          INVENTOR_2_0_FILE, VRML_1_0, VRML_1_0_FILE.  Also imported for backwards  compatibility
          are   INVENTOR   and   INVENTOR_FILE,   which   are   equivalent  to  INVENTOR_2_0  and
          INVENTOR_2_0_FILE.

     void                addPasteInterest(Atom dataType, SoXtClipboardImportCB  *pasteImportFunc,
                              void *userData = NULL)
          This  extends  the  paste  interest  to  recognize an additional target as specified by
          dataType. It can be called multiple  times  to  register  interest  in  more  than  one
          extension.  The  pasteImportFunc  will  be  called  when data of the registered type is
          pasted. Passing NULL as the pasteImportFunc will remove paste interest  for  that  data
          type  (even  if  the  data  type  is one of the defaults). This should be called before
          paste() so that paste() will accept pastes of data  types  that  have  been  registered
          here.    A    dataType    atom    can    be    created    with    XmInternAtom,   e.g.:
          XmInternAtom(XtDisplay(widget),"INVENTOR",False);

SEE ALSO

       SoSelection, SoByteStream, SoXt, X Selections

                                                                             SoXtClipboard(3IV)()