File indexing completed on 2024-05-19 05:32:40

0001 /*
0002     SPDX-FileCopyrightText: 2016 Martin Gräßlin <mgraesslin@kde.org>
0003     SPDX-FileCopyrightText: 2020 Vlad Zahorodnii <vlad.zahorodnii@kde.org>
0004 
0005     SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
0006 */
0007 
0008 #pragma once
0009 
0010 #include "qwayland-server-relative-pointer-unstable-v1.h"
0011 
0012 #include <QPointF>
0013 
0014 namespace KWin
0015 {
0016 class ClientConnection;
0017 class Display;
0018 class PointerInterface;
0019 
0020 class RelativePointerManagerV1InterfacePrivate : public QtWaylandServer::zwp_relative_pointer_manager_v1
0021 {
0022 public:
0023     explicit RelativePointerManagerV1InterfacePrivate(Display *display);
0024 
0025 protected:
0026     void zwp_relative_pointer_manager_v1_destroy(Resource *resource) override;
0027     void zwp_relative_pointer_manager_v1_get_relative_pointer(Resource *resource, uint32_t id, struct ::wl_resource *pointer_resource) override;
0028 };
0029 
0030 class RelativePointerV1Interface : public QtWaylandServer::zwp_relative_pointer_v1
0031 {
0032 public:
0033     explicit RelativePointerV1Interface(PointerInterface *pointer);
0034 
0035     static RelativePointerV1Interface *get(PointerInterface *pointer);
0036     void sendRelativeMotion(const QPointF &delta, const QPointF &deltaNonAccelerated, std::chrono::microseconds time);
0037 
0038 protected:
0039     void zwp_relative_pointer_v1_destroy(Resource *resource) override;
0040 
0041 private:
0042     PointerInterface *pointer;
0043 };
0044 
0045 } // namespace KWin