Revision: 4666
http://skim-app.svn.sourceforge.net/skim-app/?rev=4666&view=rev
Author: hofman
Date: 2008-09-22 09:03:29 +0000 (Mon, 22 Sep 2008)
Log Message:
-----------
Use a standard accessibility accessor to force generation of the accessibility
table
Modified Paths:
--------------
trunk/PDFDisplayView_SKExtensions.m
Modified: trunk/PDFDisplayView_SKExtensions.m
===================================================================
--- trunk/PDFDisplayView_SKExtensions.m 2008-09-22 08:46:19 UTC (rev 4665)
+++ trunk/PDFDisplayView_SKExtensions.m 2008-09-22 09:03:29 UTC (rev 4666)
@@ -50,8 +50,9 @@
- (NSRange)accessibilityRangeForSelection:(id)selection;
- (id)selectionForAccessibilityRange:(NSRange)range;
-- (void)generateAccessibilityTable;
[EMAIL PROTECTED]
[EMAIL PROTECTED] NSView (SKPDFDisplayViewAdditionalAccessibility)
- (id)accessibilityRangeForPositionAttributeForParameter:(id)parameter;
- (id)accessibilityRTFForRangeAttributeForParameter:(id)parameter;
- (id)accessibilityAttributedStringForRangeAttributeForParameter:(id)parameter;
@@ -123,15 +124,6 @@
}
}
-static void generateAccessibilityTableIfNeeded(id pdfDisplayView) {
- @try {
- if ([[pdfDisplayView valueForKey:@"numAccessibilityLines"]
unsignedIntValue] == 0 &&
- [pdfDisplayView
respondsToSelector:@selector(generateAccessibilityTable)])
- [pdfDisplayView generateAccessibilityTable];
- }
- @catch (id exception) {}
-}
-
static NSAttributedString *attributedStringForAccessibilityRange(id
pdfDisplayView, NSRange range) {
NSAttributedString *attributedString = nil;
if ([pdfDisplayView
respondsToSelector:@selector(selectionForAccessibilityRange:)]) {
@@ -150,7 +142,8 @@
if (page) {
int i = [page characterIndexAtPoint:[pdfView convertPoint:point
toPage:page]];
if (i != -1) {
- generateAccessibilityTableIfNeeded(self);
+ // make sure the accessibility table is generated
+ [self
accessibilityAttributeValue:NSAccessibilityNumberOfCharactersAttribute];
return [NSValue valueWithRange:[self
accessibilityRangeForSelection:[page selectionForRange:NSMakeRange(i, 1)]]];
}
}
@@ -161,7 +154,8 @@
static id replacementAccessibilityRTFForRangeAttributeForParameter(id self,
SEL _cmd, id parameter) {
id pdfView = SKGetPDFView(self);
if (pdfView) {
- generateAccessibilityTableIfNeeded(self);
+ // make sure the accessibility table is generated
+ [self
accessibilityAttributeValue:NSAccessibilityNumberOfCharactersAttribute];
NSAttributedString *attributedString =
attributedStringForAccessibilityRange(self, [parameter rangeValue]);
return [attributedString RTFFromRange:NSMakeRange(0, [attributedString
length]) documentAttributes:NULL];
}
@@ -171,7 +165,8 @@
static id
replacementAccessibilityAttributedStringForRangeAttributeForParameter(id self,
SEL _cmd, id parameter) {
id pdfView = SKGetPDFView(self);
if (pdfView) {
- generateAccessibilityTableIfNeeded(self);
+ // make sure the accessibility table is generated
+ [self
accessibilityAttributeValue:NSAccessibilityNumberOfCharactersAttribute];
return [attributedStringForAccessibilityRange(self, [parameter
rangeValue]) accessibilityAttributedString];
}
return nil;
@@ -180,7 +175,6 @@
static id replacementAccessibilityStyleRangeForIndexAttributeForParameter(id
self, SEL _cmd, id parameter) {
id pdfView = SKGetPDFView(self);
if (pdfView) {
- generateAccessibilityTableIfNeeded(self);
int i = [parameter unsignedIntValue];
int n = [[self
accessibilityAttributeValue:NSAccessibilityNumberOfCharactersAttribute]
intValue];
int start = MAX(0, i - 25), end = MIN(n, i + 25);
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Skim-app-commit mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/skim-app-commit