on bbbdccd help sign in
unity8/tests/mocks/UInput/mockuinput.h
63 lines 1.6 kB history raw
1/*
2 * Copyright (C) 2015 Canonical Ltd.
3 *
4 * This program is free software: you can redistribute it and/or modify it
5 * under the terms of the GNU General Public License version 3, as published
6 * by the Free Software Foundation.
7 *
8 * This program is distributed in the hope that it will be useful, but
9 * WITHOUT ANY WARRANTY; without even the implied warranties of
10 * MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR
11 * PURPOSE. See the GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License along
14 * with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
18#ifndef MOCKUINPUT_H
19#define MOCKUINPUT_H
21#include <QObject>
22#include <QFile>
24#include <linux/uinput.h>
27class MockUInput : public QObject
29 Q_OBJECT
30 Q_ENUMS(Button)
32public:
33 enum Button {
34 ButtonLeft,
35 ButtonRight,
36 ButtonMiddle
37 };
39 explicit MockUInput(QObject *parent = nullptr);
40 ~MockUInput();
42 Q_INVOKABLE void createMouse();
43 Q_INVOKABLE void removeMouse();
45 Q_INVOKABLE void moveMouse(int dx, int dy);
46 Q_INVOKABLE void pressMouse(Button button);
47 Q_INVOKABLE void releaseMouse(Button button);
48 Q_INVOKABLE void scrollMouse(int dh, int dv);
50Q_SIGNALS:
51 // for testing
52 void mouseCreated();
53 void mouseRemoved();
54 void mouseMoved(int dx, int dy);
55 void mousePressed(Button button);
56 void mouseReleased(Button button);
57 void mouseScrolled(int dh, int dv);
59private:
60 bool m_mouseCreated = false;
61};
63#endif // MOCKUINPUT_H