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)
68 enum WallpaperScaleMode {
69 FollowScreen = 0x00000000,
70 FollowWindow = 0x00010000
73 enum WallpaperFillMode {
74 PreserveAspectCrop = 0x00000000,
75 PreserveAspectFit = 0x00000001
79 EffectNoRadius = 0x01,
80 EffectNoShadow = 0x02,
81 EffectNoBorder = 0x04,
84 EffectNoMaximize = 0x40,
85 EffectNoMinimize = 0x80
98 Q_DECLARE_FLAGS(EffectScenes, EffectScene)
99 Q_DECLARE_FLAGS(EffectTypes, EffectType)
103 static bool setWindowBlurAreaByWM(QWindow *window,
const QVector<WMBlurArea> &area);
104 static bool setWindowBlurAreaByWM(QWindow *window,
const QList<QPainterPath> &paths);
105 static bool setWindowWallpaperParaByWM(QWindow *window,
const QRect &area, WallpaperScaleMode sMode, WallpaperFillMode fMode);
109 bool setWindowBlurAreaByWM(
const QVector<WMBlurArea> &area);
110 bool setWindowBlurAreaByWM(
const QList<QPainterPath> &paths);
123 EffectScene windowEffect();
124 EffectType windowStartUpEffect();
137 static WId windowLeader();
144 void setWindowEffect(EffectScenes effectScene);
145 void setWindowStartUpEffect(EffectTypes effectType);
151 void setClipPath(
const QPainterPath &
clipPath);
152 void setFrameMask(
const QRegion &
frameMask);
168 void windowEffectChanged();
169 void windowStartUpEffectChanged();
179 bool eventFilter(QObject *obj, QEvent *event) Q_DECL_OVERRIDE;
185inline DPlatformHandle::WMBlurArea dMakeWMBlurArea(quint32 x, quint32 y, quint32 width, quint32 height, quint32 xr = 0, quint32 yr = 0)
206#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0)
207Q_DECLARE_METATYPE(QPainterPath)
208Q_DECLARE_METATYPE(QMargins)
210Q_DECLARE_METATYPE(QRegion)
211Q_DECLARE_OPERATORS_FOR_FLAGS(DPlatformHandle::EffectScenes)
212Q_DECLARE_OPERATORS_FOR_FLAGS(DPlatformHandle::EffectTypes)