summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/qnx/qqnxnativeinterface.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/platforms/qnx/qqnxnativeinterface.cpp')
-rw-r--r--src/plugins/platforms/qnx/qqnxnativeinterface.cpp39
1 files changed, 38 insertions, 1 deletions
diff --git a/src/plugins/platforms/qnx/qqnxnativeinterface.cpp b/src/plugins/platforms/qnx/qqnxnativeinterface.cpp
index e468b051cd..b89c103a06 100644
--- a/src/plugins/platforms/qnx/qqnxnativeinterface.cpp
+++ b/src/plugins/platforms/qnx/qqnxnativeinterface.cpp
@@ -44,6 +44,11 @@
#include "qqnxglcontext.h"
#include "qqnxscreen.h"
#include "qqnxwindow.h"
+#if defined(QQNX_IMF)
+#include "qqnxinputcontext_imf.h"
+#endif
+
+#include "qqnxintegration.h"
#include <QtGui/QOpenGLContext>
#include <QtGui/QScreen>
@@ -51,6 +56,11 @@
QT_BEGIN_NAMESPACE
+QQnxNativeInterface::QQnxNativeInterface(QQnxIntegration *integration)
+ : m_integration(integration)
+{
+}
+
void *QQnxNativeInterface::nativeResourceForWindow(const QByteArray &resource, QWindow *window)
{
if (resource == "windowGroup" && window && window->screen()) {
@@ -75,6 +85,16 @@ void *QQnxNativeInterface::nativeResourceForScreen(const QByteArray &resource, Q
return 0;
}
+void *QQnxNativeInterface::nativeResourceForIntegration(const QByteArray &resource)
+{
+#ifdef Q_OS_BLACKBERRY
+ if (resource == "navigatorEventHandler")
+ return m_integration->navigatorEventHandler();
+#endif
+
+ return 0;
+}
+
void *QQnxNativeInterface::nativeResourceForContext(const QByteArray &resource, QOpenGLContext *context)
{
if (resource == "eglcontext" && context)
@@ -85,10 +105,27 @@ void *QQnxNativeInterface::nativeResourceForContext(const QByteArray &resource,
void QQnxNativeInterface::setWindowProperty(QPlatformWindow *window, const QString &name, const QVariant &value)
{
+ QQnxWindow *qnxWindow = static_cast<QQnxWindow*>(window);
+
if (name == QStringLiteral("mmRendererWindowName")) {
- QQnxWindow *qnxWindow = static_cast<QQnxWindow*>(window);
qnxWindow->setMMRendererWindowName(value.toString());
+ } else if (name == QStringLiteral("windowGroup")) {
+ if (value.isNull())
+ qnxWindow->joinWindowGroup(QByteArray());
+ else if (value.canConvert<QByteArray>())
+ qnxWindow->joinWindowGroup(value.toByteArray());
}
}
+QPlatformNativeInterface::NativeResourceForIntegrationFunction QQnxNativeInterface::nativeResourceFunctionForIntegration(const QByteArray &resource)
+{
+#if defined(QQNX_IMF)
+ if (resource == "blackberryIMFSetHighlightColor")
+ return reinterpret_cast<NativeResourceForIntegrationFunction>(QQnxInputContext::setHighlightColor);
+ if (resource == "blackberryIMFCheckSpelling")
+ return reinterpret_cast<NativeResourceForIntegrationFunction>(QQnxInputContext::checkSpelling);
+#endif
+ return 0;
+}
+
QT_END_NAMESPACE