'\"! tbl | mmdoc '\"macro stdmacro .ie n \{\ . ds Cr \fB . ds Cb \fB .\} .el \{\ . ds Cr \f7 . ds Cb \f8 .\} .TH SoKeyboardEvent(3IV) .SH NAME SoKeyboardEvent \(em keyboard key press and release events .SH INHERITS FROM SoEvent > SoButtonEvent > SoKeyboardEvent .SH SYNOPSIS .ps -1 \*(Cr#include .sp \*(Cr#define SO_KEY_PRESS_EVENT(EVENT,KEY) (SoKeyboardEvent::isKeyPressEvent(EVENT,SoKeyboardEvent::KEY)) .br \*(Cr#define SO_KEY_RELEASE_EVENT(EVENT,KEY) (SoKeyboardEvent::isKeyReleaseEvent(EVENT,SoKeyboardEvent::KEY)) .sp .in 0.5i \*(Crenum \*(CbKey\*(Cr { .in 1i .ta 29m .in 1.5i+29n .ti 1i .ta 29m .ds Pt \*(CbSoKeyboardEvent::ANY\f1 .ie \w'\*(Pt'>=29n \{\ .ne 3 \*(Pt .ti 1i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} Special constant for any key .br .in 1.5i+29n .ti 1i .ta 29m .ds Pt \*(CbSoKeyboardEvent::LEFT_SHIFT\f1 .ie \w'\*(Pt'>=29n \{\ .ne 3 \*(Pt .ti 1i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} Modifiers .br .in 1.5i+29n .ti 1i .ta 29m .ds Pt \*(CbSoKeyboardEvent::RIGHT_SHIFT\f1 .ie \w'\*(Pt'>=29n \{\ .ne 3 \*(Pt .ti 1i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} .br .in 1.5i+29n .ti 1i .ta 29m .ds Pt \*(CbSoKeyboardEvent::LEFT_CONTROL\f1 .ie \w'\*(Pt'>=29n \{\ .ne 3 \*(Pt .ti 1i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} .br .in 1.5i+29n .ti 1i .ta 29m .ds Pt \*(CbSoKeyboardEvent::RIGHT_CONTROL\f1 .ie \w'\*(Pt'>=29n \{\ .ne 3 \*(Pt .ti 1i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} .br .in 1.5i+29n .ti 1i .ta 29m .ds Pt \*(CbSoKeyboardEvent::LEFT_ALT\f1 .ie \w'\*(Pt'>=29n \{\ .ne 3 \*(Pt .ti 1i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} .br .in 1.5i+29n .ti 1i .ta 29m .ds Pt \*(CbSoKeyboardEvent::RIGHT_ALT\f1 .ie \w'\*(Pt'>=29n \{\ .ne 3 \*(Pt .ti 1i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} .br .in 1.5i+29n .ti 1i .ta 29m .ds Pt \*(CbSoKeyboardEvent::NUMBER_0\f1 .ie \w'\*(Pt'>=29n \{\ .ne 3 \*(Pt .ti 1i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} Numbers .br .in 1.5i+29n .ti 1i .ta 29m .ds Pt \*(CbSoKeyboardEvent::NUMBER_1\f1 .ie \w'\*(Pt'>=29n \{\ .ne 3 \*(Pt .ti 1i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} .br .in 1.5i+29n .ti 1i .ta 29m .ds Pt \*(CbSoKeyboardEvent::NUMBER_2\f1 .ie \w'\*(Pt'>=29n \{\ .ne 3 \*(Pt .ti 1i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} .br .in 1.5i+29n .ti 1i .ta 29m .ds Pt \*(CbSoKeyboardEvent::NUMBER_3\f1 .ie \w'\*(Pt'>=29n \{\ .ne 3 \*(Pt .ti 1i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} .br .in 1.5i+29n .ti 1i .ta 29m .ds Pt \*(CbSoKeyboardEvent::NUMBER_4\f1 .ie \w'\*(Pt'>=29n \{\ .ne 3 \*(Pt .ti 1i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} .br .in 1.5i+29n .ti 1i .ta 29m .ds Pt \*(CbSoKeyboardEvent::NUMBER_5\f1 .ie \w'\*(Pt'>=29n \{\ .ne 3 \*(Pt .ti 1i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} .br .in 1.5i+29n .ti 1i .ta 29m .ds Pt \*(CbSoKeyboardEvent::NUMBER_6\f1 .ie \w'\*(Pt'>=29n \{\ .ne 3 \*(Pt .ti 1i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} .br .in 1.5i+29n .ti 1i .ta 29m .ds Pt \*(CbSoKeyboardEvent::NUMBER_7\f1 .ie \w'\*(Pt'>=29n \{\ .ne 3 \*(Pt .ti 1i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} .br .in 1.5i+29n .ti 1i .ta 29m .ds Pt \*(CbSoKeyboardEvent::NUMBER_8\f1 .ie \w'\*(Pt'>=29n \{\ .ne 3 \*(Pt .ti 1i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} .br .in 1.5i+29n .ti 1i .ta 29m .ds Pt \*(CbSoKeyboardEvent::NUMBER_9\f1 .ie \w'\*(Pt'>=29n \{\ .ne 3 \*(Pt .ti 1i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} .br .in 1.5i+29n .ti 1i .ta 29m .ds Pt \*(CbSoKeyboardEvent::A\f1 .ie \w'\*(Pt'>=29n \{\ .ne 3 \*(Pt .ti 1i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} Letters .br .in 1.5i+29n .ti 1i .ta 29m .ds Pt \*(CbSoKeyboardEvent::B\f1 .ie \w'\*(Pt'>=29n \{\ .ne 3 \*(Pt .ti 1i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} .br .in 1.5i+29n .ti 1i .ta 29m .ds Pt \*(CbSoKeyboardEvent::C\f1 .ie \w'\*(Pt'>=29n \{\ .ne 3 \*(Pt .ti 1i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} .br .in 1.5i+29n .ti 1i .ta 29m .ds Pt \*(CbSoKeyboardEvent::D\f1 .ie \w'\*(Pt'>=29n \{\ .ne 3 \*(Pt .ti 1i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} .br .in 1.5i+29n .ti 1i .ta 29m .ds Pt \*(CbSoKeyboardEvent::E\f1 .ie \w'\*(Pt'>=29n \{\ .ne 3 \*(Pt .ti 1i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} .br .in 1.5i+29n .ti 1i .ta 29m .ds Pt \*(CbSoKeyboardEvent::F\f1 .ie \w'\*(Pt'>=29n \{\ .ne 3 \*(Pt .ti 1i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} .br .in 1.5i+29n .ti 1i .ta 29m .ds Pt \*(CbSoKeyboardEvent::G\f1 .ie \w'\*(Pt'>=29n \{\ .ne 3 \*(Pt .ti 1i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} .br .in 1.5i+29n .ti 1i .ta 29m .ds Pt \*(CbSoKeyboardEvent::H\f1 .ie \w'\*(Pt'>=29n \{\ .ne 3 \*(Pt .ti 1i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} .br .in 1.5i+29n .ti 1i .ta 29m .ds Pt \*(CbSoKeyboardEvent::I\f1 .ie \w'\*(Pt'>=29n \{\ .ne 3 \*(Pt .ti 1i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} .br .in 1.5i+29n .ti 1i .ta 29m .ds Pt \*(CbSoKeyboardEvent::J\f1 .ie \w'\*(Pt'>=29n \{\ .ne 3 \*(Pt .ti 1i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} .br .in 1.5i+29n .ti 1i .ta 29m .ds Pt \*(CbSoKeyboardEvent::K\f1 .ie \w'\*(Pt'>=29n \{\ .ne 3 \*(Pt .ti 1i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} .br .in 1.5i+29n .ti 1i .ta 29m .ds Pt \*(CbSoKeyboardEvent::L\f1 .ie \w'\*(Pt'>=29n \{\ .ne 3 \*(Pt .ti 1i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} .br .in 1.5i+29n .ti 1i .ta 29m .ds Pt \*(CbSoKeyboardEvent::M\f1 .ie \w'\*(Pt'>=29n \{\ .ne 3 \*(Pt .ti 1i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} .br .in 1.5i+29n .ti 1i .ta 29m .ds Pt \*(CbSoKeyboardEvent::N\f1 .ie \w'\*(Pt'>=29n \{\ .ne 3 \*(Pt .ti 1i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} .br .in 1.5i+29n .ti 1i .ta 29m .ds Pt \*(CbSoKeyboardEvent::O\f1 .ie \w'\*(Pt'>=29n \{\ .ne 3 \*(Pt .ti 1i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} .br .in 1.5i+29n .ti 1i .ta 29m .ds Pt \*(CbSoKeyboardEvent::P\f1 .ie \w'\*(Pt'>=29n \{\ .ne 3 \*(Pt .ti 1i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} .br .in 1.5i+29n .ti 1i .ta 29m .ds Pt \*(CbSoKeyboardEvent::Q\f1 .ie \w'\*(Pt'>=29n \{\ .ne 3 \*(Pt .ti 1i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} .br .in 1.5i+29n .ti 1i .ta 29m .ds Pt \*(CbSoKeyboardEvent::R\f1 .ie \w'\*(Pt'>=29n \{\ .ne 3 \*(Pt .ti 1i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} .br .in 1.5i+29n .ti 1i .ta 29m .ds Pt \*(CbSoKeyboardEvent::S\f1 .ie \w'\*(Pt'>=29n \{\ .ne 3 \*(Pt .ti 1i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} .br .in 1.5i+29n .ti 1i .ta 29m .ds Pt \*(CbSoKeyboardEvent::T\f1 .ie \w'\*(Pt'>=29n \{\ .ne 3 \*(Pt .ti 1i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} .br .in 1.5i+29n .ti 1i .ta 29m .ds Pt \*(CbSoKeyboardEvent::U\f1 .ie \w'\*(Pt'>=29n \{\ .ne 3 \*(Pt .ti 1i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} .br .in 1.5i+29n .ti 1i .ta 29m .ds Pt \*(CbSoKeyboardEvent::V\f1 .ie \w'\*(Pt'>=29n \{\ .ne 3 \*(Pt .ti 1i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} .br .in 1.5i+29n .ti 1i .ta 29m .ds Pt \*(CbSoKeyboardEvent::W\f1 .ie \w'\*(Pt'>=29n \{\ .ne 3 \*(Pt .ti 1i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} .br .in 1.5i+29n .ti 1i .ta 29m .ds Pt \*(CbSoKeyboardEvent::X\f1 .ie \w'\*(Pt'>=29n \{\ .ne 3 \*(Pt .ti 1i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} .br .in 1.5i+29n .ti 1i .ta 29m .ds Pt \*(CbSoKeyboardEvent::Y\f1 .ie \w'\*(Pt'>=29n \{\ .ne 3 \*(Pt .ti 1i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} .br .in 1.5i+29n .ti 1i .ta 29m .ds Pt \*(CbSoKeyboardEvent::Z\f1 .ie \w'\*(Pt'>=29n \{\ .ne 3 \*(Pt .ti 1i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} .br .in 1.5i+29n .ti 1i .ta 29m .ds Pt \*(CbSoKeyboardEvent::HOME\f1 .ie \w'\*(Pt'>=29n \{\ .ne 3 \*(Pt .ti 1i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} Cursor control and motion .br .in 1.5i+29n .ti 1i .ta 29m .ds Pt \*(CbSoKeyboardEvent::LEFT_ARROW\f1 .ie \w'\*(Pt'>=29n \{\ .ne 3 \*(Pt .ti 1i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} .br .in 1.5i+29n .ti 1i .ta 29m .ds Pt \*(CbSoKeyboardEvent::UP_ARROW\f1 .ie \w'\*(Pt'>=29n \{\ .ne 3 \*(Pt .ti 1i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} .br .in 1.5i+29n .ti 1i .ta 29m .ds Pt \*(CbSoKeyboardEvent::RIGHT_ARROW\f1 .ie \w'\*(Pt'>=29n \{\ .ne 3 \*(Pt .ti 1i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} .br .in 1.5i+29n .ti 1i .ta 29m .ds Pt \*(CbSoKeyboardEvent::DOWN_ARROW\f1 .ie \w'\*(Pt'>=29n \{\ .ne 3 \*(Pt .ti 1i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} .br .in 1.5i+29n .ti 1i .ta 29m .ds Pt \*(CbSoKeyboardEvent::PAGE_UP\f1 .ie \w'\*(Pt'>=29n \{\ .ne 3 \*(Pt .ti 1i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} .br .in 1.5i+29n .ti 1i .ta 29m .ds Pt \*(CbSoKeyboardEvent::PAGE_DOWN\f1 .ie \w'\*(Pt'>=29n \{\ .ne 3 \*(Pt .ti 1i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} .br .in 1.5i+29n .ti 1i .ta 29m .ds Pt \*(CbSoKeyboardEvent::PRIOR\f1 .ie \w'\*(Pt'>=29n \{\ .ne 3 \*(Pt .ti 1i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} .br .in 1.5i+29n .ti 1i .ta 29m .ds Pt \*(CbSoKeyboardEvent::NEXT\f1 .ie \w'\*(Pt'>=29n \{\ .ne 3 \*(Pt .ti 1i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} .br .in 1.5i+29n .ti 1i .ta 29m .ds Pt \*(CbSoKeyboardEvent::END\f1 .ie \w'\*(Pt'>=29n \{\ .ne 3 \*(Pt .ti 1i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} .br .in 1.5i+29n .ti 1i .ta 29m .ds Pt \*(CbSoKeyboardEvent::PAD_ENTER\f1 .ie \w'\*(Pt'>=29n \{\ .ne 3 \*(Pt .ti 1i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} Keypad functions .br .in 1.5i+29n .ti 1i .ta 29m .ds Pt \*(CbSoKeyboardEvent::PAD_F1\f1 .ie \w'\*(Pt'>=29n \{\ .ne 3 \*(Pt .ti 1i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} .br .in 1.5i+29n .ti 1i .ta 29m .ds Pt \*(CbSoKeyboardEvent::PAD_F2\f1 .ie \w'\*(Pt'>=29n \{\ .ne 3 \*(Pt .ti 1i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} .br .in 1.5i+29n .ti 1i .ta 29m .ds Pt \*(CbSoKeyboardEvent::PAD_F3\f1 .ie \w'\*(Pt'>=29n \{\ .ne 3 \*(Pt .ti 1i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} .br .in 1.5i+29n .ti 1i .ta 29m .ds Pt \*(CbSoKeyboardEvent::PAD_F4\f1 .ie \w'\*(Pt'>=29n \{\ .ne 3 \*(Pt .ti 1i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} .br .in 1.5i+29n .ti 1i .ta 29m .ds Pt \*(CbSoKeyboardEvent::PAD_0\f1 .ie \w'\*(Pt'>=29n \{\ .ne 3 \*(Pt .ti 1i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} .br .in 1.5i+29n .ti 1i .ta 29m .ds Pt \*(CbSoKeyboardEvent::PAD_1\f1 .ie \w'\*(Pt'>=29n \{\ .ne 3 \*(Pt .ti 1i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} .br .in 1.5i+29n .ti 1i .ta 29m .ds Pt \*(CbSoKeyboardEvent::PAD_2\f1 .ie \w'\*(Pt'>=29n \{\ .ne 3 \*(Pt .ti 1i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} .br .in 1.5i+29n .ti 1i .ta 29m .ds Pt \*(CbSoKeyboardEvent::PAD_3\f1 .ie \w'\*(Pt'>=29n \{\ .ne 3 \*(Pt .ti 1i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} .br .in 1.5i+29n .ti 1i .ta 29m .ds Pt \*(CbSoKeyboardEvent::PAD_4\f1 .ie \w'\*(Pt'>=29n \{\ .ne 3 \*(Pt .ti 1i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} .br .in 1.5i+29n .ti 1i .ta 29m .ds Pt \*(CbSoKeyboardEvent::PAD_5\f1 .ie \w'\*(Pt'>=29n \{\ .ne 3 \*(Pt .ti 1i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} .br .in 1.5i+29n .ti 1i .ta 29m .ds Pt \*(CbSoKeyboardEvent::PAD_6\f1 .ie \w'\*(Pt'>=29n \{\ .ne 3 \*(Pt .ti 1i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} .br .in 1.5i+29n .ti 1i .ta 29m .ds Pt \*(CbSoKeyboardEvent::PAD_7\f1 .ie \w'\*(Pt'>=29n \{\ .ne 3 \*(Pt .ti 1i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} .br .in 1.5i+29n .ti 1i .ta 29m .ds Pt \*(CbSoKeyboardEvent::PAD_8\f1 .ie \w'\*(Pt'>=29n \{\ .ne 3 \*(Pt .ti 1i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} .br .in 1.5i+29n .ti 1i .ta 29m .ds Pt \*(CbSoKeyboardEvent::PAD_9\f1 .ie \w'\*(Pt'>=29n \{\ .ne 3 \*(Pt .ti 1i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} .br .in 1.5i+29n .ti 1i .ta 29m .ds Pt \*(CbSoKeyboardEvent::PAD_ADD\f1 .ie \w'\*(Pt'>=29n \{\ .ne 3 \*(Pt .ti 1i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} .br .in 1.5i+29n .ti 1i .ta 29m .ds Pt \*(CbSoKeyboardEvent::PAD_SUBTRACT\f1 .ie \w'\*(Pt'>=29n \{\ .ne 3 \*(Pt .ti 1i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} .br .in 1.5i+29n .ti 1i .ta 29m .ds Pt \*(CbSoKeyboardEvent::PAD_MULTIPLY\f1 .ie \w'\*(Pt'>=29n \{\ .ne 3 \*(Pt .ti 1i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} .br .in 1.5i+29n .ti 1i .ta 29m .ds Pt \*(CbSoKeyboardEvent::PAD_DIVIDE\f1 .ie \w'\*(Pt'>=29n \{\ .ne 3 \*(Pt .ti 1i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} .br .in 1.5i+29n .ti 1i .ta 29m .ds Pt \*(CbSoKeyboardEvent::PAD_SPACE\f1 .ie \w'\*(Pt'>=29n \{\ .ne 3 \*(Pt .ti 1i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} .br .in 1.5i+29n .ti 1i .ta 29m .ds Pt \*(CbSoKeyboardEvent::PAD_TAB\f1 .ie \w'\*(Pt'>=29n \{\ .ne 3 \*(Pt .ti 1i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} .br .in 1.5i+29n .ti 1i .ta 29m .ds Pt \*(CbSoKeyboardEvent::PAD_INSERT\f1 .ie \w'\*(Pt'>=29n \{\ .ne 3 \*(Pt .ti 1i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} .br .in 1.5i+29n .ti 1i .ta 29m .ds Pt \*(CbSoKeyboardEvent::PAD_DELETE\f1 .ie \w'\*(Pt'>=29n \{\ .ne 3 \*(Pt .ti 1i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} .br .in 1.5i+29n .ti 1i .ta 29m .ds Pt \*(CbSoKeyboardEvent::PAD_PERIOD\f1 .ie \w'\*(Pt'>=29n \{\ .ne 3 \*(Pt .ti 1i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} .br .in 1.5i+29n .ti 1i .ta 29m .ds Pt \*(CbSoKeyboardEvent::F1\f1 .ie \w'\*(Pt'>=29n \{\ .ne 3 \*(Pt .ti 1i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} Function keys .br .in 1.5i+29n .ti 1i .ta 29m .ds Pt \*(CbSoKeyboardEvent::F2\f1 .ie \w'\*(Pt'>=29n \{\ .ne 3 \*(Pt .ti 1i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} .br .in 1.5i+29n .ti 1i .ta 29m .ds Pt \*(CbSoKeyboardEvent::F3\f1 .ie \w'\*(Pt'>=29n \{\ .ne 3 \*(Pt .ti 1i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} .br .in 1.5i+29n .ti 1i .ta 29m .ds Pt \*(CbSoKeyboardEvent::F4\f1 .ie \w'\*(Pt'>=29n \{\ .ne 3 \*(Pt .ti 1i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} .br .in 1.5i+29n .ti 1i .ta 29m .ds Pt \*(CbSoKeyboardEvent::F5\f1 .ie \w'\*(Pt'>=29n \{\ .ne 3 \*(Pt .ti 1i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} .br .in 1.5i+29n .ti 1i .ta 29m .ds Pt \*(CbSoKeyboardEvent::F6\f1 .ie \w'\*(Pt'>=29n \{\ .ne 3 \*(Pt .ti 1i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} .br .in 1.5i+29n .ti 1i .ta 29m .ds Pt \*(CbSoKeyboardEvent::F7\f1 .ie \w'\*(Pt'>=29n \{\ .ne 3 \*(Pt .ti 1i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} .br .in 1.5i+29n .ti 1i .ta 29m .ds Pt \*(CbSoKeyboardEvent::F8\f1 .ie \w'\*(Pt'>=29n \{\ .ne 3 \*(Pt .ti 1i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} .br .in 1.5i+29n .ti 1i .ta 29m .ds Pt \*(CbSoKeyboardEvent::F9\f1 .ie \w'\*(Pt'>=29n \{\ .ne 3 \*(Pt .ti 1i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} .br .in 1.5i+29n .ti 1i .ta 29m .ds Pt \*(CbSoKeyboardEvent::F10\f1 .ie \w'\*(Pt'>=29n \{\ .ne 3 \*(Pt .ti 1i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} .br .in 1.5i+29n .ti 1i .ta 29m .ds Pt \*(CbSoKeyboardEvent::F11\f1 .ie \w'\*(Pt'>=29n \{\ .ne 3 \*(Pt .ti 1i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} .br .in 1.5i+29n .ti 1i .ta 29m .ds Pt \*(CbSoKeyboardEvent::F12\f1 .ie \w'\*(Pt'>=29n \{\ .ne 3 \*(Pt .ti 1i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} .br .in 1.5i+29n .ti 1i .ta 29m .ds Pt \*(CbSoKeyboardEvent::BACKSPACE\f1 .ie \w'\*(Pt'>=29n \{\ .ne 3 \*(Pt .ti 1i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} Miscellaneous .br .in 1.5i+29n .ti 1i .ta 29m .ds Pt \*(CbSoKeyboardEvent::TAB\f1 .ie \w'\*(Pt'>=29n \{\ .ne 3 \*(Pt .ti 1i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} .br .in 1.5i+29n .ti 1i .ta 29m .ds Pt \*(CbSoKeyboardEvent::RETURN\f1 .ie \w'\*(Pt'>=29n \{\ .ne 3 \*(Pt .ti 1i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} .br .in 1.5i+29n .ti 1i .ta 29m .ds Pt \*(CbSoKeyboardEvent::ENTER\f1 .ie \w'\*(Pt'>=29n \{\ .ne 3 \*(Pt .ti 1i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} .br .in 1.5i+29n .ti 1i .ta 29m .ds Pt \*(CbSoKeyboardEvent::PAUSE\f1 .ie \w'\*(Pt'>=29n \{\ .ne 3 \*(Pt .ti 1i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} .br .in 1.5i+29n .ti 1i .ta 29m .ds Pt \*(CbSoKeyboardEvent::SCROLL_LOCK\f1 .ie \w'\*(Pt'>=29n \{\ .ne 3 \*(Pt .ti 1i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} .br .in 1.5i+29n .ti 1i .ta 29m .ds Pt \*(CbSoKeyboardEvent::ESCAPE\f1 .ie \w'\*(Pt'>=29n \{\ .ne 3 \*(Pt .ti 1i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} .br .in 1.5i+29n .ti 1i .ta 29m .ds Pt \*(CbSoKeyboardEvent::DELETE\f1 .ie \w'\*(Pt'>=29n \{\ .ne 3 \*(Pt .ti 1i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} .br .in 1.5i+29n .ti 1i .ta 29m .ds Pt \*(CbSoKeyboardEvent::PRINT\f1 .ie \w'\*(Pt'>=29n \{\ .ne 3 \*(Pt .ti 1i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} .br .in 1.5i+29n .ti 1i .ta 29m .ds Pt \*(CbSoKeyboardEvent::INSERT\f1 .ie \w'\*(Pt'>=29n \{\ .ne 3 \*(Pt .ti 1i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} .br .in 1.5i+29n .ti 1i .ta 29m .ds Pt \*(CbSoKeyboardEvent::NUM_LOCK\f1 .ie \w'\*(Pt'>=29n \{\ .ne 3 \*(Pt .ti 1i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} .br .in 1.5i+29n .ti 1i .ta 29m .ds Pt \*(CbSoKeyboardEvent::CAPS_LOCK\f1 .ie \w'\*(Pt'>=29n \{\ .ne 3 \*(Pt .ti 1i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} .br .in 1.5i+29n .ti 1i .ta 29m .ds Pt \*(CbSoKeyboardEvent::SHIFT_LOCK\f1 .ie \w'\*(Pt'>=29n \{\ .ne 3 \*(Pt .ti 1i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} .br .in 1.5i+29n .ti 1i .ta 29m .ds Pt \*(CbSoKeyboardEvent::SPACE\f1 .ie \w'\*(Pt'>=29n \{\ .ne 3 \*(Pt .ti 1i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} .br .in 1.5i+29n .ti 1i .ta 29m .ds Pt \*(CbSoKeyboardEvent::APOSTROPHE\f1 .ie \w'\*(Pt'>=29n \{\ .ne 3 \*(Pt .ti 1i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} .br .in 1.5i+29n .ti 1i .ta 29m .ds Pt \*(CbSoKeyboardEvent::COMMA\f1 .ie \w'\*(Pt'>=29n \{\ .ne 3 \*(Pt .ti 1i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} .br .in 1.5i+29n .ti 1i .ta 29m .ds Pt \*(CbSoKeyboardEvent::MINUS\f1 .ie \w'\*(Pt'>=29n \{\ .ne 3 \*(Pt .ti 1i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} .br .in 1.5i+29n .ti 1i .ta 29m .ds Pt \*(CbSoKeyboardEvent::PERIOD\f1 .ie \w'\*(Pt'>=29n \{\ .ne 3 \*(Pt .ti 1i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} .br .in 1.5i+29n .ti 1i .ta 29m .ds Pt \*(CbSoKeyboardEvent::SLASH\f1 .ie \w'\*(Pt'>=29n \{\ .ne 3 \*(Pt .ti 1i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} .br .in 1.5i+29n .ti 1i .ta 29m .ds Pt \*(CbSoKeyboardEvent::SEMICOLON\f1 .ie \w'\*(Pt'>=29n \{\ .ne 3 \*(Pt .ti 1i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} .br .in 1.5i+29n .ti 1i .ta 29m .ds Pt \*(CbSoKeyboardEvent::EQUAL\f1 .ie \w'\*(Pt'>=29n \{\ .ne 3 \*(Pt .ti 1i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} .br .in 1.5i+29n .ti 1i .ta 29m .ds Pt \*(CbSoKeyboardEvent::BRACKETLEFT\f1 .ie \w'\*(Pt'>=29n \{\ .ne 3 \*(Pt .ti 1i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} .br .in 1.5i+29n .ti 1i .ta 29m .ds Pt \*(CbSoKeyboardEvent::BACKSLASH\f1 .ie \w'\*(Pt'>=29n \{\ .ne 3 \*(Pt .ti 1i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} .br .in 1.5i+29n .ti 1i .ta 29m .ds Pt \*(CbSoKeyboardEvent::BRACKETRIGHT\f1 .ie \w'\*(Pt'>=29n \{\ .ne 3 \*(Pt .ti 1i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} .br .in 1.5i+29n .ti 1i .ta 29m .ds Pt \*(CbSoKeyboardEvent::GRAVE\f1 .ie \w'\*(Pt'>=29n \{\ .ne 3 \*(Pt .ti 1i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} .br .in 0.5i \*(Cr} .sp .in 1i \f1Methods from class SoKeyboardEvent: .in 0.5i .sp .ta 22m .in 1i+22n .ti 0.5i .ta 22m .ds Pt \*(Cr .ie \w'\*(Pt'>=22n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbSoKeyboardEvent\*(Cr() .br .in 1i+22n .ti 0.5i .ta 22m .ds Pt \*(Crstatic SoType .ie \w'\*(Pt'>=22n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbgetClassTypeId\*(Cr() .br .in 1i+22n .ti 0.5i .ta 22m .ds Pt \*(Crvoid .ie \w'\*(Pt'>=22n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbsetKey\*(Cr(SoKeyboardEvent::Key whichKey) .br .in 1i+22n .ti 0.5i .ta 22m .ds Pt \*(CrSoKeyboardEvent::Key .ie \w'\*(Pt'>=22n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbgetKey\*(Cr() const .br .in 1i+22n .ti 0.5i .ta 22m .ds Pt \*(Crstatic SbBool .ie \w'\*(Pt'>=22n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbisKeyPressEvent\*(Cr(const SoEvent *e, SoKeyboardEvent::Key whichKey) .br .in 1i+22n .ti 0.5i .ta 22m .ds Pt \*(Crstatic SbBool .ie \w'\*(Pt'>=22n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbisKeyReleaseEvent\*(Cr(const SoEvent *e, SoKeyboardEvent::Key whichKey) .br .in 1i+22n .ti 0.5i .ta 22m .ds Pt \*(Crchar .ie \w'\*(Pt'>=22n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbgetPrintableCharacter\*(Cr() const .sp .in 1i \f1Methods from class SoButtonEvent: .in 0.5i .sp .ta 22m .in 1i+22n .ti 0.5i .ta 22m .ds Pt \*(Crvoid .ie \w'\*(Pt'>=22n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbsetState\*(Cr(SoButtonEvent::State s) .br .in 1i+22n .ti 0.5i .ta 22m .ds Pt \*(CrSoButtonEvent::State .ie \w'\*(Pt'>=22n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbgetState\*(Cr() const .sp .in 1i \f1Methods from class SoEvent: .in 0.5i .sp .ta 20m .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(Crvirtual SoType .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbgetTypeId\*(Cr() const .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(CrSbBool .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbisOfType\*(Cr(SoType type) const .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(Crvoid .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbsetTime\*(Cr(SbTime t) .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(CrSbTime .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbgetTime\*(Cr() const .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(Crvoid .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbsetPosition\*(Cr(const SbVec2s &p) .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(Crconst SbVec2s & .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbgetPosition\*(Cr() const .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(Crconst SbVec2s & .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbgetPosition\*(Cr(const SbViewportRegion &vpRgn) const .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(Crconst SbVec2f & .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbgetNormalizedPosition\*(Cr(const SbViewportRegion &vpRgn) const .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(Crvoid .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbsetShiftDown\*(Cr(SbBool isDown) .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(Crvoid .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbsetCtrlDown\*(Cr(SbBool isDown) .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(Crvoid .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbsetAltDown\*(Cr(SbBool isDown) .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(CrSbBool .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbwasShiftDown\*(Cr() const .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(CrSbBool .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbwasCtrlDown\*(Cr() const .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(CrSbBool .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbwasAltDown\*(Cr() const .sp .SH DESCRIPTION \*(CbSoKeyboardEvent\f1 represents keyboard key press and release events in the Inventor event model. .SH METHODS .ta 22m .in 1i+22n .ti 0.5i .ta 22m .ds Pt \*(Cr .ie \w'\*(Pt'>=22n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbSoKeyboardEvent\*(Cr() .br .in 1i \f1Constructor. .sp .in 0.5i .in 1i+22n .ti 0.5i .ta 22m .ds Pt \*(Crstatic SoType .ie \w'\*(Pt'>=22n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbgetClassTypeId\*(Cr() .br .in 1i \f1Return the type id for the \*(CbSoKeyboardEvent\f1 class. .sp .in 0.5i .in 1i+22n .ti 0.5i .ta 22m .ds Pt \*(Crvoid .ie \w'\*(Pt'>=22n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbsetKey\*(Cr(SoKeyboardEvent::Key whichKey) .br .in 1i+22n .ti 0.5i .ta 22m .ds Pt \*(CrSoKeyboardEvent::Key .ie \w'\*(Pt'>=22n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbgetKey\*(Cr() const .br .in 1i \f1Set and get which key generated the event. .sp .in 0.5i .in 1i+22n .ti 0.5i .ta 22m .ds Pt \*(Crstatic SbBool .ie \w'\*(Pt'>=22n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbisKeyPressEvent\*(Cr(const SoEvent *e, SoKeyboardEvent::Key whichKey) .br .in 1i+22n .ti 0.5i .ta 22m .ds Pt \*(Crstatic SbBool .ie \w'\*(Pt'>=22n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbisKeyReleaseEvent\*(Cr(const SoEvent *e, SoKeyboardEvent::Key whichKey) .br .in 1i \f1Returns whether the passed event is a keyboard press or release event of the passed key. When \*(CbSoKeyboardEvent::ANY\f1 is passed, this returns TRUE if the event represents a keyboard press or release of any key. .sp .in 0.5i .in 1i+22n .ti 0.5i .ta 22m .ds Pt \*(Crchar .ie \w'\*(Pt'>=22n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbgetPrintableCharacter\*(Cr() const .br .in 1i \f1Convenience routine that returns the character representing the key, if it's printable. If not, this returns NULL ('\\0'). .sp .in 0.5i .SH SEE ALSO \*(CbSoEvent, SoButtonEvent, SoLocation2Event, SoMotion3Event, SoMouseButtonEvent, SoSpaceballButtonEvent, SoHandleEventAction, SoEventCallback, SoSelection, SoInteraction, SoXtDevice