Main Page | Modules | Class Hierarchy | Alphabetical List | Class List | File List | Class Members

SoKeyboardEvent Class Reference
[Event classes]

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

#include <Inventor/events/SoKeyboardEvent.h>

Inheritance diagram for SoKeyboardEvent:

SoButtonEvent SoEvent List of all members.

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 Member Functions

 SoKeyboardEvent (void)
virtual ~SoKeyboardEvent ()
void setKey (SoKeyboardEvent::Key key)
SoKeyboardEvent::Key getKey (void) const
void setPrintableCharacter (const char c)
char getPrintableCharacter (void) const

Static Public Member Functions

SbBool isKeyPressEvent (const SoEvent *e, SoKeyboardEvent::Key whichKey)
SbBool isKeyReleaseEvent (const SoEvent *e, SoKeyboardEvent::Key whichKey)
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 scenegraph by using instances of this class.

See also:
SoEvent, SoButtonEvent, SoMouseButtonEvent, SoSpaceballButtonEvent

SoEventCallback, SoHandleEventAction


Member Enumeration Documentation

enum SoKeyboardEvent::Key
 

This enum contains all keys detected by Coin.


Constructor & Destructor Documentation

SoKeyboardEvent::SoKeyboardEvent void   ) 
 

Constructor.

SoKeyboardEvent::~SoKeyboardEvent  )  [virtual]
 

Destructor.


Member Function Documentation

void SoKeyboardEvent::setKey SoKeyboardEvent::Key  key  ) 
 

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()

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's 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()

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()

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) will set the printable character correctly.

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

SbBool SoKeyboardEvent::isKeyPressEvent const SoEvent e,
SoKeyboardEvent::Key  whichKey
[static]
 

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

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

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()

void SoKeyboardEvent::initClass void   )  [static]
 

Initialize the type information data.

Reimplemented from SoButtonEvent.


The documentation for this class was generated from the following files:
Generated on Tue Jul 27 23:53:05 2004 for Coin by doxygen 1.3.7