Kaydet (Commit) e83f61b2 authored tarafından Boris Dušek's avatar Boris Dušek Kaydeden (comit) Norbert Thiebaud

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/5237Reviewed-by: 's avatarNorbert Thiebaud <nthiebaud@gmail.com>
Tested-by: 's avatarNorbert Thiebaud <nthiebaud@gmail.com>
üst 54a138db
......@@ -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 ];
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment