Revision: 27754
          http://sourceforge.net/p/bibdesk/svn/27754
Author:   hofman
Date:     2022-07-22 14:38:44 +0000 (Fri, 22 Jul 2022)
Log Message:
-----------
keep cell proxy private for controls that have them, returned as child

Modified Paths:
--------------
    trunk/bibdesk/BDSKAddressTextField.m
    trunk/bibdesk/BDSKAddressTextFieldCell.m
    trunk/bibdesk/BDSKCellProxy.m
    trunk/bibdesk/BDSKEditorTextField.h
    trunk/bibdesk/BDSKEditorTextField.m

Modified: trunk/bibdesk/BDSKAddressTextField.m
===================================================================
--- trunk/bibdesk/BDSKAddressTextField.m        2022-07-21 22:22:13 UTC (rev 
27753)
+++ trunk/bibdesk/BDSKAddressTextField.m        2022-07-22 14:38:44 UTC (rev 
27754)
@@ -46,15 +46,13 @@
 #define CONTROL_MARGIN 3.0
 
 @interface BDSKAddressButton : NSButton {
-    id cellProxy;
+    BDSKButtonCellProxy *cellProxy;
 }
-@property (nonatomic, readonly) id cellProxy;
 @end
 
 @interface BDSKAddressImageView : BDSKDragImageView {
-    id cellProxy;
+    BDSKImageCellProxy *cellProxy;
 }
-@property (nonatomic, readonly) id cellProxy;
 @end
 
 
@@ -198,43 +196,61 @@
 
 @implementation BDSKAddressButton
 
-@dynamic cellProxy;
-
 - (void)dealloc {
     BDSKDESTROY(cellProxy);
     [super dealloc];
 }
 
