diff options
Diffstat (limited to 'src/plugins/generic/evdevkeyboard/qevdevkeyboardhandler.h')
-rw-r--r-- | src/plugins/generic/evdevkeyboard/qevdevkeyboardhandler.h | 202 |
1 files changed, 0 insertions, 202 deletions
diff --git a/src/plugins/generic/evdevkeyboard/qevdevkeyboardhandler.h b/src/plugins/generic/evdevkeyboard/qevdevkeyboardhandler.h deleted file mode 100644 index 6b7901f42e..0000000000 --- a/src/plugins/generic/evdevkeyboard/qevdevkeyboardhandler.h +++ /dev/null @@ -1,202 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/ -** -** This file is part of the QtGui module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** GNU Lesser General Public License Usage -** This file may be used under the terms of the GNU Lesser General Public -** License version 2.1 as published by the Free Software Foundation and -** appearing in the file LICENSE.LGPL included in the packaging of this -** file. Please review the following information to ensure the GNU Lesser -** General Public License version 2.1 requirements will be met: -** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU General -** Public License version 3.0 as published by the Free Software Foundation -** and appearing in the file LICENSE.GPL included in the packaging of this -** file. Please review the following information to ensure the GNU General -** Public License version 3.0 requirements will be met: -** http://www.gnu.org/copyleft/gpl.html. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms and -** conditions contained in a signed written agreement between you and Nokia. -** -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QEVDEVKEYBOARDHANDLER_H -#define QEVDEVKEYBOARDHANDLER_H - -#include <qobject.h> -#include <QTimer> -#include <QDataStream> - -QT_BEGIN_HEADER - -QT_BEGIN_NAMESPACE - -namespace QEvdevKeyboardMap { - const quint32 FileMagic = 0x514d4150; // 'QMAP' - - struct Mapping { - quint16 keycode; - quint16 unicode; - quint32 qtcode; - quint8 modifiers; - quint8 flags; - quint16 special; - - }; - - enum Flags { - IsDead = 0x01, - IsLetter = 0x02, - IsModifier = 0x04, - IsSystem = 0x08 - }; - - enum System { - SystemConsoleFirst = 0x0100, - SystemConsoleMask = 0x007f, - SystemConsoleLast = 0x017f, - SystemConsolePrevious = 0x0180, - SystemConsoleNext = 0x0181, - SystemReboot = 0x0200, - SystemZap = 0x0300 - }; - - struct Composing { - quint16 first; - quint16 second; - quint16 result; - }; - - enum Modifiers { - ModPlain = 0x00, - ModShift = 0x01, - ModAltGr = 0x02, - ModControl = 0x04, - ModAlt = 0x08, - ModShiftL = 0x10, - ModShiftR = 0x20, - ModCtrlL = 0x40, - ModCtrlR = 0x80 - // ModCapsShift = 0x100, // not supported! - }; -} - -inline QDataStream &operator>>(QDataStream &ds, QEvdevKeyboardMap::Mapping &m) -{ - return ds >> m.keycode >> m.unicode >> m.qtcode >> m.modifiers >> m.flags >> m.special; -} - -inline QDataStream &operator<<(QDataStream &ds, const QEvdevKeyboardMap::Mapping &m) -{ - return ds << m.keycode << m.unicode << m.qtcode << m.modifiers << m.flags << m.special; -} - -inline QDataStream &operator>>(QDataStream &ds, QEvdevKeyboardMap::Composing &c) -{ - return ds >> c.first >> c.second >> c.result; -} - -inline QDataStream &operator<<(QDataStream &ds, const QEvdevKeyboardMap::Composing &c) -{ - return ds << c.first << c.second << c.result; -} - - -class QEvdevKeyboardHandler : public QObject -{ - Q_OBJECT -public: - QEvdevKeyboardHandler(const QString &device, int fd, bool disableZap, bool enableCompose, const QString &keymapFile); - ~QEvdevKeyboardHandler(); - - enum KeycodeAction { - None = 0, - - CapsLockOff = 0x01000000, - CapsLockOn = 0x01000001, - NumLockOff = 0x02000000, - NumLockOn = 0x02000001, - ScrollLockOff = 0x03000000, - ScrollLockOn = 0x03000001, - - Reboot = 0x04000000, - - PreviousConsole = 0x05000000, - NextConsole = 0x05000001, - SwitchConsoleFirst = 0x06000000, - SwitchConsoleLast = 0x0600007f, - SwitchConsoleMask = 0x0000007f - }; - - static QEvdevKeyboardHandler *create(const QString &device, const QString &specification); - - static Qt::KeyboardModifiers toQtModifiers(quint8 mod) - { - Qt::KeyboardModifiers qtmod = Qt::NoModifier; - - if (mod & (QEvdevKeyboardMap::ModShift | QEvdevKeyboardMap::ModShiftL | QEvdevKeyboardMap::ModShiftR)) - qtmod |= Qt::ShiftModifier; - if (mod & (QEvdevKeyboardMap::ModControl | QEvdevKeyboardMap::ModCtrlL | QEvdevKeyboardMap::ModCtrlR)) - qtmod |= Qt::ControlModifier; - if (mod & QEvdevKeyboardMap::ModAlt) - qtmod |= Qt::AltModifier; - - return qtmod; - } - -private slots: - void readKeycode(); - KeycodeAction processKeycode(quint16 keycode, bool pressed, bool autorepeat); - -private: - void unloadKeymap(); - bool loadKeymap(const QString &file); - void processKeyEvent(int unicode, int keycode, Qt::KeyboardModifiers modifiers, bool isPress, bool autoRepeat); - void switchLed(int, bool); - - QString m_device; - int m_fd; - - // keymap handling - quint8 m_modifiers; - quint8 m_locks[3]; - int m_composing; - quint16 m_dead_unicode; - - bool m_no_zap; - bool m_do_compose; - - const QEvdevKeyboardMap::Mapping *m_keymap; - int m_keymap_size; - const QEvdevKeyboardMap::Composing *m_keycompose; - int m_keycompose_size; - - static const QEvdevKeyboardMap::Mapping s_keymap_default[]; - static const QEvdevKeyboardMap::Composing s_keycompose_default[]; -}; - - -QT_END_NAMESPACE - -QT_END_HEADER - -#endif // QEVDEVKEYBOARDHANDLER_H |