---
name: "SoQtDevice"
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/SoQtDevice"
---

# SoQtDevice(3)

The SoQtDevice class is the base class for the translation devices. The SoQt device classes provide glue functionality for translating native GUI events from the underlying toolkit to Inventor scenegraph SoEvent events.

## NAME

SoQtDevice - The **SoQtDevice** class is the base class for the translation devices.

The **SoQt** device classes provide glue functionality for translating native GUI events from the underlying toolkit to Inventor scenegraph SoEvent events.

## SYNOPSIS

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

Inherits **SoQtObject**.

Inherited by **SoQtKeyboard**, and **SoQtMouse**.

### Public Member Functions

virtual **~SoQtDevice** ()\
 virtual void **enable** (QWidget \*w, SoQtEventHandler \*handler, void \*closure)=0\
 virtual void **disable** (QWidget \*w, SoQtEventHandler \*handler, void \*closure)=0\
 virtual const SoEvent \* **translateEvent** (QEvent \*event)=0\
 void **setWindowSize** (const SbVec2s size)\
 SbVec2s **getWindowSize** (void) const \

### Static Public Member Functions

static void **initClasses** (void)\

### Protected Member Functions

**SoQtDevice** (void)\
 void **setEventPosition** (SoEvent \*event, int x, int y) const \
 void **addEventHandler** (QWidget \*, SoQtEventHandler \*, void \*)\
 void **removeEventHandler** (QWidget \*, SoQtEventHandler \*, void \*)\
 void **invokeHandlers** (QEvent \*event)\

### Static Protected Member Functions

static SbVec2s **getLastEventPosition** (void)\

### Friends

class **SoQtDeviceP**\

## Detailed Description

The **SoQtDevice** class is the base class for the translation devices.

The **SoQt** device classes provide glue functionality for translating native GUI events from the underlying toolkit to Inventor scenegraph SoEvent events.

The device classes are mainly of interest to application programmers when writing extensions for new types of devices, and seldom in other contexts -- so they can most often be ignored.

## Constructor & Destructor Documentation

### SoQtDevice::~SoQtDevice ()` [virtual]`

Public virtual destructor.

### SoQtDevice::SoQtDevice (void)` [protected]`

Constructor. Protected to only enable invocation from derived device classes.

## Member Function Documentation

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

This method will enable the device for the widget.

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

Implemented in **SoQtMouse**, and **SoQtKeyboard**.

Referenced by SoQtRenderArea::registerDevice(), and SoQtRenderArea::widgetChanged().

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

This method will disable the handler for the device.

Implemented in **SoQtMouse**, and **SoQtKeyboard**.

Referenced by SoQtRenderArea::unregisterDevice().

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

This method translates from native events to Open Inventor SoEvent events.

Implemented in **SoQtMouse**, and **SoQtKeyboard**.

### void SoQtDevice::setWindowSize (const SbVec2s size)

This method sets the cached size of the window the device is 'attached' to.

Referenced by SoQtRenderArea::registerDevice().

### SbVec2s SoQtDevice::getWindowSize (void) const

This method returns the cached window size.

### void SoQtDevice::initClasses (void)` [static]`

This function initializes the type system for all the **SoQt** device classes. It is called indirectly when calling **SoQt::init()**, so the application programmer doesn't have to bother with it.

References SoQtObject::initClass().

Referenced by SoQtObject::init().

### void SoQtDevice::setEventPosition (SoEvent \* event, int x, int y) const` [protected]`

This method fills in the position information of *event*, translating the coordinates into the correct coordinate system.

### SbVec2s SoQtDevice::getLastEventPosition (void)` [static]`, ` [protected]`

Returns last event position that was set with **SoQtDevice::setEventPosition()**.

Referenced by SoQtKeyboard::translateEvent().

### void SoQtDevice::addEventHandler (QWidget \* widget, SoQtEventHandler \* handler, void \* closure)` [protected]`

Stores an event *handler* for the *widget*, which can later be invoked with **SoQtDevice::invokeHandlers()**. Used by extension device types.

### void SoQtDevice::removeEventHandler (QWidget \* widget, SoQtEventHandler \* handler, void \* closure)` [protected]`

Remove a *handler* registered with **SoQtDevice::addEventHandler()**.

### void SoQtDevice::invokeHandlers (QEvent \* event)` [protected]`

Invoke all handlers registered with **SoQtDevice::addEventHandler()**.

## Author

Generated automatically by Doxygen for SoQt from the source code.
