Coin  4.0.3
Coin3D core library
Loading...
Searching...
No Matches
SoKeyboardEvent Class Reference

The SoKeyboardEvent class contains information about keyboard interaction. More...

#include <Inventor/events/SoKeyboardEvent.h>

Inheritance diagram for SoKeyboardEvent:
SoButtonEvent SoEvent

Public Types

enum  Key {
  ANY = 0 , UNDEFINED = 1 , LEFT_SHIFT = 0xffe1 , RIGHT_SHIFT ,
  LEFT_CONTROL , RIGHT_CONTROL , LEFT_ALT = 0xffe9 , RIGHT_ALT ,
  NUMBER_0 = 0x0030 , NUMBER_1 , NUMBER_2 , NUMBER_3 ,
  NUMBER_4 , NUMBER_5 , NUMBER_6 , NUMBER_7 ,
  NUMBER_8 , NUMBER_9 , A = 0x0061 , B ,
  C , D , E , F ,
  G , H , I , J ,
  K , L , M , N ,
  O , P , Q , R ,
  S , T , U , V ,
  W , X , Y , Z ,
  HOME = 0xff50 , LEFT_ARROW , UP_ARROW , RIGHT_ARROW ,
  DOWN_ARROW , PAGE_UP , PAGE_DOWN , END ,
  PRIOR = 0xff55 , NEXT , PAD_ENTER = 0xff8d , PAD_F1 = 0xff91 ,
  PAD_F2 , PAD_F3 , PAD_F4 , PAD_0 = 0xff9e ,
  PAD_1 = 0xff9c , PAD_2 = 0xff99 , PAD_3 = 0xff9b , PAD_4 = 0xff96 ,
  PAD_5 = 0xff9d , PAD_6 = 0xff98 , PAD_7 = 0xff95 , PAD_8 = 0xff97 ,
  PAD_9 = 0xff9a , PAD_ADD = 0xffab , PAD_SUBTRACT = 0xffad , PAD_MULTIPLY = 0xffaa ,
  PAD_DIVIDE = 0xffaf , PAD_SPACE = 0xff8d , PAD_TAB = 0xff89 , PAD_INSERT = 0xff9e ,
  PAD_DELETE = 0xff9f , PAD_PERIOD = 0xff9f , F1 = 0xffbe , F2 ,
  F3 , F4 , F5 , F6 ,
  F7 , F8 , F9 , F10 ,
  F11 , F12 , BACKSPACE = 0xff08 , TAB = 0xff09 ,
  RETURN = 0xff0d , ENTER = 0xff0d , PAUSE = 0xff13 , SCROLL_LOCK = 0xff14 ,
  ESCAPE = 0xff1b , DELETE = 0xffff , KEY_DELETE = DELETE , PRINT = 0xff61 ,
  INSERT = 0xff63 , NUM_LOCK = 0xff7f , CAPS_LOCK = 0xffe5 , SHIFT_LOCK = 0xffe6 ,
  SPACE = 0x0020 , APOSTROPHE = 0x0027 , COMMA = 0x002c , MINUS = 0x002d ,
  PERIOD = 0x002e , SLASH = 0x002f , SEMICOLON = 0x003b , EQUAL = 0x003d ,
  BRACKETLEFT = 0x005b , BACKSLASH = 0x005c , BRACKETRIGHT = 0x005d , GRAVE = 0x0060
}
 
- Public Types inherited from SoButtonEvent
enum  State { UP , DOWN , UNKNOWN }
 

Public Member Functions

 SoKeyboardEvent (void)
 
virtual ~SoKeyboardEvent ()
 
Key getKey (void) const
 
char getPrintableCharacter (void) const
 
virtual SoType getTypeId (void) const
 
void setKey (Key key)
 
void setPrintableCharacter (const char c)
 
- Public Member Functions inherited from SoButtonEvent
 SoButtonEvent (void)
 
virtual ~SoButtonEvent ()
 
State getState (void) const
 
void setState (State state)
 
- Public Member Functions inherited from SoEvent
 SoEvent (void)
 
virtual ~SoEvent ()
 
const SbVec2fgetNormalizedPosition (const SbViewportRegion &vpRgn) const
 
const SbVec2sgetPosition (const SbViewportRegion &vpRgn) const
 
const SbVec2sgetPosition (void) const
 
SbTime getTime (void) const
 
SbBool isOfType (SoType type) const
 
void setAltDown (SbBool isDown)
 
