summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/windows/qwindowsintegration.cpp
diff options
context:
space:
mode:
authorBjoern Breitmeyer <bjoern.breitmeyer@kdab.com>2012-05-10 14:43:26 +0200
committerQt by Nokia <qt-info@nokia.com>2012-05-10 22:56:25 +0200
commit9b9895de8da08776e586f20807d4698e5d9e5680 (patch)
treec76d3316e75c93a6c993f0fea148f496cd3b291a /src/plugins/platforms/windows/qwindowsintegration.cpp
parent4e8c20e97e17881e2de20640f81c3998f024287d (diff)
Fix for windows platform plugin to work with WINCE.
Made opengl optional. Made Clipboard and Accessability optional. Moved internal mime data into its on source file, was implemented in the clipboard source which is just strange. Change-Id: I6ddf0c656533bd45e22e24492fc2254d15b7822f Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
Diffstat (limited to 'src/plugins/platforms/windows/qwindowsintegration.cpp')
-rw-r--r--src/plugins/platforms/windows/qwindowsintegration.cpp34
1 files changed, 30 insertions, 4 deletions
diff --git a/src/plugins/platforms/windows/qwindowsintegration.cpp b/src/plugins/platforms/windows/qwindowsintegration.cpp
index 255cf1454c..d46c138c96 100644
--- a/src/plugins/platforms/windows/qwindowsintegration.cpp
+++ b/src/plugins/platforms/windows/qwindowsintegration.cpp
@@ -43,20 +43,24 @@
#include "qwindowsbackingstore.h"
#include "qwindowswindow.h"
#include "qwindowscontext.h"
-#include "qwindowsglcontext.h"
+#ifndef QT_NO_OPENGL
+# include "qwindowsglcontext.h"
+#endif
#include "qwindowsscreen.h"
#include "qwindowstheme.h"
#include "qwindowsservices.h"
#ifndef QT_NO_FREETYPE
-#include "qwindowsfontdatabase_ft.h"
+# include "qwindowsfontdatabase_ft.h"
#endif
#include "qwindowsfontdatabase.h"
#include "qwindowsguieventdispatcher.h"
-#include "qwindowsclipboard.h"
+#ifndef QT_NO_CLIPBOARD
+# include "qwindowsclipboard.h"
+#endif
#include "qwindowsdrag.h"
#include "qwindowsinputcontext.h"
#include "qwindowskeymapper.h"
-#ifndef QT_NO_ACCESSIBILITY
+# ifndef QT_NO_ACCESSIBILITY
#include "accessible/qwindowsaccessibility.h"
#endif
@@ -89,7 +93,9 @@ class QWindowsNativeInterface : public QPlatformNativeInterface
{
Q_OBJECT
public:
+#ifndef QT_NO_OPENGL
virtual void *nativeResourceForContext(const QByteArray &resource, QOpenGLContext *context);
+#endif
virtual void *nativeResourceForWindow(const QByteArray &resource, QWindow *window);
virtual void *nativeResourceForBackingStore(const QByteArray &resource, QBackingStore *bs);
virtual EventFilter setEventFilter(const QByteArray &eventType, EventFilter filter)
@@ -134,6 +140,7 @@ void *QWindowsNativeInterface::nativeResourceForBackingStore(const QByteArray &r
return 0;
}
+#ifndef QT_NO_OPENGL
void *QWindowsNativeInterface::nativeResourceForContext(const QByteArray &resource, QOpenGLContext *context)
{
if (!context || !context->handle()) {
@@ -147,6 +154,7 @@ void *QWindowsNativeInterface::nativeResourceForContext(const QByteArray &resour
qWarning("%s: Invalid key '%s' requested.", __FUNCTION__, resource.constData());
return 0;
}
+#endif // !QT_NO_OPENGL
/*!
\brief Creates a non-visible window handle for filtering messages.
@@ -171,7 +179,9 @@ void *QWindowsNativeInterface::createMessageWindow(const QString &classNameTempl
struct QWindowsIntegrationPrivate
{
+#ifndef QT_NO_OPENGL
typedef QSharedPointer<QOpenGLStaticContext> QOpenGLStaticContextPtr;
+#endif
QWindowsIntegrationPrivate();
~QWindowsIntegrationPrivate();
@@ -179,10 +189,14 @@ struct QWindowsIntegrationPrivate
QWindowsContext m_context;
QPlatformFontDatabase *m_fontDatabase;
QWindowsNativeInterface m_nativeInterface;
+#ifndef QT_NO_CLIPBOARD
QWindowsClipboard m_clipboard;
+#endif
QWindowsDrag m_drag;
QWindowsGuiEventDispatcher *m_eventDispatcher;
+#ifndef QT_NO_OPENGL
QOpenGLStaticContextPtr m_staticOpenGLContext;
+#endif
QWindowsInputContext m_inputContext;
#ifndef QT_NO_ACCESSIBILITY
QWindowsAccessibility m_accessibility;
@@ -205,7 +219,9 @@ QWindowsIntegration::QWindowsIntegration() :
d(new QWindowsIntegrationPrivate)
{
QGuiApplicationPrivate::instance()->setEventDispatcher(d->m_eventDispatcher);
+#ifndef QT_NO_CLIPBOARD
d->m_clipboard.registerViewer();
+#endif
d->m_context.screenManager().handleScreenChanges();
}
@@ -220,10 +236,12 @@ bool QWindowsIntegration::hasCapability(QPlatformIntegration::Capability cap) co
switch (cap) {
case ThreadedPixmaps:
return true;
+#ifndef QT_NO_OPENGL
case OpenGL:
return true;
case ThreadedOpenGL:
return true;
+#endif
default:
return QPlatformIntegration::hasCapability(cap);
}
@@ -267,6 +285,7 @@ QPlatformBackingStore *QWindowsIntegration::createPlatformBackingStore(QWindow *
return new QWindowsBackingStore(window);
}
+#ifndef QT_NO_OPENGL
QPlatformOpenGLContext
*QWindowsIntegration::createPlatformOpenGLContext(QOpenGLContext *context) const
{
@@ -280,6 +299,7 @@ QPlatformOpenGLContext
return result.take();
return 0;
}
+#endif // !QT_NO_OPENGL
/* Workaround for QTBUG-24205: In 'Auto', pick the FreeType engine for
* QML2 applications. */
@@ -319,6 +339,7 @@ QPlatformFontDatabase *QWindowsIntegration::fontDatabase() const
return d->m_fontDatabase;
}
+#ifdef SPI_GETKEYBOARDSPEED
static inline int keyBoardAutoRepeatRateMS()
{
DWORD time = 0;
@@ -326,6 +347,7 @@ static inline int keyBoardAutoRepeatRateMS()
return time ? 1000 / static_cast<int>(time) : 500;
return 30;
}
+#endif
QVariant QWindowsIntegration::styleHint(QPlatformIntegration::StyleHint hint) const
{
@@ -334,8 +356,10 @@ QVariant QWindowsIntegration::styleHint(QPlatformIntegration::StyleHint hint) co
if (const unsigned timeMS = GetCaretBlinkTime())
return QVariant(int(timeMS));
break;
+#ifdef SPI_GETKEYBOARDSPEED
case KeyboardAutoRepeatRate:
return QVariant(keyBoardAutoRepeatRateMS());
+#endif
case QPlatformIntegration::StartDragTime:
case QPlatformIntegration::StartDragDistance:
case QPlatformIntegration::MouseDoubleClickInterval:
@@ -358,10 +382,12 @@ QPlatformNativeInterface *QWindowsIntegration::nativeInterface() const
return &d->m_nativeInterface;
}
+#ifndef QT_NO_CLIPBOARD
QPlatformClipboard * QWindowsIntegration::clipboard() const
{
return &d->m_clipboard;
}
+#endif // !QT_NO_CLIPBOARD
QPlatformDrag *QWindowsIntegration::drag() const
{