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

SoKeyboardEvent Class Reference
[Event classes]

#include <Inventor/events/SoKeyboardEvent.h>

Inheritance diagram for SoKeyboardEvent:

SoButtonEvent SoEvent List of all members.

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


Public Types

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

virtual SoType getTypeId (void) const
 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

static SoType getClassTypeId (void)
static SbBool isKeyPressEvent (const SoEvent *e, SoKeyboardEvent::Key whichKey)
static SbBool isKeyReleaseEvent (const SoEvent *e, SoKeyboardEvent::Key whichKey)
static void initClass (void)


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

SoType SoKeyboardEvent::getClassTypeId ( void   )  [static]

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

Reimplemented from SoButtonEvent.

SoType SoKeyboardEvent::getTypeId ( void   )  const [virtual]

Returns the actual type id of an instantiated object.

Reimplemented from SoButtonEvent.

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

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/Sc21) 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:

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

Generated on Fri Oct 5 07:41:18 2007 for Coin by Doxygen. 1.4.7