Changeset 9274 in webkit


Ignore:
Timestamp:
Jun 5, 2005 12:06:58 AM (19 years ago)
Author:
darin
Message:

WebCore:

Reviewed by Don.

  • got rid of the rest of the dependencies on Apple Internal headers
  • kwq/WebCoreBridge.mm: Remove include of unused SPI header.
  • kwq/KWQAccObjectCache.h: Remove include of SPI header. Change use of AXTextMarkerRef to use WebCoreTextMarker instead. Also ifdef less.
  • kwq/KWQAccObjectCache.mm: (KWQAccObjectCache::textMarkerForVisiblePosition): Change types, call new WebCoreViewFactory methods. (KWQAccObjectCache::visiblePositionForTextMarker): Ditto. (KWQAccObjectCache::handleFocusedUIElementChanged): Ditto.
  • kwq/WebCoreViewFactory.h: Add new methods we can use instead of Accessibility SPI.
  • kwq/KWQAccObject.mm: (-[KWQAccObject detach]): Call new WebCoreViewFactory method instead of SPI. (-[KWQAccObject accessibilityAttributeNames]): Use strings instead of constants only in SPI header. (-[KWQAccObject textMarkerRangeFromMarkers:andEndMarker:]): Change parameter types from SPI type to a new type defined by WebCoreViewFactory, use WebCoreViewFactory method. (-[KWQAccObject textMarkerForVisiblePosition:]): Ditto. (-[KWQAccObject visiblePositionForTextMarker:]): Ditto. (-[KWQAccObject visiblePositionForStartOfTextMarkerRange:]): Ditto. (-[KWQAccObject visiblePositionForEndOfTextMarkerRange:]): Ditto. (-[KWQAccObject textMarkerRangeFromVisiblePositions:andEndPos:]): Just change type. (-[KWQAccObject textMarkerRange]): Ditto. (-[KWQAccObject accessibilityAttributeValue:]): String instead of constant. (-[KWQAccObject accessibilityParameterizedAttributeNames]): Ditto. (-[KWQAccObject doAXUIElementForTextMarker:]): Just change type. (-[KWQAccObject doAXLineForTextMarker:]): Ditto. (-[KWQAccObject doAXStringForTextMarkerRange:]): Ditto. (-[KWQAccObject doAXBoundsForTextMarkerRange:]): Ditto. (AXAttributeStringSetElement): Call new method. (-[KWQAccObject doAXAttributedStringForTextMarkerRange:]): Just change type. (-[KWQAccObject doAXTextMarkerRangeForUnorderedTextMarkers:]): Ditto. (-[KWQAccObject doAXNextTextMarkerForTextMarker:]): Ditto. (-[KWQAccObject doAXPreviousTextMarkerForTextMarker:]): Ditto. (-[KWQAccObject doAXLeftWordTextMarkerRangeForTextMarker:]): Ditto. (-[KWQAccObject doAXRightWordTextMarkerRangeForTextMarker:]): Ditto. (-[KWQAccObject doAXLeftLineTextMarkerRangeForTextMarker:]): Ditto. (-[KWQAccObject doAXRightLineTextMarkerRangeForTextMarker:]): Ditto. (-[KWQAccObject doAXSentenceTextMarkerRangeForTextMarker:]): Ditto. (-[KWQAccObject doAXParagraphTextMarkerRangeForTextMarker:]): Ditto. (-[KWQAccObject doAXNextWordEndTextMarkerForTextMarker:]): Ditto. (-[KWQAccObject doAXPreviousWordStartTextMarkerForTextMarker:]): Ditto. (-[KWQAccObject doAXNextLineEndTextMarkerForTextMarker:]): Ditto. (-[KWQAccObject doAXPreviousLineStartTextMarkerForTextMarker:]): Ditto. (-[KWQAccObject doAXNextSentenceEndTextMarkerForTextMarker:]): Ditto. (-[KWQAccObject doAXPreviousSentenceStartTextMarkerForTextMarker:]): Ditto. (-[KWQAccObject doAXNextParagraphEndTextMarkerForTextMarker:]): Ditto. (-[KWQAccObject doAXPreviousParagraphStartTextMarkerForTextMarker:]): Ditto. (-[KWQAccObject doAXLengthForTextMarkerRange:]): Ditto. (-[KWQAccObject accessibilityAttributeValue:forParameter:]): Change types, use new methods, use strings instead of constants. (-[KWQAccObject accessibilityIsAttributeSettable:]): String instead of constant. (-[KWQAccObject doSetAXSelectedTextMarkerRange:]): New type. (-[KWQAccObject accessibilitySetValue:forAttribute:]): New types, methods.

WebKit:

Reviewed by Don.

  • did some work to move SPI use from WebCore here (to be moved from here into WebKitSystemInterface)
  • fixed so we can compile ICU includes without Apple Internal headers installed
  • WebCoreSupport.subproj/WebViewFactory.m: (-[WebViewFactory objectIsTextMarker:]): Added. (-[WebViewFactory objectIsTextMarkerRange:]): Added. (-[WebViewFactory textMarkerWithBytes:length:]): Added. (-[WebViewFactory getBytes:fromTextMarker:length:]): Added. (-[WebViewFactory textMarkerRangeWithStart:end:]): Added. (-[WebViewFactory startOfTextMarkerRange:]): Added. (-[WebViewFactory endOfTextMarkerRange:]): Added. (-[WebViewFactory accessibilityHandleFocusChanged]): Added. (-[WebViewFactory AXUIElementForElement:]): Added. (-[WebViewFactory unregisterUniqueIdForUIElement:]): Added.
  • WebKit.pbproj/project.pbxproj: Added icu to the header search files. Removed bogus DSTROOT thing from the framework paths (I meant to remove that a while back).
  • icu/README: Added.
  • icu/unicode/parseerr.h: Added.
  • icu/unicode/platform.h: Added.
  • icu/unicode/uchar.h: Added.
  • icu/unicode/uconfig.h: Added.
  • icu/unicode/uidna.h: Added.
  • icu/unicode/uiter.h: Added.
  • icu/unicode/umachine.h: Added.
  • icu/unicode/unorm.h: Added.
  • icu/unicode/urename.h: Added.
  • icu/unicode/uscript.h: Added.
  • icu/unicode/utf.h: Added.
  • icu/unicode/utf16.h: Added.
  • icu/unicode/utf8.h: Added.
  • icu/unicode/utf_old.h: Added.
  • icu/unicode/utypes.h: Added.
  • icu/unicode/uversion.h: Added.
Location:
trunk
Files:
19 added
9 edited

Legend:

