Revision: 27733
          http://sourceforge.net/p/bibdesk/svn/27733
Author:   hofman
Date:     2022-07-13 18:47:20 +0000 (Wed, 13 Jul 2022)
Log Message:
-----------
accessibility of color label items as color well

Modified Paths:
--------------
    trunk/bibdesk/BDSKColorLabelWell.m

Modified: trunk/bibdesk/BDSKColorLabelWell.m
===================================================================
--- trunk/bibdesk/BDSKColorLabelWell.m  2022-07-13 18:11:48 UTC (rev 27732)
+++ trunk/bibdesk/BDSKColorLabelWell.m  2022-07-13 18:47:20 UTC (rev 27733)
@@ -40,6 +40,14 @@
 #import "NSColor_BDSKExtensions.h"
 
 
+#if SDK_BEFORE(10_10)
+@interface NSObject (BDSKYosemiteDeclarations)
+- (id)accessibilityValue;
+@end
+#endif
+
+#pragma mark -
+
 @interface BDSKColorLabelCell : NSButtonCell {
     BOOL hovered;
 }
@@ -455,4 +463,55 @@
     [NSGraphicsContext restoreGraphicsState];
 }
 
+- (NSString *)accessibilityRole {
+    return NSAccessibilityColorWellRole;
+}
+
+- (NSString *)accessibilityRoleDescription {
+    return NSAccessibilityRoleDescription(NSAccessibilityColorWellRole, nil);
+}
+
+- (id)accessibilityValue {
+    NSColor *color = [self representedObject];
+    if ([color isKindOfClass:[NSColor class]] == NO)
+        return nil;
+    static NSColorWell *colorWell = nil;
+    if (colorWell == nil)
+        colorWell = [[NSColorWell alloc] init];
+    [colorWell setColor:color];
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wpartial-availability"
+    return [colorWell respondsToSelector:@selector(accessibilityValue)] ? 
[colorWell accessibilityValue] : [colorWell 
accessibilityAttributeValue:NSAccessibilityValueAttribute];
+#pragma clang diagnostic pop
+}
+
+- (NSArray *)accessibilityAttributeNames {
+    static NSArray *attributes = nil;
+    if (attributes == nil) {
+        attributes = [[NSArray alloc] initWithObjects:
+            NSAccessibilityRoleAttribute,
+            NSAccessibilityRoleDescriptionAttribute,
+            NSAccessibilityValueAttribute,
+            NSAccessibilityParentAttribute,
+            NSAccessibilityWindowAttribute,
+            NSAccessibilityTopLevelUIElementAttribute,
+            NSAccessibilityPositionAttribute,
+            NSAccessibilitySizeAttribute,
+            nil];
+    }
+    return attributes;
+}
+
+- (id)accessibilityAttributeValue:(NSString *)attribute {
+    if ([attribute isEqualToString:NSAccessibilityRoleAttribute]) {
+        return NSAccessibilityColorWellRole;
+    } else if ([attribute 
isEqualToString:NSAccessibilityRoleDescriptionAttribute]) {
+        return NSAccessibilityRoleDescription(NSAccessibilityColorWellRole, 
nil);
+    } else if ([attribute isEqualToString:NSAccessibilityValueAttribute]) {
+        return [self accessibilityValue];
+    } 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