From d796c9dd933ab96ec83b9a634feedd5d32e1ba3f Mon Sep 17 00:00:00 2001 From: Timothy Pearson Date: Tue, 8 Nov 2011 12:31:36 -0600 Subject: Test conversion to TQt3 from Qt3 8c6fc1f8e35fd264dd01c582ca5e7549b32ab731 --- 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 000000000..a653dcd80 --- /dev/null +++ b/doc/html/emb-charinput.html @@ -0,0 +1,111 @@ + + + + + +Character input in TQt/Embedded + + + + + + + +
+ +Home + | +All Classes + | +Main Classes + | +Annotated + | +Grouped Classes + | +Functions +

Character input in TQt/Embedded

+ + + +

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

+
unicode +Unicode value +
keycode +TQt keycode value as defined in qnamespace.h +
modifier +A bitfield consisting of some of TQt::ShiftButton, +TQt::ControlButton, and TQt::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 TQWSServer::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 +TQWSKeyboardHandler and TQKbdDriverPlugin 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 TQWSServer::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 TQWSServer::sendKeyEvent()). If filter() returns +TRUE, the event will be stopped. To generate new key events, use +TQWSServer::sendKeyEvent(). (Do not use processKeyEvent(), since this +will lead to infinite recursion.) +

To install a keyboard event filter, use +TQWSServer::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 TQWSServer::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 TQWidget constructor. +

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

+ +


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