1 | /* |
2 | * Copyright (C) 2008 Nuanti Ltd. |
3 | * Copyright (C) 2009 Jan Alonzo |
4 | * Copyright (C) 2009, 2010, 2012 Igalia S.L. |
5 | * |
6 | * This library is free software; you can redistribute it and/or |
7 | * modify it under the terms of the GNU Library General Public |
8 | * License as published by the Free Software Foundation; either |
9 | * version 2 of the License, or (at your option) any later version. |
10 | * |
11 | * This library is distributed in the hope that it will be useful, |
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
14 | * Library General Public License for more details. |
15 | * |
16 | * You should have received a copy of the GNU Library General Public License |
17 | * along with this library; see the file COPYING.LIB. If not, write to |
18 | * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, |
19 | * Boston, MA 02110-1301, USA. |
20 | */ |
21 | |
22 | #pragma once |
23 | |
24 | #if HAVE(ACCESSIBILITY) |
25 | |
26 | #include <atk/atk.h> |
27 | #include <wtf/text/WTFString.h> |
28 | |
29 | namespace WebCore { |
30 | class AccessibilityObject; |
31 | class IntRect; |
32 | class VisibleSelection; |
33 | } |
34 | |
35 | // An existing accessibility object is considered to be invalid whether it's already |
36 | // detached or if it's not but just updating the layout will detach it anyway. |
37 | #define returnIfWebKitAccessibleIsInvalid(webkitAccessible) G_STMT_START { \ |
38 | if (!webkitAccessible || webkitAccessibleIsDetached(webkitAccessible)) \ |
39 | return; \ |
40 | auto& coreObject = webkitAccessibleGetAccessibilityObject(webkitAccessible); \ |
41 | if (!coreObject.document()) \ |
42 | return; \ |
43 | coreObject.updateBackingStore(); \ |
44 | if (webkitAccessibleIsDetached(webkitAccessible)) \ |
45 | return; \ |
46 | ; } G_STMT_END |
47 | |
48 | #define returnValIfWebKitAccessibleIsInvalid(webkitAccessible, val) G_STMT_START { \ |
49 | if (!webkitAccessible || webkitAccessibleIsDetached(webkitAccessible)) \ |
50 | return (val); \ |
51 | auto& coreObject = webkitAccessibleGetAccessibilityObject(webkitAccessible); \ |
52 | if (!coreObject.document()) \ |
53 | return (val); \ |
54 | coreObject.updateBackingStore(); \ |
55 | if (webkitAccessibleIsDetached(webkitAccessible)) \ |
56 | return (val); \ |
57 | ; } G_STMT_END |
58 | |
59 | AtkAttributeSet* addToAtkAttributeSet(AtkAttributeSet*, const char* name, const char* value); |
60 | |
61 | void contentsRelativeToAtkCoordinateType(WebCore::AccessibilityObject*, AtkCoordType, WebCore::IntRect, gint* x, gint* y, gint* width = nullptr, gint* height = nullptr); |
62 | |
63 | String accessibilityTitle(WebCore::AccessibilityObject*); |
64 | |
65 | String accessibilityDescription(WebCore::AccessibilityObject*); |
66 | |
67 | bool selectionBelongsToObject(WebCore::AccessibilityObject*, WebCore::VisibleSelection&); |
68 | |
69 | WebCore::AccessibilityObject* objectFocusedAndCaretOffsetUnignored(WebCore::AccessibilityObject*, int& offset); |
70 | |
71 | #endif // HAVE(ACCESSIBILITY) |
72 | |