---
name: "SoQtMouse"
section: "3"
platform: "linux"
package: "libsoqt-dev-common"
version: "1.6.0~e8310f-3"
release: "Debian 9 (Stretch)"
platforms: ["linux"]
url: "https://new.carta.tech/SoQtMouse"
---

# SoQtMouse(3)

The SoQtMouse class is the mouse input device abstraction. The SoQtMouse class is the glue between native mouse handling and mouse interaction in the Inventor scenegraph.

## NAME

SoQtMouse - The **SoQtMouse** class is the mouse input device abstraction.

The **SoQtMouse** class is the glue between native mouse handling and mouse interaction in the Inventor scenegraph.

## SYNOPSIS

`#include <Inventor/Qt/devices/SoQtMouse.h>`

Inherits **SoQtDevice**.

### Public Types

enum **Events** { **BUTTON\_PRESS** = 0x01, **BUTTON\_RELEASE** = 0x02, **POINTER\_MOTION** = 0x04, **BUTTON\_MOTION** = 0x08, **ALL\_EVENTS** = BUTTON\_PRESS \| BUTTON\_RELEASE \| POINTER\_MOTION \| BUTTON\_MOTION }\

### Public Member Functions

**SoQtMouse** (int eventmask=**ALL\_EVENTS**)\
 virtual **~SoQtMouse** (void)\
 virtual void **enable** (QWidget \*widget, SoQtEventHandler \*handler, void \*closure)\
 virtual void **disable** (QWidget \*widget, SoQtEventHandler \*handler, void \*closure)\
 virtual const SoEvent \* **translateEvent** (QEvent \*event)\

### Friends

class **SoQtMouseP**\
 class **SoGuiMouseP**\

### Additional Inherited Members

## Detailed Description

The **SoQtMouse** class is the mouse input device abstraction.

The **SoQtMouse** class is the glue between native mouse handling and mouse interaction in the Inventor scenegraph.

All components derived from the **SoQtRenderArea** have got an **SoQtMouse** device attached by default.

One important note for application programmers: our mappings to SoMouseButtonEvent::BUTTON2 and SoMouseButtonEvent::BUTTON3 do not match the mappings in SGI's InventorXt library or TGS's SoWin library for 3-button mice. They map mouse buttons like this:

- •

  left button: SoMouseButtonEvent::BUTTON1

- •

  middle button: SoMouseButtonEvent::BUTTON2

- •

  right button: SoMouseButtonEvent::BUTTON3

While in this SIM **SoQt** library the mappings are:

- •

  left button: SoMouseButtonEvent::BUTTON1

- •

  middle button: SoMouseButtonEvent::BUTTON3

- •

  right button: SoMouseButtonEvent::BUTTON2

This is a conscious design decision we've made. The reason is that BUTTON2 should be the right mouse button whether you have a 2-button mouse or a 3-button mouse.

## Member Enumeration Documentation

### enum SoQtMouse::Events

Enumeration over supported mouse events.

**Enumerator**

- *BUTTON\_PRESS*

  *Maskbit for mousebutton press events.*

- *BUTTON\_RELEASE*

  *Maskbit for mousebutton release events.*

- *POINTER\_MOTION*

  *Maskbit for mousepointer motion events.*

- *BUTTON\_MOTION*

  *Maskbit for mousepointer motion events with one or more mousebuttons pressed.*

- *ALL\_EVENTS*

  *Mask which includes all the maskbits in the enum (ie use this to signal interest in all kinds of events for the mouse device).*

## Constructor & Destructor Documentation

### SoQtMouse::SoQtMouse (int mask = ALL\_EVENTS)

*Constructor. The mask argument should contain the set of* **SoQtMouse::Events** *one is interested in tracking.*

### SoQtMouse::~SoQtMouse (void)` [virtual]`

*Destructor.*

## Member Function Documentation

### void SoQtMouse::enable (QWidget \* widget, SoQtEventHandler \* handler, void \* closure)` [virtual]`

*This method will enable the device for the widget.*

*handler is invoked with the closure argument when an event occur in widget.*

*Implements* **SoQtDevice***.*

### void SoQtMouse::disable (QWidget \* widget, SoQtEventHandler \* handler, void \* closure)` [virtual]`

*This method will disable the handler for the device.*

*Implements* **SoQtDevice***.*

### const SoEvent \* SoQtMouse::translateEvent (QEvent \* event)` [virtual]`

*Translates a native event from the underlying toolkit into a generic event.*

*This is then returned in the form of an instance of a subclass of the Inventor API's SoEvent class, either an SoMouseButtonEvent or an SoLocation2Event, depending on whether the native event is a mousebutton press / release, or a mousecursor movement event.*

*The mapping of the mousebuttons upon generation of SoMouseButtonEvent events will be done as follows:*

- •

  *left mousebutton: SoMouseButtonEvent::BUTTON1*

- •

  *right mousebutton: SoMouseButtonEvent::BUTTON2*

- •

  *middle mousebutton, if available: SoMouseButtonEvent::BUTTON3*

- •

  *forward motion on a wheel mouse: SoMouseButtonEvent::BUTTON4*

- •

  *backward motion on a wheel mouse: SoMouseButtonEvent::BUTTON5*

*Note that the rightmost mousebutton will always map to SoMouseButtonEvent::BUTTON2, even on a 3-button mouse.*

*Implements* **SoQtDevice***.*

## Author

*Generated automatically by Doxygen for SoQt from the source code.*
