sokeyboardevent(3)
NAME
SoKeyboardEvent
SYNOPSIS
#include <Inventor/events/SoKeyboardEvent.h> Inherits SoButtonEvent.
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
- 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.
- Referenced by isKeyPressEvent(), and isKeyReleaseEvent().
- 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()
- References SoEvent::wasShiftDown().
- 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()
- References SoButtonEvent::DOWN, getClassTypeId(),
SoButtonEvent::getState(), and SoEvent::isOfType(). - 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()
- References getClassTypeId(), SoButtonEvent::getState(),
SoEvent::isOfType(), and SoButtonEvent::UP. - void SoKeyboardEvent::initClass (void) [static]
- Initialize the type information data.
- Reimplemented from SoButtonEvent.
Author
- Generated automatically by Doxygen for Coin from the source code.