Revision: 27713
http://sourceforge.net/p/bibdesk/svn/27713
Author: hofman
Date: 2022-07-08 16:41:30 +0000 (Fri, 08 Jul 2022)
Log Message:
-----------
add editor text field button to accessibility tree and make images accessible
Modified Paths:
--------------
trunk/bibdesk/BDSKEditor.h
trunk/bibdesk/BDSKEditor.m
trunk/bibdesk/BDSKEditorTextField.h
trunk/bibdesk/BDSKEditorTextField.m
trunk/bibdesk/Base.lproj/BDSKEditor.xib
trunk/bibdesk/NSImage_BDSKExtensions.m
trunk/bibdesk/de.lproj/Localizable.strings
trunk/bibdesk/en.lproj/Localizable.strings
trunk/bibdesk/fr.lproj/Localizable.strings
Modified: trunk/bibdesk/BDSKEditor.h
===================================================================
--- trunk/bibdesk/BDSKEditor.h 2022-07-08 16:04:15 UTC (rev 27712)
+++ trunk/bibdesk/BDSKEditor.h 2022-07-08 16:41:30 UTC (rev 27713)
@@ -238,3 +238,7 @@
@interface BDSKEditorRowView : NSTableRowView
@end
+
+
+@interface BDSKEditorCellView : NSTableCellView
+@end
Modified: trunk/bibdesk/BDSKEditor.m
===================================================================
--- trunk/bibdesk/BDSKEditor.m 2022-07-08 16:04:15 UTC (rev 27712)
+++ trunk/bibdesk/BDSKEditor.m 2022-07-08 16:41:30 UTC (rev 27713)
@@ -3728,3 +3728,13 @@
}
@end
+
+
+@implementation BDSKEditorCellView
+
+- (NSArray *)accessibilityChildren {
+ return NSAccessibilityUnignoredChildren([NSArray arrayWithObjects:[self
textField], [(BDSKEditorTextField *)[self textField] button], nil]);
+}
+
+@end
+
Modified: trunk/bibdesk/BDSKEditorTextField.h
===================================================================
--- trunk/bibdesk/BDSKEditorTextField.h 2022-07-08 16:04:15 UTC (rev 27712)
+++ trunk/bibdesk/BDSKEditorTextField.h 2022-07-08 16:41:30 UTC (rev 27713)
@@ -45,6 +45,7 @@
}
@property (nonatomic) SEL buttonAction;
@property (nonatomic, retain) id representedObject;
+@property (nonatomic, readonly) NSButton * button;
@end
Modified: trunk/bibdesk/BDSKEditorTextField.m
===================================================================
--- trunk/bibdesk/BDSKEditorTextField.m 2022-07-08 16:04:15 UTC (rev 27712)
+++ trunk/bibdesk/BDSKEditorTextField.m 2022-07-08 16:41:30 UTC (rev 27713)
@@ -47,7 +47,7 @@
@implementation BDSKEditorTextField
@synthesize buttonAction;
-@dynamic representedObject;
+@dynamic representedObject, button;
+ (Class)cellClass { return [BDSKComplexStringCell class]; }
@@ -120,14 +120,24 @@
[self addSubview:button];
}
[[button cell] setRepresentedObject:object];
- if ([object isKindOfClass:[NSURL class]])
+ if ([object isKindOfClass:[NSURL class]]) {
[button setImage:[NSImage imageForURL:object]];
- else
- [button setImage:[NSImage
imageNamed:NSImageNameFollowLinkFreestandingTemplate]];
+ } else {
+ static NSImage *linkImage = nil;
+ if (linkImage == nil) {
+ linkImage = [[NSImage
imageNamed:NSImageNameFollowLinkFreestandingTemplate] retain];
+ [linkImage
setAccessibilityDescription:NSLocalizedString(@"crossref", @"Accessibility
description")];
+ }
+ [button setImage:linkImage];
+ }
[(BDSKComplexStringCell *)[self cell] setRightInset:object ?
NSWidth([button frame]) + BUTTON_MARGIN_X : 0.0];
[self setNeedsDisplay:YES];
}
+- (NSButton *)button {
+ return [button superview] ? button : nil;
+}
+
@end
Modified: trunk/bibdesk/Base.lproj/BDSKEditor.xib
===================================================================
--- trunk/bibdesk/Base.lproj/BDSKEditor.xib 2022-07-08 16:04:15 UTC (rev
27712)
+++ trunk/bibdesk/Base.lproj/BDSKEditor.xib 2022-07-08 16:41:30 UTC (rev
27713)
@@ -1,9 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
-<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0"
toolsVersion="18122" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none"
useAutolayout="YES">
+<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0"
toolsVersion="19529" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none"
useAutolayout="YES">
<dependencies>
<deployment identifier="macosx"/>
- <development version="8000" identifier="xcode"/>
- <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin"
version="18122"/>
+ <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin"
version="19529"/>
<capability name="documents saved in the Xcode 8 format"
minToolsVersion="8.0"/>
</dependencies>
<objects>
@@ -268,7 +267,7 @@
</textFieldCell>
<tableColumnResizingMask key="resizingMask" resizeWithTable="YES"/>
<prototypeCellViews>
-
<tableCellView id="WSC-RJ-GoF">
+
<tableCellView id="WSC-RJ-GoF" customClass="BDSKEditorCellView">
<rect key="frame" x="76" y="1" width="416" height="22"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES"
heightSizable="YES"/>
<subviews>
Modified: trunk/bibdesk/NSImage_BDSKExtensions.m
===================================================================
--- trunk/bibdesk/NSImage_BDSKExtensions.m 2022-07-08 16:04:15 UTC (rev
27712)
+++ trunk/bibdesk/NSImage_BDSKExtensions.m 2022-07-08 16:41:30 UTC (rev
27713)
@@ -535,25 +535,28 @@
}
+ (NSImage *)imageForURL:(NSURL *)aURL{
- if (aURL == nil)
- return nil;
- else if ([aURL isFileURL])
- return [[NSWorkspace sharedWorkspace] iconForFile:[aURL path]];
-
- NSString *scheme = [aURL scheme];
- OSType typeCode = kInternetLocationGenericIcon;
-
- if([scheme isCaseInsensitiveEqual:@"http"] || [scheme
isCaseInsensitiveEqual:@"https"])
- typeCode = kInternetLocationHTTPIcon;
- else if([scheme isCaseInsensitiveEqual:@"ftp"])
- typeCode = kInternetLocationFTPIcon;
- else if([scheme isCaseInsensitiveEqual:@"mailto"])
- typeCode = kInternetLocationMailIcon;
- else if([scheme isCaseInsensitiveEqual:@"news"])
- typeCode = kInternetLocationNewsIcon;
-
- NSImage *image = [[NSWorkspace sharedWorkspace]
iconForFileType:NSFileTypeForHFSTypeCode(typeCode)];
- [image setAccessibilityDescription:NSLocalizedString(@"URL",
@"Accessibility description")];
+ NSImage *image = nil;
+ if (aURL == nil) {
+ image = nil;
+ } else if ([aURL isFileURL]) {
+ image = [[NSWorkspace sharedWorkspace] iconForFile:[aURL path]];
+ [image setAccessibilityDescription:NSLocalizedString(@"file",
@"Accessibility description")];
+ } else {
+ NSString *scheme = [aURL scheme];
+ OSType typeCode = kInternetLocationGenericIcon;
+
+ if([scheme isCaseInsensitiveEqual:@"http"] || [scheme
isCaseInsensitiveEqual:@"https"])
+ typeCode = kInternetLocationHTTPIcon;
+ else if([scheme isCaseInsensitiveEqual:@"ftp"])
+ typeCode = kInternetLocationFTPIcon;
+ else if([scheme isCaseInsensitiveEqual:@"mailto"])
+ typeCode = kInternetLocationMailIcon;
+ else if([scheme isCaseInsensitiveEqual:@"news"])
+ typeCode = kInternetLocationNewsIcon;
+
+ image = [[NSWorkspace sharedWorkspace]
iconForFileType:NSFileTypeForHFSTypeCode(typeCode)];
+ [image setAccessibilityDescription:NSLocalizedString(@"URL",
@"Accessibility description")];
+ }
return image;
}
Modified: trunk/bibdesk/de.lproj/Localizable.strings
===================================================================
(Binary files differ)
Modified: trunk/bibdesk/en.lproj/Localizable.strings
===================================================================
(Binary files differ)
Modified: trunk/bibdesk/fr.lproj/Localizable.strings
===================================================================
(Binary files differ)
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