| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2008, 2009, 2010 Apple Inc. All rights reserved. | 2 * Copyright (C) 2008, 2009, 2010 Apple Inc. All rights reserved. |
| 3 * | 3 * |
| 4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
| 5 * modification, are permitted provided that the following conditions | 5 * modification, are permitted provided that the following conditions |
| 6 * are met: | 6 * are met: |
| 7 * | 7 * |
| 8 * 1. Redistributions of source code must retain the above copyright | 8 * 1. Redistributions of source code must retain the above copyright |
| 9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
| 10 * 2. Redistributions in binary form must reproduce the above copyright | 10 * 2. Redistributions in binary form must reproduce the above copyright |
| (...skipping 130 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 141 if (!axRenderImage) | 141 if (!axRenderImage) |
| 142 return 0; | 142 return 0; |
| 143 | 143 |
| 144 AccessibilityObject::AccessibilityChildrenVector imageChildren = axRenderIma
ge->children(); | 144 AccessibilityObject::AccessibilityChildrenVector imageChildren = axRenderIma
ge->children(); |
| 145 unsigned count = imageChildren.size(); | 145 unsigned count = imageChildren.size(); |
| 146 for (unsigned k = 0; k < count; ++k) { | 146 for (unsigned k = 0; k < count; ++k) { |
| 147 AccessibilityObject* child = imageChildren[k].get(); | 147 AccessibilityObject* child = imageChildren[k].get(); |
| 148 if (!child->isImageMapLink()) | 148 if (!child->isImageMapLink()) |
| 149 continue; | 149 continue; |
| 150 | 150 |
| 151 if (static_cast<AccessibilityImageMapLink*>(child)->areaElement() == are
aElement) | 151 if (toAccessibilityImageMapLink(child)->areaElement() == areaElement) |
| 152 return child; | 152 return child; |
| 153 } | 153 } |
| 154 | 154 |
| 155 return 0; | 155 return 0; |
| 156 } | 156 } |
| 157 | 157 |
| 158 AccessibilityObject* AXObjectCache::focusedUIElementForPage(const Page* page) | 158 AccessibilityObject* AXObjectCache::focusedUIElementForPage(const Page* page) |
| 159 { | 159 { |
| 160 if (!gAccessibilityEnabled) | 160 if (!gAccessibilityEnabled) |
| 161 return 0; | 161 return 0; |
| (...skipping 150 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 312 if (!widget) | 312 if (!widget) |
| 313 return 0; | 313 return 0; |
| 314 | 314 |
| 315 if (AccessibilityObject* obj = get(widget)) | 315 if (AccessibilityObject* obj = get(widget)) |
| 316 return obj; | 316 return obj; |
| 317 | 317 |
| 318 RefPtr<AccessibilityObject> newObj = 0; | 318 RefPtr<AccessibilityObject> newObj = 0; |
| 319 if (widget->isFrameView()) | 319 if (widget->isFrameView()) |
| 320 newObj = AccessibilityScrollView::create(toScrollView(widget)); | 320 newObj = AccessibilityScrollView::create(toScrollView(widget)); |
| 321 else if (widget->isScrollbar()) | 321 else if (widget->isScrollbar()) |
| 322 newObj = AccessibilityScrollbar::create(static_cast<Scrollbar*>(widget))
; | 322 newObj = AccessibilityScrollbar::create(toScrollbar(widget)); |
| 323 | 323 |
| 324 // Will crash later if we have two objects for the same widget. | 324 // Will crash later if we have two objects for the same widget. |
| 325 ASSERT(!get(widget)); | 325 ASSERT(!get(widget)); |
| 326 | 326 |
| 327 getAXID(newObj.get()); | 327 getAXID(newObj.get()); |
| 328 | 328 |
| 329 m_widgetObjectMapping.set(widget, newObj->axObjectID()); | 329 m_widgetObjectMapping.set(widget, newObj->axObjectID()); |
| 330 m_objects.set(newObj->axObjectID(), newObj); | 330 m_objects.set(newObj->axObjectID(), newObj); |
| 331 newObj->init(); | 331 newObj->init(); |
| 332 attachWrapper(newObj.get()); | 332 attachWrapper(newObj.get()); |
| (...skipping 584 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 917 | 917 |
| 918 void AXObjectCache::attachWrapper(AccessibilityObject*) | 918 void AXObjectCache::attachWrapper(AccessibilityObject*) |
| 919 { | 919 { |
| 920 // In Chromium, AccessibilityObjects are not wrapped. | 920 // In Chromium, AccessibilityObjects are not wrapped. |
| 921 } | 921 } |
| 922 | 922 |
| 923 void AXObjectCache::postPlatformNotification(AccessibilityObject* obj, AXNotific
ation notification) | 923 void AXObjectCache::postPlatformNotification(AccessibilityObject* obj, AXNotific
ation notification) |
| 924 { | 924 { |
| 925 if (obj && obj->isAccessibilityScrollbar() && notification == AXValueChanged
) { | 925 if (obj && obj->isAccessibilityScrollbar() && notification == AXValueChanged
) { |
| 926 // Send document value changed on scrollbar value changed notification. | 926 // Send document value changed on scrollbar value changed notification. |
| 927 Scrollbar* scrollBar = static_cast<AccessibilityScrollbar*>(obj)->scroll
bar(); | 927 Scrollbar* scrollBar = toAccessibilityScrollbar(obj)->scrollbar(); |
| 928 if (!scrollBar || !scrollBar->parent() || !scrollBar->parent()->isFrameV
iew()) | 928 if (!scrollBar || !scrollBar->parent() || !scrollBar->parent()->isFrameV
iew()) |
| 929 return; | 929 return; |
| 930 Document* document = toFrameView(scrollBar->parent())->frame().document(
); | 930 Document* document = toFrameView(scrollBar->parent())->frame().document(
); |
| 931 if (document != document->topDocument()) | 931 if (document != document->topDocument()) |
| 932 return; | 932 return; |
| 933 obj = get(document->renderer()); | 933 obj = get(document->renderer()); |
| 934 } | 934 } |
| 935 | 935 |
| 936 if (!obj || !obj->document() || !obj->documentFrameView() || !obj->documentF
rameView()->frame().page()) | 936 if (!obj || !obj->document() || !obj->documentFrameView() || !obj->documentF
rameView()->frame().page()) |
| 937 return; | 937 return; |
| (...skipping 30 matching lines...) Expand all Loading... |
| 968 void AXObjectCache::handleScrolledToAnchor(const Node* anchorNode) | 968 void AXObjectCache::handleScrolledToAnchor(const Node* anchorNode) |
| 969 { | 969 { |
| 970 // The anchor node may not be accessible. Post the notification for the | 970 // The anchor node may not be accessible. Post the notification for the |
| 971 // first accessible object. | 971 // first accessible object. |
| 972 postPlatformNotification(AccessibilityObject::firstAccessibleObjectFromNode(
anchorNode), AXScrolledToAnchor); | 972 postPlatformNotification(AccessibilityObject::firstAccessibleObjectFromNode(
anchorNode), AXScrolledToAnchor); |
| 973 } | 973 } |
| 974 | 974 |
| 975 } // namespace WebCore | 975 } // namespace WebCore |
| 976 | 976 |
| 977 #endif // HAVE(ACCESSIBILITY) | 977 #endif // HAVE(ACCESSIBILITY) |
| OLD | NEW |