Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(235)

Side by Side Diff: Source/WebCore/accessibility/atk/WebKitAccessibleInterfaceHypertext.cpp

Issue 13726025: Remove GTK AX support, we've never used it (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 7 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
(Empty)
1 /*
2 * Copyright (C) 2010, 2011, 2012 Igalia S.L.
3 *
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Library General Public
6 * License as published by the Free Software Foundation; either
7 * version 2 of the License, or (at your option) any later version.
8 *
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Library General Public License for more details.
13 *
14 * You should have received a copy of the GNU Library General Public License
15 * along with this library; see the file COPYING.LIB. If not, write to
16 * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
17 * Boston, MA 02110-1301, USA.
18 */
19
20 #include "config.h"
21 #include "WebKitAccessibleInterfaceHypertext.h"
22
23 #if HAVE(ACCESSIBILITY)
24
25 #include "AccessibilityObject.h"
26 #include "WebKitAccessibleWrapperAtk.h"
27
28 using namespace WebCore;
29
30 static AccessibilityObject* core(AtkHypertext* hypertext)
31 {
32 if (!WEBKIT_IS_ACCESSIBLE(hypertext))
33 return 0;
34
35 return webkitAccessibleGetAccessibilityObject(WEBKIT_ACCESSIBLE(hypertext));
36 }
37
38 static AtkHyperlink* webkitAccessibleHypertextGetLink(AtkHypertext* hypertext, g int index)
39 {
40 AccessibilityObject::AccessibilityChildrenVector children = core(hypertext)- >children();
41 if (index < 0 || static_cast<unsigned>(index) >= children.size())
42 return 0;
43
44 gint currentLink = -1;
45 for (unsigned i = 0; i < children.size(); i++) {
46 AccessibilityObject* coreChild = children.at(i).get();
47 if (!coreChild->accessibilityIsIgnored()) {
48 AtkObject* axObject = coreChild->wrapper();
49 if (!axObject || !ATK_IS_HYPERLINK_IMPL(axObject))
50 continue;
51
52 currentLink++;
53 if (index != currentLink)
54 continue;
55
56 return atk_hyperlink_impl_get_hyperlink(ATK_HYPERLINK_IMPL(axObject) );
57 }
58 }
59
60 return 0;
61 }
62
63 static gint webkitAccessibleHypertextGetNLinks(AtkHypertext* hypertext)
64 {
65 AccessibilityObject::AccessibilityChildrenVector children = core(hypertext)- >children();
66 if (!children.size())
67 return 0;
68
69 gint linksFound = 0;
70 for (size_t i = 0; i < children.size(); i++) {
71 AccessibilityObject* coreChild = children.at(i).get();
72 if (!coreChild->accessibilityIsIgnored()) {
73 AtkObject* axObject = coreChild->wrapper();
74 if (axObject && ATK_IS_HYPERLINK_IMPL(axObject))
75 linksFound++;
76 }
77 }
78
79 return linksFound;
80 }
81
82 static gint webkitAccessibleHypertextGetLinkIndex(AtkHypertext* hypertext, gint charIndex)
83 {
84 size_t linksCount = webkitAccessibleHypertextGetNLinks(hypertext);
85 if (!linksCount)
86 return -1;
87
88 for (size_t i = 0; i < linksCount; i++) {
89 AtkHyperlink* hyperlink = ATK_HYPERLINK(webkitAccessibleHypertextGetLink (hypertext, i));
90 gint startIndex = atk_hyperlink_get_start_index(hyperlink);
91 gint endIndex = atk_hyperlink_get_end_index(hyperlink);
92
93 // Check if the char index in the link's offset range
94 if (startIndex <= charIndex && charIndex < endIndex)
95 return i;
96 }
97
98 // Not found if reached
99 return -1;
100 }
101
102 void webkitAccessibleHypertextInterfaceInit(AtkHypertextIface* iface)
103 {
104 iface->get_link = webkitAccessibleHypertextGetLink;
105 iface->get_n_links = webkitAccessibleHypertextGetNLinks;
106 iface->get_link_index = webkitAccessibleHypertextGetLinkIndex;
107 }
108
109 #endif
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698