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

Reply via email to