blob: 61400cd5fa2eeed8e363849f2384855bf7020abe (
plain)
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
|
// Copyright (C) 2016 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
// Qt-Security score:significant reason:default
#ifndef QPLATFORMINTEGRATION_UIKIT_H
#define QPLATFORMINTEGRATION_UIKIT_H
#include <qpa/qplatformintegration.h>
#include <qpa/qplatformnativeinterface.h>
#include <qpa/qwindowsysteminterface.h>
#include <QtCore/private/qfactoryloader_p.h>
#include "qiosapplicationstate.h"
#if !defined(Q_OS_TVOS) && !defined(Q_OS_VISIONOS)
#include "qiostextinputoverlay.h"
#endif
#if defined(Q_OS_VISIONOS)
#include <swift/bridging>
#endif
QT_BEGIN_NAMESPACE
using namespace QNativeInterface;
class QIOSServices;
class
#if defined(Q_OS_VISIONOS)
SWIFT_IMMORTAL_REFERENCE
#endif
QIOSIntegration : public QPlatformNativeInterface, public QPlatformIntegration
#if defined(Q_OS_VISIONOS)
, public QVisionOSApplication
#endif
{
Q_OBJECT
public:
QIOSIntegration();
~QIOSIntegration();
void initialize() override;
bool hasCapability(Capability cap) const override;
QPlatformWindow *createPlatformWindow(QWindow *window) const override;
QPlatformWindow *createForeignWindow(QWindow *window, WId nativeHandle) const override;
QPlatformBackingStore *createPlatformBackingStore(QWindow *window) const override;
#if QT_CONFIG(opengl)
QPlatformOpenGLContext *createPlatformOpenGLContext(QOpenGLContext *context) const override;
#endif
QPlatformOffscreenSurface *createPlatformOffscreenSurface(QOffscreenSurface *surface) const override;
QPlatformFontDatabase *fontDatabase() const override;
#if QT_CONFIG(clipboard)
QPlatformClipboard *clipboard() const override;
#endif
QPlatformInputContext *inputContext() const override;
QPlatformServices *services() const override;
QVariant styleHint(StyleHint hint) const override;
QStringList themeNames() const override;
QPlatformTheme *createPlatformTheme(const QString &name) const override;
QAbstractEventDispatcher *createEventDispatcher() const override;
QPlatformNativeInterface *nativeInterface() const override;
QPointingDevice *touchDevice();
#if QT_CONFIG(tabletevent)
QPointingDevice *pencilDevice();
#endif
#if QT_CONFIG(accessibility)
QPlatformAccessibility *accessibility() const override;
#endif
void beep() const override;
void setApplicationBadge(qint64 number) override;
static QIOSIntegration *instance();
// -- QPlatformNativeInterface --
void *nativeResourceForWindow(const QByteArray &resource, QWindow *window) override;
QFactoryLoader *optionalPlugins() { return m_optionalPlugins; }
QIOSApplicationState applicationState;
#if defined(Q_OS_VISIONOS)
void openImmersiveSpace() override;
void dismissImmersiveSpace() override;
using CompositorLayer = QVisionOSApplication::ImmersiveSpaceCompositorLayer;
void setImmersiveSpaceCompositorLayer(CompositorLayer *layer) override;
void configureCompositorLayer(cp_layer_renderer_capabilities_t, cp_layer_renderer_configuration_t);
void renderCompositorLayer(cp_layer_renderer_t);
void handleSpatialEvents(const char *jsonString);
#endif
private:
QPlatformFontDatabase *m_fontDatabase;
#if QT_CONFIG(clipboard)
QPlatformClipboard *m_clipboard;
#endif
QPlatformInputContext *m_inputContext;
QPointingDevice *m_touchDevice;
#if QT_CONFIG(tabletevent)
QPointingDevice *m_pencilDevice = nullptr;
#endif
mutable QIOSServices *m_platformServices = nullptr;
mutable QPlatformAccessibility *m_accessibility;
QFactoryLoader *m_optionalPlugins;
#if !defined(Q_OS_TVOS) && !defined(Q_OS_VISIONOS)
QIOSTextInputOverlay m_textInputOverlay;
#endif
#if defined(Q_OS_VISIONOS)
CompositorLayer *m_immersiveSpaceCompositorLayer = nullptr;
#endif
};
QT_END_NAMESPACE
#endif
|