---
name: "SoMouseButtonEvent"
section: "3"
platform: "linux"
package: "coin"
version: "1:4.0.10-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/SoMouseButtonEvent"
---

# SoMouseButtonEvent(3)

The SoMouseButtonEvent class contains information about mouse button interaction.

## NAME

SoMouseButtonEvent - The **SoMouseButtonEvent** class contains information about mouse button interaction.

## SYNOPSIS

\#include \<Inventor/events/SoMouseButtonEvent.h\>

Inherits **SoButtonEvent**.

### Public Types

enum **Button** { **ANY**, **BUTTON1**, **BUTTON2**, **BUTTON3**, **BUTTON4**, **BUTTON5** }\

Public Types inherited from **SoButtonEvent** enum **State** { **UP**, **DOWN**, **UNKNOWN** }\

### Public Member Functions

virtual **SoType** **getTypeId** (void) const\
 **SoMouseButtonEvent** (void)\
 virtual **~SoMouseButtonEvent** ()\
 void **setButton** (**Button** button)\
 **Button** **getButton** (void) const\

Public Member Functions inherited from **SoButtonEvent** **SoButtonEvent** (void)\
 virtual **~SoButtonEvent** ()\
 void **setState** (**State** state)\
 **State** **getState** (void) const\

Public Member Functions inherited from **SoEvent** **SoEvent** (void)\
 virtual **~SoEvent** ()\
 SbBool **isOfType** (**SoType** type) const\
 void **setTime** (const **SbTime** t)\
 **SbTime** **getTime** (void) const\
 void **setPosition** (const **SbVec2s** &p)\
 const **SbVec2s** & **getPosition** (void) const\
 const **SbVec2s** & **getPosition** (const **SbViewportRegion** &vpRgn) const\
 const **SbVec2f** & **getNormalizedPosition** (const **SbViewportRegion** &vpRgn) const\
 void **setShiftDown** (SbBool isDown)\
 SbBool **wasShiftDown** (void) const\
 void **setCtrlDown** (SbBool isDown)\
 SbBool **wasCtrlDown** (void) const\
 void **setAltDown** (SbBool isDown)\
 SbBool **wasAltDown** (void) const\

### Static Public Member Functions

static **SoType** **getClassTypeId** (void)\
 static void **initClass** (void)\
 static SbBool **isButtonPressEvent** (const **SoEvent** \*e, **Button** whichButton)\
 static SbBool **isButtonReleaseEvent** (const **SoEvent** \*e, **Button** whichButton)\
 static SbBool **enumToString** (**Button** enumval, **SbString** &stringrep)\

Static Public Member Functions inherited from **SoButtonEvent** static **SoType** **getClassTypeId** (void)\
 static void **initClass** (void)\
 static SbBool **enumToString** (**State** enumval, **SbString** &stringrep)\

Static Public Member Functions inherited from **SoEvent** static **SoType** **getClassTypeId** (void)\
 static void **initClass** (void)\

## Detailed Description

The **SoMouseButtonEvent** class contains information about mouse button interaction.

When the user presses any buttons on the mouse, these will be translated from a system specific event into a Coin event and sent to the scene graph by using instances of this class.

**See also**

**SoEvent**, **SoButtonEvent**, **SoSpaceballButtonEvent**, **SoKeyboardEvent**

**SoEventCallback**, **SoHandleEventAction**

## Member Enumeration Documentation

### enum SoMouseButtonEvent::Button

This enum contains all mouse buttons detected by Coin.

**Enumerator**

- ***ANY***

  Unknown button.

- ***BUTTON1***

  First mouse button (usually the leftmost button).

- ***BUTTON2***

  Second mouse button (usually the middle button).

- ***BUTTON3***

  Third mouse button (usually the rightmost button).

- ***BUTTON4***

  Fourth mouse button (typically from a wheel mouse). This is *not* part of the original Open Inventor API.

- ***BUTTON5***

  Fifth mouse button (typically from a wheel mouse). This is *not* part of the original Open Inventor API.

## Constructor & Destructor Documentation

### SoMouseButtonEvent::SoMouseButtonEvent (void )

Constructor.

### SoMouseButtonEvent::~SoMouseButtonEvent () \[virtual\]

Destructor.

## Member Function Documentation

### SoType SoMouseButtonEvent::getClassTypeId (void ) \[static\]

This static method returns the **SoType** object associated with objects of this class.

### SoType SoMouseButtonEvent::getTypeId (void ) const \[virtual\]

Returns the type identification of an object derived from a class inheriting **SoEvent**. This is used for runtime type checking and "downward" casting.

Reimplemented from **SoButtonEvent**.

### void SoMouseButtonEvent::initClass (void ) \[static\]

Initialize the type information data.

### void SoMouseButtonEvent::setButton (SoMouseButtonEvent::Button buttonarg)

Set the value of the button which the user interacted with.

This method is used from the window specific device classes when translating events to the generic Coin library.

**See also**

**getButton()**

### SoMouseButtonEvent::Button SoMouseButtonEvent::getButton (void ) const

Returns the value of the button which was pressed or released.

**See also**

**getState()**

**wasShiftDown()**, **wasCtrlDown()**, **wasAltDown()**, **getPosition()**, **getTime()**

### SbBool SoMouseButtonEvent::isButtonPressEvent (const SoEvent \* e, SoMouseButtonEvent::Button whichButton) \[static\]

Convenience method for quickly checking if the given event is a press on the given button, *whichButton*.

**See also**

**isButtonReleaseEvent()**, **isOfType()**, **getButton()**, **getState()**

### SbBool SoMouseButtonEvent::isButtonReleaseEvent (const SoEvent \* e, SoMouseButtonEvent::Button whichButton) \[static\]

Convenience method for quickly checking if the given event is a release of the given button, *whichButton*.

**See also**

**isButtonPressEvent()**, **isOfType()**, **getButton()**, **getState()**

### SbBool SoMouseButtonEvent::enumToString (Button enumval, SbString & stringrep) \[static\]

Converts from an enum value of type **SoMouseButtonEvent::Button** to a string containing the enum symbol.

This function is an extension for Coin, and it is not available in the original SGI Open Inventor v2.1 API.\
 **Since**

Coin 3.0

## Author

Generated automatically by Doxygen for Coin from the source code.
