5#ifndef DPLATFORMHANDLE_H
6#define DPLATFORMHANDLE_H
8#include <dtkgui_global.h>
11#include <QPainterPath>
33 Q_PROPERTY(EffectScene windowEffect READ windowEffect WRITE setWindowEffect NOTIFY windowEffectChanged)
34 Q_PROPERTY(EffectType windowStartUpEffect READ windowStartUpEffect WRITE setWindowStartUpEffect NOTIFY windowStartUpEffectChanged)
67 enum WallpaperScaleMode {
68 FollowScreen = 0x00000000,
69 FollowWindow = 0x00010000
72 enum WallpaperFillMode {
73 PreserveAspectCrop = 0x00000000,
74 PreserveAspectFit = 0x00000001
78 EffectNoRadius = 0x01,
79 EffectNoShadow = 0x02,
80 EffectNoBorder = 0x04,
83 EffectNoMaximize = 0x40,
84 EffectNoMinimize = 0x80
97 Q_DECLARE_FLAGS(EffectScenes, EffectScene)
98 Q_DECLARE_FLAGS(EffectTypes, EffectType)
102 static bool setWindowBlurAreaByWM(QWindow *window,
const QVector<WMBlurArea> &area);
103 static bool setWindowBlurAreaByWM(QWindow *window,
const QList<QPainterPath> &paths);
104 static bool setWindowWallpaperParaByWM(QWindow *window,
const QRect &area, WallpaperScaleMode sMode, WallpaperFillMode fMode);
108 bool setWindowBlurAreaByWM(
const QVector<WMBlurArea> &area);
109 bool setWindowBlurAreaByWM(
const QList<QPainterPath> &paths);
122 EffectScene windowEffect();
123 EffectType windowStartUpEffect();
136 static WId windowLeader();
143 void setWindowEffect(EffectScenes effectScene);
144 void setWindowStartUpEffect(EffectTypes effectType);
150 void setClipPath(
const QPainterPath &
clipPath);
151 void setFrameMask(
const QRegion &
frameMask);
167 void windowEffectChanged();
168 void windowStartUpEffectChanged();
178 bool eventFilter(QObject *obj, QEvent *event) Q_DECL_OVERRIDE;
184inline DPlatformHandle::WMBlurArea dMakeWMBlurArea(quint32 x, quint32 y, quint32 width, quint32 height, quint32 xr = 0, quint32 yr = 0)
205#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0)
206Q_DECLARE_METATYPE(QPainterPath)
207Q_DECLARE_METATYPE(QMargins)
209Q_DECLARE_METATYPE(QRegion)
210Q_DECLARE_OPERATORS_FOR_FLAGS(DPlatformHandle::EffectScenes)
211Q_DECLARE_OPERATORS_FOR_FLAGS(DPlatformHandle::EffectTypes)