SoXtClipboard(Widgetw,AtomselectionAtom=_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.
voidcopy(SoNode*node,TimeeventTime)voidcopy(SoPath*path,TimeeventTime)voidcopy(SoPathList*pathList,TimeeventTime)
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.
voidcopy(AtomdataType,void*data,uint32_tnumBytes,TimeeventTime)
This behaves like the above copy routines, but the data can be in any format as specified by dataType.
voidpaste(TimeeventTime,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.
voidaddPasteInterest(AtomdataType,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);