KWin
Loading...
Searching...
No Matches
inputdevice.h
Go to the documentation of this file.
1/*
2 SPDX-FileCopyrightText: 2016 Martin Gräßlin <mgraesslin@kde.org>
3 SPDX-FileCopyrightText: 2021 Vlad Zahorodnii <vlad.zahorodnii@kde.org>
4
5 SPDX-License-Identifier: GPL-2.0-or-later
6*/
7
8#pragma once
9
10#include "input.h"
11#include "kwin_export.h"
12
13#include <QObject>
14
15namespace KWin
16{
17
21class KWIN_EXPORT InputDevice : public QObject
22{
23 Q_OBJECT
24
25public:
26 explicit InputDevice(QObject *parent = nullptr);
27
28 virtual QString sysName() const = 0;
29 virtual QString name() const = 0;
30
31 virtual bool isEnabled() const = 0;
32 virtual void setEnabled(bool enabled) = 0;
33
34 virtual LEDs leds() const = 0;
35 virtual void setLeds(LEDs leds) = 0;
36
37 virtual bool isKeyboard() const = 0;
38 virtual bool isPointer() const = 0;
39 virtual bool isTouchpad() const = 0;
40 virtual bool isTouch() const = 0;
41 virtual bool isTabletTool() const = 0;
42 virtual bool isTabletPad() const = 0;
43 virtual bool isTabletModeSwitch() const = 0;
44 virtual bool isLidSwitch() const = 0;
45
46 virtual QString outputName() const;
47 virtual void setOutputName(const QString &outputName);
48
49 virtual bool isNaturalScroll() const;
50
51Q_SIGNALS:
52 void keyChanged(quint32 key, InputRedirection::KeyboardKeyState, std::chrono::microseconds time, InputDevice *device);
53 void pointerButtonChanged(quint32 button, InputRedirection::PointerButtonState state, std::chrono::microseconds time, InputDevice *device);
54 void pointerMotionAbsolute(const QPointF &position, std::chrono::microseconds time, InputDevice *device);
55 void pointerMotion(const QPointF &delta, const QPointF &deltaNonAccelerated, std::chrono::microseconds time, InputDevice *device);
56 void pointerAxisChanged(InputRedirection::PointerAxis axis, qreal delta, qint32 deltaV120,
57 InputRedirection::PointerAxisSource source, std::chrono::microseconds time, InputDevice *device);
59 void touchFrame(InputDevice *device);
61 void touchDown(qint32 id, const QPointF &absolutePos, std::chrono::microseconds time, InputDevice *device);
62 void touchUp(qint32 id, std::chrono::microseconds time, InputDevice *device);
63 void touchMotion(qint32 id, const QPointF &absolutePos, std::chrono::microseconds time, InputDevice *device);
64 void swipeGestureBegin(int fingerCount, std::chrono::microseconds time, InputDevice *device);
65 void swipeGestureUpdate(const QPointF &delta, std::chrono::microseconds time, InputDevice *device);
66 void swipeGestureEnd(std::chrono::microseconds time, InputDevice *device);
67 void swipeGestureCancelled(std::chrono::microseconds time, InputDevice *device);
68 void pinchGestureBegin(int fingerCount, std::chrono::microseconds time, InputDevice *device);
69 void pinchGestureUpdate(qreal scale, qreal angleDelta, const QPointF &delta, std::chrono::microseconds time, InputDevice *device);
70 void pinchGestureEnd(std::chrono::microseconds time, InputDevice *device);
71 void pinchGestureCancelled(std::chrono::microseconds time, InputDevice *device);
72 void holdGestureBegin(int fingerCount, std::chrono::microseconds time, InputDevice *device);
73 void holdGestureEnd(std::chrono::microseconds time, InputDevice *device);
74 void holdGestureCancelled(std::chrono::microseconds time, InputDevice *device);
75 void switchToggledOn(std::chrono::microseconds time, InputDevice *device);
76 void switchToggledOff(std::chrono::microseconds time, InputDevice *device);
77
79 qreal pressure, int xTilt, int yTilt, qreal rotation, bool tipDown,
80 bool tipNear, const TabletToolId &tabletToolId, std::chrono::microseconds time);
81 void tabletToolButtonEvent(uint button, bool isPressed, const TabletToolId &tabletToolId, std::chrono::microseconds time);
82
83 void tabletPadButtonEvent(uint button, bool isPressed, const TabletPadId &tabletPadId, std::chrono::microseconds time);
84 void tabletPadStripEvent(int number, int position, bool isFinger, const TabletPadId &tabletPadId, std::chrono::microseconds time);
85 void tabletPadRingEvent(int number, int position, bool isFinger, const TabletPadId &tabletPadId, std::chrono::microseconds time);
86};
87
88} // namespace KWin
virtual void setEnabled(bool enabled)=0
void tabletPadButtonEvent(uint button, bool isPressed, const TabletPadId &tabletPadId, std::chrono::microseconds time)
virtual bool isKeyboard() const =0
virtual bool isEnabled() const =0
void touchFrame(InputDevice *device)
void touchMotion(qint32 id, const QPointF &absolutePos, std::chrono::microseconds time, InputDevice *device)
virtual bool isPointer() const =0
void touchCanceled(InputDevice *device)
void swipeGestureUpdate(const QPointF &delta, std::chrono::microseconds time, InputDevice *device)
void pointerMotion(const QPointF &delta, const QPointF &deltaNonAccelerated, std::chrono::microseconds time, InputDevice *device)
void pointerFrame(InputDevice *device)
void swipeGestureCancelled(std::chrono::microseconds time, InputDevice *device)
void switchToggledOn(std::chrono::microseconds time, InputDevice *device)
void holdGestureBegin(int fingerCount, std::chrono::microseconds time, InputDevice *device)
virtual bool isTouch() const =0
void pinchGestureBegin(int fingerCount, std::chrono::microseconds time, InputDevice *device)
void pointerButtonChanged(quint32 button, InputRedirection::PointerButtonState state, std::chrono::microseconds time, InputDevice *device)
void pinchGestureCancelled(std::chrono::microseconds time, InputDevice *device)
void holdGestureCancelled(std::chrono::microseconds time, InputDevice *device)
void switchToggledOff(std::chrono::microseconds time, InputDevice *device)
virtual bool isTouchpad() const =0
void tabletToolEvent(InputRedirection::TabletEventType type, const QPointF &pos, qreal pressure, int xTilt, int yTilt, qreal rotation, bool tipDown, bool tipNear, const TabletToolId &tabletToolId, std::chrono::microseconds time)
void pinchGestureUpdate(qreal scale, qreal angleDelta, const QPointF &delta, std::chrono::microseconds time, InputDevice *device)
void touchDown(qint32 id, const QPointF &absolutePos, std::chrono::microseconds time, InputDevice *device)
void tabletPadStripEvent(int number, int position, bool isFinger, const TabletPadId &tabletPadId, std::chrono::microseconds time)
virtual bool isTabletTool() const =0
void tabletToolButtonEvent(uint button, bool isPressed, const TabletToolId &tabletToolId, std::chrono::microseconds time)
virtual QString sysName() const =0
void pointerMotionAbsolute(const QPointF &position, std::chrono::microseconds time, InputDevice *device)
virtual QString name() const =0
virtual LEDs leds() const =0
void holdGestureEnd(std::chrono::microseconds time, InputDevice *device)
virtual bool isTabletModeSwitch() const =0
virtual void setLeds(LEDs leds)=0
virtual bool isLidSwitch() const =0
void tabletPadRingEvent(int number, int position, bool isFinger, const TabletPadId &tabletPadId, std::chrono::microseconds time)
void swipeGestureEnd(std::chrono::microseconds time, InputDevice *device)
void swipeGestureBegin(int fingerCount, std::chrono::microseconds time, InputDevice *device)
virtual bool isTabletPad() const =0
void keyChanged(quint32 key, InputRedirection::KeyboardKeyState, std::chrono::microseconds time, InputDevice *device)
void pinchGestureEnd(std::chrono::microseconds time, InputDevice *device)
void touchUp(qint32 id, std::chrono::microseconds time, InputDevice *device)
void pointerAxisChanged(InputRedirection::PointerAxis axis, qreal delta, qint32 deltaV120, InputRedirection::PointerAxisSource source, std::chrono::microseconds time, InputDevice *device)