Coin Logo http://www.sim.no
http://www.coin3d.org

SoQtMouse Class Reference
[Qt Device Classes]

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

Inheritance diagram for SoQtMouse:

SoQtDevice SoQtObject List of all 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:

While in this SIM SoQt library the mappings are:

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.


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


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.


The documentation for this class was generated from the following files:

Copyright © 1998-2005 by Systems in Motion AS. All rights reserved.

Generated on Mon Mar 27 00:38:52 2006 for SoQt by Doxygen. 1.4.6