KWayland

server_decoration_interface.h
1 /*
2  SPDX-FileCopyrightText: 2015 Martin Gräßlin <[email protected]>
3 
4  SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
5 */
6 #ifndef KWAYLAND_SERVER_SERVER_DECORATION_INTERFACE_H
7 #define KWAYLAND_SERVER_SERVER_DECORATION_INTERFACE_H
8 
9 #include "global.h"
10 #include "resource.h"
11 
12 #include <KWayland/Server/kwaylandserver_export.h>
13 
14 namespace KWayland
15 {
16 namespace Server
17 {
18 
19 class Display;
20 class ServerSideDecorationInterface;
21 class SurfaceInterface;
22 
28 class KWAYLANDSERVER_EXPORT ServerSideDecorationManagerInterface : public Global
29 {
30  Q_OBJECT
31 public:
33 
37  enum class Mode {
41  None,
45  Client,
49  Server
50  };
51 
57  void setDefaultMode(Mode mode);
62  Mode defaultMode() const;
63 
64 Q_SIGNALS:
68  void decorationCreated(KWayland::Server::ServerSideDecorationInterface*);
69 
70 private:
71  explicit ServerSideDecorationManagerInterface(Display *display, QObject *parent = nullptr);
72  friend class Display;
73  class Private;
74  Private *d_func() const;
75 };
76 
84 class KWAYLANDSERVER_EXPORT ServerSideDecorationInterface : public Resource
85 {
86  Q_OBJECT
87 public:
89 
103 
107  SurfaceInterface *surface() const;
108 
112  static ServerSideDecorationInterface *get(SurfaceInterface *surface);
113 
114 Q_SIGNALS:
122 
123 private:
124  explicit ServerSideDecorationInterface(ServerSideDecorationManagerInterface *parent, SurfaceInterface *surface, wl_resource *parentResource);
126 
127  class Private;
128  Private *d_func() const;
129 };
130 
131 }
132 }
133 
136 
137 #endif
Representing how a SurfaceInterface should be decorated.
Manager to create ServerSideDecorationInterface.
Resource representing a wl_surface.
Class holding the Wayland server display loop.
Definition: display.h:89
Base class for all Globals.
Definition: global.h:46
Represents a bound Resource.
Definition: resource.h:32
This file is part of the KDE documentation.
Documentation copyright © 1996-2020 The KDE developers.
Generated on Fri Aug 7 2020 22:48:19 by doxygen 1.8.11 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.