File indexing completed on 2024-05-19 05:32:43
0001 /* 0002 SPDX-FileCopyrightText: 2014 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 "subcompositor.h" 0011 0012 #include <QPoint> 0013 #include <QPointer> 0014 0015 #include "qwayland-server-wayland.h" 0016 0017 namespace KWin 0018 { 0019 class SubCompositorInterfacePrivate : public QtWaylandServer::wl_subcompositor 0020 { 0021 public: 0022 SubCompositorInterfacePrivate(Display *display, SubCompositorInterface *q); 0023 0024 SubCompositorInterface *q; 0025 0026 protected: 0027 void subcompositor_destroy(Resource *resource) override; 0028 void subcompositor_get_subsurface(Resource *resource, uint32_t id, struct ::wl_resource *surface_resource, struct ::wl_resource *parent_resource) override; 0029 }; 0030 0031 class SubSurfaceInterfacePrivate : public QtWaylandServer::wl_subsurface 0032 { 0033 public: 0034 static SubSurfaceInterfacePrivate *get(SubSurfaceInterface *subsurface); 0035 0036 SubSurfaceInterfacePrivate(SubSurfaceInterface *q, SurfaceInterface *surface, SurfaceInterface *parent, ::wl_resource *resource); 0037 0038 SubSurfaceInterface *q; 0039 QPoint position = QPoint(0, 0); 0040 SubSurfaceInterface::Mode mode = SubSurfaceInterface::Mode::Synchronized; 0041 QPointer<SurfaceInterface> surface; 0042 QPointer<SurfaceInterface> parent; 0043 0044 protected: 0045 void subsurface_destroy_resource(Resource *resource) override; 0046 void subsurface_destroy(Resource *resource) override; 0047 void subsurface_set_position(Resource *resource, int32_t x, int32_t y) override; 0048 void subsurface_place_above(Resource *resource, struct ::wl_resource *sibling_resource) override; 0049 void subsurface_place_below(Resource *resource, struct ::wl_resource *sibling_resource) override; 0050 void subsurface_set_sync(Resource *resource) override; 0051 void subsurface_set_desync(Resource *resource) override; 0052 }; 0053 0054 } // namespace KWin