| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2009 Apple Inc. All rights reserved. | 2 * Copyright (C) 2009 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 21 matching lines...) Expand all Loading... |
| 32 #include "core/dom/shadow/ShadowRoot.h" | 32 #include "core/dom/shadow/ShadowRoot.h" |
| 33 #include "core/html/HTMLInputElement.h" | 33 #include "core/html/HTMLInputElement.h" |
| 34 #include "core/html/shadow/ShadowElementNames.h" | 34 #include "core/html/shadow/ShadowElementNames.h" |
| 35 #include "core/layout/LayoutObject.h" | 35 #include "core/layout/LayoutObject.h" |
| 36 #include "modules/accessibility/AXObjectCacheImpl.h" | 36 #include "modules/accessibility/AXObjectCacheImpl.h" |
| 37 | 37 |
| 38 namespace blink { | 38 namespace blink { |
| 39 | 39 |
| 40 using namespace HTMLNames; | 40 using namespace HTMLNames; |
| 41 | 41 |
| 42 AXSlider::AXSlider(LayoutObject* layoutObject, AXObjectCacheImpl* axObjectCache) | 42 AXSlider::AXSlider(LayoutObject* layoutObject, AXObjectCacheImpl& axObjectCache) |
| 43 : AXLayoutObject(layoutObject, axObjectCache) | 43 : AXLayoutObject(layoutObject, axObjectCache) |
| 44 { | 44 { |
| 45 } | 45 } |
| 46 | 46 |
| 47 PassRefPtr<AXSlider> AXSlider::create(LayoutObject* layoutObject, AXObjectCacheI
mpl* axObjectCache) | 47 PassRefPtr<AXSlider> AXSlider::create(LayoutObject* layoutObject, AXObjectCacheI
mpl& axObjectCache) |
| 48 { | 48 { |
| 49 return adoptRef(new AXSlider(layoutObject, axObjectCache)); | 49 return adoptRef(new AXSlider(layoutObject, axObjectCache)); |
| 50 } | 50 } |
| 51 | 51 |
| 52 AccessibilityRole AXSlider::determineAccessibilityRole() | 52 AccessibilityRole AXSlider::determineAccessibilityRole() |
| 53 { | 53 { |
| 54 if ((m_ariaRole = determineAriaRoleAttribute()) != UnknownRole) | 54 if ((m_ariaRole = determineAriaRoleAttribute()) != UnknownRole) |
| 55 return m_ariaRole; | 55 return m_ariaRole; |
| 56 | 56 |
| 57 return SliderRole; | 57 return SliderRole; |
| (...skipping 26 matching lines...) Expand all Loading... |
| 84 return AccessibilityOrientationHorizontal; | 84 return AccessibilityOrientationHorizontal; |
| 85 } | 85 } |
| 86 } | 86 } |
| 87 | 87 |
| 88 void AXSlider::addChildren() | 88 void AXSlider::addChildren() |
| 89 { | 89 { |
| 90 ASSERT(!m_haveChildren); | 90 ASSERT(!m_haveChildren); |
| 91 | 91 |
| 92 m_haveChildren = true; | 92 m_haveChildren = true; |
| 93 | 93 |
| 94 AXObjectCacheImpl* cache = axObjectCache(); | 94 AXObjectCacheImpl& cache = axObjectCache(); |
| 95 | 95 |
| 96 AXSliderThumb* thumb = static_cast<AXSliderThumb*>(cache->getOrCreate(Slider
ThumbRole)); | 96 AXSliderThumb* thumb = static_cast<AXSliderThumb*>(cache.getOrCreate(SliderT
humbRole)); |
| 97 thumb->setParent(this); | 97 thumb->setParent(this); |
| 98 | 98 |
| 99 // Before actually adding the value indicator to the hierarchy, | 99 // Before actually adding the value indicator to the hierarchy, |
| 100 // allow the platform to make a final decision about it. | 100 // allow the platform to make a final decision about it. |
| 101 if (thumb->accessibilityIsIgnored()) | 101 if (thumb->accessibilityIsIgnored()) |
| 102 cache->remove(thumb->axObjectID()); | 102 cache.remove(thumb->axObjectID()); |
| 103 else | 103 else |
| 104 m_children.append(thumb); | 104 m_children.append(thumb); |
| 105 } | 105 } |
| 106 | 106 |
| 107 const AtomicString& AXSlider::getAttribute(const QualifiedName& attribute) const | 107 const AtomicString& AXSlider::getAttribute(const QualifiedName& attribute) const |
| 108 { | 108 { |
| 109 return element()->getAttribute(attribute); | 109 return element()->getAttribute(attribute); |
| 110 } | 110 } |
| 111 | 111 |
| 112 AXObject* AXSlider::elementAccessibilityHitTest(const IntPoint& point) const | 112 AXObject* AXSlider::elementAccessibilityHitTest(const IntPoint& point) const |
| 113 { | 113 { |
| 114 if (m_children.size()) { | 114 if (m_children.size()) { |
| 115 ASSERT(m_children.size() == 1); | 115 ASSERT(m_children.size() == 1); |
| 116 if (m_children[0]->elementRect().contains(point)) | 116 if (m_children[0]->elementRect().contains(point)) |
| 117 return m_children[0].get(); | 117 return m_children[0].get(); |
| 118 } | 118 } |
| 119 | 119 |
| 120 return axObjectCache()->getOrCreate(m_layoutObject); | 120 return axObjectCache().getOrCreate(m_layoutObject); |
| 121 } | 121 } |
| 122 | 122 |
| 123 void AXSlider::setValue(const String& value) | 123 void AXSlider::setValue(const String& value) |
| 124 { | 124 { |
| 125 HTMLInputElement* input = element(); | 125 HTMLInputElement* input = element(); |
| 126 | 126 |
| 127 if (input->value() == value) | 127 if (input->value() == value) |
| 128 return; | 128 return; |
| 129 | 129 |
| 130 input->setValue(value); | 130 input->setValue(value); |
| 131 | 131 |
| 132 // Fire change event manually, as LayoutSlider::setValueForPosition does. | 132 // Fire change event manually, as LayoutSlider::setValueForPosition does. |
| 133 input->dispatchFormControlChangeEvent(); | 133 input->dispatchFormControlChangeEvent(); |
| 134 } | 134 } |
| 135 | 135 |
| 136 HTMLInputElement* AXSlider::element() const | 136 HTMLInputElement* AXSlider::element() const |
| 137 { | 137 { |
| 138 return toHTMLInputElement(m_layoutObject->node()); | 138 return toHTMLInputElement(m_layoutObject->node()); |
| 139 } | 139 } |
| 140 | 140 |
| 141 AXSliderThumb::AXSliderThumb(AXObjectCacheImpl* axObjectCache) | 141 AXSliderThumb::AXSliderThumb(AXObjectCacheImpl& axObjectCache) |
| 142 : AXMockObject(axObjectCache) | 142 : AXMockObject(axObjectCache) |
| 143 { | 143 { |
| 144 } | 144 } |
| 145 | 145 |
| 146 PassRefPtr<AXSliderThumb> AXSliderThumb::create(AXObjectCacheImpl* axObjectCache
) | 146 PassRefPtr<AXSliderThumb> AXSliderThumb::create(AXObjectCacheImpl& axObjectCache
) |
| 147 { | 147 { |
| 148 return adoptRef(new AXSliderThumb(axObjectCache)); | 148 return adoptRef(new AXSliderThumb(axObjectCache)); |
| 149 } | 149 } |
| 150 | 150 |
| 151 LayoutRect AXSliderThumb::elementRect() const | 151 LayoutRect AXSliderThumb::elementRect() const |
| 152 { | 152 { |
| 153 if (!m_parent) | 153 if (!m_parent) |
| 154 return LayoutRect(); | 154 return LayoutRect(); |
| 155 | 155 |
| 156 LayoutObject* sliderLayoutObject = m_parent->layoutObject(); | 156 LayoutObject* sliderLayoutObject = m_parent->layoutObject(); |
| 157 if (!sliderLayoutObject || !sliderLayoutObject->isSlider()) | 157 if (!sliderLayoutObject || !sliderLayoutObject->isSlider()) |
| 158 return LayoutRect(); | 158 return LayoutRect(); |
| 159 return toElement(sliderLayoutObject->node())->userAgentShadowRoot()->getElem
entById(ShadowElementNames::sliderThumb())->boundingBox(); | 159 return toElement(sliderLayoutObject->node())->userAgentShadowRoot()->getElem
entById(ShadowElementNames::sliderThumb())->boundingBox(); |
| 160 } | 160 } |
| 161 | 161 |
| 162 bool AXSliderThumb::computeAccessibilityIsIgnored(IgnoredReasons* ignoredReasons
) const | 162 bool AXSliderThumb::computeAccessibilityIsIgnored(IgnoredReasons* ignoredReasons
) const |
| 163 { | 163 { |
| 164 return accessibilityIsIgnoredByDefault(ignoredReasons); | 164 return accessibilityIsIgnoredByDefault(ignoredReasons); |
| 165 } | 165 } |
| 166 | 166 |
| 167 } // namespace blink | 167 } // namespace blink |
| OLD | NEW |