summaryrefslogtreecommitdiffstats
path: root/src/gui/embedded/qkbdsl5000_qws.h
diff options
context:
space:
mode:
authorRobert Griebl <rgriebl@trolltech.com>2009-03-03 17:36:58 (GMT)
committerRobert Griebl <rgriebl@trolltech.com>2009-04-02 19:21:57 (GMT)
commit3f51c30f030a5517273a62bdd48dfe96c98852ee (patch)
treeaa40f43a4d2d0b8e68b8b4ebbd86113bc8bc4f60 /src/gui/embedded/qkbdsl5000_qws.h
parent86723ca856dbd07bc7809ed9c3f9a219a99e67bd (diff)
downloadQt-3f51c30f030a5517273a62bdd48dfe96c98852ee.zip
Qt-3f51c30f030a5517273a62bdd48dfe96c98852ee.tar.gz
Qt-3f51c30f030a5517273a62bdd48dfe96c98852ee.tar.bz2
Keymap support for QWS.
This patch adds support for keymaps to the QWSKeyboardHandler. The keymaps can be generated by the kmap2qmap tool (see tools/ directory). The source keymaps can be standard Linux .kmap files. Changes to Qt: * completely refactored the Tty and Usb (now known as LinuxInput) handlers * removed the LinuxIS plugin (handled by LinuxInput now) * removed support for iPAQ, EBX and Zylonite keypads (obsolete hardware) * removed support for RAW tty mode. This could be re-added, for non-Linux systems by implementing a PC/AT scan-code to Linux keycode converter. New features for Tty and LinuxInput (ex Usb) handlers: * support for keymaps QWS_KEYBOARD=..:keymap=/path/to/x.qmap:.. * support for dead keys and the compose key * support for lock LEDs * support for key repeat rates (in ms): QWS_KEYBOARD=..:repeat-delay=x:repear-rate=y:.. * the default keymap supports latin1 composing via AltGr: QWS_KEYBOARD=..:enable-compose:.. * ctrl+alt+backspace application zapping can be disabled: QWS_KEYBOARD=..:disable-zap:.. * added virtual filter functions to both the Tty and the LinuxInput handlers. (QWSKeyboardHandler::processKeycode should be virtual in the first place, but that would be BIC) Still missing: * extended documentation for QWS_KEYBOARD Reviewed-By: Paul Olav Tvete Reviewed-By: Harald Fernengel
Diffstat (limited to 'src/gui/embedded/qkbdsl5000_qws.h')
-rw-r--r--src/gui/embedded/qkbdsl5000_qws.h19
1 files changed, 16 insertions, 3 deletions
diff --git a/src/gui/embedded/qkbdsl5000_qws.h b/src/gui/embedded/qkbdsl5000_qws.h
index 514d602..a96e038 100644
--- a/src/gui/embedded/qkbdsl5000_qws.h
+++ b/src/gui/embedded/qkbdsl5000_qws.h
@@ -52,7 +52,13 @@ QT_MODULE(Gui)
#ifndef QT_NO_QWS_KBD_SL5000
-class QWSSL5000KbPrivate;
+struct QWSKeyMap {
+ uint key_code;
+ ushort unicode;
+ ushort shift_unicode;
+ ushort ctrl_unicode;
+};
+
class QWSSL5000KeyboardHandler : public QWSTtyKeyboardHandler
{
@@ -60,14 +66,21 @@ public:
explicit QWSSL5000KeyboardHandler(const QString&);
virtual ~QWSSL5000KeyboardHandler();
- virtual void doKey(uchar scancode);
+ bool filterKeycode(char &keycode);
virtual const QWSKeyMap *keyMap() const;
private:
+ bool shift;
+ bool alt;
+ bool ctrl;
+ bool caps;
+ uint extended:2;
+ Qt::KeyboardModifiers modifiers;
+ int prevuni;
+ int prevkey;
bool meta;
bool fn;
bool numLock;
- QWSSL5000KbPrivate *d;
};
#endif // QT_NO_QWS_KBD_SL5000