table of contents
| SoXtClipboard(3IV)() | SoXtClipboard(3IV)() | 
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