From 4ec49edf3f62b2cfade17c286d699bf48cbe1eee Mon Sep 17 00:00:00 2001 From: Chris Hamons Date: Tue, 7 Jun 2016 15:58:07 -0500 Subject: [PATCH 1/6] [XM] Fix dontlink by fixing some NSAccessibility binding mistakes --- src/appkit.cs | 100 ++++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 84 insertions(+), 16 deletions(-) diff --git a/src/appkit.cs b/src/appkit.cs index 5f85dc8b6d59..d0e44b16d189 100644 --- a/src/appkit.cs +++ b/src/appkit.cs @@ -22008,7 +22008,7 @@ partial interface NSAccessibilityAttributes { NSString ColumnIndexRangeAttribute { get; } [Mac (10, 6)] - [Field ("NSAccessibilityHoriztonalUnitsAttribute")] + [Field ("NSAccessibilityHorizontalUnitsAttribute")] NSString HorizontalUnitsAttribute { get; } [Mac (10, 6)] @@ -22049,7 +22049,7 @@ partial interface NSAccessibilityAttributes { [Field ("NSAccessibilityDisclosedRowsAttribute")] NSString DisclosedRowsAttribute { get; } - [Field ("NSAccessibilityDisclosedByRowsAttribute")] + [Field ("NSAccessibilityDisclosedByRowAttribute")] NSString DisclosedByRowsAttribute { get; } [Field ("NSAccessibilityDisclosureLevelAttribute")] @@ -22368,7 +22368,7 @@ public interface NSAccessibilitySubroles { NSString DefinitionListSubrole { get; } [Mac (10, 7)] - [Field ("NSAccessibilityFullscreenButtonSubrole")] + [Field ("NSAccessibilityFullScreenButtonSubrole")] NSString FullscreenButtonSubrole { get; } [Mac (10, 9)] @@ -22392,8 +22392,8 @@ public interface NSAccessibilityNotifications { [Field ("NSAccessibilityFocusedWindowChangedNotification")] NSString FocusedWindowChangedNotification { get; } - [Field ("NSAccessibilityUIElementChangedNotification")] - NSString UIElementChangedNotification { get; } + [Field ("NSAccessibilityFocusedUIElementChangedNotification")] + NSString UIElementFocusedChangedNotification { get; } [Field ("NSAccessibilityApplicationActivatedNotification")] NSString ApplicationActivatedNotification { get; } @@ -22804,11 +22804,13 @@ public interface NSAccessibilityLayoutItem : NSAccessibilityGroup { void SetAccessibilityFrame (CGRect frame); } - [Protocol, BaseType (typeof (NSObject))] - public interface NSObjectAccessibilityExtensions { + [BaseType (typeof (NSView))] + [Category] + public interface NSObjectAccessibilityViewExtensions { + // Please note the neary copy in NSObjectAccessibilityCellExtensions and update there as well [Availability (Obsoleted = Platform.Mac_10_10, Message = "Use the NSAccessibility protocol methods instead")] [Export ("accessibilityAttributeNames")] - NSArray AccessibilityAttributeNames { get; } + NSArray GetAccessibilityAttributeNames (); [Availability (Obsoleted = Platform.Mac_10_10, Message = "Use the NSAccessibility protocol methods instead")] [Export ("accessibilityAttributeValue:")] @@ -22824,7 +22826,7 @@ public interface NSObjectAccessibilityExtensions { [Availability (Obsoleted = Platform.Mac_10_10, Message = "Use the NSAccessibility protocol methods instead")] [Export ("accessibilityParameterizedAttributeNames")] - NSArray AccessibilityParameterizedAttributeNames { get; } + NSArray GetAccessibilityParameterizedAttributeNames (); [Availability (Obsoleted = Platform.Mac_10_10, Message = "Use the NSAccessibility protocol methods instead")] [Export ("accessibilityAttributeValue:forParameter:")] @@ -22832,7 +22834,7 @@ public interface NSObjectAccessibilityExtensions { [Availability (Obsoleted = Platform.Mac_10_10, Message = "Use the NSAccessibility protocol methods instead")] [Export ("accessibilityActionNames")] - NSArray AccessibilityActionNames { get; } + NSArray GetAccessibilityActionNames (); [Availability (Obsoleted = Platform.Mac_10_10, Message = "Use the NSAccessibility protocol methods instead")] [Export ("accessibilityActionDescription:")] @@ -22844,7 +22846,7 @@ public interface NSObjectAccessibilityExtensions { [Availability (Obsoleted = Platform.Mac_10_10, Message = "Use the NSAccessibility protocol methods instead")] [Export ("accessibilityIsIgnored")] - bool AccessibilityIsIgnored { get; } + bool GetAccessibilityIsIgnored (); [Export ("accessibilityHitTest:")] NSObject GetAccessibilityHitTest (CGPoint point); @@ -22863,19 +22865,85 @@ public interface NSObjectAccessibilityExtensions { [Mac (10,9)] [Export ("accessibilityNotifiesWhenDestroyed")] - bool AccessibilityNotifiesWhenDestroyed { get; } + bool GetAccessibilityNotifiesWhenDestroyed (); + } + + + [BaseType (typeof (NSCell))] + [Category] + public interface NSObjectAccessibilityCellExtensions { + // Please note the neary copy in NSObjectAccessibilityViewExtensions and update there as well + [Availability (Obsoleted = Platform.Mac_10_10, Message = "Use the NSAccessibility protocol methods instead")] + [Export ("accessibilityAttributeNames")] + NSArray GetAccessibilityAttributeNames (); + + [Availability (Obsoleted = Platform.Mac_10_10, Message = "Use the NSAccessibility protocol methods instead")] + [Export ("accessibilityAttributeValue:")] + NSObject GetAccessibilityValue (NSString attribute); + + [Availability (Obsoleted = Platform.Mac_10_10, Message = "Use the NSAccessibility protocol methods instead")] + [Export ("accessibilityIsAttributeSettable:")] + bool IsAccessibilityAttributeSettable (NSString attribute); + + [Availability (Obsoleted = Platform.Mac_10_10, Message = "Use the NSAccessibility protocol methods instead")] + [Export ("accessibilitySetValue:forAttribute:")] + void SetAccessibilityValue (NSString attribute, NSObject value); + + [Availability (Obsoleted = Platform.Mac_10_10, Message = "Use the NSAccessibility protocol methods instead")] + [Export ("accessibilityParameterizedAttributeNames")] + NSArray GetAccessibilityParameterizedAttributeNames (); + + [Availability (Obsoleted = Platform.Mac_10_10, Message = "Use the NSAccessibility protocol methods instead")] + [Export ("accessibilityAttributeValue:forParameter:")] + NSObject GetAccessibilityValue (NSString attribute, NSObject parameter); + + [Availability (Obsoleted = Platform.Mac_10_10, Message = "Use the NSAccessibility protocol methods instead")] + [Export ("accessibilityActionNames")] + NSArray GetAccessibilityActionNames (); + + [Availability (Obsoleted = Platform.Mac_10_10, Message = "Use the NSAccessibility protocol methods instead")] + [Export ("accessibilityActionDescription:")] + NSString GetAccessibilityActionDescription (NSString action); + + [Availability (Obsoleted = Platform.Mac_10_10, Message = "Use the NSAccessibility protocol methods instead")] + [Export ("accessibilityPerformAction:")] + void AccessibilityPerformAction (NSString action); + + [Availability (Obsoleted = Platform.Mac_10_10, Message = "Use the NSAccessibility protocol methods instead")] + [Export ("accessibilityIsIgnored")] + bool GetAccessibilityIsIgnored (); + + [Export ("accessibilityHitTest:")] + NSObject GetAccessibilityHitTest (CGPoint point); + + [Export ("getAccessibilityFocusedUIElement")] + NSObject GetAccessibilityFocusedUIElement (); + + [Export ("accessibilityIndexOfChild:")] + nuint GetAccessibilityIndexOfChild (NSObject child); + + [Export ("accessibilityArrayAttributeCount:")] + nuint GetAccessibilityArrayAttributeCount (NSString attribute); + + [Export ("accessibilityArrayAttributeValues:index:maxCount:")] + NSObject[] GetAccessibilityArrayAttributeValues (NSString attribute, nuint index, nuint maxCount); + + [Mac (10,9)] + [Export ("accessibilityNotifiesWhenDestroyed")] + bool GetAccessibilityNotifiesWhenDestroyed (); } [Mac (10, 10)] - [Protocol, BaseType (typeof (NSWorkspace))] + [BaseType (typeof (NSWorkspace))] + [Category] public interface NSWorkspaceAccessibilityExtensions { [Export ("accessibilityDisplayShouldIncreaseContract")] - bool AccessibilityDisplayShouldIncreaseContract { get; } + bool GetAccessibilityDisplayShouldIncreaseContract (); [Export ("accessibilityDisplayShouldDifferentiateWithoutColor")] - bool AccessibilityDisplayShouldDifferentiateWithoutColor { get; } + bool GetAccessibilityDisplayShouldDifferentiateWithoutColor (); [Export ("accessibilityDisplayShouldReduceTransparency")] - bool AccessibilityDisplayShouldReduceTransparency { get; } + bool GetAccessibilityDisplayShouldReduceTransparency (); } } From a402e2976dc69e295a69a549948f3626709dfb6d Mon Sep 17 00:00:00 2001 From: Chris Hamons Date: Tue, 7 Jun 2016 16:00:48 -0500 Subject: [PATCH 2/6] Fix fullscreen spelling --- src/appkit.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/appkit.cs b/src/appkit.cs index d0e44b16d189..b6e9a70b3487 100644 --- a/src/appkit.cs +++ b/src/appkit.cs @@ -22369,7 +22369,7 @@ public interface NSAccessibilitySubroles { [Mac (10, 7)] [Field ("NSAccessibilityFullScreenButtonSubrole")] - NSString FullscreenButtonSubrole { get; } + NSString FullScreenButtonSubrole { get; } [Mac (10, 9)] [Field ("NSAccessibilityToggleSubrole")] From e4688ecb930f5e84afeaf5caf348c092e209ba17 Mon Sep 17 00:00:00 2001 From: Chris Hamons Date: Tue, 7 Jun 2016 17:00:23 -0500 Subject: [PATCH 3/6] Redo better --- src/appkit.cs | 99 ++++-------------------- tests/dontlink-mac/MacApiSelectorTest.cs | 4 + 2 files changed, 19 insertions(+), 84 deletions(-) diff --git a/src/appkit.cs b/src/appkit.cs index b6e9a70b3487..fd474ed96fc1 100644 --- a/src/appkit.cs +++ b/src/appkit.cs @@ -2088,7 +2088,7 @@ public interface NSCachedImageRep { } [BaseType (typeof (NSObject))] - public interface NSCell : NSUserInterfaceItemIdentification, NSCoding, NSCopying, NSAccessibilityElement, NSAccessibility { + public interface NSCell : NSUserInterfaceItemIdentification, NSCoding, NSCopying, NSAccessibilityElement, NSAccessibility, NSObjectAccessibilityViewExtensions { [Static, Export ("prefersTrackingUntilMouseUp")] bool PrefersTrackingUntilMouseUp { get; } @@ -13727,7 +13727,7 @@ public partial interface NSTextFinder : NSCoding { [BaseType (typeof (NSResponder))] [Dispose ("__mt_tracking_var = null;")] - public partial interface NSView : NSDraggingDestination, NSAnimatablePropertyContainer, NSUserInterfaceItemIdentification, NSAppearanceCustomization, NSAccessibilityElement, NSAccessibility { + public partial interface NSView : NSDraggingDestination, NSAnimatablePropertyContainer, NSUserInterfaceItemIdentification, NSAppearanceCustomization, NSAccessibilityElement, NSAccessibility, NSObjectAccessibilityViewExtensions { [Export ("initWithFrame:")] IntPtr Constructor (CGRect frameRect); @@ -18941,7 +18941,7 @@ interface NSWorkspaceFileOperationEventArgs { public delegate void NSWorkspaceUrlHandler (NSDictionary newUrls, NSError error); [BaseType (typeof (NSObject))] - public interface NSWorkspace { + public interface NSWorkspace : NSWorkspaceAccessibilityExtensions { [Static] [Export ("sharedWorkspace"), ThreadSafe] NSWorkspace SharedWorkspace { get; } @@ -22050,7 +22050,7 @@ partial interface NSAccessibilityAttributes { NSString DisclosedRowsAttribute { get; } [Field ("NSAccessibilityDisclosedByRowAttribute")] - NSString DisclosedByRowsAttribute { get; } + NSString DisclosedByRowAttribute { get; } [Field ("NSAccessibilityDisclosureLevelAttribute")] NSString DisclosureLevelAttribute { get; } @@ -22804,13 +22804,11 @@ public interface NSAccessibilityLayoutItem : NSAccessibilityGroup { void SetAccessibilityFrame (CGRect frame); } - [BaseType (typeof (NSView))] - [Category] public interface NSObjectAccessibilityViewExtensions { // Please note the neary copy in NSObjectAccessibilityCellExtensions and update there as well [Availability (Obsoleted = Platform.Mac_10_10, Message = "Use the NSAccessibility protocol methods instead")] [Export ("accessibilityAttributeNames")] - NSArray GetAccessibilityAttributeNames (); + NSArray AccessibilityAttributeNames { get; } [Availability (Obsoleted = Platform.Mac_10_10, Message = "Use the NSAccessibility protocol methods instead")] [Export ("accessibilityAttributeValue:")] @@ -22826,7 +22824,7 @@ public interface NSObjectAccessibilityViewExtensions { [Availability (Obsoleted = Platform.Mac_10_10, Message = "Use the NSAccessibility protocol methods instead")] [Export ("accessibilityParameterizedAttributeNames")] - NSArray GetAccessibilityParameterizedAttributeNames (); + NSArray AccessibilityParameterizedAttributeNames { get; } [Availability (Obsoleted = Platform.Mac_10_10, Message = "Use the NSAccessibility protocol methods instead")] [Export ("accessibilityAttributeValue:forParameter:")] @@ -22834,7 +22832,7 @@ public interface NSObjectAccessibilityViewExtensions { [Availability (Obsoleted = Platform.Mac_10_10, Message = "Use the NSAccessibility protocol methods instead")] [Export ("accessibilityActionNames")] - NSArray GetAccessibilityActionNames (); + NSArray AccessibilityActionNames { get; } [Availability (Obsoleted = Platform.Mac_10_10, Message = "Use the NSAccessibility protocol methods instead")] [Export ("accessibilityActionDescription:")] @@ -22846,78 +22844,13 @@ public interface NSObjectAccessibilityViewExtensions { [Availability (Obsoleted = Platform.Mac_10_10, Message = "Use the NSAccessibility protocol methods instead")] [Export ("accessibilityIsIgnored")] - bool GetAccessibilityIsIgnored (); + bool AccessibilityIsIgnored { get; } [Export ("accessibilityHitTest:")] NSObject GetAccessibilityHitTest (CGPoint point); - [Export ("getAccessibilityFocusedUIElement")] - NSObject GetAccessibilityFocusedUIElement (); - - [Export ("accessibilityIndexOfChild:")] - nuint GetAccessibilityIndexOfChild (NSObject child); - - [Export ("accessibilityArrayAttributeCount:")] - nuint GetAccessibilityArrayAttributeCount (NSString attribute); - - [Export ("accessibilityArrayAttributeValues:index:maxCount:")] - NSObject[] GetAccessibilityArrayAttributeValues (NSString attribute, nuint index, nuint maxCount); - - [Mac (10,9)] - [Export ("accessibilityNotifiesWhenDestroyed")] - bool GetAccessibilityNotifiesWhenDestroyed (); - } - - - [BaseType (typeof (NSCell))] - [Category] - public interface NSObjectAccessibilityCellExtensions { - // Please note the neary copy in NSObjectAccessibilityViewExtensions and update there as well - [Availability (Obsoleted = Platform.Mac_10_10, Message = "Use the NSAccessibility protocol methods instead")] - [Export ("accessibilityAttributeNames")] - NSArray GetAccessibilityAttributeNames (); - - [Availability (Obsoleted = Platform.Mac_10_10, Message = "Use the NSAccessibility protocol methods instead")] - [Export ("accessibilityAttributeValue:")] - NSObject GetAccessibilityValue (NSString attribute); - - [Availability (Obsoleted = Platform.Mac_10_10, Message = "Use the NSAccessibility protocol methods instead")] - [Export ("accessibilityIsAttributeSettable:")] - bool IsAccessibilityAttributeSettable (NSString attribute); - - [Availability (Obsoleted = Platform.Mac_10_10, Message = "Use the NSAccessibility protocol methods instead")] - [Export ("accessibilitySetValue:forAttribute:")] - void SetAccessibilityValue (NSString attribute, NSObject value); - - [Availability (Obsoleted = Platform.Mac_10_10, Message = "Use the NSAccessibility protocol methods instead")] - [Export ("accessibilityParameterizedAttributeNames")] - NSArray GetAccessibilityParameterizedAttributeNames (); - - [Availability (Obsoleted = Platform.Mac_10_10, Message = "Use the NSAccessibility protocol methods instead")] - [Export ("accessibilityAttributeValue:forParameter:")] - NSObject GetAccessibilityValue (NSString attribute, NSObject parameter); - - [Availability (Obsoleted = Platform.Mac_10_10, Message = "Use the NSAccessibility protocol methods instead")] - [Export ("accessibilityActionNames")] - NSArray GetAccessibilityActionNames (); - - [Availability (Obsoleted = Platform.Mac_10_10, Message = "Use the NSAccessibility protocol methods instead")] - [Export ("accessibilityActionDescription:")] - NSString GetAccessibilityActionDescription (NSString action); - - [Availability (Obsoleted = Platform.Mac_10_10, Message = "Use the NSAccessibility protocol methods instead")] - [Export ("accessibilityPerformAction:")] - void AccessibilityPerformAction (NSString action); - - [Availability (Obsoleted = Platform.Mac_10_10, Message = "Use the NSAccessibility protocol methods instead")] - [Export ("accessibilityIsIgnored")] - bool GetAccessibilityIsIgnored (); - - [Export ("accessibilityHitTest:")] - NSObject GetAccessibilityHitTest (CGPoint point); - - [Export ("getAccessibilityFocusedUIElement")] - NSObject GetAccessibilityFocusedUIElement (); + [Export ("accessibilityFocusedUIElement")] + NSObject AccessibilityFocusedUIElement { get; } [Export ("accessibilityIndexOfChild:")] nuint GetAccessibilityIndexOfChild (NSObject child); @@ -22930,20 +22863,18 @@ public interface NSObjectAccessibilityCellExtensions { [Mac (10,9)] [Export ("accessibilityNotifiesWhenDestroyed")] - bool GetAccessibilityNotifiesWhenDestroyed (); + bool AccessibilityNotifiesWhenDestroyed { get; } } [Mac (10, 10)] - [BaseType (typeof (NSWorkspace))] - [Category] public interface NSWorkspaceAccessibilityExtensions { - [Export ("accessibilityDisplayShouldIncreaseContract")] - bool GetAccessibilityDisplayShouldIncreaseContract (); + [Export ("accessibilityDisplayShouldIncreaseContrast")] + bool AccessibilityDisplayShouldIncreaseContrast { get; } [Export ("accessibilityDisplayShouldDifferentiateWithoutColor")] - bool GetAccessibilityDisplayShouldDifferentiateWithoutColor (); + bool AccessibilityDisplayShouldDifferentiateWithoutColor { get; } [Export ("accessibilityDisplayShouldReduceTransparency")] - bool GetAccessibilityDisplayShouldReduceTransparency (); + bool AccessibilityDisplayShouldReduceTransparency { get; } } } diff --git a/tests/dontlink-mac/MacApiSelectorTest.cs b/tests/dontlink-mac/MacApiSelectorTest.cs index 9d5d361c1e1c..59a5996e6697 100644 --- a/tests/dontlink-mac/MacApiSelectorTest.cs +++ b/tests/dontlink-mac/MacApiSelectorTest.cs @@ -113,6 +113,10 @@ protected override bool Skip (Type type) protected override bool Skip (Type type, string selectorName) { switch (selectorName) { + case "accessibilityNotifiesWhenDestroyed": + // The header declares this on an NSObject category but + // it doesn't even respondsToSelector on NSView/NSCell... + return true; #if !XAMCORE_4_0 case "xamarinselector:removed:": return true; From 185486c0cf99ebc265d2bbb5bda5db252e763a70 Mon Sep 17 00:00:00 2001 From: Chris Hamons Date: Tue, 7 Jun 2016 17:01:36 -0500 Subject: [PATCH 4/6] Fix name --- src/appkit.cs | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/appkit.cs b/src/appkit.cs index fd474ed96fc1..485b14b8d3ea 100644 --- a/src/appkit.cs +++ b/src/appkit.cs @@ -2088,7 +2088,7 @@ public interface NSCachedImageRep { } [BaseType (typeof (NSObject))] - public interface NSCell : NSUserInterfaceItemIdentification, NSCoding, NSCopying, NSAccessibilityElement, NSAccessibility, NSObjectAccessibilityViewExtensions { + public interface NSCell : NSUserInterfaceItemIdentification, NSCoding, NSCopying, NSAccessibilityElement, NSAccessibility, NSObjectAccessibilityExtensions { [Static, Export ("prefersTrackingUntilMouseUp")] bool PrefersTrackingUntilMouseUp { get; } @@ -13727,7 +13727,7 @@ public partial interface NSTextFinder : NSCoding { [BaseType (typeof (NSResponder))] [Dispose ("__mt_tracking_var = null;")] - public partial interface NSView : NSDraggingDestination, NSAnimatablePropertyContainer, NSUserInterfaceItemIdentification, NSAppearanceCustomization, NSAccessibilityElement, NSAccessibility, NSObjectAccessibilityViewExtensions { + public partial interface NSView : NSDraggingDestination, NSAnimatablePropertyContainer, NSUserInterfaceItemIdentification, NSAppearanceCustomization, NSAccessibilityElement, NSAccessibility, NSObjectAccessibilityExtensions { [Export ("initWithFrame:")] IntPtr Constructor (CGRect frameRect); @@ -22804,8 +22804,7 @@ public interface NSAccessibilityLayoutItem : NSAccessibilityGroup { void SetAccessibilityFrame (CGRect frame); } - public interface NSObjectAccessibilityViewExtensions { - // Please note the neary copy in NSObjectAccessibilityCellExtensions and update there as well + public interface NSObjectAccessibilityExtensions { [Availability (Obsoleted = Platform.Mac_10_10, Message = "Use the NSAccessibility protocol methods instead")] [Export ("accessibilityAttributeNames")] NSArray AccessibilityAttributeNames { get; } From 09c931b42519787e7a8801f0f71f1e7271b9225e Mon Sep 17 00:00:00 2001 From: Chris Hamons Date: Tue, 7 Jun 2016 17:02:57 -0500 Subject: [PATCH 5/6] Fix more --- src/appkit.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/appkit.cs b/src/appkit.cs index 485b14b8d3ea..48dca4805d5e 100644 --- a/src/appkit.cs +++ b/src/appkit.cs @@ -22849,7 +22849,7 @@ public interface NSObjectAccessibilityExtensions { NSObject GetAccessibilityHitTest (CGPoint point); [Export ("accessibilityFocusedUIElement")] - NSObject AccessibilityFocusedUIElement { get; } + NSObject AccessibilityFocusedUIElement (); [Export ("accessibilityIndexOfChild:")] nuint GetAccessibilityIndexOfChild (NSObject child); From 387fc22bd7ebf9fd1907eeda00bdc9575aa7b95b Mon Sep 17 00:00:00 2001 From: Chris Hamons Date: Tue, 7 Jun 2016 17:03:24 -0500 Subject: [PATCH 6/6] Fix more --- src/appkit.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/appkit.cs b/src/appkit.cs index 48dca4805d5e..e226e33e67f9 100644 --- a/src/appkit.cs +++ b/src/appkit.cs @@ -22849,7 +22849,7 @@ public interface NSObjectAccessibilityExtensions { NSObject GetAccessibilityHitTest (CGPoint point); [Export ("accessibilityFocusedUIElement")] - NSObject AccessibilityFocusedUIElement (); + NSObject GetAccessibilityFocusedUIElement (); [Export ("accessibilityIndexOfChild:")] nuint GetAccessibilityIndexOfChild (NSObject child);