/usr/include/libdtk-2.0.7/DWidget/dplatformwindowhandle.h is in libdtkwidget-dev 2.0.7.2-2build1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 | /*
* Copyright (C) 2017 ~ 2017 Deepin Technology Co., Ltd.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef DPLATFORMWINDOWHANDLE_H
#define DPLATFORMWINDOWHANDLE_H
#include "dtkwidget_global.h"
#include <QObject>
#include <QPainterPath>
#include <QColor>
#include <QRegion>
#include <functional>
QT_BEGIN_NAMESPACE
class QWindow;
class QWidget;
QT_END_NAMESPACE
DWIDGET_BEGIN_NAMESPACE
class DPlatformWindowHandle : public QObject
{
Q_OBJECT
Q_PROPERTY(int windowRadius READ windowRadius WRITE setWindowRadius NOTIFY windowRadiusChanged)
Q_PROPERTY(int borderWidth READ borderWidth WRITE setBorderWidth NOTIFY borderWidthChanged)
Q_PROPERTY(QColor borderColor READ borderColor WRITE setBorderColor NOTIFY borderColorChanged)
Q_PROPERTY(int shadowRadius READ shadowRadius WRITE setShadowRadius NOTIFY shadowRadiusChanged)
Q_PROPERTY(QPoint shadowOffset READ shadowOffset WRITE setShadowOffset NOTIFY shadowOffsetChanged)
Q_PROPERTY(QColor shadowColor READ shadowColor WRITE setShadowColor NOTIFY shadowColorChanged)
Q_PROPERTY(QPainterPath clipPath READ clipPath WRITE setClipPath NOTIFY clipPathChanged)
Q_PROPERTY(QRegion frameMask READ frameMask WRITE setFrameMask NOTIFY frameMaskChanged)
Q_PROPERTY(QMargins frameMargins READ frameMargins NOTIFY frameMarginsChanged)
Q_PROPERTY(bool translucentBackground READ translucentBackground WRITE setTranslucentBackground NOTIFY translucentBackgroundChanged)
Q_PROPERTY(bool enableSystemResize READ enableSystemResize WRITE setEnableSystemResize NOTIFY enableSystemResizeChanged)
Q_PROPERTY(bool enableSystemMove READ enableSystemMove WRITE setEnableSystemMove NOTIFY enableSystemMoveChanged)
Q_PROPERTY(bool enableBlurWindow READ enableBlurWindow WRITE setEnableBlurWindow NOTIFY enableBlurWindowChanged)
Q_PROPERTY(bool autoInputMaskByClipPath READ autoInputMaskByClipPath WRITE setAutoInputMaskByClipPath NOTIFY autoInputMaskByClipPathChanged)
Q_PROPERTY(WId realWindowId READ realWindowId CONSTANT)
public:
explicit DPlatformWindowHandle(QWindow *window, QObject *parent = 0);
explicit DPlatformWindowHandle(QWidget *widget, QObject *parent = 0);
static QString pluginVersion();
static void enableDXcbForWindow(QWidget *widget);
static void enableDXcbForWindow(QWindow *window);
static void enableDXcbForWindow(QWidget *widget, bool redirectContent);
static void enableDXcbForWindow(QWindow *window, bool redirectContent);
static bool isEnabledDXcb(const QWidget *widget);
static bool isEnabledDXcb(const QWindow *window);
struct WMBlurArea {
qint32 x = 0;
qint32 y = 0;
qint32 width = 0;
qint32 height = 0;
qint32 xRadius = 0;
qint32 yRaduis = 0;
};
static bool setWindowBlurAreaByWM(QWidget *widget, const QVector<WMBlurArea> &area);
static bool setWindowBlurAreaByWM(QWidget *widget, const QList<QPainterPath> &paths);
static bool setWindowBlurAreaByWM(QWindow *window, const QVector<WMBlurArea> &area);
static bool setWindowBlurAreaByWM(QWindow *window, const QList<QPainterPath> &paths);
static bool connectWindowManagerChangedSignal(QObject *object, std::function<void ()> slot);
static bool connectHasBlurWindowChanged(QObject *object, std::function<void ()> slot);
bool setWindowBlurAreaByWM(const QVector<WMBlurArea> &area);
bool setWindowBlurAreaByWM(const QList<QPainterPath> &paths);
int windowRadius() const;
int borderWidth() const;
QColor borderColor() const;
int shadowRadius() const;
QPoint shadowOffset() const;
QColor shadowColor() const;
QPainterPath clipPath() const;
QRegion frameMask() const;
QMargins frameMargins() const;
bool translucentBackground() const;
bool enableSystemResize() const;
bool enableSystemMove() const;
bool enableBlurWindow() const;
bool autoInputMaskByClipPath() const;
WId realWindowId() const;
public Q_SLOTS:
void setWindowRadius(int windowRadius);
void setBorderWidth(int borderWidth);
void setBorderColor(const QColor &borderColor);
void setShadowRadius(int shadowRadius);
void setShadowOffset(const QPoint &shadowOffset);
void setShadowColor(const QColor &shadowColor);
void setClipPath(const QPainterPath &clipPath);
void setFrameMask(const QRegion &frameMask);
void setTranslucentBackground(bool translucentBackground);
void setEnableSystemResize(bool enableSystemResize);
void setEnableSystemMove(bool enableSystemMove);
void setEnableBlurWindow(bool enableBlurWindow);
void setAutoInputMaskByClipPath(bool autoInputMaskByClipPath);
Q_SIGNALS:
void frameMarginsChanged();
void windowRadiusChanged();
void borderWidthChanged();
void borderColorChanged();
void shadowRadiusChanged();
void shadowOffsetChanged();
void shadowColorChanged();
void clipPathChanged();
void frameMaskChanged();
void translucentBackgroundChanged();
void enableSystemResizeChanged();
void enableSystemMoveChanged();
void enableBlurWindowChanged();
void autoInputMaskByClipPathChanged();
protected:
bool eventFilter(QObject *obj, QEvent *event) Q_DECL_OVERRIDE;
private:
QWindow *m_window;
};
inline DPlatformWindowHandle::WMBlurArea dMakeWMBlurArea(quint32 x, quint32 y, quint32 width, quint32 height, quint32 xr = 0, quint32 yr = 0)
{
DPlatformWindowHandle::WMBlurArea a;
a.x = x;
a.y = y;
a.width = width;
a.height = height;
a.xRadius = xr;
a.yRaduis = yr;
return a;
}
DWIDGET_END_NAMESPACE
QT_BEGIN_NAMESPACE
DWIDGET_USE_NAMESPACE
QDebug operator<<(QDebug deg, const DPlatformWindowHandle::WMBlurArea &area);
QT_END_NAMESPACE
Q_DECLARE_METATYPE(QPainterPath)
Q_DECLARE_METATYPE(QRegion)
Q_DECLARE_METATYPE(QMargins)
#endif // DPLATFORMWINDOWHANDLE_H
|