Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Toggle main menu visibility
Loading...
Searching...
No Matches
qbsdkeyboard.h
Go to the documentation of this file.
1
// Copyright (C) 2015-2016 Oleksandr Tymoshenko <gonzo@bluezbox.com>
2
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
3
4
#
ifndef
QBSDKEYBOARD_H
5
#
define
QBSDKEYBOARD_H
6
7
#
include
<
qobject
.
h
>
8
#
include
<
QDataStream
>
9
#
include
<
QList
>
10
11
QT_BEGIN_NAMESPACE
12
13
class
QSocketNotifier;
14
15
struct
termios;
16
17
enum
{
18
Bsd_NoKeyMode
= -1
19
};
20
21
namespace
QBsdKeyboardMap
{
22
const
quint32
FileMagic
= 0x514d4150;
// 'QMAP'
23
24
struct
Mapping
{
25
quint16
keycode
;
26
quint16
unicode
;
27
quint32
qtcode
;
28
quint8
modifiers
;
29
quint8
flags
;
30
quint16
special
;
31
32
};
33
34
enum
Flags
{
35
NoFlags
= 0x00,
36
IsLetter
= 0x01,
37
IsModifier
= 0x02
38
};
39
40
enum
Modifiers
{
41
ModPlain
= 0x00,
42
ModShift
= 0x01,
43
ModAltGr
= 0x02,
44
ModControl
= 0x04,
45
ModAlt
= 0x08,
46
ModShiftL
= 0x10,
47
ModShiftR
= 0x20,
48
ModCtrlL
= 0x40,
49
ModCtrlR
= 0x80
50
// ModCapsShift = 0x100, // not supported!
51
};
52
}
53
54
inline
QDataStream
&
operator
>>(QDataStream &ds,
QBsdKeyboardMap
::
Mapping
&m)
55
{
56
return
ds >> m.keycode >> m.unicode >> m.qtcode >> m.modifiers >> m.flags >> m.special;
57
}
58
59
class
QBsdKeyboardHandler
:
public
QObject
60
{
61
Q_OBJECT
62
63
public
:
64
QBsdKeyboardHandler
(
const
QString
&
key
,
const
QString
&
specification
);
65
~
QBsdKeyboardHandler
()
override
;
66
67
static
Qt
::
KeyboardModifiers
toQtModifiers
(quint8 mod)
68
{
69
Qt::KeyboardModifiers qtmod = Qt::NoModifier;
70
71
if
(mod & (
QBsdKeyboardMap
::
ModShift
|
QBsdKeyboardMap
::
ModShiftL
|
QBsdKeyboardMap
::
ModShiftR
))
72
qtmod |= Qt::ShiftModifier;
73
if
(mod & (
QBsdKeyboardMap
::
ModControl
|
QBsdKeyboardMap
::
ModCtrlL
|
QBsdKeyboardMap
::
ModCtrlR
))
74
qtmod |= Qt::ControlModifier;
75
if
(mod &
QBsdKeyboardMap
::
ModAlt
)
76
qtmod |= Qt::AltModifier;
77
78
return
qtmod;
79
}
80
81
protected
:
82
void
switchLed
(
int
led,
bool
state);
83
void
processKeycode
(quint16 keycode,
bool
pressed,
bool
autorepeat);
84
void
processKeyEvent
(
int
nativecode,
int
unicode,
int
qtcode,
85
Qt::KeyboardModifiers modifiers,
bool
isPress,
bool
autoRepeat);
86
void
revertTTYSettings
();
87
void
resetKeymap
();
88
void
readKeyboardData
();
89
90
private
:
91
QScopedPointer<QSocketNotifier> m_notifier;
92
QScopedPointer<termios> m_kbdOrigTty;
93
int
m_origKbdMode =
Bsd_NoKeyMode
;
94
int
m_fd = -1;
95
bool
m_shouldClose =
false
;
96
QString m_spec;
97
98
// keymap handling
99
quint8 m_modifiers = 0;
100
bool
m_capsLock =
false
;
101
bool
m_numLock =
false
;
102
bool
m_scrollLock =
false
;
103
104
QList<QBsdKeyboardMap::Mapping> m_keymap;
105
};
106
107
QT_END_NAMESPACE
108
109
#
endif
// QBSDKEYBOARD_H
QBsdKeyboardHandler
Definition
qbsdkeyboard.h:60
QBsdKeyboardHandler::resetKeymap
void resetKeymap()
Definition
qbsdkeyboard.cpp:342
QBsdKeyboardHandler::revertTTYSettings
void revertTTYSettings()
Definition
qbsdkeyboard.cpp:129
QBsdKeyboardHandler::processKeycode
void processKeycode(quint16 keycode, bool pressed, bool autorepeat)
Definition
qbsdkeyboard.cpp:184
QBsdKeyboardHandler::toQtModifiers
static Qt::KeyboardModifiers toQtModifiers(quint8 mod)
Definition
qbsdkeyboard.h:67
QBsdKeyboardHandler::readKeyboardData
void readKeyboardData()
Definition
qbsdkeyboard.cpp:148
QBsdKeyboardHandler::switchLed
void switchLed(int led, bool state)
Definition
qbsdkeyboard.cpp:322
QBsdKeyboardHandler::processKeyEvent
void processKeyEvent(int nativecode, int unicode, int qtcode, Qt::KeyboardModifiers modifiers, bool isPress, bool autoRepeat)
Definition
qbsdkeyboard.cpp:173
QBsdKeyboardHandler::~QBsdKeyboardHandler
~QBsdKeyboardHandler() override
Definition
qbsdkeyboard.cpp:124
QBsdKeyboardPlugin
Definition
main.cpp:10
QBsdKeyboardMap
Definition
qbsdkeyboard.h:21
QBsdKeyboardMap::Flags
Flags
Definition
qbsdkeyboard.h:34
QBsdKeyboardMap::IsLetter
@ IsLetter
Definition
qbsdkeyboard.h:36
QBsdKeyboardMap::NoFlags
@ NoFlags
Definition
qbsdkeyboard.h:35
QBsdKeyboardMap::IsModifier
@ IsModifier
Definition
qbsdkeyboard.h:37
QBsdKeyboardMap::Modifiers
Modifiers
Definition
qbsdkeyboard.h:40
QBsdKeyboardMap::ModCtrlR
@ ModCtrlR
Definition
qbsdkeyboard.h:49
QBsdKeyboardMap::ModShiftL
@ ModShiftL
Definition
qbsdkeyboard.h:46
QBsdKeyboardMap::ModAlt
@ ModAlt
Definition
qbsdkeyboard.h:45
QBsdKeyboardMap::ModShift
@ ModShift
Definition
qbsdkeyboard.h:42
QBsdKeyboardMap::ModAltGr
@ ModAltGr
Definition
qbsdkeyboard.h:43
QBsdKeyboardMap::ModPlain
@ ModPlain
Definition
qbsdkeyboard.h:41
QBsdKeyboardMap::ModCtrlL
@ ModCtrlL
Definition
qbsdkeyboard.h:48
QBsdKeyboardMap::ModControl
@ ModControl
Definition
qbsdkeyboard.h:44
QBsdKeyboardMap::ModShiftR
@ ModShiftR
Definition
qbsdkeyboard.h:47
QBsdKeyboardMap::FileMagic
const quint32 FileMagic
Definition
qbsdkeyboard.h:22
QT_BEGIN_NAMESPACE
Combined button and popup list for selecting options.
Definition
qsequentialanimationgroup.cpp:47
operator>>
QDataStream & operator>>(QDataStream &ds, QBsdKeyboardMap::Mapping &m)
Definition
qbsdkeyboard.h:54
Bsd_NoKeyMode
@ Bsd_NoKeyMode
Definition
qbsdkeyboard.h:18
QBsdKeyboardMap::Mapping
Definition
qbsdkeyboard.h:24
QBsdKeyboardMap::Mapping::special
quint16 special
Definition
qbsdkeyboard.h:30
QBsdKeyboardMap::Mapping::unicode
quint16 unicode
Definition
qbsdkeyboard.h:26
QBsdKeyboardMap::Mapping::qtcode
quint32 qtcode
Definition
qbsdkeyboard.h:27
QBsdKeyboardMap::Mapping::modifiers
quint8 modifiers
Definition
qbsdkeyboard.h:28
QBsdKeyboardMap::Mapping::flags
quint8 flags
Definition
qbsdkeyboard.h:29
QBsdKeyboardMap::Mapping::keycode
quint16 keycode
Definition
qbsdkeyboard.h:25
qtbase
src
plugins
generic
bsdkeyboard
qbsdkeyboard.h
Generated on
for Qt by
1.18.0