Coin Logo Coin3D is Free Software,
published under the BSD 3-clause license.
https://bitbucket.org/Coin3D/
http://www.kongsberg.com/kogt/
SoWinMouse Class Reference

The SoWinMouse class is the mouse input device abstraction. More...

#include <Inventor/Win/devices/SoWinMouse.h>

Inheritance diagram for SoWinMouse:
SoWinDevice SoWinObject

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

 SoWinMouse (int eventmask=ALL_EVENTS)
 
virtual ~SoWinMouse (void)
 
virtual void enable (HWND widget, SoWinEventHandler *handler, void *closure)
 
virtual void disable (HWND widget, SoWinEventHandler *handler, void *closure)
 
virtual const SoEventtranslateEvent (MSG *event)
 
- Public Member Functions inherited from SoWinDevice
virtual ~SoWinDevice ()
 
void setWindowSize (const SbVec2s size)
 
SbVec2s getWindowSize (void) const
 
- Public Member Functions inherited from SoWinObject
virtual SoType getTypeId (void) const =0
 
SbBool isOfType (SoType type) const
 

Additional Inherited Members

- Static Public Member Functions inherited from SoWinDevice
static void initClasses (void)
 
- Static Public Member Functions inherited from SoWinObject
static void initClass (void)
 
static SoType getClassTypeId (void)
 
static void init (void)
 
- Protected Member Functions inherited from SoWinDevice
 SoWinDevice (void)
 
void setEventPosition (SoEvent *event, int x, int y) const
 
void addEventHandler (HWND, SoWinEventHandler *, void *)
 
void removeEventHandler (HWND, SoWinEventHandler *, void *)
 
void invokeHandlers (MSG *event)
 
- Static Protected Member Functions inherited from SoWinDevice
static SbVec2s getLastEventPosition (void)
 

Detailed Description

The SoWinMouse class is the mouse input device abstraction.

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

All components derived from the SoWinRenderArea have got an SoWinMouse 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 SoWin 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.

Member Enumeration Documentation

◆ 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

◆ SoWinMouse()

SoWinMouse::SoWinMouse ( int  mask = ALL_EVENTS)

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

◆ ~SoWinMouse()

SoWinMouse::~SoWinMouse ( void  )
virtual

Destructor.

Member Function Documentation

◆ enable()

void SoWinMouse::enable ( HWND  widget,
SoWinEventHandler *  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 SoWinDevice.

◆ disable()

void SoWinMouse::disable ( HWND  widget,
SoWinEventHandler *  handler,
void *  closure 
)
virtual

This method will disable the handler for the device.

Implements SoWinDevice.

◆ translateEvent()

const SoEvent * SoWinMouse::translateEvent ( MSG *  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:

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

Implements SoWinDevice.


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