Changeset 9274 in webkit
- Timestamp:
- Jun 5, 2005 12:06:58 AM (19 years ago)
- Location:
- trunk
- Files:
-
- 19 added
- 9 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/WebCore/ChangeLog-2005-08-23
r9273 r9274 1 2005-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 1 61 2005-06-04 Darin Adler <darin@apple.com> 2 62 -
trunk/WebCore/kwq/KWQAccObject.mm
r9178 r9274 1 1 /* 2 * Copyright (C) 2004 Apple Computer, Inc. All rights reserved.2 * Copyright (C) 2004, 2005 Apple Computer, Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 24 24 */ 25 25 26 #import "KWQAccObject.h" 27 26 28 // need this until accesstool supports arrays of markers 27 29 #define MARKERARRAY_SELF_TEST 0 28 30 29 // for AXTextMarker support30 #import <ApplicationServices/ApplicationServicesPriv.h>31 32 31 #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 40 33 #import "KWQAccObjectCache.h" 41 34 #import "KWQAssertions.h" … … 44 37 #import "WebCoreBridge.h" 45 38 #import "WebCoreFrameView.h" 39 #import "WebCoreViewFactory.h" 46 40 47 41 #import "dom_docimpl.h" … … 131 125 } 132 126 133 extern "C" void NSAccessibilityUnregisterUniqueIdForUIElement(id element);134 127 -(void)detach 135 128 { 136 129 if ([self accessibilityShouldUseUniqueId]) 137 NSAccessibilityUnregisterUniqueIdForUIElement(self);130 [[WebCoreViewFactory sharedFactory] unregisterUniqueIdForUIElement:self]; 138 131 [m_data release]; 139 132 m_data = 0; … … 656 649 // no parameterized attributes in Panther... they were introduced in Tiger 657 650 #else 658 (NSString *) kAXSelectedTextMarkerRangeAttribute, 659 // (NSString *) kAXVisibleCharacterTextMarkerRangeAttribute, // NOTE: <rdar://problem/3942582> 660 (NSString *) kAXStartTextMarkerAttribute, 661 (NSString *) kAXEndTextMarkerAttribute, 651 @"AXSelectedTextMarkerRange", 652 @"AXStartTextMarker", 653 @"AXEndTextMarker", 662 654 #endif 663 655 nil]; … … 680 672 // no parameterized attributes in Panther... they were introduced in Tiger 681 673 #else 682 (NSString *) kAXSelectedTextMarkerRangeAttribute, 683 // (NSString *) kAXVisibleCharacterTextMarkerRangeAttribute, // NOTE: <rdar://problem/3942582> 684 (NSString *) kAXStartTextMarkerAttribute, 685 (NSString *) kAXEndTextMarkerAttribute, 674 @"AXSelectedTextMarkerRange", 675 @"AXStartTextMarker", 676 @"AXEndTextMarker", 686 677 #endif 687 678 nil]; … … 706 697 // no parameterized attributes in Panther... they were introduced in Tiger 707 698 #else 708 (NSString *) kAXSelectedTextMarkerRangeAttribute, 709 // (NSString *) kAXVisibleCharacterTextMarkerRangeAttribute, // NOTE: NOTE: <rdar://problem/3942582> 710 (NSString *) kAXStartTextMarkerAttribute, 711 (NSString *) kAXEndTextMarkerAttribute, 699 @"AXSelectedTextMarkerRange", 700 @"AXStartTextMarker", 701 @"AXEndTextMarker", 712 702 #endif 713 703 nil]; … … 765 755 } 766 756 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 783 763 { 784 764 if (visiblePos.isNull()) … … 788 768 } 789 769 790 - (VisiblePosition) visiblePositionForTextMarker: ( AXTextMarkerRef)textMarker770 - (VisiblePosition) visiblePositionForTextMarker: (WebCoreTextMarker *)textMarker 791 771 { 792 772 return m_renderer->document()->getAccObjectCache()->visiblePositionForTextMarker(textMarker); 793 773 } 794 774 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]; 817 789 return [self textMarkerRangeFromMarkers: startTextMarker andEndMarker:endTextMarker]; 818 790 } 819 791 820 - ( AXTextMarkerRangeRef)textMarkerRange792 - (WebCoreTextMarkerRange *)textMarkerRange 821 793 { 822 794 if (!m_renderer) 823 795 return nil; 824 796 825 AXTextMarkerRefstartTextMarker = [self textMarkerForVisiblePosition: VisiblePosition(m_renderer->element(), m_renderer->caretMinOffset(), khtml::VP_DEFAULT_AFFINITY)];826 AXTextMarkerRefendTextMarker = [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)]; 827 799 return [self textMarkerRangeFromMarkers: startTextMarker andEndMarker:endTextMarker]; 828 800 } 829 #endif830 801 831 802 - (DocumentImpl *)topDocument … … 943 914 // no parameterized attributes in Panther... they were introduced in Tiger 944 915 #else 945 if ([attributeName isEqualToString: (NSString *) kAXSelectedTextMarkerRangeAttribute]) {916 if ([attributeName isEqualToString: @"AXSelectedTextMarkerRange"]) { 946 917 // get the selection from the document part 947 918 // NOTE: BUG support nested WebAreas, like in <http://webcourses.niu.edu/> … … 961 932 } 962 933 963 if ([attributeName isEqualToString: (NSString *) kAXStartTextMarkerAttribute]) {934 if ([attributeName isEqualToString: @"AXStartTextMarker"]) { 964 935 // FIXME: should use startOfDocument here 965 936 VisiblePosition startPos = [self topRenderer]->positionForCoordinates (0, 0); … … 967 938 } 968 939 969 if ([attributeName isEqualToString: (NSString *) kAXEndTextMarkerAttribute]) {940 if ([attributeName isEqualToString: @"AXEndTextMarker"]) { 970 941 // FIXME: should use endOfDocument here 971 942 VisiblePosition endPos = [self topRenderer]->positionForCoordinates (LONG_MAX, LONG_MAX); … … 987 958 @"AXUIElementForTextMarker", 988 959 @"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", 1014 984 nil]; 1015 985 } … … 1018 988 } 1019 989 1020 - (id)doAXUIElementForTextMarker: ( AXTextMarkerRef) textMarker990 - (id)doAXUIElementForTextMarker: (WebCoreTextMarker *) textMarker 1021 991 { 1022 992 VisiblePosition visiblePos = [self visiblePositionForTextMarker:textMarker]; … … 1036 1006 } 1037 1007 1038 - (id)doAXLineForTextMarker: ( AXTextMarkerRef) textMarker1008 - (id)doAXLineForTextMarker: (WebCoreTextMarker *) textMarker 1039 1009 { 1040 1010 unsigned int lineCount = 0; … … 1090 1060 } 1091 1061 1092 - (id)doAXStringForTextMarkerRange: ( AXTextMarkerRangeRef) textMarkerRange1062 - (id)doAXStringForTextMarkerRange: (WebCoreTextMarkerRange *) textMarkerRange 1093 1063 { 1094 1064 // extract the start and end VisiblePosition … … 1156 1126 } 1157 1127 1158 - (id)doAXBoundsForTextMarkerRange: ( AXTextMarkerRangeRef) textMarkerRange1128 - (id)doAXBoundsForTextMarkerRange: (WebCoreTextMarkerRange *) textMarkerRange 1159 1129 { 1160 1130 … … 1325 1295 if (element != nil) { 1326 1296 // make a serialiazable AX object 1327 AXUIElementRef axElement = NSAccessibilityCreateAXUIElementRef(element);1297 AXUIElementRef axElement = [[WebCoreViewFactory sharedFactory] AXUIElementForElement:element]; 1328 1298 if (axElement != NULL) { 1329 1299 [attrString addAttribute:attribute value:(id)axElement range:range]; … … 1405 1375 } 1406 1376 1407 - (id)doAXAttributedStringForTextMarkerRange: ( AXTextMarkerRangeRef) textMarkerRange1377 - (id)doAXAttributedStringForTextMarkerRange: (WebCoreTextMarkerRange *) textMarkerRange 1408 1378 { 1409 1379 // extract the start and end VisiblePosition … … 1441 1411 { 1442 1412 #if MARKERARRAY_SELF_TEST 1443 AXTextMarkerRangeReftmr = [self getSelectedTextMarkerRange];1444 AXTextMarkerReftm1 = AXTextMarkerRangeCopyEndMarker(tmr);1445 AXTextMarkerReftm2 = AXTextMarkerRangeCopyStartMarker(tmr);1413 WebCoreTextMarkerRange *tmr = [self getSelectedTextMarkerRange]; 1414 WebCoreTextMarker *tm1 = AXTextMarkerRangeCopyEndMarker(tmr); 1415 WebCoreTextMarker *tm2 = AXTextMarkerRangeCopyStartMarker(tmr); 1446 1416 markers = [NSArray arrayWithObjects: (id) tm1, (id) tm2, nil]; 1447 1417 #endif … … 1450 1420 return nil; 1451 1421 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]) 1455 1425 return nil; 1456 1426 … … 1463 1433 // use the Selection class to do the ordering 1464 1434 // NOTE: Perhaps we could add a Selection method to indicate direction, based on m_baseIsStart 1465 AXTextMarkerRefstartTextMarker;1466 AXTextMarkerRefendTextMarker;1435 WebCoreTextMarker *startTextMarker; 1436 WebCoreTextMarker *endTextMarker; 1467 1437 Selection sel(visiblePos1, visiblePos2); 1468 1438 if (sel.base() == sel.start()) { … … 1478 1448 } 1479 1449 1480 - (id)doAXNextTextMarkerForTextMarker: ( AXTextMarkerRef) textMarker1450 - (id)doAXNextTextMarkerForTextMarker: (WebCoreTextMarker *) textMarker 1481 1451 { 1482 1452 VisiblePosition visiblePos = [self visiblePositionForTextMarker:textMarker]; … … 1488 1458 } 1489 1459 1490 - (id)doAXPreviousTextMarkerForTextMarker: ( AXTextMarkerRef) textMarker1460 - (id)doAXPreviousTextMarkerForTextMarker: (WebCoreTextMarker *) textMarker 1491 1461 { 1492 1462 VisiblePosition visiblePos = [self visiblePositionForTextMarker:textMarker]; … … 1498 1468 } 1499 1469 1500 - (id)doAXLeftWordTextMarkerRangeForTextMarker: ( AXTextMarkerRef) textMarker1470 - (id)doAXLeftWordTextMarkerRangeForTextMarker: (WebCoreTextMarker *) textMarker 1501 1471 { 1502 1472 VisiblePosition visiblePos = [self visiblePositionForTextMarker:textMarker]; … … 1507 1477 } 1508 1478 1509 - (id)doAXRightWordTextMarkerRangeForTextMarker: ( AXTextMarkerRef) textMarker1479 - (id)doAXRightWordTextMarkerRangeForTextMarker: (WebCoreTextMarker *) textMarker 1510 1480 { 1511 1481 VisiblePosition visiblePos = [self visiblePositionForTextMarker:textMarker]; … … 1516 1486 } 1517 1487 1518 - (id)doAXLeftLineTextMarkerRangeForTextMarker: ( AXTextMarkerRef) textMarker1488 - (id)doAXLeftLineTextMarkerRangeForTextMarker: (WebCoreTextMarker *) textMarker 1519 1489 { 1520 1490 VisiblePosition visiblePos = [self visiblePositionForTextMarker:textMarker]; … … 1533 1503 } 1534 1504 1535 - (id)doAXRightLineTextMarkerRangeForTextMarker: ( AXTextMarkerRef) textMarker1505 - (id)doAXRightLineTextMarkerRangeForTextMarker: (WebCoreTextMarker *) textMarker 1536 1506 { 1537 1507 VisiblePosition visiblePos = [self visiblePositionForTextMarker:textMarker]; … … 1549 1519 } 1550 1520 1551 - (id)doAXSentenceTextMarkerRangeForTextMarker: ( AXTextMarkerRef) textMarker1521 - (id)doAXSentenceTextMarkerRangeForTextMarker: (WebCoreTextMarker *) textMarker 1552 1522 { 1553 1523 // NOTE: BUG FO 2 IMPLEMENT (currently returns incorrect answer) … … 1560 1530 } 1561 1531 1562 - (id)doAXParagraphTextMarkerRangeForTextMarker: ( AXTextMarkerRef) textMarker1532 - (id)doAXParagraphTextMarkerRangeForTextMarker: (WebCoreTextMarker *) textMarker 1563 1533 { 1564 1534 VisiblePosition visiblePos = [self visiblePositionForTextMarker:textMarker]; … … 1569 1539 } 1570 1540 1571 - (id)doAXNextWordEndTextMarkerForTextMarker: ( AXTextMarkerRef) textMarker1541 - (id)doAXNextWordEndTextMarkerForTextMarker: (WebCoreTextMarker *) textMarker 1572 1542 { 1573 1543 VisiblePosition visiblePos = [self visiblePositionForTextMarker:textMarker]; … … 1584 1554 } 1585 1555 1586 - (id)doAXPreviousWordStartTextMarkerForTextMarker: ( AXTextMarkerRef) textMarker1556 - (id)doAXPreviousWordStartTextMarkerForTextMarker: (WebCoreTextMarker *) textMarker 1587 1557 { 1588 1558 VisiblePosition visiblePos = [self visiblePositionForTextMarker:textMarker]; … … 1599 1569 } 1600 1570 1601 - (id)doAXNextLineEndTextMarkerForTextMarker: ( AXTextMarkerRef) textMarker1571 - (id)doAXNextLineEndTextMarkerForTextMarker: (WebCoreTextMarker *) textMarker 1602 1572 { 1603 1573 VisiblePosition visiblePos = [self visiblePositionForTextMarker:textMarker]; … … 1614 1584 } 1615 1585 1616 - (id)doAXPreviousLineStartTextMarkerForTextMarker: ( AXTextMarkerRef) textMarker1586 - (id)doAXPreviousLineStartTextMarkerForTextMarker: (WebCoreTextMarker *) textMarker 1617 1587 { 1618 1588 VisiblePosition visiblePos = [self visiblePositionForTextMarker:textMarker]; … … 1629 1599 } 1630 1600 1631 - (id)doAXNextSentenceEndTextMarkerForTextMarker: ( AXTextMarkerRef) textMarker1601 - (id)doAXNextSentenceEndTextMarkerForTextMarker: (WebCoreTextMarker *) textMarker 1632 1602 { 1633 1603 // NOTE: BUG FO 2 IMPLEMENT (currently returns incorrect answer) … … 1646 1616 } 1647 1617 1648 - (id)doAXPreviousSentenceStartTextMarkerForTextMarker: ( AXTextMarkerRef) textMarker1618 - (id)doAXPreviousSentenceStartTextMarkerForTextMarker: (WebCoreTextMarker *) textMarker 1649 1619 { 1650 1620 // NOTE: BUG FO 2 IMPLEMENT (currently returns incorrect answer) … … 1663 1633 } 1664 1634 1665 - (id)doAXNextParagraphEndTextMarkerForTextMarker: ( AXTextMarkerRef) textMarker1635 - (id)doAXNextParagraphEndTextMarkerForTextMarker: (WebCoreTextMarker *) textMarker 1666 1636 { 1667 1637 VisiblePosition visiblePos = [self visiblePositionForTextMarker:textMarker]; … … 1678 1648 } 1679 1649 1680 - (id)doAXPreviousParagraphStartTextMarkerForTextMarker: ( AXTextMarkerRef) textMarker1650 - (id)doAXPreviousParagraphStartTextMarkerForTextMarker: (WebCoreTextMarker *) textMarker 1681 1651 { 1682 1652 VisiblePosition visiblePos = [self visiblePositionForTextMarker:textMarker]; … … 1693 1663 } 1694 1664 1695 - (id)doAXLengthForTextMarkerRange: ( AXTextMarkerRangeRef) textMarkerRange1665 - (id)doAXLengthForTextMarkerRange: (WebCoreTextMarkerRange *) textMarkerRange 1696 1666 { 1697 1667 // NOTE: BUG Multi-byte support … … 1705 1675 - (id)accessibilityAttributeValue:(NSString *)attribute forParameter:(id)parameter 1706 1676 { 1707 AXTextMarkerReftextMarker = nil;1708 AXTextMarkerRangeReftextMarkerRange = nil;1677 WebCoreTextMarker * textMarker = nil; 1678 WebCoreTextMarkerRange *textMarkerRange = nil; 1709 1679 NSNumber * number = nil; 1710 1680 NSArray * array = nil; … … 1712 1682 NSPoint point = {0.0, 0.0}; 1713 1683 bool pointSet = false; 1714 CFTypeID paramType;1715 1684 1716 1685 // basic parameter validation … … 1721 1690 // NOTE: This assumes nil is not a valid parameter, because it is indistinguishable from 1722 1691 // 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; 1729 1697 1730 1698 else if ([parameter isKindOfClass:[KWQAccObject self]]) … … 1755 1723 return [self doAXTextMarkerRangeForUIElement: uiElement]; 1756 1724 1757 if ([attribute isEqualToString: (NSString *) kAXLineForTextMarkerParameterizedAttribute])1725 if ([attribute isEqualToString: @"AXLineForTextMarker"]) 1758 1726 return [self doAXLineForTextMarker: textMarker]; 1759 1727 1760 if ([attribute isEqualToString: (NSString *) kAXTextMarkerRangeForLineParameterizedAttribute])1728 if ([attribute isEqualToString: @"AXTextMarkerRangeForLine"]) 1761 1729 return [self doAXTextMarkerRangeForLine: number]; 1762 1730 1763 if ([attribute isEqualToString: (NSString *) kAXStringForTextMarkerRangeParameterizedAttribute])1731 if ([attribute isEqualToString: @"AXStringForTextMarkerRange"]) 1764 1732 return [self doAXStringForTextMarkerRange: textMarkerRange]; 1765 1733 1766 if ([attribute isEqualToString: (NSString *) kAXTextMarkerForPositionParameterizedAttribute])1734 if ([attribute isEqualToString: @"AXTextMarkerForPosition"]) 1767 1735 return pointSet ? [self doAXTextMarkerForPosition: point] : nil; 1768 1736 1769 if ([attribute isEqualToString: (NSString *) kAXBoundsForTextMarkerRangeParameterizedAttribute])1737 if ([attribute isEqualToString: @"AXBoundsForTextMarkerRange"]) 1770 1738 return [self doAXBoundsForTextMarkerRange: textMarkerRange]; 1771 1739 1772 if ([attribute isEqualToString: (NSString *) kAXAttributedStringForTextMarkerRangeParameterizedAttribute])1740 if ([attribute isEqualToString: @"AXAttributedStringForTextMarkerRange"]) 1773 1741 return [self doAXAttributedStringForTextMarkerRange: textMarkerRange]; 1774 1742 1775 if ([attribute isEqualToString: (NSString *) kAXTextMarkerRangeForUnorderedTextMarkersParameterizedAttribute])1743 if ([attribute isEqualToString: @"AXTextMarkerRangeForUnorderedTextMarkers"]) 1776 1744 return [self doAXTextMarkerRangeForUnorderedTextMarkers: array]; 1777 1745 1778 if ([attribute isEqualToString: (NSString *) kAXNextTextMarkerForTextMarkerParameterizedAttribute])1746 if ([attribute isEqualToString: @"AXNextTextMarkerForTextMarker"]) 1779 1747 return [self doAXNextTextMarkerForTextMarker: textMarker]; 1780 1748 1781 if ([attribute isEqualToString: (NSString *) kAXPreviousTextMarkerForTextMarkerParameterizedAttribute])1749 if ([attribute isEqualToString: @"AXPreviousTextMarkerForTextMarker"]) 1782 1750 return [self doAXPreviousTextMarkerForTextMarker: textMarker]; 1783 1751 1784 if ([attribute isEqualToString: (NSString *) kAXLeftWordTextMarkerRangeForTextMarkerParameterizedAttribute])1752 if ([attribute isEqualToString: @"AXLeftWordTextMarkerRangeForTextMarker"]) 1785 1753 return [self doAXLeftWordTextMarkerRangeForTextMarker: textMarker]; 1786 1754 1787 if ([attribute isEqualToString: (NSString *) kAXRightWordTextMarkerRangeForTextMarkerParameterizedAttribute])1755 if ([attribute isEqualToString: @"AXRightWordTextMarkerRangeForTextMarker"]) 1788 1756 return [self doAXRightWordTextMarkerRangeForTextMarker: textMarker]; 1789 1757 1790 if ([attribute isEqualToString: (NSString *) kAXLeftLineTextMarkerRangeForTextMarkerParameterizedAttribute])1758 if ([attribute isEqualToString: @"AXLeftLineTextMarkerRangeForTextMarker"]) 1791 1759 return [self doAXLeftLineTextMarkerRangeForTextMarker: textMarker]; 1792 1760 1793 if ([attribute isEqualToString: (NSString *) kAXRightLineTextMarkerRangeForTextMarkerParameterizedAttribute])1761 if ([attribute isEqualToString: @"AXRightLineTextMarkerRangeForTextMarker"]) 1794 1762 return [self doAXRightLineTextMarkerRangeForTextMarker: textMarker]; 1795 1763 1796 if ([attribute isEqualToString: (NSString *) kAXSentenceTextMarkerRangeForTextMarkerParameterizedAttribute])1764 if ([attribute isEqualToString: @"AXSentenceTextMarkerRangeForTextMarker"]) 1797 1765 return [self doAXSentenceTextMarkerRangeForTextMarker: textMarker]; 1798 1766 1799 if ([attribute isEqualToString: (NSString *) kAXParagraphTextMarkerRangeForTextMarkerParameterizedAttribute])1767 if ([attribute isEqualToString: @"AXParagraphTextMarkerRangeForTextMarker"]) 1800 1768 return [self doAXParagraphTextMarkerRangeForTextMarker: textMarker]; 1801 1769 1802 if ([attribute isEqualToString: (NSString *) kAXNextWordEndTextMarkerForTextMarkerParameterizedAttribute])1770 if ([attribute isEqualToString: @"AXNextWordEndTextMarkerForTextMarker"]) 1803 1771 return [self doAXNextWordEndTextMarkerForTextMarker: textMarker]; 1804 1772 1805 if ([attribute isEqualToString: (NSString *) kAXPreviousWordStartTextMarkerForTextMarkerParameterizedAttribute])1773 if ([attribute isEqualToString: @"AXPreviousWordStartTextMarkerForTextMarker"]) 1806 1774 return [self doAXPreviousWordStartTextMarkerForTextMarker: textMarker]; 1807 1775 1808 if ([attribute isEqualToString: (NSString *) kAXNextLineEndTextMarkerForTextMarkerParameterizedAttribute])1776 if ([attribute isEqualToString: @"AXNextLineEndTextMarkerForTextMarker"]) 1809 1777 return [self doAXNextLineEndTextMarkerForTextMarker: textMarker]; 1810 1778 1811 if ([attribute isEqualToString: (NSString *) kAXPreviousLineStartTextMarkerForTextMarkerParameterizedAttribute])1779 if ([attribute isEqualToString: @"AXPreviousLineStartTextMarkerForTextMarker"]) 1812 1780 return [self doAXPreviousLineStartTextMarkerForTextMarker: textMarker]; 1813 1781 1814 if ([attribute isEqualToString: (NSString *) kAXNextSentenceEndTextMarkerForTextMarkerParameterizedAttribute])1782 if ([attribute isEqualToString: @"AXNextSentenceEndTextMarkerForTextMarker"]) 1815 1783 return [self doAXNextSentenceEndTextMarkerForTextMarker: textMarker]; 1816 1784 1817 if ([attribute isEqualToString: (NSString *) kAXPreviousSentenceStartTextMarkerForTextMarkerParameterizedAttribute])1785 if ([attribute isEqualToString: @"AXPreviousSentenceStartTextMarkerForTextMarker"]) 1818 1786 return [self doAXPreviousSentenceStartTextMarkerForTextMarker: textMarker]; 1819 1787 1820 if ([attribute isEqualToString: (NSString *) kAXNextParagraphEndTextMarkerForTextMarkerParameterizedAttribute])1788 if ([attribute isEqualToString: @"AXNextParagraphEndTextMarkerForTextMarker"]) 1821 1789 return [self doAXNextParagraphEndTextMarkerForTextMarker: textMarker]; 1822 1790 1823 if ([attribute isEqualToString: (NSString *) kAXPreviousParagraphStartTextMarkerForTextMarkerParameterizedAttribute])1791 if ([attribute isEqualToString: @"AXPreviousParagraphStartTextMarkerForTextMarker"]) 1824 1792 return [self doAXPreviousParagraphStartTextMarkerForTextMarker: textMarker]; 1825 1793 1826 if ([attribute isEqualToString: (NSString *) kAXLengthForTextMarkerRangeParameterizedAttribute])1794 if ([attribute isEqualToString: @"AXLengthForTextMarkerRange"]) 1827 1795 return [self doAXLengthForTextMarkerRange: textMarkerRange]; 1828 1796 … … 1914 1882 // no parameterized attributes in Panther... they were introduced in Tiger 1915 1883 #else 1916 if ([attributeName isEqualToString: (NSString *) kAXSelectedTextMarkerRangeAttribute])1884 if ([attributeName isEqualToString: @"AXSelectedTextMarkerRangeAttribute"]) 1917 1885 return YES; 1918 1886 if ([attributeName isEqualToString: NSAccessibilityFocusedAttribute]) { … … 1928 1896 // no parameterized attributes in Panther... they were introduced in Tiger 1929 1897 #else 1930 - (void)doSetAXSelectedTextMarkerRange: ( AXTextMarkerRangeRef)textMarkerRange1898 - (void)doSetAXSelectedTextMarkerRange: (WebCoreTextMarkerRange *)textMarkerRange 1931 1899 { 1932 1900 // extract the start and end VisiblePosition … … 1947 1915 - (void)accessibilitySetValue:(id)value forAttribute:(NSString *)attributeName; 1948 1916 { 1949 AXTextMarkerRangeReftextMarkerRange = nil;1917 WebCoreTextMarkerRange *textMarkerRange = nil; 1950 1918 NSNumber * number = nil; 1951 1919 1952 1920 // decode the parameter 1953 if ( CFGetTypeID(value) == AXTextMarkerRangeGetTypeID())1954 textMarkerRange = ( AXTextMarkerRangeRef) value;1921 if ([[WebCoreViewFactory sharedFactory] objectIsTextMarkerRange:value]) 1922 textMarkerRange = (WebCoreTextMarkerRange *) value; 1955 1923 1956 1924 else if ([value isKindOfClass:[NSNumber self]]) … … 1958 1926 1959 1927 // handle the command 1960 if ([attributeName isEqualToString: (NSString *) kAXSelectedTextMarkerRangeAttribute]) {1928 if ([attributeName isEqualToString: @"AXSelectedTextMarkerRange"]) { 1961 1929 ASSERT(textMarkerRange); 1962 1930 [self doSetAXSelectedTextMarkerRange:textMarkerRange]; -
trunk/WebCore/kwq/KWQAccObjectCache.h
r8309 r9274 25 25 26 26 #include <CoreFoundation/CoreFoundation.h> 27 #include <ApplicationServices/ApplicationServicesPriv.h> 27 28 28 #include "visible_position.h" 29 29 30 30 #ifdef __OBJC__ 31 31 @class KWQAccObject; 32 @class WebCoreTextMarker; 32 33 #else 33 34 class KWQAccObject; 35 class WebCoreTextMarker; 34 36 #endif 35 37 … … 55 57 KWQAccObjectID getAccObjectID(KWQAccObject* accObject); 56 58 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); 63 62 64 63 void detach(khtml::RenderObject* renderer); -
trunk/WebCore/kwq/KWQAccObjectCache.mm
r8554 r9274 1 1 /* 2 * Copyright (C) 2003 Apple Computer, Inc. All rights reserved.2 * Copyright (C) 2003, 2004, 2005 Apple Computer, Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 24 24 */ 25 25 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" 33 34 34 35 using khtml::EAffinity; … … 36 37 using khtml::VisiblePosition; 37 38 38 // The simple Cocoa calls in this file can't throw.39 // The simple Cocoa calls in this file don't throw exceptions. 39 40 40 41 bool KWQAccObjectCache::gAccessibilityEnabled = false; … … 155 156 } 156 157 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 158 WebCoreTextMarker *KWQAccObjectCache::textMarkerForVisiblePosition (const VisiblePosition &visiblePos) 159 { 165 160 DOM::Position deepPos = visiblePos.deepEquivalent(); 166 161 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; 171 165 172 166 // locate the renderer, which must exist for a visible dom node … … 178 172 179 173 // create a text marker, adding an ID for the KWQAccObject if needed 174 KWQTextMarkerData textMarkerData; 180 175 textMarkerData.accObjectID = getAccObjectID(accObject); 181 176 textMarkerData.nodeImpl = domNode; 182 177 textMarkerData.offset = deepPos.offset(); 183 178 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 182 VisiblePosition KWQAccObjectCache::visiblePositionForTextMarker(WebCoreTextMarker *textMarker) 183 { 184 KWQTextMarkerData textMarkerData; 185 186 if (![[WebCoreViewFactory sharedFactory] getBytes:&textMarkerData fromTextMarker:textMarker length:sizeof(textMarkerData)]) 197 187 return VisiblePosition(); 198 188 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)) 201 191 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 valid211 if (!accCacheByID || !CFDictionaryContainsKey(accCacheByID, (const void *)textMarkerData->accObjectID))212 return VisiblePosition();213 192 214 193 // 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 } 218 196 219 197 void KWQAccObjectCache::detach(RenderObject* renderer) … … 248 226 } 249 227 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 } 228 void KWQAccObjectCache::handleFocusedUIElementChanged() 229 { 230 [[WebCoreViewFactory sharedFactory] accessibilityHandleFocusChanged]; 231 } -
trunk/WebCore/kwq/WebCoreBridge.mm
r9217 r9274 25 25 26 26 #import "WebCoreBridge.h" 27 28 #include <CoreFoundation/CFCharacterSetPriv.h>29 27 30 28 #import "csshelper.h" -
trunk/WebCore/kwq/WebCoreViewFactory.h
r6260 r9274 1 1 /* 2 * Copyright (C) 2003 Apple Computer, Inc. All rights reserved.2 * Copyright (C) 2003, 2005 Apple Computer, Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 29 29 @class NSView; 30 30 @class WebCoreBridge; 31 @class WebCoreTextMarker; 32 @class WebCoreTextMarkerRange; 31 33 32 34 @protocol WebCoreViewFactory … … 43 45 44 46 - (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; 45 62 46 63 - (WebCoreBridge *)bridgeForView:(NSView *)aView; -
trunk/WebKit/ChangeLog
r9270 r9274 1 2005-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 1 41 2005-06-04 Maciej Stachowiak <mjs@apple.com> 2 42 -
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 */ 8 28 9 29 #import <WebKit/WebViewFactory.h> … … 15 35 #import <WebKit/WebLocalizableStrings.h> 16 36 #import <WebKit/WebNSUserDefaultsExtras.h> 37 #import <WebKit/WebNSObjectExtras.h> 17 38 #import <WebKit/WebNSViewExtras.h> 18 39 #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. 47 AXUIElementRef NSAccessibilityCreateAXUIElementRef(id element); 19 48 20 49 @interface NSMenu (WebViewFactoryAdditions) … … 112 141 } 113 142 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 114 254 @end -
trunk/WebKit/WebKit.pbproj/project.pbxproj
r9263 r9274 1843 1843 DYLIB_CURRENT_VERSION = 1; 1844 1844 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)"; 1846 1846 GCC_ENABLE_OBJC_GC = YES; 1847 1847 GCC_FAST_OBJC_DISPATCH = YES; … … 1853 1853 GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES; 1854 1854 GCC_WARN_NON_VIRTUAL_DESTRUCTOR = YES; 1855 HEADER_SEARCH_PATHS = icu; 1855 1856 INFOPLIST_FILE = Info.plist; 1856 1857 INSTALL_PATH = /System/Library/Frameworks;
Note: See TracChangeset
for help on using the changeset viewer.