summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/plugins/platforms/qnx/qnx.pro7
-rw-r--r--src/plugins/platforms/qnx/qqnxintegration.cpp9
-rw-r--r--src/plugins/platforms/qnx/qqnxintegration.h4
-rw-r--r--src/plugins/platforms/qnx/qqnxnativeinterface.cpp65
-rw-r--r--src/plugins/platforms/qnx/qqnxnativeinterface.h57
5 files changed, 139 insertions, 3 deletions
diff --git a/src/plugins/platforms/qnx/qnx.pro b/src/plugins/platforms/qnx/qnx.pro
index c29ad4d3a2..bdc8c38614 100644
--- a/src/plugins/platforms/qnx/qnx.pro
+++ b/src/plugins/platforms/qnx/qnx.pro
@@ -38,8 +38,8 @@ SOURCES = main.cpp \
qqnxclipboard.cpp \
qqnxrootwindow.cpp \
qqnxscreeneventhandler.cpp \
- qqnxabstractvirtualkeyboard.cpp
-
+ qqnxabstractvirtualkeyboard.cpp \
+ qqnxnativeinterface.cpp
HEADERS = qqnxbuffer.h \
qqnxeventthread.h \
@@ -55,7 +55,8 @@ HEADERS = qqnxbuffer.h \
qqnxclipboard.h \
qqnxrootwindow.h \
qqnxscreeneventhandler.h \
- qqnxabstractvirtualkeyboard.h
+ qqnxabstractvirtualkeyboard.h \
+ qqnxnativeinterface.h
CONFIG(blackberry) {
SOURCES += qqnxservices.cpp
diff --git a/src/plugins/platforms/qnx/qqnxintegration.cpp b/src/plugins/platforms/qnx/qqnxintegration.cpp
index 40e29981ce..faec340347 100644
--- a/src/plugins/platforms/qnx/qqnxintegration.cpp
+++ b/src/plugins/platforms/qnx/qqnxintegration.cpp
@@ -43,6 +43,7 @@
#include "qqnxeventthread.h"
#include "qqnxglbackingstore.h"
#include "qqnxglcontext.h"
+#include "qqnxnativeinterface.h"
#include "qqnxnavigatoreventhandler.h"
#include "qqnxrasterbackingstore.h"
#include "qqnxscreen.h"
@@ -85,6 +86,7 @@ QQnxIntegration::QQnxIntegration()
, m_fontDatabase(new QGenericUnixFontDatabase())
, m_paintUsingOpenGL(false)
, m_eventDispatcher(createUnixEventDispatcher())
+ , m_nativeInterface(new QQnxNativeInterface())
, m_services(0)
, m_screenEventHandler(new QQnxScreenEventHandler())
#ifndef QT_NO_CLIPBOARD
@@ -149,6 +151,8 @@ QQnxIntegration::~QQnxIntegration()
delete m_screenEventHandler;
+ delete m_nativeInterface;
+
// Destroy input context
delete m_inputContext;
@@ -259,6 +263,11 @@ QAbstractEventDispatcher *QQnxIntegration::guiThreadEventDispatcher() const
return m_eventDispatcher;
}
+QPlatformNativeInterface *QQnxIntegration::nativeInterface() const
+{
+ return m_nativeInterface;
+}
+
#ifndef QT_NO_CLIPBOARD
QPlatformClipboard *QQnxIntegration::clipboard() const
{
diff --git a/src/plugins/platforms/qnx/qqnxintegration.h b/src/plugins/platforms/qnx/qqnxintegration.h
index 5a5e2c69c9..f29baf1323 100644
--- a/src/plugins/platforms/qnx/qqnxintegration.h
+++ b/src/plugins/platforms/qnx/qqnxintegration.h
@@ -52,6 +52,7 @@ QT_BEGIN_NAMESPACE
class QQnxEventThread;
class QQnxInputContext;
+class QQnxNativeInterface;
class QQnxNavigatorEventHandler;
class QQnxAbstractVirtualKeyboard;
class QQnxWindow;
@@ -86,6 +87,8 @@ public:
QPlatformFontDatabase *fontDatabase() const { return m_fontDatabase; }
+ QPlatformNativeInterface *nativeInterface() const;
+
#ifndef QT_NO_CLIPBOARD
QPlatformClipboard *clipboard() const;
#endif
@@ -114,6 +117,7 @@ private:
QPlatformFontDatabase *m_fontDatabase;
bool m_paintUsingOpenGL;
QAbstractEventDispatcher *m_eventDispatcher;
+ QQnxNativeInterface *m_nativeInterface;
QQnxServices *m_services;
QList<QQnxScreen*> m_screens;
QQnxScreenEventHandler *m_screenEventHandler;
diff --git a/src/plugins/platforms/qnx/qqnxnativeinterface.cpp b/src/plugins/platforms/qnx/qqnxnativeinterface.cpp
new file mode 100644
index 0000000000..45e555488d
--- /dev/null
+++ b/src/plugins/platforms/qnx/qqnxnativeinterface.cpp
@@ -0,0 +1,65 @@
+/***************************************************************************
+**
+** Copyright (C) 2012 Research In Motion
+** Contact: http://www.qt-project.org/
+**
+** This file is part of the plugins of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** GNU Lesser General Public License Usage
+** This file may be used under the terms of the GNU Lesser General Public
+** License version 2.1 as published by the Free Software Foundation and
+** appearing in the file LICENSE.LGPL included in the packaging of this
+** file. Please review the following information to ensure the GNU Lesser
+** General Public License version 2.1 requirements will be met:
+** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU General
+** Public License version 3.0 as published by the Free Software Foundation
+** and appearing in the file LICENSE.GPL included in the packaging of this
+** file. Please review the following information to ensure the GNU General
+** Public License version 3.0 requirements will be met:
+** http://www.gnu.org/copyleft/gpl.html.
+**
+** Other Usage
+** Alternatively, this file may be used in accordance with the terms and
+** conditions contained in a signed written agreement between you and Nokia.
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "qqnxnativeinterface.h"
+
+#include "qqnxscreen.h"
+
+#include <QtGui/QScreen>
+#include <QtGui/QWindow>
+
+QT_BEGIN_NAMESPACE
+
+void *QQnxNativeInterface::nativeResourceForWindow(const QByteArray &resource, QWindow *window)
+{
+ if (resource == "windowGroup" && window && window->screen()) {
+ const QQnxScreen * const screen = static_cast<QQnxScreen *>(window->screen()->handle());
+ if (screen) {
+ // We can't just call data() instead of constData() here, since that would detach
+ // and the lifetime of the char * would not be long enough. Therefore the const_cast.
+ return const_cast<char *>(screen->rootWindow()->groupName().constData());
+ }
+ }
+
+ return 0;
+}
+
+QT_END_NAMESPACE
diff --git a/src/plugins/platforms/qnx/qqnxnativeinterface.h b/src/plugins/platforms/qnx/qqnxnativeinterface.h
new file mode 100644
index 0000000000..ec896d40fa
--- /dev/null
+++ b/src/plugins/platforms/qnx/qqnxnativeinterface.h
@@ -0,0 +1,57 @@
+/***************************************************************************
+**
+** Copyright (C) 2012 Research In Motion
+** Contact: http://www.qt-project.org/
+**
+** This file is part of the plugins of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** GNU Lesser General Public License Usage
+** This file may be used under the terms of the GNU Lesser General Public
+** License version 2.1 as published by the Free Software Foundation and
+** appearing in the file LICENSE.LGPL included in the packaging of this
+** file. Please review the following information to ensure the GNU Lesser
+** General Public License version 2.1 requirements will be met:
+** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU General
+** Public License version 3.0 as published by the Free Software Foundation
+** and appearing in the file LICENSE.GPL included in the packaging of this
+** file. Please review the following information to ensure the GNU General
+** Public License version 3.0 requirements will be met:
+** http://www.gnu.org/copyleft/gpl.html.
+**
+** Other Usage
+** Alternatively, this file may be used in accordance with the terms and
+** conditions contained in a signed written agreement between you and Nokia.
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef QQNXNATIVEINTERFACE_H
+#define QQNXNATIVEINTERFACE_H
+
+#include <QtGui/QPlatformNativeInterface>
+
+QT_BEGIN_NAMESPACE
+
+class QQnxNativeInterface : public QPlatformNativeInterface
+{
+public:
+ void *nativeResourceForWindow(const QByteArray &resource, QWindow *window);
+};
+
+QT_END_NAMESPACE
+
+#endif // QQNXNATIVEINTERFACE_H