KWin
Loading...
Searching...
No Matches
pointerconstraints_v1_p.h
Go to the documentation of this file.
1/*
2 SPDX-FileCopyrightText: 2016 Martin Gräßlin <mgraesslin@kde.org>
3 SPDX-FileCopyrightText: 2020 Vlad Zahorodnii <vlad.zahorodnii@kde.org>
4
5 SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
6*/
7
8#pragma once
9
11#include "surface.h"
12
13#include <QPointer>
14
15#include "qwayland-server-pointer-constraints-unstable-v1.h"
16
17namespace KWin
18{
19class PointerConstraintsV1InterfacePrivate : public QtWaylandServer::zwp_pointer_constraints_v1
20{
21public:
23
24protected:
25 void zwp_pointer_constraints_v1_lock_pointer(Resource *resource,
26 uint32_t id,
27 struct ::wl_resource *surface_resource,
28 struct ::wl_resource *pointer_resource,
29 struct ::wl_resource *region_resource,
30 uint32_t lifetime) override;
31 void zwp_pointer_constraints_v1_confine_pointer(Resource *resource,
32 uint32_t id,
33 struct ::wl_resource *surface_resource,
34 struct ::wl_resource *pointer_resource,
35 struct ::wl_resource *region_resource,
36 uint32_t lifetime) override;
37 void zwp_pointer_constraints_v1_destroy(Resource *resource) override;
38};
39
41{
42 std::optional<QRegion> region;
43 std::optional<QPointF> hint;
44};
45
46class LockedPointerV1InterfacePrivate final : public QtWaylandServer::zwp_locked_pointer_v1, public SurfaceExtension<LockedPointerV1Commit>
47{
48public:
50
52
53 void apply(LockedPointerV1Commit *commit) override;
54
56 QPointer<SurfaceInterface> surface;
59 QRegion region;
60 QPointF hint = QPointF(-1, -1);
61 bool isLocked = false;
62
63protected:
64 void zwp_locked_pointer_v1_destroy_resource(Resource *resource) override;
65 void zwp_locked_pointer_v1_destroy(Resource *resource) override;
66 void zwp_locked_pointer_v1_set_cursor_position_hint(Resource *resource, wl_fixed_t surface_x, wl_fixed_t surface_y) override;
67 void zwp_locked_pointer_v1_set_region(Resource *resource, struct ::wl_resource *region_resource) override;
68};
69
71{
72 std::optional<QRegion> region;
73};
74
75class ConfinedPointerV1InterfacePrivate final : public QtWaylandServer::zwp_confined_pointer_v1, public SurfaceExtension<ConfinedPointerV1Commit>
76{
77public:
79
83 const QRegion &region,
84 ::wl_resource *resource);
85
86 void apply(ConfinedPointerV1Commit *commit) override;
87
89 QPointer<SurfaceInterface> surface;
92 QRegion region;
93 bool isConfined = false;
94
95protected:
96 void zwp_confined_pointer_v1_destroy_resource(Resource *resource) override;
97 void zwp_confined_pointer_v1_destroy(Resource *resource) override;
98 void zwp_confined_pointer_v1_set_region(Resource *resource, struct ::wl_resource *region_resource) override;
99};
100
101} // namespace KWin
static ConfinedPointerV1InterfacePrivate * get(ConfinedPointerV1Interface *pointer)
void zwp_confined_pointer_v1_set_region(Resource *resource, struct ::wl_resource *region_resource) override
void zwp_confined_pointer_v1_destroy(Resource *resource) override
ConfinedPointerV1Interface::LifeTime lifeTime
void apply(ConfinedPointerV1Commit *commit) override
ConfinedPointerV1InterfacePrivate(ConfinedPointerV1Interface *q, SurfaceInterface *surface, ConfinedPointerV1Interface::LifeTime lifeTime, const QRegion &region, ::wl_resource *resource)
void zwp_confined_pointer_v1_destroy_resource(Resource *resource) override
Class holding the Wayland server display loop.
Definition display.h:34
void zwp_locked_pointer_v1_destroy(Resource *resource) override
void zwp_locked_pointer_v1_set_region(Resource *resource, struct ::wl_resource *region_resource) override
void zwp_locked_pointer_v1_destroy_resource(Resource *resource) override
LockedPointerV1InterfacePrivate(LockedPointerV1Interface *q, SurfaceInterface *surface, LockedPointerV1Interface::LifeTime lifeTime, const QRegion &region, ::wl_resource *resource)
void apply(LockedPointerV1Commit *commit) override
void zwp_locked_pointer_v1_set_cursor_position_hint(Resource *resource, wl_fixed_t surface_x, wl_fixed_t surface_y) override
LockedPointerV1Interface::LifeTime lifeTime
static LockedPointerV1InterfacePrivate * get(LockedPointerV1Interface *pointer)
void zwp_pointer_constraints_v1_lock_pointer(Resource *resource, uint32_t id, struct ::wl_resource *surface_resource, struct ::wl_resource *pointer_resource, struct ::wl_resource *region_resource, uint32_t lifetime) override
void zwp_pointer_constraints_v1_destroy(Resource *resource) override
void zwp_pointer_constraints_v1_confine_pointer(Resource *resource, uint32_t id, struct ::wl_resource *surface_resource, struct ::wl_resource *pointer_resource, struct ::wl_resource *region_resource, uint32_t lifetime) override
Resource representing a wl_surface.
Definition surface.h:80
std::optional< QRegion > region