DtkGui
DTK Gui module
载入中...
搜索中...
未找到
dtreelandplatformwindowinterface.h
1
// SPDX-FileCopyrightText: 2024 UnionTech Software Technology Co., Ltd.
2
//
3
// SPDX-License-Identifier: LGPL-3.0-or-later
4
5
#ifndef DTREELANDPLATFORMWINDOWINTERFACE_H
6
#define DTREELANDPLATFORMWINDOWINTERFACE_H
7
8
#include "dtkgui_global.h"
9
#include "dtreelandplatforminterface.h"
10
#include <QObject>
11
#include <QtWaylandClient/private/qwaylandwindow_p.h>
12
#include "private/dplatformwindowinterface_p.h"
13
14
DGUI_BEGIN_NAMESPACE
15
class
PersonalizationWindowContext
;
16
class
DTreeLandPlatformWindowHelper
:
public
QObject {
17
Q_OBJECT
18
public
:
19
static
DTreeLandPlatformWindowHelper
*get(QWindow *window);
20
~DTreeLandPlatformWindowHelper
()
override
;
21
22
QWindow *window()
const
{
return
qobject_cast<QWindow *>(parent()); }
23
PersonalizationWindowContext
*windowContext()
const
;
24
25
void
setEnabledNoTitlebar(
bool
enable);
26
void
setWindowRadius(
int
windowRadius);
27
void
setEnableBlurWindow(
bool
enableBlurWindow);
28
29
private
slots:
30
void
onActiveChanged();
31
void
onSurfaceCreated();
32
void
onSurfaceDestroyed();
33
private
:
34
explicit
DTreeLandPlatformWindowHelper
(QWindow *window);
35
bool
eventFilter(QObject *watched, QEvent *event)
override
;
36
void
initWaylandWindow();
37
38
void
doSetEnabledNoTitlebar();
39
void
doSetWindowRadius();
40
void
doSetEnabledBlurWindow();
41
private
:
42
PersonalizationWindowContext
*m_windowContext =
nullptr
;
43
static
QMap<QWindow *, DTreeLandPlatformWindowHelper*> windowMap;
44
45
bool
m_isNoTitlebar =
false
;
46
bool
m_isWindowBlur =
false
;
47
int
m_radius = 0;
48
};
49
50
class
DTreeLandPlatformWindowInterface
:
public
QObject,
public
DPlatformWindowInterface
51
{
52
Q_OBJECT
53
public
:
54
DTreeLandPlatformWindowInterface
(QWindow *window,
DPlatformHandle
*platformHandle, QObject *parent =
nullptr
);
55
~DTreeLandPlatformWindowInterface
()
override
;
56
57
void
setEnabled(
bool
enabled)
override
;
58
bool
isEnabled()
const override
;
59
60
bool
isEnabledNoTitlebar()
const override
;
61
bool
setEnabledNoTitlebar(
bool
enable)
override
;
62
63
int
windowRadius()
const override
;
64
void
setWindowRadius(
int
windowRadius)
override
;
65
66
bool
enableBlurWindow()
const override
;
67
void
setEnableBlurWindow(
bool
enableBlurWindow)
override
;
68
69
private
:
70
bool
m_isNoTitlebar =
false
;
71
bool
m_isWindowBlur =
false
;
72
int
m_radius = 0;
73
};
74
75
DGUI_END_NAMESPACE
76
#endif
// DTREELANDPLATFORMWINDOWINTERFACE_H
Dtk::Gui::DPlatformHandle
一个和Qt dxcb平台插件交互的工具类.
Definition
dplatformhandle.h:24
Dtk::Gui::DPlatformWindowInterface
Definition
dplatformwindowinterface_p.h:16
Dtk::Gui::DTreeLandPlatformWindowHelper
Definition
dtreelandplatformwindowinterface.h:16
Dtk::Gui::DTreeLandPlatformWindowInterface
Definition
dtreelandplatformwindowinterface.h:51
Dtk::Gui::PersonalizationWindowContext
Definition
personalizationwaylandclientextension.h:47
PersonalizationWindowContext
Definition
main.cpp:22
src
plugins
platform
treeland
dtreelandplatformwindowinterface.h
文档生成时间:2025-07-03-13:25 +00
Doxygen Version
1.9.8
制作者:deepin doc doc go SIG
文档使用CC-BY-4.0共享