From bd0f3345a938b35ce6a12f6150373b0955b8dd12 Mon Sep 17 00:00:00 2001 From: Timothy Pearson Date: Sun, 10 Jul 2011 15:24:15 -0500 Subject: Add Qt3 development HEAD version --- doc/html/emb-charinput.html | 111 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 111 insertions(+) create mode 100644 doc/html/emb-charinput.html (limited to 'doc/html/emb-charinput.html') diff --git a/doc/html/emb-charinput.html b/doc/html/emb-charinput.html new file mode 100644 index 0000000..4498ab2 --- /dev/null +++ b/doc/html/emb-charinput.html @@ -0,0 +1,111 @@ + + + + + +Character input in Qt/Embedded + + + + + + + +
+ +Home + | +All Classes + | +Main Classes + | +Annotated + | +Grouped Classes + | +Functions +

Character input in Qt/Embedded

+ + + +

Internally in the client/server protocol, each key press and key +release is sent as a QWSKeyEvent. A QWSKeyEvent contains the +following fields: +

+
unicode +Unicode value +
keycode +Qt keycode value as defined in qnamespace.h +
modifier +A bitfield consisting of some of Qt::ShiftButton, +Qt::ControlButton, and Qt::AltButton. +
is_press +TRUE if this is a key press, FALSE if it is a key release. +
is_auto_repeat +TRUE if this event is caused by auto repeat. +
+

When the server receives a key event it is sent to each client process +which is responsible for processing the key event and sending it to +the right window, if any. Key events may come from several different +sources. +

Keyboard drivers +

+

A keyboard driver reads data from a device and gives key events to the +server. +

Keyboard drivers can be compiled into the library or loaded as +plugins. Running ./configure -help lists the available keyboard drivers. +The "tty" driver is enabled in the default configuration. +

The keyboard drivers all follow the same pattern. They read keyboard +data from a device, find out which keys were pressed, and then call +the static function QWSServer::processKeyEvent() with the key information. +

At present, the console keyboard driver also handles console switching +(Ctrl+Alt-F1...Ctrl+Alt+F10) and termination +(Ctrl+Alt+Backspace). +

To add a keyboard driver for a new device, subclasses of +QWSKeyboardHandler and QKbdDriverPlugin can be +written and installed as plugins. +

Key event filters (input methods) +

+

When the server receives a key event from a keyboard driver, it first +passes it through a filter. +

This can be used to implement input methods, providing input of +characters that are not on the keyboard. +

To make an input method, subclass QWSServer::KeyboardFilter (in src/kernel/qwindowsystem_qws.h) and implement the virtual function filter(). If filter() returns FALSE, the event will be sent to +the clients (using QWSServer::sendKeyEvent()). If filter() returns +TRUE, the event will be stopped. To generate new key events, use +QWSServer::sendKeyEvent(). (Do not use processKeyEvent(), since this +will lead to infinite recursion.) +

To install a keyboard event filter, use +QWSServer::setKeyboardFilter(). Currently, only one filter +can be installed at a time. +

Filtering must be done in the server process. +

The launcher example contains an example of a simple input method, +SimpleIM which reads a substitution table from a file. +

Pen input +

+

Key events do not need to come from a keyboard device. The server +process may call QWSServer::sendKeyEvent() at any time. +

Typically, this is done by popping up a widget, and letting the user +specify characters with the pointer device. +

Note: the key input widget should not take focus, since the +server would then just send the key events back to the input widget. +One way to make sure that the input widget never takes focus is to set +the WStyle_Customize and WStyle_Tool widget flags in +the QWidget constructor. +

The Qtopia +environment contains various input widgets such as +Handwriting Recognition and Virtual Keyboard. +

+ +


+ +
Copyright © 2007 +TrolltechTrademarks +
Qt 3.3.8
+
+ -- cgit v1.2.1