Coverage Report

Created: 2026-03-31 07:41

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/qtbase/src/gui/kernel/qplatformwindow.h
Line
Count
Source
1
// Copyright (C) 2017 The Qt Company Ltd.
2
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
3
// Qt-Security score:significant reason:default
4
#ifndef QPLATFORMWINDOW_H
5
#define QPLATFORMWINDOW_H
6
7
//
8
//  W A R N I N G
9
//  -------------
10
//
11
// This file is part of the QPA API and is not meant to be used
12
// in applications. Usage of this API may make your code
13
// source and binary incompatible with future versions of Qt.
14
//
15
16
#include <QtGui/qtguiglobal.h>
17
#include <QtCore/qscopedpointer.h>
18
#include <QtCore/qrect.h>
19
#include <QtCore/qmargins.h>
20
#include <QtCore/qstring.h>
21
#include <QtGui/qwindowdefs.h>
22
#include <QtGui/qwindow.h>
23
#include <qpa/qplatformopenglcontext.h>
24
#include <qpa/qplatformsurface.h>
25
26
QT_BEGIN_NAMESPACE
27
28
0
#define QWINDOWSIZE_MAX ((1<<24)-1)
29
30
class QPlatformScreen;
31
class QPlatformWindowPrivate;
32
class QScreen;
33
class QWindow;
34
class QIcon;
35
class QRegion;
36
37
class Q_GUI_EXPORT QPlatformWindow : public QPlatformSurface
38
{
39
0
    Q_DECLARE_PRIVATE(QPlatformWindow)
Unexecuted instantiation: QPlatformWindow::d_func()
Unexecuted instantiation: QPlatformWindow::d_func() const
40
0
public:
41
0
    Q_DISABLE_COPY_MOVE(QPlatformWindow)
42
0
43
0
    explicit QPlatformWindow(QWindow *window);
44
0
    ~QPlatformWindow() override;
45
0
46
0
    virtual void initialize();
47
0
48
0
    QWindow *window() const;
49
0
    QPlatformWindow *parent() const;
50
0
51
0
    QPlatformScreen *screen() const override;
52
0
53
0
    virtual QSurfaceFormat format() const override;
54
0
55
0
    virtual void setGeometry(const QRect &rect);
56
0
    virtual QRect geometry() const;
57
0
    virtual QRect normalGeometry() const;
58
0
59
0
    virtual QMargins frameMargins() const;
60
0
    virtual QMargins safeAreaMargins() const;
61
0
62
0
    virtual void setVisible(bool visible);
63
0
    virtual void setWindowFlags(Qt::WindowFlags flags);
64
0
    virtual void setWindowState(Qt::WindowStates state);
65
0
66
0
    virtual WId winId() const;
67
0
    virtual void setParent(const QPlatformWindow *window);
68
0
69
0
    virtual void setWindowTitle(const QString &title);
70
0
    virtual QString windowTitle() const;
71
0
    virtual void setWindowFilePath(const QString &title);
72
0
    virtual void setWindowIcon(const QIcon &icon);
73
0
    virtual bool close();
74
0
    virtual void raise();
75
0
    virtual void lower();
76
0
77
0
    virtual bool isExposed() const;
78
0
    virtual bool isActive() const;
79
0
    virtual bool isAncestorOf(const QPlatformWindow *child) const;
80
0
    virtual bool isEmbedded() const;
81
0
    virtual bool isForeignWindow() const { return false; }
82
    virtual QPoint mapToGlobal(const QPoint &pos) const;
83
    QPointF mapToGlobalF(const QPointF &pos) const;
84
    virtual QPoint mapFromGlobal(const QPoint &pos) const;
85
    QPointF mapFromGlobalF(const QPointF &pos) const;
86
87
    virtual void propagateSizeHints();
88
89
    virtual void setOpacity(qreal level);
90
    virtual void setMask(const QRegion &region);
91
    virtual void requestActivateWindow();
92
93
    virtual void handleContentOrientationChange(Qt::ScreenOrientation orientation);
94
95
    virtual qreal devicePixelRatio() const;
96
97
    virtual bool setKeyboardGrabEnabled(bool grab);
98
    virtual bool setMouseGrabEnabled(bool grab);
99
100
    virtual bool setWindowModified(bool modified);
101
102
    virtual bool windowEvent(QEvent *event);
103
104
    virtual bool startSystemResize(Qt::Edges edges);
105
    virtual bool startSystemMove();
106
107
    virtual void setFrameStrutEventsEnabled(bool enabled);
108
    virtual bool frameStrutEventsEnabled() const;
109
110
    virtual void setAlertState(bool enabled);
111
    virtual bool isAlertState() const;
112
113
    virtual void invalidateSurface();
114
115
    static QRect initialGeometry(const QWindow *w, const QRect &initialGeometry,
116
                                 int defaultWidth, int defaultHeight,
117
                                 const QScreen **resultingScreenReturn = nullptr);
118
119
    virtual void requestUpdate();
120
    bool hasPendingUpdateRequest() const;
121
    virtual void deliverUpdateRequest();
122
    virtual bool allowsIndependentThreadedRendering() const;
123
124
    // Window property accessors. Platform plugins should use these
125
    // instead of accessing QWindow directly.
126
    QSize windowMinimumSize() const;
127
    QSize windowMaximumSize() const;
128
    QSize windowBaseSize() const;
129
    QSize windowSizeIncrement() const;
130
    QRect windowGeometry() const;
131
    QRect windowFrameGeometry() const;
132
    QRectF windowClosestAcceptableGeometry(const QRectF &nativeRect) const;
133
    static QRectF closestAcceptableGeometry(const QWindow *w, const QRectF &nativeRect);
134
135
protected:
136
    static QString formatWindowTitle(const QString &title, const QString &separator);
137
    QPlatformScreen *screenForGeometry(const QRect &newGeometry) const;
138
    static QSize constrainWindowSize(const QSize &size);
139
140
    QScopedPointer<QPlatformWindowPrivate> d_ptr;
141
};
142
143
QT_END_NAMESPACE
144
145
#endif //QPLATFORMWINDOW_H