summaryrefslogtreecommitdiffstats
path: root/src/plugins
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@nokia.com>2012-03-14 12:17:11 +0100
committerQt by Nokia <qt-info@nokia.com>2012-03-14 18:36:05 +0100
commit087d6c21b853f0802df882c3e1545a7b97e0c898 (patch)
tree4dfe5a32806d490b488aac392418b6955286460d /src/plugins
parent259332e6553f01d438fdff56e22c37eaeb3920e3 (diff)
Fix compilation of the Windows accessibility code for MinGW.
Temporarily disable the code for MinGW. Change-Id: I435305167e06af05b9a78901e6e3a35347c5c3f5 Reviewed-by: Jan-Arve Sæther <jan-arve.saether@nokia.com>
Diffstat (limited to 'src/plugins')
-rw-r--r--src/plugins/platforms/windows/accessible/accessible.pri24
-rw-r--r--src/plugins/platforms/windows/accessible/iaccessible2.h4
-rw-r--r--src/plugins/platforms/windows/accessible/qwindowsaccessibility.cpp32
-rw-r--r--src/plugins/platforms/windows/accessible/qwindowsaccessibility.h1
-rw-r--r--src/plugins/platforms/windows/accessible/qwindowsmsaaaccessible.cpp17
-rw-r--r--src/plugins/platforms/windows/accessible/qwindowsmsaaaccessible.h3
-rw-r--r--src/plugins/platforms/windows/qtwindows_additional.h10
7 files changed, 57 insertions, 34 deletions
diff --git a/src/plugins/platforms/windows/accessible/accessible.pri b/src/plugins/platforms/windows/accessible/accessible.pri
index bf25ad870c..1671c67d17 100644
--- a/src/plugins/platforms/windows/accessible/accessible.pri
+++ b/src/plugins/platforms/windows/accessible/accessible.pri
@@ -1,15 +1,19 @@
-
SOURCES += \
- $$PWD/qwindowsmsaaaccessible.cpp \
- $$PWD/qwindowsaccessibility.cpp \
- $$PWD/iaccessible2.cpp \
- $$PWD/comutils.cpp
+ $$PWD/qwindowsaccessibility.cpp
HEADERS += \
- $$PWD/qwindowsmsaaaccessible.h \
- $$PWD/qwindowsaccessibility.h \
- $$PWD/iaccessible2.h \
- $$PWD/comutils.h
+ $$PWD/qwindowsaccessibility.h
+
+!*g++* {
+ SOURCES += \
+ $$PWD/qwindowsmsaaaccessible.cpp \
+ $$PWD/iaccessible2.cpp \
+ $$PWD/comutils.cpp
+ HEADERS += \
+ $$PWD/qwindowsmsaaaccessible.h \
+ $$PWD/iaccessible2.h \
+ $$PWD/comutils.h
-include(../../../../3rdparty/iaccessible2/iaccessible2.pri)
+ include(../../../../3rdparty/iaccessible2/iaccessible2.pri)
+} # !g++
diff --git a/src/plugins/platforms/windows/accessible/iaccessible2.h b/src/plugins/platforms/windows/accessible/iaccessible2.h
index 11889df9ec..a59263fba1 100644
--- a/src/plugins/platforms/windows/accessible/iaccessible2.h
+++ b/src/plugins/platforms/windows/accessible/iaccessible2.h
@@ -66,6 +66,10 @@
#include "AccessibleRole.h"
#include "AccessibleStates.h"
+#ifdef Q_CC_MINGW
+# include <servprov.h>
+#endif
+
QT_BEGIN_NAMESPACE
class QWindowsIA2Accessible : public QWindowsMsaaAccessible,
diff --git a/src/plugins/platforms/windows/accessible/qwindowsaccessibility.cpp b/src/plugins/platforms/windows/accessible/qwindowsaccessibility.cpp
index f409730600..4f92b910b2 100644
--- a/src/plugins/platforms/windows/accessible/qwindowsaccessibility.cpp
+++ b/src/plugins/platforms/windows/accessible/qwindowsaccessibility.cpp
@@ -54,13 +54,13 @@
#include <QtGui/qplatformnativeinterface_qpa.h>
#include <QtGui/qwindow.h>
#include <QtGui/qguiapplication.h>
-#include <QtWidgets/qapplication.h>
-#include <QtWidgets/qgraphicsitem.h>
-#include <QtWidgets/qgraphicsview.h>
-#include <QtWidgets/qmessagebox.h>
#include "qwindowsaccessibility.h"
-#include "iaccessible2.h"
+
+#ifndef Q_CC_MINGW
+# include "iaccessible2.h"
+#endif // !Q_CC_MINGW
+
#include "comutils.h"
#include <oleacc.h>
@@ -185,7 +185,7 @@ void QWindowsAccessibility::notifyAccessibilityUpdate(const QAccessibleEvent &ev
// An event has to be associated with a window,
// so find the first parent that is a widget and that has a WId
QAccessibleInterface *iface = event.accessibleInterface();
- QWindow *window = iface ? window_helper(iface) : 0;
+ QWindow *window = iface ? QWindowsAccessibility::windowHelper(iface) : 0;
delete iface;
if (!window) {
@@ -211,6 +211,20 @@ void QWindowsAccessibility::notifyAccessibilityUpdate(const QAccessibleEvent &ev
#endif // Q_OS_WINCE
}
+QWindow *QWindowsAccessibility::windowHelper(const QAccessibleInterface *iface)
+{
+ QWindow *window = iface->window();
+ if (!window) {
+ QAccessibleInterface *acc = iface->parent();
+ while (acc && !window) {
+ window = acc->window();
+ QAccessibleInterface *par = acc->parent();
+ delete acc;
+ acc = par;
+ }
+ }
+ return window;
+}
/*!
\internal
@@ -218,12 +232,16 @@ void QWindowsAccessibility::notifyAccessibilityUpdate(const QAccessibleEvent &ev
*/
IAccessible *QWindowsAccessibility::wrap(QAccessibleInterface *acc)
{
+#ifdef Q_CC_MINGW
+ return 0;
+#else
if (!acc)
return 0;
QWindowsIA2Accessible *wacc = new QWindowsIA2Accessible(acc);
IAccessible *iacc = 0;
wacc->QueryInterface(IID_IAccessible, (void**)&iacc);
return iacc;
+#endif
}
/*!
@@ -260,7 +278,7 @@ bool QWindowsAccessibility::handleAccessibleObjectFromWindowRequest(HWND hwnd, W
#if 1
// Ignoring all requests while starting up
// ### Maybe QPA takes care of this???
- if (QApplication::startingUp() || QApplication::closingDown())
+ if (QCoreApplication::startingUp() || QCoreApplication::closingDown())
return false;
#endif
diff --git a/src/plugins/platforms/windows/accessible/qwindowsaccessibility.h b/src/plugins/platforms/windows/accessible/qwindowsaccessibility.h
index 3b7069570b..0c3aca0a03 100644
--- a/src/plugins/platforms/windows/accessible/qwindowsaccessibility.h
+++ b/src/plugins/platforms/windows/accessible/qwindowsaccessibility.h
@@ -63,6 +63,7 @@ public:
virtual void cleanup();
*/
static IAccessible *wrap(QAccessibleInterface *acc);
+ static QWindow *windowHelper(const QAccessibleInterface *iface);
static QPair<QObject*, int> getCachedObject(int entryId);
};
diff --git a/src/plugins/platforms/windows/accessible/qwindowsmsaaaccessible.cpp b/src/plugins/platforms/windows/accessible/qwindowsmsaaaccessible.cpp
index ca3ce0a614..8791bbdcfb 100644
--- a/src/plugins/platforms/windows/accessible/qwindowsmsaaaccessible.cpp
+++ b/src/plugins/platforms/windows/accessible/qwindowsmsaaaccessible.cpp
@@ -1180,21 +1180,6 @@ HRESULT STDMETHODCALLTYPE QWindowsMsaaAccessible::get_accSelection(VARIANT *pvar
return S_OK;
}
-QWindow *window_helper(const QAccessibleInterface *iface)
-{
- QWindow *window = iface->window();
- if (!window) {
- QAccessibleInterface *acc = iface->parent();
- while (acc && !window) {
- window = acc->window();
- QAccessibleInterface *par = acc->parent();
- delete acc;
- acc = par;
- }
- }
- return window;
-}
-
/**************************************************************\
* IOleWindow *
**************************************************************/
@@ -1207,7 +1192,7 @@ HRESULT STDMETHODCALLTYPE QWindowsMsaaAccessible::GetWindow(HWND *phwnd)
if (!accessible->isValid())
return E_UNEXPECTED;
- QWindow *window = window_helper(accessible);
+ QWindow *window = QWindowsAccessibility::windowHelper(accessible);
if (!window)
return E_FAIL;
diff --git a/src/plugins/platforms/windows/accessible/qwindowsmsaaaccessible.h b/src/plugins/platforms/windows/accessible/qwindowsmsaaaccessible.h
index 609f57b398..9cb56c954c 100644
--- a/src/plugins/platforms/windows/accessible/qwindowsmsaaaccessible.h
+++ b/src/plugins/platforms/windows/accessible/qwindowsmsaaaccessible.h
@@ -44,6 +44,7 @@
#include <QtCore/QtConfig>
#ifndef QT_NO_ACCESSIBILITY
+#include "../qtwindows_additional.h"
#include <oleacc.h>
#include "Accessible2.h"
#include <QtCore/qsharedpointer.h>
@@ -55,7 +56,7 @@ QT_BEGIN_NAMESPACE
bool debug_accessibility();
# define accessibleDebug !debug_accessibility() ? (void)0 : qDebug
#else
-# define accessibleDebug()
+# define accessibleDebug
#endif
#define DEBUG_SHOW_ATCLIENT_COMMANDS
diff --git a/src/plugins/platforms/windows/qtwindows_additional.h b/src/plugins/platforms/windows/qtwindows_additional.h
index ac768e2dab..3465d4ab1e 100644
--- a/src/plugins/platforms/windows/qtwindows_additional.h
+++ b/src/plugins/platforms/windows/qtwindows_additional.h
@@ -71,6 +71,16 @@
#define IFACEMETHODIMP STDMETHODIMP
#define IFACEMETHODIMP_(type) STDMETHODIMP_(type)
+// For accessibility:
+#ifdef __cplusplus
+ #define EXTERN_C extern "C"
+#else
+ #define EXTERN_C extern
+#endif
+
+#define CHILDID_SELF 0
+#define WM_GETOBJECT 0x003D
+
#if !defined(__MINGW64_VERSION_MAJOR)
#define STATE_SYSTEM_HASPOPUP 0x40000000