SoXtClipboard(3IV)NAMESoXtClipboard (SoClpBrd) - Provides Inventor copy/paste support
INHERITS FROMSoXtClipboardSYNOPSIS
#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.
FUNCTIONSSoXtClipboard * 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
Page 1SoXtClipboard(3IV)
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);
Page 2SoXtClipboard(3IV)SEE ALSO
SoSelection, SoByteStream, SoXt, X Selections
Page 3