---
name: "SoSpaceballButtonEvent"
section: "3iv"
platform: "linux"
package: "inventor-doc"
version: "2.1.6+ds-2"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/SoSpaceballButtonEvent/3iv"
---

# SoSpaceballButtonEvent(3iv)

spaceball button press and release events

## NAME

SoSpaceballButtonEvent — spaceball button press and release events

## INHERITS FROM

SoEvent \> SoButtonEvent \> SoSpaceballButtonEvent

## SYNOPSIS

**#include \<Inventor/events/SoSpaceballButtonEvent.h\>**

**#define SO\_SPACEBALL\_PRESS\_EVENT(EVENT,BUTTON)**\
     **(SoSpaceballButtonEvent::isButtonPressEvent(EVENT,**\
 			**SoSpaceballButtonEvent::BUTTON))** \
 **#define SO\_SPACEBALL\_RELEASE\_EVENT(EVENT,BUTTON)**\
     **(SoSpaceballButtonEvent::isButtonReleaseEvent(EVENT,**\
 			**SoSpaceballButtonEvent::BUTTON))**

**enum Button {** **SoSpaceballButtonEvent::ANY**	Any spaceball button\
 **SoSpaceballButtonEvent::BUTTON1**\
 	Spaceball button 1\
 **SoSpaceballButtonEvent::BUTTON2**\
 	Spaceball button 2\
 **SoSpaceballButtonEvent::BUTTON3**\
 	Spaceball button 3\
 **SoSpaceballButtonEvent::BUTTON4**\
 	Spaceball button 4\
 **SoSpaceballButtonEvent::BUTTON5**\
 	Spaceball button 5\
 **SoSpaceballButtonEvent::BUTTON6**\
 	Spaceball button 6\
 **SoSpaceballButtonEvent::BUTTON7**\
 	Spaceball button 7\
 **SoSpaceballButtonEvent::BUTTON8**\
 	Spaceball button 8\
 **SoSpaceballButtonEvent::PICK**	Spaceball pick button\
 **}**

Methods from class SoSpaceballButtonEvent:

	**SoSpaceballButtonEvent()**\
 **static SoType**	**getClassTypeId()**\
 **void**	**setButton(SoSpaceballButtonEvent::Button b)**\
 **SoSpaceballButtonEvent::Button**\
 	**getButton() const**\
 **static SbBool**	**isButtonPressEvent(const SoEvent \*e, SoSpaceballButtonEvent::Button whichButton)**\
 **static SbBool**	**isButtonReleaseEvent(const SoEvent \*e, SoSpaceballButtonEvent::Button whichButton)**

Methods from class SoButtonEvent:

**void**	**setState(SoButtonEvent::State s)**\
 **SoButtonEvent::State**	**getState() const**

Methods from class SoEvent:

**virtual SoType**	**getTypeId() const**\
 **SbBool**	**isOfType(SoType type) const**\
 **void**	**setTime(SbTime t)**\
 **SbTime**	**getTime() const**\
 **void**	**setPosition(const SbVec2s &p)**\
 **const SbVec2s &**	**getPosition() const**\
 **const SbVec2s &**	**getPosition(const SbViewportRegion &vpRgn) const**\
 **const SbVec2f &**	**getNormalizedPosition(const SbViewportRegion &vpRgn) const**\
 **void**	**setShiftDown(SbBool isDown)**\
 **void**	**setCtrlDown(SbBool isDown)**\
 **void**	**setAltDown(SbBool isDown)**\
 **SbBool**	**wasShiftDown() const**\
 **SbBool**	**wasCtrlDown() const**\
 **SbBool**	**wasAltDown() const**

## DESCRIPTION

**SoSpaceballButtonEvent** represents spaceball button press and release events in the Inventor event model.

## METHODS

	**SoSpaceballButtonEvent()**\
 Constructor.

**static SoType**	**getClassTypeId()**\
 Return the type id for the **SoSpaceballButtonEvent** class.

**void**	**setButton(SoSpaceballButtonEvent::Button b)**\
 **SoSpaceballButtonEvent::Button**\
 	**getButton() const**\
 Set and get which spaceball button generated the event.

**static SbBool**	**isButtonPressEvent(const SoEvent \*e, SoSpaceballButtonEvent::Button whichButton)**\
 **static SbBool**	**isButtonReleaseEvent(const SoEvent \*e, SoSpaceballButtonEvent::Button whichButton)**\
 Returns whether the passed event is a spaceball button press or release event of the passed button. When *SoSpaceballButtonEvent::ANY* is passed, this returns *TRUE* if the event represents a button press or release of any spaceball button.

## SEE ALSO

**SoEvent, SoButtonEvent, SoKeyboardEvent, SoLocation2Event, SoMotion3Event, SoMouseButtonEvent, SoHandleEventAction, SoEventCallback, SoSelection, SoInteraction, SoXtDevice**
