SoXtClipboard(3IV)

SoXtClipboard (SoClpBrd) - Provides Inventor copy/paste support

As shipped in IRIX 6.5.30. Added in IRIX 6.5.22.

NAME
     SoXtClipboard (SoClpBrd) - Provides Inventor copy/paste support

INHERITS FROM
     SoXtClipboard

SYNOPSIS
     #include <Inventor_c/Xt/SoXtClipboard.h>

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

                                 #define _XA_CLIPBOARD_ ((Atom) 0)

          Functions from class SoXtClipboard:

     SoXtClipboard *     SoClpBrdCreate(Widget w, Atom selectionAtom =
                              _XA_CLIPBOARD_)
     void                SoClpBrdDelete(SoClpBrd *this)
     void                SoClpBrdCopyNode(SoClpBrd *this, SoNode *node, Time
                              eventTime)
     void                SoClpBrdCopyPath(SoClpBrd *this, SoPath *path, Time
                              eventTime)
     void                SoClpBrdCopyPathList(SoClpBrd *this, SoPathList
                              *pathList, Time eventTime)
     void                SoClpBrdCopyData(SoClpBrd *this, Atom dataType, void
                              *data, uint32_t numBytes, Time eventTime)
     void                SoClpBrdPaste(SoClpBrd *this, Time eventTime,
                              SoXtClipboardPasteCB *pasteDoneFunc, void
                              *userData = NULL)
     void                SoClpBrdAddPasteInterest(SoClpBrd *this, 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.

FUNCTIONS
     SoXtClipboard *     SoClpBrdCreate(Widget w, Atom selectionAtom =
                              _XA_CLIPBOARD_)
     void                SoClpBrdDelete(SoClpBrd *this)
          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                SoClpBrdCopyNode(SoClpBrd *this, SoNode *node, Time
                              eventTime)
     void                SoClpBrdCopyPath(SoClpBrd *this, SoPath *path, Time
                              eventTime)
     void                SoClpBrdCopyPathList(SoClpBrd *this, 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                SoClpBrdCopyData(SoClpBrd *this, 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                SoClpBrdPaste(SoClpBrd *this, 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                SoClpBrdAddPasteInterest(SoClpBrd *this, 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