Provided by: inventor-doc_2.1.6+ds-2_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)()