Reviewed by Vicki.
authorharrison <harrison@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 23 Feb 2005 20:09:17 +0000 (20:09 +0000)
committerharrison <harrison@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 23 Feb 2005 20:09:17 +0000 (20:09 +0000)
        <rdar://problem/4014691> switch to correctly spelled NSAccessibilityForegroundColorTextAttribute constant

        Also removed two older, now unneeded, wrappers.

        * kwq/KWQAccObject.mm:
        (-[KWQAccObject visiblePositionForStartOfTextMarkerRange:]):
        (-[KWQAccObject visiblePositionForEndOfTextMarkerRange:]):
        Removed these older, now unneeded, wrappers.

        (NSAccessibilityForegroundColorTextAttributeWrapper):
        New wrapper for NSAccessibilityForegroundColorTextAttribute.

        (AXAttributeStringSetStyle):
        Use NSAccessibilityForegroundColorTextAttributeWrapper.

        (-[KWQAccObject doAXTextMarkerRangeForUnorderedTextMarkers:]):
        Remove uses of visiblePositionForStartOfTextMarkerRange and visiblePositionForEndOfTextMarkerRange.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@8672 268f45cc-cd09-0410-ab3c-d52691b4dbfc

WebCore/ChangeLog-2005-08-23
WebCore/kwq/KWQAccObject.mm

index 4b4b47cc4370137b04a8542972afff604929562a..ffc31c358c0cf80fd248cf8b0dce5c5b1ffe4e06 100644 (file)
@@ -1,3 +1,25 @@
+2005-02-23  David Harrison  <harrison@apple.com>
+
+        Reviewed by Vicki.
+
+        <rdar://problem/4014691> switch to correctly spelled NSAccessibilityForegroundColorTextAttribute constant
+        
+        Also removed two older, now unneeded, wrappers.
+
+        * kwq/KWQAccObject.mm:
+        (-[KWQAccObject visiblePositionForStartOfTextMarkerRange:]):
+        (-[KWQAccObject visiblePositionForEndOfTextMarkerRange:]):
+        Removed these older, now unneeded, wrappers.
+        
+        (NSAccessibilityForegroundColorTextAttributeWrapper):
+        New wrapper for NSAccessibilityForegroundColorTextAttribute.
+        
+        (AXAttributeStringSetStyle):
+        Use NSAccessibilityForegroundColorTextAttributeWrapper.
+        
+        (-[KWQAccObject doAXTextMarkerRangeForUnorderedTextMarkers:]):
+        Remove uses of visiblePositionForStartOfTextMarkerRange and visiblePositionForEndOfTextMarkerRange.
+
 2005-02-23  David Harrison  <harrison@apple.com>
 
         Reviewed by Vicki.
index bfa44f9a89617376cd776a03f3d2b8c8072b62f1..6586025084b6de72827c242233fda07d3d32f527 100644 (file)
@@ -33,7 +33,6 @@
 #if OMIT_TIGER_FEATURES
 // no parameterized attributes in Panther... they were introduced in Tiger
 #else
-typedef AXTextMarkerRef (*TextMarkerFromTextMarkerRangeProc) (AXTextMarkerRangeRef theTextMarkerRange);
 extern "C" AXUIElementRef NSAccessibilityCreateAXUIElementRef(id element);
 #endif
 
@@ -777,43 +776,9 @@ static QRect boundingBoxRect(RenderObject* obj)
     return m_renderer->document()->getAccObjectCache()->visiblePositionForTextMarker(textMarker);
 }
 
