table of contents
| SoEventCallback(3IV)() | SoEventCallback(3IV)() | 
NAME¶
SoEventCallback — node which invokes callbacks for events
INHERITS FROM¶
SoBase > SoFieldContainer > SoNode > SoEventCallback
SYNOPSIS¶
#include <Inventor/nodes/SoEventCallback.h>
  
  typedef void	SoEventCallbackCB(void *userData,
    SoEventCallback *node)
  
  Methods from class SoEventCallback:
  
  
  static SoType	getClassTypeId()
  
  
  	SoEventCallback()
  
  
  void	setPath(SoPath *path)
  
  
  const SoPath *	getPath()
  
  
  void	addEventCallback(SoType eventType,
    SoEventCallbackCB *f, void *userData = NULL)
  
  
  void	removeEventCallback(SoType eventType,
    SoEventCallbackCB *f, void *userData = NULL)
  
  
  SoHandleEventAction *	getAction() const
  
  
  const SoEvent *	getEvent() const
  
  
  const SoPickedPoint *	getPickedPoint() const
  
  
  void	setHandled()
  
  
  SbBool	isHandled() const
  
  
  void	grabEvents()
  
  
  void	releaseEvents()
  
  Methods from class SoNode:
  
  
  void	setOverride(SbBool state)
  
  
  SbBool	isOverride() const
  
  
  SoNode *	copy(SbBool copyConnections = FALSE)
    const
  
  
  virtual SbBool	affectsState() const
  
  
  static SoNode *	getByName(const SbName &name)
  
  
  static int	getByName(const SbName &name,
    SoNodeList &list)
  
  Methods from class SoFieldContainer:
  
  
  void	setToDefaults()
  
  
  SbBool	hasDefaultValues() const
  
  
  SbBool	fieldsAreEqual(const SoFieldContainer *fc)
    const
  
  
  void	copyFieldValues(const SoFieldContainer *fc,
    SbBool copyConnections = FALSE)
  
  
  SbBool	set(const char *fieldDataString)
  
  
  void	get(SbString &fieldDataString)
  
  
  virtual int	getFields(SoFieldList &resultList)
    const
  
  
  virtual SoField *	getField(const SbName
    &fieldName) const
  
  
  SbBool	getFieldName(const SoField *field, SbName
    &fieldName) const
  
  
  SbBool	isNotifyEnabled() const
  
  
  SbBool	enableNotify(SbBool flag)
  
  Methods from class SoBase:
  
  
  void	ref()
  
  
  void	unref() const
  
  
  void	unrefNoDelete() const
  
  
  void	touch()
  
  
  virtual SoType	getTypeId() const
  
  
  SbBool	isOfType(SoType type) const
  
  
  virtual void	setName(const SbName &name)
  
  
  virtual SbName	getName() const
DESCRIPTION¶
SoEventCallback will invoke application supplied callback functions during SoHandleEventAction traversal. Methods allow the application to specify which Inventor events should trigger callbacks, and which path must be picked, if any, for the callback invocation to occur. The application callback is able to get information about the event and the pick detail, and may grab events, release events, and set whether the event was handled.
If you register more than one callback function in an SoEventCallback node, all the callback functions will be invoked when an event occurs, even if one of the callbacks handles the event. However, if the event is handled by any of the callback functions, no other node in the scene graph will see the event.
METHODS¶
static SoType	getClassTypeId()
  
  
  Return the type id for the SoEventCallback class.
  
  
  	SoEventCallback()
  
  
  Constructor creates an event callback node with no event interest and a NULL
    path.
  
  
  void	setPath(SoPath *path)
  
  
  const SoPath *	getPath()
  
  
  Set and get the path which must be picked in order for the callbacks to be
    invoked. If the path is NULL, the callbacks will be invoked for every
    interesting event, as specified by addEventCallback(), regardless of
    what is picked. The setPath() method makes its own copy of the passed
    path.
  
  
  void	addEventCallback(SoType eventType,
    SoEventCallbackCB *f, void *userData = NULL)
  
  
  void	removeEventCallback(SoType eventType,
    SoEventCallbackCB *f, void *userData = NULL)
  
  
  Specifies the callback functions to be invoked for different event types. When
    invoked, the callback function will be passed the userData, along
    with a pointer to this SoEventCallback node. For example, passing
    SoMouseButtonEvent::getClassTypeId() means callbacks will be invoked
    only when a mouse button is pressed or released. Passing
    SoEvent::getClassTypeId() for the eventType will cause the
    callback to be invoked for every event which passes through this event
    callback node.
  
  
  SoHandleEventAction *	getAction() const
  
  
  Returns the SoHandleEventAction currently traversing this node, or NULL
    if traversal is not taking place. This should be called only from callback
    functions.
  
  
  const SoEvent *	getEvent() const
  
  
  Returns the event currently being handled, or NULL if traversal is not taking
    place. This should be called only from callback functions.
  
  
  const SoPickedPoint *	getPickedPoint() const
  
  
  Returns pick information during SoHandleEventAction traversal, or NULL
    if traversal is not taking place. This should be called only from callback
    functions.
  
  
  void	setHandled()
  
  
  Tells the node the event was handled. The callback function is responsible for
    setting whether the event was handled or not. If there is more than one
    callback function registered with an SoEventCallback node, all of
    them will be invoked, regardless of whether one has handled the event or
    not. This should be called only from callback functions.
  
  
  SbBool	isHandled() const
  
  
  Returns whether the event has been handled. This should be called only from
    callback functions.
  
  
  void	grabEvents()
  
  
  void	releaseEvents()
  
  
  Tells the event callback node to grab events or release the grab. While
    grabbing, the node will consume all events; however, each callback function
    will only be invoked for events of interest.
  
FILE FORMAT/DEFAULTS¶
EventCallback {
}
SEE ALSO¶
SoInteraction, SoSelection, SoHandleEventAction, SoDragger