aboutsummaryrefslogtreecommitdiffstats
path: root/tests/manual/x11vkbtest/mousesimulator.h
diff options
context:
space:
mode:
authorMikko Seppänen <mikko.seppanen123@gmail.com>2019-06-19 15:56:13 +0300
committerJani Heikkinen <jani.heikkinen@qt.io>2019-10-08 10:53:15 +0000
commitae362d1e7ea48a2620a121f2848a9f12fa82d498 (patch)
treea0045479d86e9962ada7c7ea9de32ad1a98d5d9d /tests/manual/x11vkbtest/mousesimulator.h
parent932ae053ab9ea8aed974e8dde1bf7ef8524826a3 (diff)
Qt virtual keyboard wrapper for X11v5.14.0-beta2
This application is a Qt virtual keyboard wrapper that uses Qt virtual keyboard for any X11 input. Application uses At-Spi2 library for listening focus-in events on text widgets and pops up the Qt virtual keyboard when an accepted focus-in event is received. There's also support for listening focus-in events from Chromium browser. For mapping and sending the key events to focused text widget the application uses libXtst, libX11 and libxdo which are also external dependencies to the application among At-Spi2 library. Change-Id: Ifa54969ab4f61e1d48f11ca11058c836f2a403b8 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io> (cherry picked from commit fb9e76c9ebcc9ca98ff04e7310a12b4511fa5539)
Diffstat (limited to 'tests/manual/x11vkbtest/mousesimulator.h')
-rw-r--r--tests/manual/x11vkbtest/mousesimulator.h73
1 files changed, 73 insertions, 0 deletions
diff --git a/tests/manual/x11vkbtest/mousesimulator.h b/tests/manual/x11vkbtest/mousesimulator.h
new file mode 100644
index 00000000..7fdff58c
--- /dev/null
+++ b/tests/manual/x11vkbtest/mousesimulator.h
@@ -0,0 +1,73 @@
+/****************************************************************************
+**
+** Copyright (C) 2019 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Virtual Keyboard module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:GPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3 or (at your option) any later version
+** approved by the KDE Free Qt Foundation. The licenses are as published by
+** the Free Software Foundation and appearing in the file LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef MOUSESIMULATOR_H
+#define MOUSESIMULATOR_H
+
+#include <QObject>
+
+extern "C" {
+#include <xdo.h>
+}
+
+class MouseSimulator : public QObject
+{
+ Q_OBJECT
+public:
+ explicit MouseSimulator(QObject *parent, Window x11vkbWinId, quint16 x11vkbWidth, quint16 x11vkbHeight);
+ ~MouseSimulator() override;
+
+public:
+ enum LanguageLines {FirstLine, SecondLine, ThirdLine, FourthLine, FifthLine};
+ void clickEnglishLetter(QChar &letter) const;
+ void clickExtraKeyIfNeeded(QChar &letter) const;
+ void clickCtrlPlusSToSave(const Window winId) const;
+ void clickLangKey(const quint16 layoutEnglish = 1) const;
+ void clickLangLine(const LanguageLines langLine) const;
+ void clickHideKeyboard() const;
+ void mouseLeftClickOnVkb(QPair<quint16, quint16> coordinates) const;
+ void setWidthHeight(QPair<quint16, quint16> pairWidthHeight);
+ QPair<quint16, quint16> getPosition(const quint16 rowNum, const quint16 keyNum) const;
+ QPair<quint16, quint16> getPositionOfNotEngLayout(const quint16 rowNum, const quint16 keyNum) const;
+
+private:
+ quint16 vkbPositionOfRow(const quint16 row) const;
+ void clickLetter(const QChar &letter) const;
+
+private:
+ /** Libxdo context. */
+ xdo_t *m_xdo;
+ Window m_x11vkbWinId;
+ quint16 m_x11vkbWidth;
+ quint16 m_x11vkbHeight;
+};
+
+
+#endif // MOUSESIMULATOR_H
+