From a685df05841a3dd45095e40ca0f40ab796bfc86f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tor=20Arne=20Vestb=C3=B8?= Date: Sun, 4 Nov 2012 21:59:00 +0100 Subject: iOS: Add ability to get the UIView for a QWindow through QPlatformNativeInterface Change-Id: Iab2742bbaa97ff345871ad07ef0162b12248506a Reviewed-by: Richard Moe Gustavsen --- src/plugins/platforms/ios/qiosintegration.h | 6 +++++- src/plugins/platforms/ios/qiosintegration.mm | 20 ++++++++++++++++++++ 2 files changed, 25 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/plugins/platforms/ios/qiosintegration.h b/src/plugins/platforms/ios/qiosintegration.h index d744cf377a..d72eefa1fa 100644 --- a/src/plugins/platforms/ios/qiosintegration.h +++ b/src/plugins/platforms/ios/qiosintegration.h @@ -43,10 +43,11 @@ #define QPLATFORMINTEGRATION_UIKIT_H #include +#include QT_BEGIN_NAMESPACE -class QIOSIntegration : public QPlatformIntegration +class QIOSIntegration : public QPlatformIntegration, public QPlatformNativeInterface { public: QIOSIntegration(); @@ -59,6 +60,9 @@ public: QPlatformFontDatabase *fontDatabase() const; QAbstractEventDispatcher *guiThreadEventDispatcher() const; + QPlatformNativeInterface *nativeInterface() const; + + void *nativeResourceForWindow(const QByteArray &resource, QWindow *window); private: QPlatformFontDatabase *m_fontDatabase; diff --git a/src/plugins/platforms/ios/qiosintegration.mm b/src/plugins/platforms/ios/qiosintegration.mm index d3e9572f83..0c876bf1b2 100644 --- a/src/plugins/platforms/ios/qiosintegration.mm +++ b/src/plugins/platforms/ios/qiosintegration.mm @@ -90,4 +90,24 @@ QPlatformFontDatabase * QIOSIntegration::fontDatabase() const return m_fontDatabase; } +QPlatformNativeInterface *QIOSIntegration::nativeInterface() const +{ + return const_cast(this); +} + +void *QIOSIntegration::nativeResourceForWindow(const QByteArray &resource, QWindow *window) +{ + if (!window || !window->handle()) + return 0; + + QByteArray lowerCaseResource = resource.toLower(); + + QIOSWindow *platformWindow = static_cast(window->handle()); + + if (lowerCaseResource == "uiview") + return platformWindow->nativeView(); + + return 0; +} + QT_END_NAMESPACE -- cgit v1.2.3