void setCtrlDown (SbBool isDown)
 
void setPosition (const SbVec2s &p)
 
void setShiftDown (SbBool isDown)
 
void setTime (const SbTime t)
 
SbBool wasAltDown (void) const
 
SbBool wasCtrlDown (void) const
 
SbBool wasShiftDown (void) const
 

Static Public Member Functions

static SbBool enumToString (Key enumval, SbString &stringrep)
 
static SoType getClassTypeId (void)
 
static void initClass (void)
 
static SbBool isKeyPressEvent (const SoEvent *e, Key whichKey)
 
static SbBool isKeyReleaseEvent (const SoEvent *e, Key whichKey)
 
- Static Public Member Functions inherited from SoButtonEvent
static SbBool enumToString (State enumval, SbString &stringrep)
 
static SoType getClassTypeId (void)
 
static void initClass (void)
 
- Static Public Member Functions inherited from SoEvent
static SoType getClassTypeId (void)
 
static void initClass (void)
 

Detailed Description

The SoKeyboardEvent class contains information about keyboard interaction.

When the user presses any keys on the keyboard, 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, SoMouseButtonEvent, SoSpaceballButtonEvent
SoEventCallback, SoHandleEventAction

Member Enumeration Documentation

◆ Key

This enum contains all keys detected by Coin.

Constructor & Destructor Documentation

◆ SoKeyboardEvent()

SoKeyboardEvent::SoKeyboardEvent ( void )

Constructor.

◆ ~SoKeyboardEvent()

SoKeyboardEvent::~SoKeyboardEvent ( )
virtual

Destructor.

Member Function Documentation

◆ enumToString()

SbBool SoKeyboardEvent::enumToString ( Key enumval,
SbString & stringrep )
static

Converts from an enum value of type SoKeyboardEvent::State 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

◆ getClassTypeId()

SoType SoKeyboardEvent::getClassTypeId ( void )
static

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

◆ getKey()

SoKeyboardEvent::Key SoKeyboardEvent::getKey ( void ) const

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

Coin adds a new key value called UNDEFINED. This is needed to support GUI toolkits where it is not possible to find exactly which key is pressed, and/or to support non-US keyboards. The Open Inventor design for this class is flawed, since it assumes everybody uses a US keyboard. We recommend using getPrintableCharacter() to find which key is pressed/released, at least for printable non-alphanumerical characters.

See also
getPrintableCharacter(), getState()
wasShiftDown(), wasCtrlDown(), wasAltDown(), getPosition(), getTime()

◆ getPrintableCharacter()

char SoKeyboardEvent::getPrintableCharacter ( void ) const

Return ASCII value which would be generated by the key and modifier combination.

NB! If setPrintableCharacter() hasn't been called, this function does not always work as expected, particularly not on non-US keyboards. The Coin GUI toolkits (SoGtk/SoQt/SoWin/SoXt/Sc21) will set the printable character correctly.

See also
getKey(), wasShiftDown(), wasCtrlDown(), wasAltDown(), setPrintableCharacter()

◆ getTypeId()

SoType SoKeyboardEvent::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.

◆ initClass()

void SoKeyboardEvent::initClass ( void )
static

Initialize the type information data.

◆ isKeyPressEvent()

SbBool SoKeyboardEvent::isKeyPressEvent ( const SoEvent * e,
SoKeyboardEvent::Key whichKey )
static

Convenience method for quickly checking if the given event is a key press on the given key, whichKey.

See also
isKeyReleaseEvent(), isOfType(), getKey(), getState()

◆ isKeyReleaseEvent()

SbBool SoKeyboardEvent::isKeyReleaseEvent ( const SoEvent * e,
SoKeyboardEvent::Key whichKey )
static

Convenience method for quickly checking if the given event is a key release of the given key, whichKey.

See also
isKeyPressEvent(), isOfType(), getKey(), getState()

◆ setKey()

void SoKeyboardEvent::setKey ( SoKeyboardEvent::Key keyarg)

Set the value of the key 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
getKey()

◆ setPrintableCharacter()

void SoKeyboardEvent::setPrintableCharacter ( const char c)

Sets the printable character for this keyboard event. If this method is not called when creating an event, getPrintableCharacter() will convert the SoKeyboardEvent::Key value into a printable character. This conversion does not work on non-US keyboards, so we recommend that you set the printable character using this method instead.

This printable character is cleared each time setKey() is called.

This method is an extension versus the Open Inventor API.

See also
getPrintableCharacter()

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