Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Toggle main menu visibility
Loading...
Searching...
No Matches
qandroidplatformintegration.h
Go to the documentation of this file.
1
// Copyright (C) 2012 BogDan Vatra <bogdan@kde.org>
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
5
#
ifndef
QANDROIDPLATFORMINTERATION_H
6
#
define
QANDROIDPLATFORMINTERATION_H
7
8
#
include
"qandroidinputcontext.h"
9
#
include
"qandroidplatformscreen.h"
10
11
#
include
<
QtGui
/
qtguiglobal
.
h
>
12
#
include
<
qpa
/
qplatformintegration
.
h
>
13
#
include
<
qpa
/
qplatformmenu
.
h
>
14
#
include
<
qpa
/
qplatformnativeinterface
.
h
>
15
#
include
<
qpa
/
qplatformopenglcontext
.
h
>
16
#
include
<
qpa
/
qplatformoffscreensurface
.
h
>
17
#
include
<
qpa
/
qplatformtheme
.
h
>
18
#
include
<
private
/
qflatmap_p
.
h
>
19
#
include
<
QtCore
/
qvarlengtharray
.
h
>
20
21
#
include
<
EGL
/
egl
.
h
>
22
#
include
<
memory
>
23
24
QT_BEGIN_NAMESPACE
25
26
class
QAndroidPlatformServices;
27
class
QPlatformAccessibility;
28
29
struct
AndroidStyle;
30
class
QAndroidPlatformNativeInterface
:
public
QPlatformNativeInterface
31
{
32
public
:
33
void
*
nativeResourceForIntegration
(
const
QByteArray &resource)
override
;
34
void
*nativeResourceForWindow(
const
QByteArray &resource, QWindow *window)
override
;
35
void
*
nativeResourceForContext
(
const
QByteArray &resource, QOpenGLContext *context)
override
;
36
std
::shared_ptr<AndroidStyle>
m_androidStyle
;
37
38
protected
:
39
void
customEvent
(QEvent *event)
override
;
40
};
41
42
class
QAndroidPlatformIntegration
:
public
QPlatformIntegration
43
#
if
QT_CONFIG
(
egl
)
44
,
QNativeInterface
::
Private
::
QEGLIntegration
45
,
QNativeInterface
::
Private
::
QAndroidOffScreenIntegration
46
#
endif
47
{
48
friend
class
QAndroidPlatformScreen
;
49
50
public
:
51
QAndroidPlatformIntegration
(
const
QStringList ¶mList);
52
~
QAndroidPlatformIntegration
();
53
54
void
initialize
()
override
;
55
56
bool
hasCapability
(QPlatformIntegration::Capability cap)
const
override
;
57
58
QPlatformWindow *createPlatformWindow(QWindow *window)
const
override
;
59
QPlatformWindow *createForeignWindow(QWindow *window, WId nativeHandle)
const
override
;
60
QPlatformBackingStore *createPlatformBackingStore(QWindow *window)
const
override
;
61
#
if
QT_CONFIG
(
egl
)
62
QPlatformOpenGLContext
*
createPlatformOpenGLContext
(
QOpenGLContext
*
context
)
const
override
;
63
QOpenGLContext
*
createOpenGLContext
(
EGLContext
context
,
EGLDisplay
display
,
QOpenGLContext
*
shareContext
)
const
override
;
64
#
endif
65
QAbstractEventDispatcher
*
createEventDispatcher
()
const
override
;
66
QAndroidPlatformScreen
*
screen
() {
return
m_primaryScreen; }
67
#
if
QT_CONFIG
(
egl
)
68
QPlatformOffscreenSurface
*
createPlatformOffscreenSurface
(
QOffscreenSurface
*
surface
)
const
override
;
69
QOffscreenSurface
*
createOffscreenSurface
(
ANativeWindow
*
nativeSurface
)
const
override
;
70
#
endif
71
72
void
setAvailableGeometry(
const
QRect &availableGeometry);
73
void
setPhysicalSize
(
int
width,
int
height);
74
void
setScreenSize
(
int
width,
int
height);
75
void
setRefreshRate
(qreal refreshRate);
76
bool
isVirtualDesktop
() {
return
true
; }
77
78
QPlatformFontDatabase
*
fontDatabase
()
const
override
;
79
80
void
handleScreenAdded
(
int
displayId);
81
void
handleScreenChanged
(
int
displayId);
82
void
handleScreenRemoved
(
int
displayId);
83
84
#
ifndef
QT_NO_CLIPBOARD
85
QPlatformClipboard
*
clipboard
()
const
override
;
86
#
endif
87
88
#
if
QT_CONFIG
(
draganddrop
)
89
QPlatformDrag
*
drag
()
const
override
;
90
#
endif
91
92
QPlatformInputContext
*
inputContext
()
const
override
;
93
QPlatformNativeInterface
*
nativeInterface
()
const
override
;
94
QPlatformServices
*
services
()
const
override
;
95
96
#
if
QT_CONFIG
(
accessibility
)
97
virtual
QPlatformAccessibility
*
accessibility
()
const
override
;
98
#
endif
99
100
QVariant
styleHint
(StyleHint hint)
const
override
;
101
Qt
::
WindowState
defaultWindowState
(Qt::WindowFlags flags)
const
override
;
102
103
QStringList
themeNames
()
const
override
;
104
QPlatformTheme *createPlatformTheme(
const
QString &name)
const
override
;
105
106
static
void
setScreenOrientation
(Qt::ScreenOrientation currentOrientation,
107
Qt::ScreenOrientation nativeOrientation);
108
109
QPointingDevice
*
touchDevice
()
const
{
return
m_touchDevice; }
110
void
setTouchDevice
(QPointingDevice *touchDevice) { m_touchDevice = touchDevice; }
111
112
void
flushPendingUpdates
();
113
114
static
void
updateColorScheme
(Qt::ColorScheme colorScheme);
115
static
Qt
::
ColorScheme
colorScheme
() {
return
m_colorScheme; }
116
#
if
QT_CONFIG
(
vulkan
)
117
QPlatformVulkanInstance
*
createPlatformVulkanInstance
(
QVulkanInstance
*
instance
)
const
override
;
118
#
endif
119
120
private
:
121
EGLDisplay m_eglDisplay;
122
QPointingDevice *m_touchDevice;
123
124
QAndroidPlatformScreen
*m_primaryScreen;
125
126
QThread *m_mainThread;
127
128
static
Qt::ColorScheme m_colorScheme;
129
130
static
Qt::ScreenOrientation m_orientation;
131
static
Qt::ScreenOrientation m_nativeOrientation;
132
static
bool
m_showPasswordEnabled;
133
134
QPlatformFontDatabase *m_androidFDB;
135
QAndroidPlatformNativeInterface
*m_androidPlatformNativeInterface;
136
QScopedPointer<QAndroidPlatformServices> m_androidPlatformServices;
137
138
// Handling the multiple screens connected. Every display is identified
139
// with an unique (autoincremented) displayID. The values of this ID will
140
// not repeat during the OS runtime. We use this value as the key in the
141
// storage of screens.
142
QFlatMap
<
int
,
QAndroidPlatformScreen
*,
std
::
less
<
int
>
143
,
QVarLengthArray
<
int
, 10>
144
,
QVarLengthArray
<
QAndroidPlatformScreen
*, 10> >
m_screens
;
145
// ID of the primary display, in documentation it is said to be always 0,
146
// but nevertheless it is retrieved
147
int
m_primaryDisplayId = 0;
148
149
#
ifndef
QT_NO_CLIPBOARD
150
QPlatformClipboard *m_androidPlatformClipboard;
151
#
endif
152
153
#
if
QT_CONFIG
(
draganddrop
)
154
QPlatformDrag
*
m_androidPlatformDrag
=
nullptr
;
155
#
endif
156
157
#
if
QT_CONFIG
(
accessibility
)
158
mutable
QPlatformAccessibility
*
m_accessibility
;
159
#
endif
160
161
QScopedPointer<QPlatformInputContext> m_inputContext;
162
};
163
164
QT_END_NAMESPACE
165
166
#
endif
QAndroidIntegrationPlugin
Definition
main.cpp:14
QAndroidPlatformIntegration
Definition
qandroidplatformintegration.h:47
QAndroidPlatformIntegration::fontDatabase
QPlatformFontDatabase * fontDatabase() const override
Accessor for the platform integration's fontdatabase.
Definition
qandroidplatformintegration.cpp:462
QAndroidPlatformIntegration::flushPendingUpdates
void flushPendingUpdates()
Definition
qandroidplatformintegration.cpp:539
QAndroidPlatformIntegration::colorScheme
static Qt::ColorScheme colorScheme()
Definition
qandroidplatformintegration.h:115
QAndroidPlatformIntegration::isVirtualDesktop
bool isVirtualDesktop()
Definition
qandroidplatformintegration.h:76
QAndroidPlatformIntegration::initialize
void initialize() override
Performs initialization steps that depend on having an event dispatcher available.
Definition
qandroidplatformintegration.cpp:326
QAndroidPlatformIntegration::inputContext
QPlatformInputContext * inputContext() const override
Returns the platforms input context.
Definition
qandroidplatformintegration.cpp:481
QAndroidPlatformIntegration::themeNames
QStringList themeNames() const override
Definition
qandroidplatformintegration.cpp:519
QAndroidPlatformIntegration::handleScreenChanged
void handleScreenChanged(int displayId)
Definition
qandroidplatformintegration.cpp:622
QAndroidPlatformIntegration::nativeInterface
QPlatformNativeInterface * nativeInterface() const override
Definition
qandroidplatformintegration.cpp:486
QAndroidPlatformIntegration::~QAndroidPlatformIntegration
~QAndroidPlatformIntegration()
Definition
qandroidplatformintegration.cpp:441
QAndroidPlatformIntegration::setScreenSize
void setScreenSize(int width, int height)
Definition
qandroidplatformintegration.cpp:580
QAndroidPlatformIntegration::setRefreshRate
void setRefreshRate(qreal refreshRate)
Definition
qandroidplatformintegration.cpp:598
QAndroidPlatformIntegration::setPhysicalSize
void setPhysicalSize(int width, int height)
Definition
qandroidplatformintegration.cpp:574
QAndroidPlatformIntegration::handleScreenAdded
void handleScreenAdded(int displayId)
Definition
qandroidplatformintegration.cpp:605
QAndroidPlatformIntegration::hasCapability
bool hasCapability(QPlatformIntegration::Capability cap) const override
Definition
qandroidplatformintegration.cpp:335
QAndroidPlatformIntegration::setTouchDevice
void setTouchDevice(QPointingDevice *touchDevice)
Definition
qandroidplatformintegration.h:110
QAndroidPlatformIntegration::clipboard
QPlatformClipboard * clipboard() const override
Accessor for the platform integration's clipboard.
Definition
qandroidplatformintegration.cpp:468
QAndroidPlatformIntegration::updateColorScheme
static void updateColorScheme(Qt::ColorScheme colorScheme)
Definition
qandroidplatformintegration.cpp:588
QAndroidPlatformIntegration::defaultWindowState
Qt::WindowState defaultWindowState(Qt::WindowFlags flags) const override
Definition
qandroidplatformintegration.cpp:509
QAndroidPlatformIntegration::QAndroidPlatformIntegration
QAndroidPlatformIntegration(const QStringList ¶mList)
Definition
qandroidplatformintegration.cpp:182
QAndroidPlatformIntegration::createEventDispatcher
QAbstractEventDispatcher * createEventDispatcher() const override
Factory function for the GUI event dispatcher.
Definition
qandroidplatformintegration.cpp:436
QAndroidPlatformIntegration::styleHint
QVariant styleHint(StyleHint hint) const override
Definition
qandroidplatformintegration.cpp:496
QAndroidPlatformIntegration::handleScreenRemoved
void handleScreenRemoved(int displayId)
Definition
qandroidplatformintegration.cpp:640
QAndroidPlatformIntegration::screen
QAndroidPlatformScreen * screen()
Definition
qandroidplatformintegration.h:66
QAndroidPlatformIntegration::setScreenOrientation
static void setScreenOrientation(Qt::ScreenOrientation currentOrientation, Qt::ScreenOrientation nativeOrientation)
Definition
qandroidplatformintegration.cpp:532
QAndroidPlatformIntegration::services
QPlatformServices * services() const override
Definition
qandroidplatformintegration.cpp:491
QAndroidPlatformIntegration::touchDevice
QPointingDevice * touchDevice() const
Definition
qandroidplatformintegration.h:109
QAndroidPlatformNativeInterface
Definition
qandroidplatformintegration.h:31
QAndroidPlatformNativeInterface::customEvent
void customEvent(QEvent *event) override
This event handler can be reimplemented in a subclass to receive custom events.
Definition
qandroidplatformintegration.cpp:165
QAndroidPlatformNativeInterface::nativeResourceForContext
void * nativeResourceForContext(const QByteArray &resource, QOpenGLContext *context) override
Definition
qandroidplatformintegration.cpp:147
QAndroidPlatformNativeInterface::nativeResourceForIntegration
void * nativeResourceForIntegration(const QByteArray &resource) override
Definition
qandroidplatformintegration.cpp:90
QAndroidPlatformNativeInterface::m_androidStyle
std::shared_ptr< AndroidStyle > m_androidStyle
Definition
qandroidplatformintegration.h:36
QAndroidPlatformScreen
Definition
qandroidplatformscreen.h:24
QT_BEGIN_NAMESPACE
Combined button and popup list for selecting options.
Definition
qsequentialanimationgroup.cpp:47
std
[33]
Definition
src_corelib_tools_qhash.cpp:421
qtbase
src
plugins
platforms
android
qandroidplatformintegration.h
Generated on
for Qt by
1.18.0