-- (AXTextMarkerRef) AXTextMarkerRangeCopyStartMarkerWrapper: (AXTextMarkerRangeRef)textMarkerRange
-{
-    NSSymbol        axSymbol;
-    static TextMarkerFromTextMarkerRangeProc   axStartImpl = nil;
-    
-    if (axStartImpl == nil) {
-        axSymbol = NSLookupAndBindSymbol("_AXTextMarkerRangeCopyStartMarker");
-        if (axSymbol == nil)
-            axSymbol = NSLookupAndBindSymbol("_AXTextMarkerCopyStartMarker");
-        ASSERT(axSymbol);
-        axStartImpl = (TextMarkerFromTextMarkerRangeProc) NSAddressOfSymbol(axSymbol);
-        ASSERT(axStartImpl);
-    }
-    
-    return axStartImpl(textMarkerRange);
-}
-
-- (AXTextMarkerRef) AXTextMarkerRangeCopyEndMarkerWrapper: (AXTextMarkerRangeRef)textMarkerRange
-{
-    NSSymbol        axSymbol;
-    static TextMarkerFromTextMarkerRangeProc   axEndImpl = nil;
-    
-    if (axEndImpl == nil) {
-        axSymbol = NSLookupAndBindSymbol("_AXTextMarkerRangeCopyEndMarker");
-        if (axSymbol == nil)
-            axSymbol = NSLookupAndBindSymbol("_AXTextMarkerCopyEndMarker");
-        ASSERT(axSymbol);
-        axEndImpl = (TextMarkerFromTextMarkerRangeProc) NSAddressOfSymbol(axSymbol);
-        ASSERT(axEndImpl);
-    }
-    
-    return axEndImpl(textMarkerRange);
-}
-
 - (VisiblePosition) visiblePositionForStartOfTextMarkerRange: (AXTextMarkerRangeRef)textMarkerRange
 {
-    AXTextMarkerRef textMarker = [self AXTextMarkerRangeCopyStartMarkerWrapper:textMarkerRange];
+    AXTextMarkerRef textMarker = AXTextMarkerRangeCopyStartMarker(textMarkerRange);
     VisiblePosition visiblePos = [self visiblePositionForTextMarker:textMarker];
     if (textMarker)
         CFRelease(textMarker);
@@ -822,7 +787,7 @@ static QRect boundingBoxRect(RenderObject* obj)
 
 - (VisiblePosition) visiblePositionForEndOfTextMarkerRange: (AXTextMarkerRangeRef) textMarkerRange
 {
-    AXTextMarkerRef textMarker = [self AXTextMarkerRangeCopyEndMarkerWrapper:textMarkerRange];
+    AXTextMarkerRef textMarker = AXTextMarkerRangeCopyEndMarker(textMarkerRange);
     VisiblePosition visiblePos = [self visiblePositionForTextMarker:textMarker];
     if (textMarker)
         CFRelease(textMarker);
@@ -1215,6 +1180,35 @@ static void AXAttributeStringSetFont(NSMutableAttributedString *attrString, NSSt
     
 }
 
+// NOTE: This wrapper is to get the NSAccessibilityForegroundColorTextAttribute string because
+// AppKit changed the name from NSAccessibilityForegoundColorTextAttribute w/o binary compatibliity.
+// It should be removed once everyone is building on the newer AppKit per <rdar://problem/4014691>.
+static NSString * NSAccessibilityForegroundColorTextAttributeWrapper(void)
+{
+    static NSString * axForegroundColorTextAttribute = nil;
+    
+    // find the symbol just once
+    if (axForegroundColorTextAttribute == nil) {
+        // check for the new name
+        NSSymbol axSymbol = NSLookupAndBindSymbol("_NSAccessibilityForegroundColorTextAttribute");
+        
+        // fall back to the old name
+        if (axSymbol == nil)
+            axSymbol = NSLookupAndBindSymbol("_NSAccessibilityForegoundColorTextAttribute");
+        ASSERT(axSymbol);
+        
+        // get the addreess of variable address
+        NSString ** axSymbolAddr = (NSString**) NSAddressOfSymbol(axSymbol);
+        
+        // get and save the string address
+        axForegroundColorTextAttribute = *axSymbolAddr;
+        ASSERT(axForegroundColorTextAttribute);
+    }
+    
+    // return the symbol we can use
+    return axForegroundColorTextAttribute;
+}
+
 static void AXAttributeStringSetStyle(NSMutableAttributedString *attrString, RenderObject *renderer, NSRange range)
 {
     RenderStyle *style = renderer->style();
@@ -1223,7 +1217,7 @@ static void AXAttributeStringSetStyle(NSMutableAttributedString *attrString, Ren
     AXAttributeStringSetFont(attrString, NSAccessibilityFontTextAttribute, style->font().getNSFont(), range);
 
     // set basic colors
-    AXAttributeStringSetColor(attrString, NSAccessibilityForegoundColorTextAttribute, style->color().getNSColor(), range);
+    AXAttributeStringSetColor(attrString, NSAccessibilityForegroundColorTextAttributeWrapper(), style->color().getNSColor(), range);
     AXAttributeStringSetColor(attrString, NSAccessibilityBackgroundColorTextAttribute, style->backgroundColor().getNSColor(), range);
 
     // set super/sub scripting
@@ -1392,8 +1386,8 @@ static void AXAttributedStringAppendReplaced (NSMutableAttributedString *attrStr
 {
 #if MARKERARRAY_SELF_TEST
     AXTextMarkerRangeRef tmr = [self getSelectedTextMarkerRange];
-    AXTextMarkerRef tm1 = [self AXTextMarkerRangeCopyEndMarkerWrapper:tmr];
-    AXTextMarkerRef tm2 = [self AXTextMarkerRangeCopyStartMarkerWrapper:tmr];
+    AXTextMarkerRef tm1 = AXTextMarkerRangeCopyEndMarker(tmr);
+    AXTextMarkerRef tm2 = AXTextMarkerRangeCopyStartMarker(tmr);
     markers = [NSArray arrayWithObjects: (id) tm1, (id) tm2, nil];
 #endif
     // get and validate the markers