diff options
author | Andre de la Rocha <andre.rocha@qt.io> | 2018-02-27 19:59:54 +0100 |
---|---|---|
committer | Andre de la Rocha <andre.rocha@qt.io> | 2018-04-17 17:36:48 +0000 |
commit | 436faee8b3704f9aae5620bc69f14c3461fc208c (patch) | |
tree | 12481600628f9ad052f039beab0b0b76d7679d8d /src/plugins/platforms/winrt/qwinrtintegration.cpp | |
parent | c555c8b9f5c5bb1f390d94cf43d249e74ecb86f6 (diff) |
WinRT: Add Windows UI Automation support
Adds support to accessibility tools and programmatic UI control to the
WinRT platform through Windows UI Automation, using the AutomationPeer API.
[ChangeLog][winrt][feature] Added support to Windows UI Automation to the
WinRT QPA, allowing Qt-based UWP applications to operate with accessibility
and programmatic UI control tools.
Change-Id: If0a8edbebc7c16c4896d749f2d7e11809b4b37b3
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
Reviewed-by: Maurice Kalinowski <maurice.kalinowski@qt.io>
Diffstat (limited to 'src/plugins/platforms/winrt/qwinrtintegration.cpp')
-rw-r--r-- | src/plugins/platforms/winrt/qwinrtintegration.cpp | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/src/plugins/platforms/winrt/qwinrtintegration.cpp b/src/plugins/platforms/winrt/qwinrtintegration.cpp index 7a30c8d98b..eae043f3a7 100644 --- a/src/plugins/platforms/winrt/qwinrtintegration.cpp +++ b/src/plugins/platforms/winrt/qwinrtintegration.cpp @@ -50,6 +50,9 @@ #ifndef QT_NO_DRAGANDDROP #include "qwinrtdrag.h" #endif +#if QT_CONFIG(accessibility) +# include "uiautomation/qwinrtuiaaccessibility.h" +#endif #include <QtGui/QOffscreenSurface> #include <QtGui/QOpenGLContext> @@ -119,6 +122,9 @@ public: QPlatformClipboard *clipboard; QWinRTScreen *mainScreen; QScopedPointer<QWinRTInputContext> inputContext; +#if QT_CONFIG(accessibility) + QWinRTUiaAccessibility *accessibility; +#endif ComPtr<ICoreApplication> application; QHash<CoreApplicationCallbackRemover, EventRegistrationToken> applicationTokens; @@ -198,6 +204,9 @@ QWinRTIntegration::QWinRTIntegration() : d_ptr(new QWinRTIntegrationPrivate) screenAdded(d->mainScreen); d->platformServices = new QWinRTServices; d->clipboard = new QWinRTClipboard; +#if QT_CONFIG(accessibility) + d->accessibility = new QWinRTUiaAccessibility; +#endif } QWinRTIntegration::~QWinRTIntegration() @@ -315,6 +324,14 @@ QPlatformDrag *QWinRTIntegration::drag() const } #endif // QT_NO_DRAGANDDROP +#if QT_CONFIG(accessibility) +QPlatformAccessibility *QWinRTIntegration::accessibility() const +{ + Q_D(const QWinRTIntegration); + return d->accessibility; +} +#endif // QT_CONFIG(accessibility) + Qt::KeyboardModifiers QWinRTIntegration::queryKeyboardModifiers() const { Q_D(const QWinRTIntegration); |