DtkGui
DTK Gui module
载入中...
搜索中...
未找到
personalizationwaylandclientextension.h
1// SPDX-FileCopyrightText: 2024 UnionTech Software Technology Co., Ltd.
2//
3// SPDX-License-Identifier: LGPL-3.0-or-later
4
5#include <QtWaylandClient/QWaylandClientExtension>
6
7#include "qwayland-treeland-personalization-manager-v1.h"
8
9#include <dtkgui_global.h>
10#include <qwaylandclientextension.h>
11#include <private/qwaylanddisplay_p.h>
12
13DGUI_BEGIN_NAMESPACE
15class PersonalizationAppearanceContext;
16
17
18class PersonalizationManager: public QWaylandClientExtensionTemplate<PersonalizationManager>,
19 public QtWayland::treeland_personalization_manager_v1
20{
21 Q_OBJECT
22public:
23 static PersonalizationManager *instance();
25
26 void setEnableTitleBar(QWindow *window, bool enable);
27
28protected:
29 explicit PersonalizationManager();
30
31private:
32 void addListener();
33 void removeListener();
34 PersonalizationWindowContext *getWindowContext(QWindow *window);
35
36 static void handleListenerGlobal(void *data, wl_registry *registry, uint32_t id, const QString &interface, uint32_t version);
37
38private:
39 QHash<QWindow *, PersonalizationWindowContext *> m_windowContexts;
40 QtWaylandClient::QWaylandDisplay *m_waylandDisplay = nullptr;
41};
42
43class PersonalizationWindowContext : public QWaylandClientExtensionTemplate<PersonalizationWindowContext>,
44 public QtWayland::treeland_personalization_window_context_v1
45{
46 Q_OBJECT
47public:
48 explicit PersonalizationWindowContext(struct ::treeland_personalization_window_context_v1 *context);
49
50 void setEnableTitleBar(bool enable);
51};
52DGUI_END_NAMESPACE
Definition personalizationwaylandclientextension.h:20
Definition personalizationwaylandclientextension.h:45
Definition main.cpp:22