/* SPDX-FileCopyrightText: 2015 Martin Gräßlin SPDX-FileCopyrightText: 2020 Adrien Faveraux SPDX-FileCopyrightText: 2021 Vlad Zahorodnii SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL */ #pragma once #include "kwin_export.h" #include #include namespace KWin { class SeatInterface; class SurfaceInterface; class TouchInterfacePrivate; /** * The TouchInterface class repserents a touchscreen associated with a wl_seat. It * corresponds to the Wayland interface @c wl_touch. */ class KWIN_EXPORT TouchInterface : public QObject { Q_OBJECT public: ~TouchInterface() override; SurfaceInterface *focusedSurface() const; void sendDown(qint32 id, quint32 serial, const QPointF &localPos, SurfaceInterface *surface); void sendUp(qint32 id, quint32 serial); void sendFrame(); void sendCancel(); void sendMotion(qint32 id, const QPointF &localPos); private: explicit TouchInterface(SeatInterface *seat); std::unique_ptr d; friend class SeatInterfacePrivate; friend class TouchInterfacePrivate; }; } // namespace KWin