summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/cocoa/qnsview.mm
diff options
context:
space:
mode:
authorMorten Sorvig <morten.sorvig@nokia.com>2011-10-11 11:04:59 +0200
committerQt by Nokia <qt-info@nokia.com>2011-10-19 03:04:40 +0200
commit946805f07f9f8270d60df58f07bd8836b76d7258 (patch)
treec9b6901a509d456d0d71784034640f6f1063b32f /src/plugins/platforms/cocoa/qnsview.mm
parentd884f24fe1b86bbd71d62584d5cf1381355efe0d (diff)
Cocoa: Add initial accessibility implementation.
See qcocoaaccessiblity.h for details. For now only the first level of the hierarchy is made accessible. Also add tools/accessibilityinspector which is an utility for inspecting and debugging the Qt accessibility tree. Change-Id: Iff520bec26b3761feb0c2e00471feb379daaa735 Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
Diffstat (limited to 'src/plugins/platforms/cocoa/qnsview.mm')
-rw-r--r--src/plugins/platforms/cocoa/qnsview.mm32
1 files changed, 28 insertions, 4 deletions
diff --git a/src/plugins/platforms/cocoa/qnsview.mm b/src/plugins/platforms/cocoa/qnsview.mm
index 67bc61c63b..664b87607a 100644
--- a/src/plugins/platforms/cocoa/qnsview.mm
+++ b/src/plugins/platforms/cocoa/qnsview.mm
@@ -48,6 +48,10 @@
#include <QtGui/QWindowSystemInterface>
#include <QtCore/QDebug>
+#ifdef QT_COCOA_ENABLE_ACCESSIBILITY_INSPECTOR
+#include <accessibilityinspector.h>
+#endif
+
@interface NSEvent (Qt_Compile_Leopard_DeviceDelta)
- (CGFloat)deviceDeltaX;
- (CGFloat)deviceDeltaY;
@@ -58,7 +62,7 @@
- (id) init
{
- self = [super init];
+ self = [super initWithFrame : NSMakeRect(0,0, 300,300)];
if (self) {
m_cgImage = 0;
m_window = 0;
@@ -67,11 +71,31 @@
return self;
}
-- (id)initWithQWindow:(QWindow *)widget {
+- (id)initWithQWindow:(QWindow *)window {
self = [self init];
- if (self) {
- m_window = widget;
+ if (!self)
+ return 0;
+
+ m_window = window;
+ m_accessibleRoot = 0;
+
+#ifdef QT_COCOA_ENABLE_ACCESSIBILITY_INSPECTOR
+ // prevent rift in space-time continuum, disable
+ // accessibility for the accessibility inspector's windows.
+ static bool skipAccessibilityForInspectorWindows = false;
+ if (!skipAccessibilityForInspectorWindows) {
+
+ m_accessibleRoot = window->accessibleRoot();
+
+ AccessibilityInspector *inspector = new AccessibilityInspector(window);
+ skipAccessibilityForInspectorWindows = true;
+ inspector->inspectWindow(window);
+ skipAccessibilityForInspectorWindows = false;
}
+#else
+ m_accessibleRoot = window->accessibleRoot();
+#endif
+
return self;
}