Unmodified
Added
Removed
  • trunk/WebCore/ChangeLog-2005-08-23

    r9273 r9274  
     12005-06-04  Darin Adler  <darin@apple.com>
     2
     3        Reviewed by Don.
     4
     5        - got rid of the rest of the dependencies on Apple Internal headers
     6
     7        * kwq/WebCoreBridge.mm: Remove include of unused SPI header.
     8
     9        * kwq/KWQAccObjectCache.h: Remove include of SPI header. Change use of AXTextMarkerRef to
     10        use WebCoreTextMarker instead. Also ifdef less.
     11        * kwq/KWQAccObjectCache.mm:
     12        (KWQAccObjectCache::textMarkerForVisiblePosition): Change types, call new WebCoreViewFactory methods.
     13        (KWQAccObjectCache::visiblePositionForTextMarker): Ditto.
     14        (KWQAccObjectCache::handleFocusedUIElementChanged): Ditto.
     15
     16        * kwq/WebCoreViewFactory.h: Add new methods we can use instead of Accessibility SPI.
     17
     18        * kwq/KWQAccObject.mm:
     19        (-[KWQAccObject detach]): Call new WebCoreViewFactory method instead of SPI.
     20        (-[KWQAccObject accessibilityAttributeNames]): Use strings instead of constants only in SPI header.
     21        (-[KWQAccObject textMarkerRangeFromMarkers:andEndMarker:]): Change parameter types from SPI type to
     22        a new type defined by WebCoreViewFactory, use WebCoreViewFactory method.
     23        (-[KWQAccObject textMarkerForVisiblePosition:]): Ditto.
     24        (-[KWQAccObject visiblePositionForTextMarker:]): Ditto.
     25        (-[KWQAccObject visiblePositionForStartOfTextMarkerRange:]): Ditto.
     26        (-[KWQAccObject visiblePositionForEndOfTextMarkerRange:]): Ditto.
     27        (-[KWQAccObject textMarkerRangeFromVisiblePositions:andEndPos:]): Just change type.
     28        (-[KWQAccObject textMarkerRange]): Ditto.
     29        (-[KWQAccObject accessibilityAttributeValue:]): String instead of constant.
     30        (-[KWQAccObject accessibilityParameterizedAttributeNames]): Ditto.
     31        (-[KWQAccObject doAXUIElementForTextMarker:]): Just change type.
     32        (-[KWQAccObject doAXLineForTextMarker:]): Ditto.
     33        (-[KWQAccObject doAXStringForTextMarkerRange:]): Ditto.
     34        (-[KWQAccObject doAXBoundsForTextMarkerRange:]): Ditto.
     35        (AXAttributeStringSetElement): Call new method.
     36        (-[KWQAccObject doAXAttributedStringForTextMarkerRange:]): Just change type.
     37        (-[KWQAccObject doAXTextMarkerRangeForUnorderedTextMarkers:]): Ditto.
     38        (-[KWQAccObject doAXNextTextMarkerForTextMarker:]): Ditto.
     39        (-[KWQAccObject doAXPreviousTextMarkerForTextMarker:]): Ditto.
     40        (-[KWQAccObject doAXLeftWordTextMarkerRangeForTextMarker:]): Ditto.
     41        (-[KWQAccObject doAXRightWordTextMarkerRangeForTextMarker:]): Ditto.
     42        (-[KWQAccObject doAXLeftLineTextMarkerRangeForTextMarker:]): Ditto.
     43        (-[KWQAccObject doAXRightLineTextMarkerRangeForTextMarker:]): Ditto.
     44        (-[KWQAccObject doAXSentenceTextMarkerRangeForTextMarker:]): Ditto.
     45        (-[KWQAccObject doAXParagraphTextMarkerRangeForTextMarker:]): Ditto.
     46        (-[KWQAccObject doAXNextWordEndTextMarkerForTextMarker:]): Ditto.
     47        (-[KWQAccObject doAXPreviousWordStartTextMarkerForTextMarker:]): Ditto.
     48        (-[KWQAccObject doAXNextLineEndTextMarkerForTextMarker:]): Ditto.
     49        (-[KWQAccObject doAXPreviousLineStartTextMarkerForTextMarker:]): Ditto.
     50        (-[KWQAccObject doAXNextSentenceEndTextMarkerForTextMarker:]): Ditto.
     51        (-[KWQAccObject doAXPreviousSentenceStartTextMarkerForTextMarker:]): Ditto.
     52        (-[KWQAccObject doAXNextParagraphEndTextMarkerForTextMarker:]): Ditto.
     53        (-[KWQAccObject doAXPreviousParagraphStartTextMarkerForTextMarker:]): Ditto.
     54        (-[KWQAccObject doAXLengthForTextMarkerRange:]): Ditto.
     55        (-[KWQAccObject accessibilityAttributeValue:forParameter:]): Change types, use new methods, use strings
     56        instead of constants.
     57        (-[KWQAccObject accessibilityIsAttributeSettable:]): String instead of constant.
     58        (-[KWQAccObject doSetAXSelectedTextMarkerRange:]): New type.
     59        (-[KWQAccObject accessibilitySetValue:forAttribute:]): New types, methods.
     60
    1612005-06-04  Darin Adler  <darin@apple.com>
    262
  • trunk/WebCore/kwq/KWQAccObject.mm

    r9178 r9274  
    11/*
    2  * Copyright (C) 2004 Apple Computer, Inc.  All rights reserved.
     2 * Copyright (C) 2004, 2005 Apple Computer, Inc.  All rights reserved.
    33 *
    44 * Redistribution and use in source and binary forms, with or without
     
    2424 */
    2525
     26#import "KWQAccObject.h"
     27
    2628// need this until accesstool supports arrays of markers
    2729#define MARKERARRAY_SELF_TEST 0
    2830
    29 // for AXTextMarker support
    30 #import <ApplicationServices/ApplicationServicesPriv.h>
    31 
    3231#include <mach-o/dyld.h>
    33 #if OMIT_TIGER_FEATURES
    34 // no parameterized attributes in Panther... they were introduced in Tiger
    35 #else
    36 extern "C" AXUIElementRef NSAccessibilityCreateAXUIElementRef(id element);
    37 #endif
    38 
    39 #import "KWQAccObject.h"
     32
    4033#import "KWQAccObjectCache.h"
    4134#import "KWQAssertions.h"
     
    4437#import "WebCoreBridge.h"
    4538#import "WebCoreFrameView.h"
     39#import "WebCoreViewFactory.h"
    4640
    4741#import "dom_docimpl.h"
     
    131125}
    132126
    133 extern "C" void NSAccessibilityUnregisterUniqueIdForUIElement(id element);
    134127-(void)detach
    135128{
    136129    if ([self accessibilityShouldUseUniqueId])
    137         NSAccessibilityUnregisterUniqueIdForUIElement(self);
     130        [[WebCoreViewFactory sharedFactory] unregisterUniqueIdForUIElement:self];
    138131    [m_data release];
    139132    m_data = 0;
     
    656649// no parameterized attributes in Panther... they were introduced in Tiger
    657650#else
    658             (NSString *) kAXSelectedTextMarkerRangeAttribute,
    659 //          (NSString *) kAXVisibleCharacterTextMarkerRangeAttribute,    // NOTE: <rdar://problem/3942582>
    660             (NSString *) kAXStartTextMarkerAttribute,
    661             (NSString *) kAXEndTextMarkerAttribute,
     651            @"AXSelectedTextMarkerRange",
     652            @"AXStartTextMarker",
     653            @"AXEndTextMarker",
    662654#endif
    663655            nil];
     
    680672// no parameterized attributes in Panther... they were introduced in Tiger
    681673#else
    682             (NSString *) kAXSelectedTextMarkerRangeAttribute,
    683 //          (NSString *) kAXVisibleCharacterTextMarkerRangeAttribute,     // NOTE: <rdar://problem/3942582>
    684             (NSString *) kAXStartTextMarkerAttribute,
    685             (NSString *) kAXEndTextMarkerAttribute,
     674            @"AXSelectedTextMarkerRange",
     675            @"AXStartTextMarker",
     676            @"AXEndTextMarker",
    686677#endif
    687678            nil];
     
    706697// no parameterized attributes in Panther... they were introduced in Tiger
    707698#else
    708             (NSString *) kAXSelectedTextMarkerRangeAttribute,
    709 //          (NSString *) kAXVisibleCharacterTextMarkerRangeAttribute,     // NOTE: NOTE: <rdar://problem/3942582>
    710             (NSString *) kAXStartTextMarkerAttribute,
    711             (NSString *) kAXEndTextMarkerAttribute,
     699            @"AXSelectedTextMarkerRange",
     700            @"AXStartTextMarker",
     701            @"AXEndTextMarker",
    712702#endif
    713703            nil];
     
    765755}
    766756
    767 #if OMIT_TIGER_FEATURES
    768 // no parameterized attributes in Panther... they were introduced in Tiger
    769 #else
    770 - (AXTextMarkerRangeRef) textMarkerRangeFromMarkers: (AXTextMarkerRef) textMarker1 andEndMarker:(AXTextMarkerRef) textMarker2
    771 {
    772     AXTextMarkerRangeRef textMarkerRange;
    773    
    774     // create the range
    775     textMarkerRange = AXTextMarkerRangeCreate (nil, textMarker1, textMarker2);
    776 
    777     // autorelease it because we will never see it again
    778     KWQCFAutorelease(textMarkerRange);
    779     return textMarkerRange;
    780 }
    781 
    782 - (AXTextMarkerRef) textMarkerForVisiblePosition: (VisiblePosition)visiblePos
     757- (WebCoreTextMarkerRange *) textMarkerRangeFromMarkers: (WebCoreTextMarker *) textMarker1 andEndMarker:(WebCoreTextMarker *) textMarker2
     758{
     759    return [[WebCoreViewFactory sharedFactory] textMarkerRangeWithStart:textMarker1 end:textMarker2];
     760}
     761
     762- (WebCoreTextMarker *) textMarkerForVisiblePosition: (VisiblePosition)visiblePos
    783763{
    784764    if (visiblePos.isNull())
     
    788768}
    789769
    790 - (VisiblePosition) visiblePositionForTextMarker: (AXTextMarkerRef)textMarker
     770- (VisiblePosition) visiblePositionForTextMarker: (WebCoreTextMarker *)textMarker
    791771{
    792772    return m_renderer->document()->getAccObjectCache()->visiblePositionForTextMarker(textMarker);
    793773}
    794774
    795 - (VisiblePosition) visiblePositionForStartOfTextMarkerRange: (AXTextMarkerRangeRef)textMarkerRange
    796 {
    797     AXTextMarkerRef textMarker = AXTextMarkerRangeCopyStartMarker(textMarkerRange);
    798     VisiblePosition visiblePos = [self visiblePositionForTextMarker:textMarker];
    799     if (textMarker)
    800         CFRelease(textMarker);
    801     return visiblePos;
    802 }
    803 
    804 - (VisiblePosition) visiblePositionForEndOfTextMarkerRange: (AXTextMarkerRangeRef) textMarkerRange
    805 {
    806     AXTextMarkerRef textMarker = AXTextMarkerRangeCopyEndMarker(textMarkerRange);
    807     VisiblePosition visiblePos = [self visiblePositionForTextMarker:textMarker];
    808     if (textMarker)
    809         CFRelease(textMarker);
    810     return visiblePos;
    811 }
    812 
    813 - (AXTextMarkerRangeRef) textMarkerRangeFromVisiblePositions: (VisiblePosition) startPosition andEndPos: (VisiblePosition) endPosition
    814 {
    815     AXTextMarkerRef startTextMarker = [self textMarkerForVisiblePosition: startPosition];
    816     AXTextMarkerRef endTextMarker   = [self textMarkerForVisiblePosition: endPosition];
     775- (VisiblePosition) visiblePositionForStartOfTextMarkerRange: (WebCoreTextMarkerRange *)textMarkerRange
     776{
     777    return [self visiblePositionForTextMarker:[[WebCoreViewFactory sharedFactory] startOfTextMarkerRange:textMarkerRange]];
     778}
     779
     780- (VisiblePosition) visiblePositionForEndOfTextMarkerRange: (WebCoreTextMarkerRange *) textMarkerRange
     781{
     782    return [self visiblePositionForTextMarker:[[WebCoreViewFactory sharedFactory] endOfTextMarkerRange:textMarkerRange]];
     783}
     784
     785- (WebCoreTextMarkerRange *) textMarkerRangeFromVisiblePositions: (VisiblePosition) startPosition andEndPos: (VisiblePosition) endPosition
     786{
     787    WebCoreTextMarker *startTextMarker = [self textMarkerForVisiblePosition: startPosition];
     788    WebCoreTextMarker *endTextMarker   = [self textMarkerForVisiblePosition: endPosition];
    817789    return [self textMarkerRangeFromMarkers: startTextMarker andEndMarker:endTextMarker];
    818790}
    819791
    820 - (AXTextMarkerRangeRef)textMarkerRange
     792- (WebCoreTextMarkerRange *)textMarkerRange
    821793{
    822794    if (!m_renderer)
    823795        return nil;
    824796       
    825     AXTextMarkerRef startTextMarker = [self textMarkerForVisiblePosition: VisiblePosition(m_renderer->element(), m_renderer->caretMinOffset(), khtml::VP_DEFAULT_AFFINITY)];
    826     AXTextMarkerRef endTextMarker   = [self textMarkerForVisiblePosition: VisiblePosition(m_renderer->element(), m_renderer->caretMaxRenderedOffset(), khtml::VP_DEFAULT_AFFINITY)];
     797    WebCoreTextMarker *startTextMarker = [self textMarkerForVisiblePosition: VisiblePosition(m_renderer->element(), m_renderer->caretMinOffset(), khtml::VP_DEFAULT_AFFINITY)];
     798    WebCoreTextMarker *endTextMarker   = [self textMarkerForVisiblePosition: VisiblePosition(m_renderer->element(), m_renderer->caretMaxRenderedOffset(), khtml::VP_DEFAULT_AFFINITY)];
    827799    return [self textMarkerRangeFromMarkers: startTextMarker andEndMarker:endTextMarker];
    828800}
    829 #endif
    830801
    831802- (DocumentImpl *)topDocument
     
    943914// no parameterized attributes in Panther... they were introduced in Tiger
    944915#else
    945     if ([attributeName isEqualToString: (NSString *) kAXSelectedTextMarkerRangeAttribute]) {
     916    if ([attributeName isEqualToString: @"AXSelectedTextMarkerRange"]) {
    946917        // get the selection from the document part
    947918        // NOTE: BUG support nested WebAreas, like in <http://webcourses.niu.edu/>
     
    961932    }
    962933   
    963     if ([attributeName isEqualToString: (NSString *) kAXStartTextMarkerAttribute]) {
     934    if ([attributeName isEqualToString: @"AXStartTextMarker"]) {
    964935        // FIXME: should use startOfDocument here
    965936        VisiblePosition startPos = [self topRenderer]->positionForCoordinates (0, 0);
     
    967938    }
    968939
    969     if ([attributeName isEqualToString: (NSString *) kAXEndTextMarkerAttribute]) {
     940    if ([attributeName isEqualToString: @"AXEndTextMarker"]) {
    970941        // FIXME: should use endOfDocument here
    971942        VisiblePosition endPos = [self topRenderer]->positionForCoordinates (LONG_MAX, LONG_MAX);
     
    987958            @"AXUIElementForTextMarker",
    988959            @"AXTextMarkerRangeForUIElement",
    989             kAXLineForTextMarkerParameterizedAttribute,
    990             kAXTextMarkerRangeForLineParameterizedAttribute,
    991             kAXStringForTextMarkerRangeParameterizedAttribute,
    992             kAXTextMarkerForPositionParameterizedAttribute,
    993             kAXBoundsForTextMarkerRangeParameterizedAttribute,
    994 //          kAXStyleTextMarkerRangeForTextMarkerParameterizedAttribute,           // NOTE: <rdar://problem/3942606>
    995             kAXAttributedStringForTextMarkerRangeParameterizedAttribute,
    996             kAXTextMarkerRangeForUnorderedTextMarkersParameterizedAttribute,
    997             kAXNextTextMarkerForTextMarkerParameterizedAttribute,
    998             kAXPreviousTextMarkerForTextMarkerParameterizedAttribute,
    999             kAXLeftWordTextMarkerRangeForTextMarkerParameterizedAttribute,
    1000             kAXRightWordTextMarkerRangeForTextMarkerParameterizedAttribute,
    1001             kAXLeftLineTextMarkerRangeForTextMarkerParameterizedAttribute,
    1002             kAXRightLineTextMarkerRangeForTextMarkerParameterizedAttribute,
    1003             kAXSentenceTextMarkerRangeForTextMarkerParameterizedAttribute,
    1004             kAXParagraphTextMarkerRangeForTextMarkerParameterizedAttribute,
    1005             kAXNextWordEndTextMarkerForTextMarkerParameterizedAttribute,
    1006             kAXPreviousWordStartTextMarkerForTextMarkerParameterizedAttribute,
    1007             kAXNextLineEndTextMarkerForTextMarkerParameterizedAttribute,
    1008             kAXPreviousLineStartTextMarkerForTextMarkerParameterizedAttribute,
    1009             kAXNextSentenceEndTextMarkerForTextMarkerParameterizedAttribute,
    1010             kAXPreviousSentenceStartTextMarkerForTextMarkerParameterizedAttribute,
    1011             kAXNextParagraphEndTextMarkerForTextMarkerParameterizedAttribute,
    1012             kAXPreviousParagraphStartTextMarkerForTextMarkerParameterizedAttribute,
    1013             kAXLengthForTextMarkerRangeParameterizedAttribute,
     960            @"AXLineForTextMarker",
     961            @"AXTextMarkerRangeForLine",
     962            @"AXStringForTextMarkerRange",
     963            @"AXTextMarkerForPosition",
     964            @"AXBoundsForTextMarkerRange",
     965            @"AXAttributedStringForTextMarkerRange",
     966            @"AXTextMarkerRangeForUnorderedTextMarkers",
     967            @"AXNextTextMarkerForTextMarker",
     968            @"AXPreviousTextMarkerForTextMarker",
     969            @"AXLeftWordTextMarkerRangeForTextMarker",
     970            @"AXRightWordTextMarkerRangeForTextMarker",
     971            @"AXLeftLineTextMarkerRangeForTextMarker",
     972            @"AXRightLineTextMarkerRangeForTextMarker",
     973            @"AXSentenceTextMarkerRangeForTextMarker",
     974            @"AXParagraphTextMarkerRangeForTextMarker",
     975            @"AXNextWordEndTextMarkerForTextMarker",
     976            @"AXPreviousWordStartTextMarkerForTextMarker",
     977            @"AXNextLineEndTextMarkerForTextMarker",
     978            @"AXPreviousLineStartTextMarkerForTextMarker",
     979            @"AXNextSentenceEndTextMarkerForTextMarker",
     980            @"AXPreviousSentenceStartTextMarkerForTextMarker",
     981            @"AXNextParagraphEndTextMarkerForTextMarker",
     982            @"AXPreviousParagraphStartTextMarkerForTextMarker",
     983            @"AXLengthForTextMarkerRange",
    1014984            nil];
    1015985    }
     
    1018988}
    1019989
    1020 - (id)doAXUIElementForTextMarker: (AXTextMarkerRef) textMarker
     990- (id)doAXUIElementForTextMarker: (WebCoreTextMarker *) textMarker
    1021991{
    1022992    VisiblePosition visiblePos = [self visiblePositionForTextMarker:textMarker];
     
    10361006}
    10371007
    1038 - (id)doAXLineForTextMarker: (AXTextMarkerRef) textMarker
     1008- (id)doAXLineForTextMarker: (WebCoreTextMarker *) textMarker
    10391009{
    10401010    unsigned int    lineCount = 0;
     
    10901060}
    10911061
    1092 - (id)doAXStringForTextMarkerRange: (AXTextMarkerRangeRef) textMarkerRange
     1062- (id)doAXStringForTextMarkerRange: (WebCoreTextMarkerRange *) textMarkerRange
    10931063{
    10941064    // extract the start and end VisiblePosition
     
    11561126}
    11571127
    1158 - (id)doAXBoundsForTextMarkerRange: (AXTextMarkerRangeRef) textMarkerRange
     1128- (id)doAXBoundsForTextMarkerRange: (WebCoreTextMarkerRange *) textMarkerRange
    11591129{
    11601130
     
    13251295    if (element != nil) {
    13261296        // make a serialiazable AX object
    1327         AXUIElementRef axElement = NSAccessibilityCreateAXUIElementRef(element);
     1297        AXUIElementRef axElement = [[WebCoreViewFactory sharedFactory] AXUIElementForElement:element];
    13281298        if (axElement != NULL) {
    13291299            [attrString addAttribute:attribute value:(id)axElement range:range];
     
    14051375}
    14061376
    1407 - (id)doAXAttributedStringForTextMarkerRange: (AXTextMarkerRangeRef) textMarkerRange
     1377- (id)doAXAttributedStringForTextMarkerRange: (WebCoreTextMarkerRange *) textMarkerRange
    14081378{
    14091379    // extract the start and end VisiblePosition
     
    14411411{
    14421412#if MARKERARRAY_SELF_TEST
    1443     AXTextMarkerRangeRef tmr = [self getSelectedTextMarkerRange];
    1444     AXTextMarkerRef tm1 = AXTextMarkerRangeCopyEndMarker(tmr);
    1445     AXTextMarkerRef tm2 = AXTextMarkerRangeCopyStartMarker(tmr);
     1413    WebCoreTextMarkerRange *tmr = [self getSelectedTextMarkerRange];
     1414    WebCoreTextMarker *tm1 = AXTextMarkerRangeCopyEndMarker(tmr);
     1415    WebCoreTextMarker *tm2 = AXTextMarkerRangeCopyStartMarker(tmr);
    14461416    markers = [NSArray arrayWithObjects: (id) tm1, (id) tm2, nil];
    14471417#endif
     
    14501420        return nil;
    14511421   
    1452     AXTextMarkerRef textMarker1 = (AXTextMarkerRef) [markers objectAtIndex:0];
    1453     AXTextMarkerRef textMarker2 = (AXTextMarkerRef) [markers objectAtIndex:1];
    1454     if (CFGetTypeID(textMarker1) != AXTextMarkerGetTypeID() || CFGetTypeID(textMarker2) != AXTextMarkerGetTypeID())
     1422    WebCoreTextMarker *textMarker1 = (WebCoreTextMarker *) [markers objectAtIndex:0];
     1423    WebCoreTextMarker *textMarker2 = (WebCoreTextMarker *) [markers objectAtIndex:1];
     1424    if (![[WebCoreViewFactory sharedFactory] objectIsTextMarker:textMarker1] || ![[WebCoreViewFactory sharedFactory] objectIsTextMarker:textMarker2])
    14551425        return nil;
    14561426   
     
    14631433    // use the Selection class to do the ordering
    14641434    // NOTE: Perhaps we could add a Selection method to indicate direction, based on m_baseIsStart
    1465     AXTextMarkerRef startTextMarker;
    1466     AXTextMarkerRef endTextMarker;
     1435    WebCoreTextMarker *startTextMarker;
     1436    WebCoreTextMarker *endTextMarker;
    14671437    Selection   sel(visiblePos1, visiblePos2);
    14681438    if (sel.base() == sel.start()) {
     
    14781448}
    14791449
    1480 - (id)doAXNextTextMarkerForTextMarker: (AXTextMarkerRef) textMarker
     1450- (id)doAXNextTextMarkerForTextMarker: (WebCoreTextMarker *) textMarker
    14811451{
    14821452    VisiblePosition visiblePos = [self visiblePositionForTextMarker:textMarker];
     
    14881458}
    14891459
    1490 - (id)doAXPreviousTextMarkerForTextMarker: (AXTextMarkerRef) textMarker
     1460- (id)doAXPreviousTextMarkerForTextMarker: (WebCoreTextMarker *) textMarker
    14911461{
    14921462    VisiblePosition visiblePos = [self visiblePositionForTextMarker:textMarker];
     
    14981468}
    14991469
    1500 - (id)doAXLeftWordTextMarkerRangeForTextMarker: (AXTextMarkerRef) textMarker
     1470- (id)doAXLeftWordTextMarkerRangeForTextMarker: (WebCoreTextMarker *) textMarker
    15011471{
    15021472    VisiblePosition visiblePos = [self visiblePositionForTextMarker:textMarker];
     
    15071477}
    15081478
    1509 - (id)doAXRightWordTextMarkerRangeForTextMarker: (AXTextMarkerRef) textMarker
     1479- (id)doAXRightWordTextMarkerRangeForTextMarker: (WebCoreTextMarker *) textMarker
    15101480{
    15111481    VisiblePosition visiblePos = [self visiblePositionForTextMarker:textMarker];
     
    15161486}
    15171487
    1518 - (id)doAXLeftLineTextMarkerRangeForTextMarker: (AXTextMarkerRef) textMarker
     1488- (id)doAXLeftLineTextMarkerRangeForTextMarker: (WebCoreTextMarker *) textMarker
    15191489{
    15201490    VisiblePosition visiblePos = [self visiblePositionForTextMarker:textMarker];
     
    15331503}
    15341504
    1535 - (id)doAXRightLineTextMarkerRangeForTextMarker: (AXTextMarkerRef) textMarker
     1505- (id)doAXRightLineTextMarkerRangeForTextMarker: (WebCoreTextMarker *) textMarker
    15361506{
    15371507    VisiblePosition visiblePos = [self visiblePositionForTextMarker:textMarker];
     
    15491519}
    15501520
    1551 - (id)doAXSentenceTextMarkerRangeForTextMarker: (AXTextMarkerRef) textMarker
     1521- (id)doAXSentenceTextMarkerRangeForTextMarker: (WebCoreTextMarker *) textMarker
    15521522{
    15531523    // NOTE: BUG FO 2 IMPLEMENT (currently returns incorrect answer)
     
    15601530}
    15611531
    1562 - (id)doAXParagraphTextMarkerRangeForTextMarker: (AXTextMarkerRef) textMarker
     1532- (id)doAXParagraphTextMarkerRangeForTextMarker: (WebCoreTextMarker *) textMarker
    15631533{
    15641534    VisiblePosition visiblePos = [self visiblePositionForTextMarker:textMarker];
     
    15691539}
    15701540
    1571 - (id)doAXNextWordEndTextMarkerForTextMarker: (AXTextMarkerRef) textMarker
     1541- (id)doAXNextWordEndTextMarkerForTextMarker: (WebCoreTextMarker *) textMarker
    15721542{
    15731543    VisiblePosition visiblePos = [self visiblePositionForTextMarker:textMarker];
     
    15841554}
    15851555
    1586 - (id)doAXPreviousWordStartTextMarkerForTextMarker: (AXTextMarkerRef) textMarker
     1556- (id)doAXPreviousWordStartTextMarkerForTextMarker: (WebCoreTextMarker *) textMarker
    15871557{
    15881558    VisiblePosition visiblePos = [self visiblePositionForTextMarker:textMarker];
     
    15991569}
    16001570
    1601 - (id)doAXNextLineEndTextMarkerForTextMarker: (AXTextMarkerRef) textMarker
     1571- (id)doAXNextLineEndTextMarkerForTextMarker: (WebCoreTextMarker *) textMarker
    16021572{
    16031573    VisiblePosition visiblePos = [self visiblePositionForTextMarker:textMarker];
     
    16141584}
    16151585
    1616 - (id)doAXPreviousLineStartTextMarkerForTextMarker: (AXTextMarkerRef) textMarker
     1586- (id)doAXPreviousLineStartTextMarkerForTextMarker: (WebCoreTextMarker *) textMarker
    16171587{
    16181588    VisiblePosition visiblePos = [self visiblePositionForTextMarker:textMarker];
     
    16291599}
    16301600
    1631 - (id)doAXNextSentenceEndTextMarkerForTextMarker: (AXTextMarkerRef) textMarker
     1601- (id)doAXNextSentenceEndTextMarkerForTextMarker: (WebCoreTextMarker *) textMarker
    16321602{
    16331603    // NOTE: BUG FO 2 IMPLEMENT (currently returns incorrect answer)
     
    16461616}
    16471617
    1648 - (id)doAXPreviousSentenceStartTextMarkerForTextMarker: (AXTextMarkerRef) textMarker
     1618- (id)doAXPreviousSentenceStartTextMarkerForTextMarker: (WebCoreTextMarker *) textMarker
    16491619{
    16501620    // NOTE: BUG FO 2 IMPLEMENT (currently returns incorrect answer)
     
    16631633}
    16641634
    1665 - (id)doAXNextParagraphEndTextMarkerForTextMarker: (AXTextMarkerRef) textMarker
     1635- (id)doAXNextParagraphEndTextMarkerForTextMarker: (WebCoreTextMarker *) textMarker
    16661636{
    16671637    VisiblePosition visiblePos = [self visiblePositionForTextMarker:textMarker];
     
    16781648}
    16791649
    1680 - (id)doAXPreviousParagraphStartTextMarkerForTextMarker: (AXTextMarkerRef) textMarker
     1650- (id)doAXPreviousParagraphStartTextMarkerForTextMarker: (WebCoreTextMarker *) textMarker
    16811651{
    16821652    VisiblePosition visiblePos = [self visiblePositionForTextMarker:textMarker];
     
    16931663}
    16941664
    1695 - (id)doAXLengthForTextMarkerRange: (AXTextMarkerRangeRef) textMarkerRange
     1665- (id)doAXLengthForTextMarkerRange: (WebCoreTextMarkerRange *) textMarkerRange
    16961666{
    16971667    // NOTE: BUG Multi-byte support
     
    17051675- (id)accessibilityAttributeValue:(NSString *)attribute forParameter:(id)parameter
    17061676{
    1707     AXTextMarkerRef         textMarker = nil;
    1708     AXTextMarkerRangeRef    textMarkerRange = nil;
     1677    WebCoreTextMarker *     textMarker = nil;
     1678    WebCoreTextMarkerRange *textMarkerRange = nil;
    17091679    NSNumber *              number = nil;
    17101680    NSArray *               array = nil;
     
    17121682    NSPoint                 point = {0.0, 0.0};
    17131683    bool                    pointSet = false;
    1714     CFTypeID                paramType;
    17151684   
    17161685    // basic parameter validation
     
    17211690    // NOTE: This assumes nil is not a valid parameter, because it is indistinguishable from
    17221691    // a parameter of the wrong type.
    1723     paramType = CFGetTypeID(parameter);
    1724     if (paramType == AXTextMarkerGetTypeID())
    1725         textMarker = (AXTextMarkerRef) parameter;
    1726 
    1727     else if (paramType == AXTextMarkerRangeGetTypeID())
    1728         textMarkerRange = (AXTextMarkerRangeRef) parameter;
     1692    if ([[WebCoreViewFactory sharedFactory] objectIsTextMarker:parameter])
     1693        textMarker = (WebCoreTextMarker *) parameter;
     1694
     1695    else if ([[WebCoreViewFactory sharedFactory] objectIsTextMarkerRange:parameter])
     1696        textMarkerRange = (WebCoreTextMarkerRange *) parameter;
    17291697
    17301698    else if ([parameter isKindOfClass:[KWQAccObject self]])
     
    17551723        return [self doAXTextMarkerRangeForUIElement: uiElement];
    17561724
    1757     if ([attribute isEqualToString: (NSString *) kAXLineForTextMarkerParameterizedAttribute])
     1725    if ([attribute isEqualToString: @"AXLineForTextMarker"])
    17581726        return [self doAXLineForTextMarker: textMarker];
    17591727
    1760     if ([attribute isEqualToString: (NSString *) kAXTextMarkerRangeForLineParameterizedAttribute])
     1728    if ([attribute isEqualToString: @"AXTextMarkerRangeForLine"])
    17611729        return [self doAXTextMarkerRangeForLine: number];
    17621730
    1763     if ([attribute isEqualToString: (NSString *) kAXStringForTextMarkerRangeParameterizedAttribute])
     1731    if ([attribute isEqualToString: @"AXStringForTextMarkerRange"])
    17641732        return [self doAXStringForTextMarkerRange: textMarkerRange];
    17651733
    1766     if ([attribute isEqualToString: (NSString *) kAXTextMarkerForPositionParameterizedAttribute])
     1734    if ([attribute isEqualToString: @"AXTextMarkerForPosition"])
    17671735        return pointSet ? [self doAXTextMarkerForPosition: point] : nil;
    17681736
    1769     if ([attribute isEqualToString: (NSString *) kAXBoundsForTextMarkerRangeParameterizedAttribute])
     1737    if ([attribute isEqualToString: @"AXBoundsForTextMarkerRange"])
    17701738        return [self doAXBoundsForTextMarkerRange: textMarkerRange];
    17711739
    1772     if ([attribute isEqualToString: (NSString *) kAXAttributedStringForTextMarkerRangeParameterizedAttribute])
     1740    if ([attribute isEqualToString: @"AXAttributedStringForTextMarkerRange"])
    17731741        return [self doAXAttributedStringForTextMarkerRange: textMarkerRange];
    17741742
    1775     if ([attribute isEqualToString: (NSString *) kAXTextMarkerRangeForUnorderedTextMarkersParameterizedAttribute])
     1743    if ([attribute isEqualToString: @"AXTextMarkerRangeForUnorderedTextMarkers"])
    17761744        return [self doAXTextMarkerRangeForUnorderedTextMarkers: array];
    17771745
    1778     if ([attribute isEqualToString: (NSString *) kAXNextTextMarkerForTextMarkerParameterizedAttribute])
     1746    if ([attribute isEqualToString: @"AXNextTextMarkerForTextMarker"])
    17791747        return [self doAXNextTextMarkerForTextMarker: textMarker];
    17801748
    1781     if ([attribute isEqualToString: (NSString *) kAXPreviousTextMarkerForTextMarkerParameterizedAttribute])
     1749    if ([attribute isEqualToString: @"AXPreviousTextMarkerForTextMarker"])
    17821750        return [self doAXPreviousTextMarkerForTextMarker: textMarker];
    17831751
    1784     if ([attribute isEqualToString: (NSString *) kAXLeftWordTextMarkerRangeForTextMarkerParameterizedAttribute])
     1752    if ([attribute isEqualToString: @"AXLeftWordTextMarkerRangeForTextMarker"])
    17851753        return [self doAXLeftWordTextMarkerRangeForTextMarker: textMarker];
    17861754
    1787     if ([attribute isEqualToString: (NSString *) kAXRightWordTextMarkerRangeForTextMarkerParameterizedAttribute])
     1755    if ([attribute isEqualToString: @"AXRightWordTextMarkerRangeForTextMarker"])
    17881756        return [self doAXRightWordTextMarkerRangeForTextMarker: textMarker];
    17891757
    1790     if ([attribute isEqualToString: (NSString *) kAXLeftLineTextMarkerRangeForTextMarkerParameterizedAttribute])
     1758    if ([attribute isEqualToString: @"AXLeftLineTextMarkerRangeForTextMarker"])
    17911759        return [self doAXLeftLineTextMarkerRangeForTextMarker: textMarker];
    17921760
    1793     if ([attribute isEqualToString: (NSString *) kAXRightLineTextMarkerRangeForTextMarkerParameterizedAttribute])
     1761    if ([attribute isEqualToString: @"AXRightLineTextMarkerRangeForTextMarker"])
    17941762        return [self doAXRightLineTextMarkerRangeForTextMarker: textMarker];
    17951763
    1796     if ([attribute isEqualToString: (NSString *) kAXSentenceTextMarkerRangeForTextMarkerParameterizedAttribute])
     1764    if ([attribute isEqualToString: @"AXSentenceTextMarkerRangeForTextMarker"])
    17971765        return [self doAXSentenceTextMarkerRangeForTextMarker: textMarker];
    17981766
    1799     if ([attribute isEqualToString: (NSString *) kAXParagraphTextMarkerRangeForTextMarkerParameterizedAttribute])
     1767    if ([attribute isEqualToString: @"AXParagraphTextMarkerRangeForTextMarker"])
    18001768        return [self doAXParagraphTextMarkerRangeForTextMarker: textMarker];
    18011769
    1802     if ([attribute isEqualToString: (NSString *) kAXNextWordEndTextMarkerForTextMarkerParameterizedAttribute])
     1770    if ([attribute isEqualToString: @"AXNextWordEndTextMarkerForTextMarker"])
    18031771        return [self doAXNextWordEndTextMarkerForTextMarker: textMarker];
    18041772
    1805     if ([attribute isEqualToString: (NSString *) kAXPreviousWordStartTextMarkerForTextMarkerParameterizedAttribute])
     1773    if ([attribute isEqualToString: @"AXPreviousWordStartTextMarkerForTextMarker"])
    18061774        return [self doAXPreviousWordStartTextMarkerForTextMarker: textMarker];
    18071775       
    1808     if ([attribute isEqualToString: (NSString *) kAXNextLineEndTextMarkerForTextMarkerParameterizedAttribute])
     1776    if ([attribute isEqualToString: @"AXNextLineEndTextMarkerForTextMarker"])
    18091777        return [self doAXNextLineEndTextMarkerForTextMarker: textMarker];
    18101778       
    1811     if ([attribute isEqualToString: (NSString *) kAXPreviousLineStartTextMarkerForTextMarkerParameterizedAttribute])
     1779    if ([attribute isEqualToString: @"AXPreviousLineStartTextMarkerForTextMarker"])
    18121780        return [self doAXPreviousLineStartTextMarkerForTextMarker: textMarker];
    18131781       
    1814     if ([attribute isEqualToString: (NSString *) kAXNextSentenceEndTextMarkerForTextMarkerParameterizedAttribute])
     1782    if ([attribute isEqualToString: @"AXNextSentenceEndTextMarkerForTextMarker"])
    18151783        return [self doAXNextSentenceEndTextMarkerForTextMarker: textMarker];
    18161784       
    1817     if ([attribute isEqualToString: (NSString *) kAXPreviousSentenceStartTextMarkerForTextMarkerParameterizedAttribute])
     1785    if ([attribute isEqualToString: @"AXPreviousSentenceStartTextMarkerForTextMarker"])
    18181786        return [self doAXPreviousSentenceStartTextMarkerForTextMarker: textMarker];
    18191787       
    1820     if ([attribute isEqualToString: (NSString *) kAXNextParagraphEndTextMarkerForTextMarkerParameterizedAttribute])
     1788    if ([attribute isEqualToString: @"AXNextParagraphEndTextMarkerForTextMarker"])
    18211789        return [self doAXNextParagraphEndTextMarkerForTextMarker: textMarker];
    18221790
    1823     if ([attribute isEqualToString: (NSString *) kAXPreviousParagraphStartTextMarkerForTextMarkerParameterizedAttribute])
     1791    if ([attribute isEqualToString: @"AXPreviousParagraphStartTextMarkerForTextMarker"])
    18241792        return [self doAXPreviousParagraphStartTextMarkerForTextMarker: textMarker];
    18251793       
    1826     if ([attribute isEqualToString: (NSString *) kAXLengthForTextMarkerRangeParameterizedAttribute])
     1794    if ([attribute isEqualToString: @"AXLengthForTextMarkerRange"])
    18271795        return [self doAXLengthForTextMarkerRange: textMarkerRange];
    18281796
     
    19141882// no parameterized attributes in Panther... they were introduced in Tiger
    19151883#else
    1916     if ([attributeName isEqualToString: (NSString *) kAXSelectedTextMarkerRangeAttribute])
     1884    if ([attributeName isEqualToString: @"AXSelectedTextMarkerRangeAttribute"])
    19171885        return YES;
    19181886    if ([attributeName isEqualToString: NSAccessibilityFocusedAttribute]) {
     
    19281896// no parameterized attributes in Panther... they were introduced in Tiger
    19291897#else
    1930 - (void)doSetAXSelectedTextMarkerRange: (AXTextMarkerRangeRef)textMarkerRange
     1898- (void)doSetAXSelectedTextMarkerRange: (WebCoreTextMarkerRange *)textMarkerRange
    19311899{
    19321900    // extract the start and end VisiblePosition
     
    19471915- (void)accessibilitySetValue:(id)value forAttribute:(NSString *)attributeName;
    19481916{
    1949     AXTextMarkerRangeRef    textMarkerRange = nil;
     1917    WebCoreTextMarkerRange *textMarkerRange = nil;
    19501918    NSNumber *              number = nil;
    19511919
    19521920    // decode the parameter
    1953     if (CFGetTypeID(value) == AXTextMarkerRangeGetTypeID())
    1954         textMarkerRange = (AXTextMarkerRangeRef) value;
     1921    if ([[WebCoreViewFactory sharedFactory] objectIsTextMarkerRange:value])
     1922        textMarkerRange = (WebCoreTextMarkerRange *) value;
    19551923
    19561924    else if ([value isKindOfClass:[NSNumber self]])
     
    19581926   
    19591927    // handle the command
    1960     if ([attributeName isEqualToString: (NSString *) kAXSelectedTextMarkerRangeAttribute]) {
     1928    if ([attributeName isEqualToString: @"AXSelectedTextMarkerRange"]) {
    19611929        ASSERT(textMarkerRange);
    19621930        [self doSetAXSelectedTextMarkerRange:textMarkerRange];
  • trunk/WebCore/kwq/KWQAccObjectCache.h

    r8309 r9274  
    2525
    2626#include <CoreFoundation/CoreFoundation.h>
    27 #include <ApplicationServices/ApplicationServicesPriv.h>
     27
    2828#include "visible_position.h"
    2929
    3030#ifdef __OBJC__
    3131@class KWQAccObject;
     32@class WebCoreTextMarker;
    3233#else
    3334class KWQAccObject;
     35class WebCoreTextMarker;
    3436#endif
    3537
     
    5557    KWQAccObjectID getAccObjectID(KWQAccObject* accObject);
    5658    void removeAccObjectID(KWQAccObject* accObject);
    57 #if OMIT_TIGER_FEATURES
    58 // no parameterized attributes in Panther... they were introduced in Tiger
    59 #else
    60     AXTextMarkerRef textMarkerForVisiblePosition (const khtml::VisiblePosition &);
    61     khtml::VisiblePosition visiblePositionForTextMarker (AXTextMarkerRef textMarker);
    62 #endif
     59
     60    WebCoreTextMarker *textMarkerForVisiblePosition(const khtml::VisiblePosition &);
     61    khtml::VisiblePosition visiblePositionForTextMarker(WebCoreTextMarker *textMarker);
    6362
    6463    void detach(khtml::RenderObject* renderer);
  • trunk/WebCore/kwq/KWQAccObjectCache.mm

    r8554 r9274  
    11/*
    2  * Copyright (C) 2003 Apple Computer, Inc.  All rights reserved.
     2 * Copyright (C) 2003, 2004, 2005 Apple Computer, Inc.  All rights reserved.
    33 *
    44 * Redistribution and use in source and binary forms, with or without
     
    2424 */
    2525
    26 #include "KWQDOMNode.h"
    27 #include "KWQAccObjectCache.h"
    28 #include "KWQAccObject.h"
    29 #include "KWQAssertions.h"
    30 #include "KWQFoundationExtras.h"
    31 #include <qstring.h>
    32 #include <render_object.h>
     26#import "KWQAccObjectCache.h"
     27
     28#import "KWQAccObject.h"
     29#import "KWQAssertions.h"
     30#import "KWQFoundationExtras.h"
     31#import "KWQString.h"
     32#import "render_object.h"
     33#import "WebCoreViewFactory.h"
    3334
    3435using khtml::EAffinity;
     
    3637using khtml::VisiblePosition;
    3738
    38 // The simple Cocoa calls in this file can't throw.
     39// The simple Cocoa calls in this file don't throw exceptions.
    3940
    4041bool KWQAccObjectCache::gAccessibilityEnabled = false;
     
    155156}
    156157
    157 #if OMIT_TIGER_FEATURES
    158 // no parameterized attributes in Panther... they were introduced in Tiger
    159 #else
    160 AXTextMarkerRef   KWQAccObjectCache::textMarkerForVisiblePosition (const VisiblePosition & visiblePos)
    161 {
    162     KWQTextMarkerData   textMarkerData;
    163     AXTextMarkerRef     textMarker = NULL;   
    164 
     158WebCoreTextMarker *KWQAccObjectCache::textMarkerForVisiblePosition (const VisiblePosition &visiblePos)
     159{
    165160    DOM::Position deepPos = visiblePos.deepEquivalent();
    166161    DOM::NodeImpl* domNode = deepPos.node();
    167     if (domNode == NULL) {
    168         ASSERT(domNode != NULL);
    169         return NULL;
    170     }
     162    ASSERT(domNode != NULL);
     163    if (domNode == NULL)
     164        return nil;
    171165   
    172166    // locate the renderer, which must exist for a visible dom node
     
    178172   
    179173    // create a text marker, adding an ID for the KWQAccObject if needed
     174    KWQTextMarkerData textMarkerData;
    180175    textMarkerData.accObjectID = getAccObjectID(accObject);
    181176    textMarkerData.nodeImpl = domNode;
    182177    textMarkerData.offset = deepPos.offset();
    183178    textMarkerData.affinity = visiblePos.affinity();
    184     textMarker = AXTextMarkerCreate(NULL, (const UInt8*)&textMarkerData, sizeof(textMarkerData));
    185 
    186     // autorelease it because we will never see it again
    187     KWQCFAutorelease(textMarker);
    188     return textMarker;
    189 }
    190 
    191 VisiblePosition   KWQAccObjectCache::visiblePositionForTextMarker (AXTextMarkerRef textMarker)
    192 {
    193     KWQTextMarkerData*  textMarkerData;
    194    
    195     // catch some bad inputs
    196     if (textMarker == NULL)
     179    return [[WebCoreViewFactory sharedFactory] textMarkerWithBytes:&textMarkerData length:sizeof(textMarkerData)];
     180}
     181
     182VisiblePosition KWQAccObjectCache::visiblePositionForTextMarker(WebCoreTextMarker *textMarker)
     183{
     184    KWQTextMarkerData textMarkerData;
     185   
     186    if (![[WebCoreViewFactory sharedFactory] getBytes:&textMarkerData fromTextMarker:textMarker length:sizeof(textMarkerData)])
    197187        return VisiblePosition();
    198188   
    199     if (AXTextMarkerGetLength(textMarker) != sizeof(KWQTextMarkerData)) {
    200         ASSERT (AXTextMarkerGetLength(textMarker) == sizeof(KWQTextMarkerData));
     189    // return empty position if the text marker is no longer valid
     190    if (!accCacheByID || !CFDictionaryContainsKey(accCacheByID, (const void *)textMarkerData.accObjectID))
    201191        return VisiblePosition();
    202     }
    203    
    204     textMarkerData = (KWQTextMarkerData*) AXTextMarkerGetBytePtr(textMarker);
    205     if (textMarkerData == NULL) {
    206         ASSERT(textMarkerData != NULL);
    207         return VisiblePosition();
    208     }
    209 
    210     // return empty position if the text marker is no longer valid
    211     if (!accCacheByID || !CFDictionaryContainsKey(accCacheByID, (const void *)textMarkerData->accObjectID))
    212         return VisiblePosition();
    213192
    214193    // return the position from the data we stored earlier
    215     return VisiblePosition(textMarkerData->nodeImpl, textMarkerData->offset, textMarkerData->affinity);
    216 }
    217 #endif
     194    return VisiblePosition(textMarkerData.nodeImpl, textMarkerData.offset, textMarkerData.affinity);
     195}
    218196
    219197void KWQAccObjectCache::detach(RenderObject* renderer)
     
    248226}
    249227
    250 extern "C" void NSAccessibilityHandleFocusChanged(void);
    251 void KWQAccObjectCache::handleFocusedUIElementChanged(void)
    252 {
    253     // This is an internal AppKit call that does a number of things in addition to
    254     // sending the AXFocusedUIElementChanged notification.  It will call
    255     // will call accessibilityFocusedUIElement() to determine which element
    256     // to include in the notification.
    257     NSAccessibilityHandleFocusChanged();
    258 }
     228void KWQAccObjectCache::handleFocusedUIElementChanged()
     229{
     230    [[WebCoreViewFactory sharedFactory] accessibilityHandleFocusChanged];
     231}
  • trunk/WebCore/kwq/WebCoreBridge.mm

    r9217 r9274  
    2525
    2626#import "WebCoreBridge.h"
    27 
    28 #include <CoreFoundation/CFCharacterSetPriv.h>
    2927
    3028#import "csshelper.h"
  • trunk/WebCore/kwq/WebCoreViewFactory.h

    r6260 r9274  
    11/*
    2  * Copyright (C) 2003 Apple Computer, Inc.  All rights reserved.
     2 * Copyright (C) 2003, 2005 Apple Computer, Inc.  All rights reserved.
    33 *
    44 * Redistribution and use in source and binary forms, with or without
     
    2929@class NSView;
    3030@class WebCoreBridge;
     31@class WebCoreTextMarker;
     32@class WebCoreTextMarkerRange;
    3133
    3234@protocol WebCoreViewFactory
     
    4345
    4446- (NSString *)defaultLanguageCode;
     47
     48- (BOOL)objectIsTextMarker:(id)object;
     49- (BOOL)objectIsTextMarkerRange:(id)object;
     50
     51- (WebCoreTextMarker *)textMarkerWithBytes:(const void *)bytes length:(size_t)length;
     52- (BOOL)getBytes:(void *)bytes fromTextMarker:(WebCoreTextMarker *)textMarker length:(size_t)length;
     53
     54- (WebCoreTextMarkerRange *)textMarkerRangeWithStart:(WebCoreTextMarker *)start end:(WebCoreTextMarker *)end;
     55- (WebCoreTextMarker *)startOfTextMarkerRange:(WebCoreTextMarkerRange *)range;
     56- (WebCoreTextMarker *)endOfTextMarkerRange:(WebCoreTextMarkerRange *)range;
     57
     58- (void)accessibilityHandleFocusChanged;
     59
     60- (AXUIElementRef)AXUIElementForElement:(id)element;
     61- (void)unregisterUniqueIdForUIElement:(id)element;
    4562
    4663- (WebCoreBridge *)bridgeForView:(NSView *)aView;
  • trunk/WebKit/ChangeLog

    r9270 r9274  
     12005-06-04  Darin Adler  <darin@apple.com>
     2
     3        Reviewed by Don.
     4
     5        - did some work to move SPI use from WebCore here (to be moved from here into WebKitSystemInterface)
     6        - fixed so we can compile ICU includes without Apple Internal headers installed
     7
     8        * WebCoreSupport.subproj/WebViewFactory.m:
     9        (-[WebViewFactory objectIsTextMarker:]): Added.
     10        (-[WebViewFactory objectIsTextMarkerRange:]): Added.
     11        (-[WebViewFactory textMarkerWithBytes:length:]): Added.
     12        (-[WebViewFactory getBytes:fromTextMarker:length:]): Added.
     13        (-[WebViewFactory textMarkerRangeWithStart:end:]): Added.
     14        (-[WebViewFactory startOfTextMarkerRange:]): Added.
     15        (-[WebViewFactory endOfTextMarkerRange:]): Added.
     16        (-[WebViewFactory accessibilityHandleFocusChanged]): Added.
     17        (-[WebViewFactory AXUIElementForElement:]): Added.
     18        (-[WebViewFactory unregisterUniqueIdForUIElement:]): Added.
     19
     20        * WebKit.pbproj/project.pbxproj: Added icu to the header search files.
     21        Removed bogus DSTROOT thing from the framework paths (I meant to remove that a while back).
     22
     23        * icu/README: Added.
     24        * icu/unicode/parseerr.h: Added.
     25        * icu/unicode/platform.h: Added.
     26        * icu/unicode/uchar.h: Added.
     27        * icu/unicode/uconfig.h: Added.
     28        * icu/unicode/uidna.h: Added.
     29        * icu/unicode/uiter.h: Added.
     30        * icu/unicode/umachine.h: Added.
     31        * icu/unicode/unorm.h: Added.
     32        * icu/unicode/urename.h: Added.
     33        * icu/unicode/uscript.h: Added.
     34        * icu/unicode/utf.h: Added.
     35        * icu/unicode/utf16.h: Added.
     36        * icu/unicode/utf8.h: Added.
     37        * icu/unicode/utf_old.h: Added.
     38        * icu/unicode/utypes.h: Added.
     39        * icu/unicode/uversion.h: Added.
     40
    1412005-06-04  Maciej Stachowiak  <mjs@apple.com>
    242
  • trunk/WebKit/WebCoreSupport.subproj/WebViewFactory.m

    r9263 r9274  
    1 //
    2 //  WebViewFactory.m
    3 //  WebKit
    4 //
    5 //  Created by Darin Adler on Tue May 07 2002.
    6 //  Copyright (c) 2004 Apple Computer, Inc. All rights reserved.
    7 //
     1/*
     2 * Copyright (C) 2005 Apple Computer, Inc.  All rights reserved.
     3 *
     4 * Redistribution and use in source and binary forms, with or without
     5 * modification, are permitted provided that the following conditions
     6 * are met:
     7 *
     8 * 1.  Redistributions of source code must retain the above copyright
     9 *     notice, this list of conditions and the following disclaimer.
     10 * 2.  Redistributions in binary form must reproduce the above copyright
     11 *     notice, this list of conditions and the following disclaimer in the
     12 *     documentation and/or other materials provided with the distribution.
     13 * 3.  Neither the name of Apple Computer, Inc. ("Apple") nor the names of
     14 *     its contributors may be used to endorse or promote products derived
     15 *     from this software without specific prior written permission.
     16 *
     17 * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
     18 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
     19 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
     20 * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
     21 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
     22 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
     23 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
     24 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
     25 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
     26 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
     27 */
    828
    929#import <WebKit/WebViewFactory.h>
     
    1535#import <WebKit/WebLocalizableStrings.h>
    1636#import <WebKit/WebNSUserDefaultsExtras.h>
     37#import <WebKit/WebNSObjectExtras.h>
    1738#import <WebKit/WebNSViewExtras.h>
    1839#import <WebKit/WebPluginDatabase.h>
     40
     41// FIXME: Move into WebKitSystemInterface
     42#import <ApplicationServices/ApplicationServicesPriv.h>
     43#import <AppKit/NSAccessibility_Private.h>
     44
     45// FIXME: Move into WebKitSystemInterface
     46// Need this call even though it's in NSAccessibilityAPIBridge_Internal.h, so we can't include the header.
     47AXUIElementRef NSAccessibilityCreateAXUIElementRef(id element);
    1948
    2049@interface NSMenu (WebViewFactoryAdditions)
     
    112141}
    113142
     143// FIXME: The guts of this next set of methods needs to move inside WebKitSystemInterface.
     144
     145#if BUILDING_ON_PANTHER
     146
     147- (BOOL)objectIsTextMarker:(id)object
     148{
     149    return NO;
     150}
     151
     152- (BOOL)objectIsTextMarkerRange:(id)object
     153{
     154    return NO;
     155}
     156
     157- (WebCoreTextMarker *)textMarkerWithBytes:(const void *)bytes length:(size_t)length
     158{
     159    return nil;
     160}
     161
     162- (BOOL)getBytes:(void *)bytes fromTextMarker:(WebCoreTextMarker *)textMarker length:(size_t)length
     163{
     164    return NO;
     165}
     166
     167- (WebCoreTextMarkerRange *)textMarkerRangeWithStart:(WebCoreTextMarker *)start end:(WebCoreTextMarker *)end
     168{
     169    return nil;
     170}
     171
     172- (WebCoreTextMarker *)startOfTextMarkerRange:(WebCoreTextMarkerRange *)range
     173{
     174    return nil;
     175}
     176
     177- (WebCoreTextMarker *)endOfTextMarkerRange:(WebCoreTextMarkerRange *)range
     178{
     179    return nil;
     180}
     181
     182#else
     183
     184- (BOOL)objectIsTextMarker:(id)object
     185{
     186    return object != nil && CFGetTypeID(object) == AXTextMarkerGetTypeID();
     187}
     188
     189- (BOOL)objectIsTextMarkerRange:(id)object
     190{
     191    return object != nil && CFGetTypeID(object) == AXTextMarkerRangeGetTypeID();
     192}
     193
     194- (WebCoreTextMarker *)textMarkerWithBytes:(const void *)bytes length:(size_t)length
     195{
     196    return WebCFAutorelease(AXTextMarkerCreate(NULL, (const UInt8 *)bytes, length));
     197}
     198
     199- (BOOL)getBytes:(void *)bytes fromTextMarker:(WebCoreTextMarker *)textMarker length:(size_t)length
     200{
     201    if (textMarker == nil)
     202        return NO;
     203    AXTextMarkerRef ref = (AXTextMarkerRef)textMarker;
     204    ASSERT(CFGetTypeID(ref) == AXTextMarkerGetTypeID());
     205    if (CFGetTypeID(ref) != AXTextMarkerGetTypeID())
     206        return NO;
     207    CFIndex expectedLength = length;
     208    if (AXTextMarkerGetLength(ref) != expectedLength)
     209        return NO;
     210    memcpy(bytes, AXTextMarkerGetBytePtr(ref), length);
     211    return YES;
     212}
     213
     214- (WebCoreTextMarkerRange *)textMarkerRangeWithStart:(WebCoreTextMarker *)start end:(WebCoreTextMarker *)end
     215{
     216    ASSERT(start != nil);
     217    ASSERT(end != nil);
     218    ASSERT(CFGetTypeID(start) == AXTextMarkerGetTypeID());
     219    ASSERT(CFGetTypeID(end) == AXTextMarkerGetTypeID());
     220    return WebCFAutorelease(AXTextMarkerRangeCreate(NULL, (AXTextMarkerRef)start, (AXTextMarkerRef)end));
     221}
     222
     223- (WebCoreTextMarker *)startOfTextMarkerRange:(WebCoreTextMarkerRange *)range
     224{
     225    ASSERT(range != nil);
     226    ASSERT(CFGetTypeID(range) == AXTextMarkerRangeGetTypeID());
     227    return WebCFAutorelease(AXTextMarkerRangeCopyStartMarker((AXTextMarkerRangeRef)range));
     228}
     229
     230- (WebCoreTextMarker *)endOfTextMarkerRange:(WebCoreTextMarkerRange *)range
     231{
     232    ASSERT(range != nil);
     233    ASSERT(CFGetTypeID(range) == AXTextMarkerRangeGetTypeID());
     234    return WebCFAutorelease(AXTextMarkerRangeCopyEndMarker((AXTextMarkerRangeRef)range));
     235}
     236
     237#endif
     238
     239- (void)accessibilityHandleFocusChanged
     240{
     241    NSAccessibilityHandleFocusChanged();
     242}
     243
     244- (AXUIElementRef)AXUIElementForElement:(id)element
     245{
     246    return NSAccessibilityCreateAXUIElementRef(element);
     247}
     248
     249- (void)unregisterUniqueIdForUIElement:(id)element
     250{
     251    NSAccessibilityUnregisterUniqueIdForUIElement(element);
     252}
     253
    114254@end
  • trunk/WebKit/WebKit.pbproj/project.pbxproj

    r9263 r9274  
    18431843                                DYLIB_CURRENT_VERSION = 1;
    18441844                                EXPORTED_SYMBOLS_FILE = WebKit.exp;
    1845                                 FRAMEWORK_SEARCH_PATHS = "$(DSTROOT) /System/Library/Frameworks/WebKit.framework/Frameworks /System/Library/Frameworks/ApplicationServices.framework/Frameworks $(SYSTEM_LIBRARY_DIR)/Frameworks/Carbon.framework/Frameworks /System/Library/PrivateFrameworks /usr/local/SecurityPieces/Frameworks $(DERIVED_FILE_DIR)";
     1845                                FRAMEWORK_SEARCH_PATHS = "/System/Library/Frameworks/WebKit.framework/Frameworks /System/Library/Frameworks/ApplicationServices.framework/Frameworks $(SYSTEM_LIBRARY_DIR)/Frameworks/Carbon.framework/Frameworks /System/Library/PrivateFrameworks /usr/local/SecurityPieces/Frameworks $(DERIVED_FILE_DIR)";
    18461846                                GCC_ENABLE_OBJC_GC = YES;
    18471847                                GCC_FAST_OBJC_DISPATCH = YES;
     
    18531853                                GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES;
    18541854                                GCC_WARN_NON_VIRTUAL_DESTRUCTOR = YES;
     1855                                HEADER_SEARCH_PATHS = icu;
    18551856                                INFOPLIST_FILE = Info.plist;
    18561857                                INSTALL_PATH = /System/Library/Frameworks;
Note: See TracChangeset for help on using the changeset viewer.