summaryrefslogtreecommitdiff
path: root/vcl/aqua
diff options
context:
space:
mode:
authorBoris Dušek <me@dusek.me>2013-08-02 00:14:53 +0200
committerNorbert Thiebaud <nthiebaud@gmail.com>2013-08-07 19:06:52 +0000
commite83f61b29eb74286dbdb053bb3d067fe3e2f8073 (patch)
treeb90cbccb6717426e09bbdc60ced85d84db070525 /vcl/aqua
parent54a138db910554e8bf2868facc85e47b1776bac2 (diff)
Add debugging output for OS X accessibility
In case someone needs to debug accessibility on OS X, provide ready debugging messages to be enabled by changing #if 0 to #if 1. Change-Id: I4d0c0b11d12aa2419c53da7656a881f43c436d87 Reviewed-on: https://gerrit.libreoffice.org/5237 Reviewed-by: Norbert Thiebaud <nthiebaud@gmail.com> Tested-by: Norbert Thiebaud <nthiebaud@gmail.com>
Diffstat (limited to 'vcl/aqua')
-rw-r--r--vcl/aqua/source/a11y/aqua11ywrapper.mm29
1 files changed, 29 insertions, 0 deletions
diff --git a/vcl/aqua/source/a11y/aqua11ywrapper.mm b/vcl/aqua/source/a11y/aqua11ywrapper.mm
index 04c29ad8bdc6..82163ae7c528 100644
--- a/vcl/aqua/source/a11y/aqua11ywrapper.mm
+++ b/vcl/aqua/source/a11y/aqua11ywrapper.mm
@@ -58,6 +58,22 @@ using namespace ::com::sun::star::uno;
static BOOL isPopupMenuOpen = NO;
+
+#if 0
+
+static std::ostream &operator<<(std::ostream &s, NSObject *obj) {
+ return s << [[obj description] UTF8String];
+}
+
+static std::ostream &operator<<(std::ostream &s, NSPoint point) {
+ return s << NSStringFromPoint(point);
+}
+#define AX_SAL_DEBUG(...) SAL_DEBUG(__VA_ARGS__)
+
+#else
+#define AX_SAL_DEBUG(...)
+#endif
+
@implementation AquaA11yWrapper : NSView
#pragma mark -
@@ -668,6 +684,7 @@ static BOOL isPopupMenuOpen = NO;
#pragma mark Accessibility Protocol
-(id)accessibilityAttributeValue:(NSString *)attribute {
+ AX_SAL_DEBUG("[" << self << " accessibilityAttributeValue:" << attribute << "]");
// #i90575# guard NSAccessibility protocol against unwanted access
if ( isPopupMenuOpen ) {
return nil;
@@ -697,6 +714,7 @@ static BOOL isPopupMenuOpen = NO;
}
-(BOOL)accessibilityIsIgnored {
+ AX_SAL_DEBUG("[" << self << " accessibilityIsIgnored]");
// #i90575# guard NSAccessibility protocol against unwanted access
if ( isPopupMenuOpen ) {
return NO;
@@ -720,6 +738,7 @@ static BOOL isPopupMenuOpen = NO;
}
-(NSArray *)accessibilityAttributeNames {
+ AX_SAL_DEBUG("[" << self << " accessibilityAttributeNames]");
// #i90575# guard NSAccessibility protocol against unwanted access
if ( isPopupMenuOpen ) {
return nil;
@@ -800,6 +819,7 @@ static BOOL isPopupMenuOpen = NO;
}
-(BOOL)accessibilityIsAttributeSettable:(NSString *)attribute {
+ AX_SAL_DEBUG("[" << self << " accessibilityAttributeIsSettable:" << attribute << "]");
BOOL isSettable = NO;
if ( [ self accessibleText ] != nil ) {
isSettable = [ AquaA11yTextWrapper isAttributeSettable: attribute forElement: self ];
@@ -817,6 +837,7 @@ static BOOL isPopupMenuOpen = NO;
}
-(NSArray *)accessibilityParameterizedAttributeNames {
+ AX_SAL_DEBUG("[" << self << " accessibilityParameterizedAttributeNames]");
NSMutableArray * attributeNames = [ [ NSMutableArray alloc ] init ];
// Special Attributes depending on interface
if ( [ self accessibleText ] != nil ) {
@@ -826,6 +847,7 @@ static BOOL isPopupMenuOpen = NO;
}
-(id)accessibilityAttributeValue:(NSString *)attribute forParameter:(id)parameter {
+ AX_SAL_DEBUG("[" << self << " accessibilityAttributeValue:" << attribute << " forParameter:" << parameter << "]");
SEL methodSelector = [ self selectorForAttribute: attribute asGetter: YES withGetterParameter: YES ];
if ( [ self respondsToSelector: methodSelector ] ) {
return [ self performSelector: methodSelector withObject: parameter ];
@@ -835,12 +857,14 @@ static BOOL isPopupMenuOpen = NO;
-(BOOL)accessibilitySetOverrideValue:(id)value forAttribute:(NSString *)attribute
{
+ AX_SAL_DEBUG("[" << self << " accessibilitySetOverrideValue:" << value << " forAttribute:" << attribute << "]");
(void)value;
(void)attribute;
return NO; // TODO
}
-(void)accessibilitySetValue:(id)value forAttribute:(NSString *)attribute {
+ AX_SAL_DEBUG("[" << self << " accessibilitySetValue:" << value << " forAttribute:" << attribute << "]");
SEL methodSelector = [ self selectorForAttribute: attribute asGetter: NO withGetterParameter: NO ];
if ( [ AquaA11yComponentWrapper respondsToSelector: methodSelector ] ) {
[ AquaA11yComponentWrapper performSelector: methodSelector withObject: self withObject: value ];
@@ -857,6 +881,7 @@ static BOOL isPopupMenuOpen = NO;
}
-(id)accessibilityFocusedUIElement {
+ AX_SAL_DEBUG("[" << self << " accessibilityFocusedUIElement]");
// #i90575# guard NSAccessibility protocol against unwanted access
if ( isPopupMenuOpen ) {
return nil;
@@ -882,6 +907,7 @@ static BOOL isPopupMenuOpen = NO;
// TODO: hard-coded like the role descriptions. is there a better way?
-(NSString *)accessibilityActionDescription:(NSString *)action {
+ AX_SAL_DEBUG("[" << self << " accessibilityActionDescription:" << action << "]");
if ( [ action isEqualToString: NSAccessibilityConfirmAction ] ) {
return @"confirm";
} else if ( [ action isEqualToString: NSAccessibilityDecrementAction ] ) {
@@ -933,6 +959,7 @@ static BOOL isPopupMenuOpen = NO;
}
-(void)accessibilityPerformAction:(NSString *)action {
+ AX_SAL_DEBUG("[" << self << " accessibilityPerformAction:" << action << "]");
AquaA11yWrapper * actionResponder = [ self actionResponder ];
if ( actionResponder != nil ) {
[ AquaA11yActionWrapper doAction: action ofElement: actionResponder ];
@@ -940,6 +967,7 @@ static BOOL isPopupMenuOpen = NO;
}
-(NSArray *)accessibilityActionNames {
+ AX_SAL_DEBUG("[" << self << " accessibilityActionNames]");
NSArray * actionNames = nil;
AquaA11yWrapper * actionResponder = [ self actionResponder ];
if ( actionResponder != nil ) {
@@ -1022,6 +1050,7 @@ Reference < XAccessibleContext > hitTestRunner ( com::sun::star::awt::Point poin
}
-(id)accessibilityHitTest:(NSPoint)point {
+ AX_SAL_DEBUG("[" << self << " accessibilityHitTest:" << point << "]");
static id wrapper = nil;
if ( nil != wrapper ) {
[ wrapper release ];