OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2008, 2009, 2011 Apple Inc. All rights reserved. | 2 * Copyright (C) 2008, 2009, 2011 Apple Inc. All rights reserved. |
3 * Copyright (C) 2008 Nuanti Ltd. | 3 * Copyright (C) 2008 Nuanti Ltd. |
4 * | 4 * |
5 * Redistribution and use in source and binary forms, with or without | 5 * Redistribution and use in source and binary forms, with or without |
6 * modification, are permitted provided that the following conditions | 6 * modification, are permitted provided that the following conditions |
7 * are met: | 7 * are met: |
8 * | 8 * |
9 * 1. Redistributions of source code must retain the above copyright | 9 * 1. Redistributions of source code must retain the above copyright |
10 * notice, this list of conditions and the following disclaimer. | 10 * notice, this list of conditions and the following disclaimer. |
(...skipping 818 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
829 virtual const AtomicString& liveRegionStatus() const { return nullAtom; } | 829 virtual const AtomicString& liveRegionStatus() const { return nullAtom; } |
830 virtual const AtomicString& liveRegionRelevant() const { return nullAtom; } | 830 virtual const AtomicString& liveRegionRelevant() const { return nullAtom; } |
831 virtual bool liveRegionAtomic() const { return false; } | 831 virtual bool liveRegionAtomic() const { return false; } |
832 virtual bool liveRegionBusy() const { return false; } | 832 virtual bool liveRegionBusy() const { return false; } |
833 | 833 |
834 const AtomicString& containerLiveRegionStatus() const; | 834 const AtomicString& containerLiveRegionStatus() const; |
835 const AtomicString& containerLiveRegionRelevant() const; | 835 const AtomicString& containerLiveRegionRelevant() const; |
836 bool containerLiveRegionAtomic() const; | 836 bool containerLiveRegionAtomic() const; |
837 bool containerLiveRegionBusy() const; | 837 bool containerLiveRegionBusy() const; |
838 | 838 |
839 // Location and click point in frame-relative coordinates. DEPRECATED, to be | 839 // Every object's bounding box is returned relative to a |
840 // replaced by getRelativeBounds. | 840 // container object (which is guaranteed to be an ancestor) and |
841 virtual LayoutRect elementRect() const { return m_explicitElementRect; } | |
842 void setElementRect(LayoutRect r, AXObject* container) | |
843 { | |
844 m_explicitElementRect = r; | |
845 m_explicitContainerID = container->axObjectID(); | |
846 } | |
847 virtual void markCachedElementRectDirty() const; | |
848 virtual IntPoint clickPoint(); | |
849 | |
850 // Transformation relative to the parent frame, if local (otherwise returns
identity). | |
851 // DEPRECATED, to be replaced by getRelativeBounds. | |
852 virtual SkMatrix44 transformFromLocalParentFrame() const; | |
853 | |
854 // NEW bounds calculation interface. Every object's bounding box is returned | |
855 // relative to a container object (which is guaranteed to be an ancestor) an
d | |
856 // optionally a transformation matrix that needs to be applied too. | 841 // optionally a transformation matrix that needs to be applied too. |
857 // To compute the absolute bounding box of an element, start with its | 842 // To compute the absolute bounding box of an element, start with its |
858 // boundsInContainer and apply the transform. Then as long as its container
is | 843 // boundsInContainer and apply the transform. Then as long as its container
is |
859 // not null, walk up to its container and offset by the container's offset f
rom | 844 // not null, walk up to its container and offset by the container's offset f
rom |
860 // origin, the container's scroll position if any, and apply the container's
transform. | 845 // origin, the container's scroll position if any, and apply the container's
transform. |
861 // Do this until you reach the root of the tree. | 846 // Do this until you reach the root of the tree. |
862 virtual void getRelativeBounds(AXObject** outContainer, FloatRect& outBounds
InContainer, SkMatrix44& outContainerTransform) const; | 847 virtual void getRelativeBounds(AXObject** outContainer, FloatRect& outBounds
InContainer, SkMatrix44& outContainerTransform) const; |
863 | 848 |
| 849 // Get the bounds in frame-relative coordinates as a LayoutRect. |
| 850 LayoutRect getBoundsInFrameCoordinates() const; |
| 851 |
| 852 // Explicitly set an object's bounding rect and offset container. |
| 853 void setElementRect(LayoutRect r, AXObject* container) |
| 854 { |
| 855 m_explicitElementRect = r; |
| 856 m_explicitContainerID = container->axObjectID(); |
| 857 } |
| 858 |
864 // Hit testing. | 859 // Hit testing. |
865 // Called on the root AX object to return the deepest available element. | 860 // Called on the root AX object to return the deepest available element. |
866 virtual AXObject* accessibilityHitTest(const IntPoint&) const { return 0; } | 861 virtual AXObject* accessibilityHitTest(const IntPoint&) const { return 0; } |
867 // Called on the AX object after the layout tree determines which is the rig
ht AXLayoutObject. | 862 // Called on the AX object after the layout tree determines which is the rig
ht AXLayoutObject. |
868 virtual AXObject* elementAccessibilityHitTest(const IntPoint&) const; | 863 virtual AXObject* elementAccessibilityHitTest(const IntPoint&) const; |
869 | 864 |
870 // High-level accessibility tree access. Other modules should only use these
functions. | 865 // High-level accessibility tree access. Other modules should only use these
functions. |
871 const AXObjectVector& children(); | 866 const AXObjectVector& children(); |
872 AXObject* parentObject() const; | 867 AXObject* parentObject() const; |
873 AXObject* parentObjectIfExists() const; | 868 AXObject* parentObjectIfExists() const; |
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
951 // Text metrics. Most of these should be deprecated, needs major cleanup. | 946 // Text metrics. Most of these should be deprecated, needs major cleanup. |
952 virtual VisiblePosition visiblePositionForIndex(int) const { return VisibleP
osition(); } | 947 virtual VisiblePosition visiblePositionForIndex(int) const { return VisibleP
osition(); } |
953 int lineForPosition(const VisiblePosition&) const; | 948 int lineForPosition(const VisiblePosition&) const; |
954 virtual int index(const VisiblePosition&) const { return -1; } | 949 virtual int index(const VisiblePosition&) const { return -1; } |
955 virtual void lineBreaks(Vector<int>&) const { } | 950 virtual void lineBreaks(Vector<int>&) const { } |
956 | 951 |
957 // Static helper functions. | 952 // Static helper functions. |
958 static bool isARIAControl(AccessibilityRole); | 953 static bool isARIAControl(AccessibilityRole); |
959 static bool isARIAInput(AccessibilityRole); | 954 static bool isARIAInput(AccessibilityRole); |
960 static AccessibilityRole ariaRoleToWebCoreRole(const String&); | 955 static AccessibilityRole ariaRoleToWebCoreRole(const String&); |
961 static IntRect boundingBoxForQuads(LayoutObject*, const Vector<FloatQuad>&); | |
962 static const AtomicString& roleName(AccessibilityRole); | 956 static const AtomicString& roleName(AccessibilityRole); |
963 static const AtomicString& internalRoleName(AccessibilityRole); | 957 static const AtomicString& internalRoleName(AccessibilityRole); |
964 static bool isInsideFocusableElementOrARIAWidget(const Node&); | 958 static bool isInsideFocusableElementOrARIAWidget(const Node&); |
965 | 959 |
966 protected: | 960 protected: |
967 AXID m_id; | 961 AXID m_id; |
968 AXObjectVector m_children; | 962 AXObjectVector m_children; |
969 mutable bool m_haveChildren; | 963 mutable bool m_haveChildren; |
970 AccessibilityRole m_role; | 964 AccessibilityRole m_role; |
971 AXObjectInclusion m_lastKnownIsIgnoredValue; | 965 AXObjectInclusion m_lastKnownIsIgnoredValue; |
(...skipping 11 matching lines...) Expand all Loading... |
983 void ariaLabelledbyElementVector(HeapVector<Member<Element>>& elements) cons
t; | 977 void ariaLabelledbyElementVector(HeapVector<Member<Element>>& elements) cons
t; |
984 String textFromAriaLabelledby(AXObjectSet& visited, AXRelatedObjectVector* r
elatedObjects) const; | 978 String textFromAriaLabelledby(AXObjectSet& visited, AXRelatedObjectVector* r
elatedObjects) const; |
985 String textFromAriaDescribedby(AXRelatedObjectVector* relatedObjects) const; | 979 String textFromAriaDescribedby(AXRelatedObjectVector* relatedObjects) const; |
986 | 980 |
987 virtual const AXObject* inheritsPresentationalRoleFrom() const { return 0; } | 981 virtual const AXObject* inheritsPresentationalRoleFrom() const { return 0; } |
988 | 982 |
989 virtual bool nameFromContents() const; | 983 virtual bool nameFromContents() const; |
990 | 984 |
991 AccessibilityRole buttonRoleType() const; | 985 AccessibilityRole buttonRoleType() const; |
992 | 986 |
| 987 virtual LayoutObject* layoutObjectForRelativeBounds() const { return nullptr
; } |
| 988 |
993 mutable Member<AXObject> m_parent; | 989 mutable Member<AXObject> m_parent; |
994 | 990 |
995 // The following cached attribute values (the ones starting with m_cached*) | 991 // The following cached attribute values (the ones starting with m_cached*) |
996 // are only valid if m_lastModificationCount matches AXObjectCacheImpl::modi
ficationCount(). | 992 // are only valid if m_lastModificationCount matches AXObjectCacheImpl::modi
ficationCount(). |
997 mutable int m_lastModificationCount; | 993 mutable int m_lastModificationCount; |
998 mutable RGBA32 m_cachedBackgroundColor; | 994 mutable RGBA32 m_cachedBackgroundColor; |
999 mutable bool m_cachedIsIgnored : 1; | 995 mutable bool m_cachedIsIgnored : 1; |
1000 mutable bool m_cachedIsInertOrAriaHidden : 1; | 996 mutable bool m_cachedIsInertOrAriaHidden : 1; |
1001 mutable bool m_cachedIsDescendantOfLeafNode : 1; | 997 mutable bool m_cachedIsDescendantOfLeafNode : 1; |
1002 mutable bool m_cachedIsDescendantOfDisabledNode : 1; | 998 mutable bool m_cachedIsDescendantOfDisabledNode : 1; |
(...skipping 14 matching lines...) Expand all Loading... |
1017 | 1013 |
1018 static unsigned s_numberOfLiveAXObjects; | 1014 static unsigned s_numberOfLiveAXObjects; |
1019 }; | 1015 }; |
1020 | 1016 |
1021 #define DEFINE_AX_OBJECT_TYPE_CASTS(thisType, predicate) \ | 1017 #define DEFINE_AX_OBJECT_TYPE_CASTS(thisType, predicate) \ |
1022 DEFINE_TYPE_CASTS(thisType, AXObject, object, object->predicate, object.pred
icate) | 1018 DEFINE_TYPE_CASTS(thisType, AXObject, object, object->predicate, object.pred
icate) |
1023 | 1019 |
1024 } // namespace blink | 1020 } // namespace blink |
1025 | 1021 |
1026 #endif // AXObject_h | 1022 #endif // AXObject_h |
OLD | NEW |