7#include <QtCore/qcoreapplication.h>
8#include <QtCore/qjnienvironment.h>
9#include <QtCore/qjniobject.h>
10#include <QtCore/qjnitypes.h>
11#include <QtGui/qwindow.h>
15Q_DECLARE_JNI_CLASS(QtView,
"org/qtproject/qt/android/QtView");
19 jint x, jint y, jint width, jint height)
23 QMetaObject::invokeMethod(qApp, [rootView, x, y, width, height] {
24 QWindow *parentWindow = QWindow::fromWinId(
reinterpret_cast<WId>(rootView.object()));
25 parentWindow->setGeometry(x, y, width, height);
26 rootView.callMethod<
void>(
"createWindow",
reinterpret_cast<jlong>(parentWindow));
32 QWindow *window =
reinterpret_cast<QWindow*>(windowRef);
33 window->deleteLater();
38 QMetaObject::invokeMethod(qApp, [windowRef, visible] {
39 QWindow *window =
reinterpret_cast<QWindow*>(windowRef);
42 if (!window->parent()->isVisible())
43 window->parent()->showNormal();
52 QMetaObject::invokeMethod(qApp, [windowRef, x, y, width, height] {
53 QWindow *window =
reinterpret_cast<QWindow*>(windowRef);
54 QWindow *parent = window->parent();
56 parent->setGeometry(x, y, width, height);
57 window->setGeometry(0, 0, width, height);
62 return env.registerNativeMethods(
63 QtJniTypes::Traits<QtJniTypes::QtView>::className(),
64 { Q_JNI_NATIVE_SCOPED_METHOD(createRootWindow, QtAndroidWindowEmbedding),
65 Q_JNI_NATIVE_SCOPED_METHOD(deleteWindow, QtAndroidWindowEmbedding),
66 Q_JNI_NATIVE_SCOPED_METHOD(setWindowVisible, QtAndroidWindowEmbedding),
67 Q_JNI_NATIVE_SCOPED_METHOD(resizeWindow, QtAndroidWindowEmbedding) });
Combined button and popup list for selecting options.
bool registerNatives(QJniEnvironment &env)
void setWindowVisible(JNIEnv *, jclass, jlong windowRef, jboolean visible)
void createRootWindow(JNIEnv *, jclass, QtJniTypes::View rootView, jint x, jint y, jint width, jint height)
void resizeWindow(JNIEnv *, jclass, jlong windowRef, jint x, jint y, jint width, jint height)
void deleteWindow(JNIEnv *, jclass, jlong windowRef)