-- (id)cellProxy {
+- (BDSKButtonCellProxy *)cellProxy {
     if (cellProxy == nil)
         cellProxy = [[BDSKButtonCellProxy alloc] initWithParent:[(NSControl 
*)[self superview] cell] cell:[self cell]];
     return cellProxy;
 }
 
+- (NSArray *)accessibilityChildren {
+    return NSAccessibilityUnignoredChildren([NSArray arrayWithObjects:[self 
cellProxy], nil]);
+}
+
 - (id)accessibilityHitTest:(NSPoint)point {
     return NSAccessibilityUnignoredAncestor([self cellProxy]);
 }
 
+- (id)accessibilityAttributeValue:(NSString *)attribute {
+    if ([attribute isEqualToString:NSAccessibilityChildrenAttribute])
+        return NSAccessibilityUnignoredChildren([NSArray 
arrayWithObjects:[self cellProxy], nil]);
+    else
+        return [super accessibilityAttributeValue:attribute];
+}
+
 @end
 
 
 @implementation BDSKAddressImageView
 
-@dynamic cellProxy;
-
 - (void)dealloc {
     BDSKDESTROY(cellProxy);
     [super dealloc];
 }
 
-- (id)cellProxy {
+- (BDSKImageCellProxy *)cellProxy {
     if (cellProxy == nil)
         cellProxy = [[BDSKImageCellProxy alloc] initWithParent:[(NSControl 
*)[self superview] cell] cell:[self cell]];
     return cellProxy;
 }
 
+- (NSArray *)accessibilityChildren {
+    return NSAccessibilityUnignoredChildren([NSArray arrayWithObjects:[self 
cellProxy], nil]);
+}
+
 - (id)accessibilityHitTest:(NSPoint)point {
     return NSAccessibilityUnignoredAncestor([self cellProxy]);
 }
 
+- (id)accessibilityAttributeValue:(NSString *)attribute {
+    if ([attribute isEqualToString:NSAccessibilityChildrenAttribute])
+        return NSAccessibilityUnignoredChildren([NSArray 
arrayWithObjects:[self cellProxy], nil]);
+    else
+        return [super accessibilityAttributeValue:attribute];
+}
+
 @end

Modified: trunk/bibdesk/BDSKAddressTextFieldCell.m
===================================================================
--- trunk/bibdesk/BDSKAddressTextFieldCell.m    2022-07-21 22:22:13 UTC (rev 
27753)
+++ trunk/bibdesk/BDSKAddressTextFieldCell.m    2022-07-22 14:38:44 UTC (rev 
27754)
@@ -141,8 +141,7 @@
 }
 
 - (NSArray *)accessibilityChildren {
-    NSArray *subcontrols = [(BDSKAddressTextField *)[self controlView] 
subcontrols];
-    return NSAccessibilityUnignoredChildren([subcontrols 
valueForKey:@"cellProxy"]);
+    return NSAccessibilityUnignoredChildren([(BDSKAddressTextField *)[self 
controlView] subcontrols]);
 }
 
 - (id)accessibilityHitTest:(NSPoint)point {

Modified: trunk/bibdesk/BDSKCellProxy.m
===================================================================
--- trunk/bibdesk/BDSKCellProxy.m       2022-07-21 22:22:13 UTC (rev 27753)
+++ trunk/bibdesk/BDSKCellProxy.m       2022-07-22 14:38:44 UTC (rev 27754)
@@ -74,10 +74,6 @@
     return [cell accessibilityFrame];
 }
 
-- (NSString *)accessibilityIdentifier {
-    return [cell accessibilityIdentifier];
-}
-
 - (NSString *)accessibilityHelp {
     return [cell accessibilityHelp];
 }
@@ -115,7 +111,10 @@
 - (id)accessibilityAttributeValue:(NSString *)attribute {
     if ([attribute isEqualToString:NSAccessibilityParentAttribute])
         return NSAccessibilityUnignoredAncestor(parent);
-    return [cell accessibilityAttributeValue:attribute];
+    else if ([attribute isEqualToString:NSAccessibilityChildrenAttribute])
+        return nil;
+    else
+        return [cell accessibilityAttributeValue:attribute];
 }
 
 - (BOOL)accessibilityIsAttributeSettable:(NSString *)attribute {

Modified: trunk/bibdesk/BDSKEditorTextField.h
===================================================================
--- trunk/bibdesk/BDSKEditorTextField.h 2022-07-21 22:22:13 UTC (rev 27753)
+++ trunk/bibdesk/BDSKEditorTextField.h 2022-07-22 14:38:44 UTC (rev 27754)
@@ -60,7 +60,6 @@
 @interface BDSKDragButton : NSButton <NSDraggingSource> {
     id cellProxy;
 }
-@property (nonatomic, readonly) id cellProxy;
 @end
 
 @interface BDSKDragButtonCell : NSButtonCell

Modified: trunk/bibdesk/BDSKEditorTextField.m
===================================================================
--- trunk/bibdesk/BDSKEditorTextField.m 2022-07-21 22:22:13 UTC (rev 27753)
+++ trunk/bibdesk/BDSKEditorTextField.m 2022-07-22 14:38:44 UTC (rev 27754)
@@ -182,7 +182,7 @@
 - (NSArray *)accessibilityChildren {
     BDSKDragButton *button = [(BDSKEditorTextField *)[self controlView] 
button];
     if (button)
-        return NSAccessibilityUnignoredChildren([NSArray 
arrayWithObjects:[button cellProxy], nil]);
+        return NSAccessibilityUnignoredChildren([NSArray 
arrayWithObjects:button, nil]);
     return nil;
 }
 
@@ -211,8 +211,6 @@
 
 @implementation BDSKDragButton : NSButton
 
-@dynamic cellProxy;
-
 + (Class)cellClass { return [BDSKDragButtonCell class]; }
 
 - (void)dealloc {
@@ -226,16 +224,27 @@
     return NSDragOperationGeneric;
 }
 
-- (id)cellProxy {
+- (BDSKButtonCellProxy *)cellProxy {
     if (cellProxy == nil)
-        cellProxy = [[BDSKButtonCellProxy alloc] initWithParent:[(id)[self 
superview] cell] cell:[self cell]];
+        cellProxy = [[BDSKButtonCellProxy alloc] initWithParent:[(NSControl 
*)[self superview] cell] cell:[self cell]];
     return cellProxy;
 }
 
+- (NSArray *)accessibilityChildren {
+    return NSAccessibilityUnignoredChildren([NSArray arrayWithObjects:[self 
cellProxy], nil]);
+}
+
 - (id)accessibilityHitTest:(NSPoint)point {
     return NSAccessibilityUnignoredAncestor([self cellProxy]);
 }
 
+- (id)accessibilityAttributeValue:(NSString *)attribute {
+    if ([attribute isEqualToString:NSAccessibilityChildrenAttribute])
+        return NSAccessibilityUnignoredChildren([NSArray 
arrayWithObjects:[self cellProxy], nil]);
+    else
+        return [super accessibilityAttributeValue:attribute];
+}
+
 @end
 
 

This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.



_______________________________________________
Bibdesk-commit mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bibdesk-commit

Reply via email to