| Index: webkit/api/src/WebAccessibilityObject.cpp
|
| ===================================================================
|
| --- webkit/api/src/WebAccessibilityObject.cpp (revision 30964)
|
| +++ webkit/api/src/WebAccessibilityObject.cpp (working copy)
|
| @@ -29,8 +29,14 @@
|
| */
|
|
|
| #include "config.h"
|
| +#include "WebAccessibilityObject.h"
|
| +
|
| #include "AccessibilityObject.h"
|
| -#include "WebAccessibilityObject.h"
|
| +#include "EventHandler.h"
|
| +#include "FrameView.h"
|
| +#include "PlatformKeyboardEvent.h"
|
| +#include "WebPoint.h"
|
| +#include "WebRect.h"
|
| #include "WebString.h"
|
|
|
| using namespace WebCore;
|
| @@ -62,6 +68,33 @@
|
| return m_private->accessibilityDescription();
|
| }
|
|
|
| +WebString WebAccessibilityObject::actionVerb() const
|
| +{
|
| + if (!m_private)
|
| + return WebString();
|
| +
|
| + m_private->updateBackingStore();
|
| + return m_private->actionVerb();
|
| +}
|
| +
|
| +bool WebAccessibilityObject::canSetFocusAttribute() const
|
| +{
|
| + if (!m_private)
|
| + return false;
|
| +
|
| + m_private->updateBackingStore();
|
| + return m_private->canSetFocusAttribute();
|
| +}
|
| +
|
| +unsigned WebAccessibilityObject::childCount() const
|
| +{
|
| + if (!m_private)
|
| + return 0;
|
| +
|
| + m_private->updateBackingStore();
|
| + return m_private->children().size();
|
| +}
|
| +
|
| WebAccessibilityObject WebAccessibilityObject::childAt(unsigned index) const
|
| {
|
| if (!m_private)
|
| @@ -74,15 +107,94 @@
|
| return WebAccessibilityObject(m_private->children()[index]);
|
| }
|
|
|
| -unsigned WebAccessibilityObject::childCount() const
|
| +WebAccessibilityObject WebAccessibilityObject::firstChild() const
|
| {
|
| if (!m_private)
|
| + return WebAccessibilityObject();
|
| +
|
| + m_private->updateBackingStore();
|
| + return WebAccessibilityObject(m_private->firstChild());
|
| +}
|
| +
|
| +WebAccessibilityObject WebAccessibilityObject::focusedChild() const
|
| +{
|
| + if (!m_private)
|
| + return WebAccessibilityObject();
|
| +
|
| + m_private->updateBackingStore();
|
| + RefPtr<AccessibilityObject> focused = m_private->focusedUIElement();
|
| + if (m_private == focused.get() || focused->parentObject() == m_private)
|
| + return WebAccessibilityObject(focused);
|
| +
|
| + return WebAccessibilityObject();
|
| +}
|
| +
|
| +WebAccessibilityObject WebAccessibilityObject::lastChild() const
|
| +{
|
| + if (!m_private)
|
| + return WebAccessibilityObject();
|
| +
|
| + m_private->updateBackingStore();
|
| + return WebAccessibilityObject(m_private->lastChild());
|
| +}
|
| +
|
| +
|
| +WebAccessibilityObject WebAccessibilityObject::nextSibling() const
|
| +{
|
| + if (!m_private)
|
| + return WebAccessibilityObject();
|
| +
|
| + m_private->updateBackingStore();
|
| + return WebAccessibilityObject(m_private->nextSibling());
|
| +}
|
| +
|
| +WebAccessibilityObject WebAccessibilityObject::parentObject() const
|
| +{
|
| + if (!m_private)
|
| + return WebAccessibilityObject();
|
| +
|
| + m_private->updateBackingStore();
|
| + return WebAccessibilityObject(m_private->parentObject());
|
| +}
|
| +
|
| +
|
| +WebAccessibilityObject WebAccessibilityObject::previousSibling() const
|
| +{
|
| + if (!m_private)
|
| + return WebAccessibilityObject();
|
| +
|
| + m_private->updateBackingStore();
|
| + return WebAccessibilityObject(m_private->previousSibling());
|
| +}
|
| +
|
| +bool WebAccessibilityObject::isAnchor() const
|
| +{
|
| + if (!m_private)
|
| return 0;
|
|
|
| m_private->updateBackingStore();
|
| - return m_private->children().size();
|
| + return m_private->isAnchor();
|
| }
|
|
|
| +bool WebAccessibilityObject::isChecked() const
|
| +{
|
| + if (!m_private)
|
| + return 0;
|
| +
|
| + m_private->updateBackingStore();
|
| + return m_private->isChecked();
|
| +}
|
| +
|
| +
|
| +bool WebAccessibilityObject::isFocused() const
|
| +{
|
| + if (!m_private)
|
| + return 0;
|
| +
|
| + m_private->updateBackingStore();
|
| + return m_private->isFocused();
|
| +}
|
| +
|
| bool WebAccessibilityObject::isEnabled() const
|
| {
|
| if (!m_private)
|
| @@ -92,12 +204,170 @@
|
| return m_private->isEnabled();
|
| }
|
|
|
| +bool WebAccessibilityObject::isHovered() const
|
| +{
|
| + if (!m_private)
|
| + return 0;
|
| +
|
| + m_private->updateBackingStore();
|
| + return m_private->isHovered();
|
| +}
|
| +
|
| +bool WebAccessibilityObject::isIndeterminate() const
|
| +{
|
| + if (!m_private)
|
| + return 0;
|
| +
|
| + m_private->updateBackingStore();
|
| + return m_private->isIndeterminate();
|
| +}
|
| +
|
| +bool WebAccessibilityObject::isMultiSelect() const
|
| +{
|
| + if (!m_private)
|
| + return 0;
|
| +
|
| + m_private->updateBackingStore();
|
| + return m_private->isMultiSelect();
|
| +}
|
| +
|
| +bool WebAccessibilityObject::isOffScreen() const
|
| +{
|
| + if (!m_private)
|
| + return 0;
|
| +
|
| + m_private->updateBackingStore();
|
| + return m_private->isOffScreen();
|
| +}
|
| +
|
| +bool WebAccessibilityObject::isPasswordField() const
|
| +{
|
| + if (!m_private)
|
| + return 0;
|
| +
|
| + m_private->updateBackingStore();
|
| + return m_private->isPasswordField();
|
| +}
|
| +
|
| +bool WebAccessibilityObject::isPressed() const
|
| +{
|
| + if (!m_private)
|
| + return 0;
|
| +
|
| + m_private->updateBackingStore();
|
| + return m_private->isPressed();
|
| +}
|
| +
|
| +bool WebAccessibilityObject::isReadOnly() const
|
| +{
|
| + if (!m_private)
|
| + return 0;
|
| +
|
| + m_private->updateBackingStore();
|
| + return m_private->isReadOnly();
|
| +}
|
| +
|
| +bool WebAccessibilityObject::isVisited() const
|
| +{
|
| + if (!m_private)
|
| + return 0;
|
| +
|
| + m_private->updateBackingStore();
|
| + return m_private->isVisited();
|
| +}
|
| +
|
| +WebRect WebAccessibilityObject::boundingBoxRect() const
|
| +{
|
| + if (!m_private)
|
| + return WebRect();
|
| +
|
| + m_private->updateBackingStore();
|
| + return m_private->documentFrameView()->contentsToWindow(m_private->boundingBoxRect());
|
| +}
|
| +
|
| +WebString WebAccessibilityObject::helpText() const
|
| +{
|
| + if (!m_private)
|
| + return WebString();
|
| +
|
| + m_private->updateBackingStore();
|
| + return m_private->helpText();
|
| +}
|
| +
|
| +WebAccessibilityObject WebAccessibilityObject::hitTest(const WebPoint& point) const
|
| +{
|
| + if (!m_private)
|
| + return WebAccessibilityObject();
|
| +
|
| + m_private->updateBackingStore();
|
| + IntPoint contentsPoint = m_private->documentFrameView()->windowToContents(point);
|
| + RefPtr<AccessibilityObject> hit = m_private->doAccessibilityHitTest(contentsPoint);
|
| +
|
| + if (hit.get())
|
| + return WebAccessibilityObject(hit);
|
| +
|
| + if (m_private->boundingBoxRect().contains(contentsPoint))
|
| + return *this;
|
| +
|
| + return WebAccessibilityObject();
|
| +}
|
| +
|
| +WebString WebAccessibilityObject::keyboardShortcut() const
|
| +{
|
| + if (!m_private)
|
| + return WebString();
|
| +
|
| + m_private->updateBackingStore();
|
| + String accessKey = m_private->accessKey();
|
| + if (accessKey.isNull())
|
| + return WebString();
|
| +
|
| + static String modifierString;
|
| + if (modifierString.isNull()) {
|
| + unsigned modifiers = EventHandler::accessKeyModifiers();
|
| + // Follow the same order as Mozilla MSAA implementation:
|
| + // Ctrl+Alt+Shift+Meta+key. MSDN states that keyboard shortcut strings
|
| + // should not be localized and defines the separator as "+".
|
| + if (modifiers & PlatformKeyboardEvent::CtrlKey)
|
| + modifierString += "Ctrl+";
|
| + if (modifiers & PlatformKeyboardEvent::AltKey)
|
| + modifierString += "Alt+";
|
| + if (modifiers & PlatformKeyboardEvent::ShiftKey)
|
| + modifierString += "Shift+";
|
| + if (modifiers & PlatformKeyboardEvent::MetaKey)
|
| + modifierString += "Win+";
|
| + }
|
| +
|
| + return modifierString + accessKey;
|
| +}
|
| +
|
| +bool WebAccessibilityObject::performDefaultAction() const
|
| +{
|
| + if (!m_private)
|
| + return false;
|
| +
|
| + m_private->updateBackingStore();
|
| + return m_private->performDefaultAction();
|
| +}
|
| +
|
| WebAccessibilityRole WebAccessibilityObject::roleValue() const
|
| {
|
| + if (!m_private)
|
| + return WebKit::WebAccessibilityRoleUnknown;
|
| +
|
| m_private->updateBackingStore();
|
| return static_cast<WebAccessibilityRole>(m_private->roleValue());
|
| }
|
|
|
| +WebString WebAccessibilityObject::stringValue() const
|
| +{
|
| + if (!m_private)
|
| + return WebString();
|
| +
|
| + m_private->updateBackingStore();
|
| + return m_private->stringValue();
|
| +}
|
| +
|
| WebString WebAccessibilityObject::title() const
|
| {
|
| if (!m_private)
|
|
|
| Property changes on: webkit\api\src\WebAccessibilityObject.cpp
|
| ___________________________________________________________________
|
| Added: svn:eol-style
|
| + LF
|
|
|
|
|