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

Unified Diff: Source/WebCore/accessibility/atk/WebKitAccessibleInterfaceSelection.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 side-by-side diff with in-line comments
Download patch
Index: Source/WebCore/accessibility/atk/WebKitAccessibleInterfaceSelection.cpp
diff --git a/Source/WebCore/accessibility/atk/WebKitAccessibleInterfaceSelection.cpp b/Source/WebCore/accessibility/atk/WebKitAccessibleInterfaceSelection.cpp
deleted file mode 100644
index 7e024b02c6e6a6577800ad01015c5e1062fcd277..0000000000000000000000000000000000000000
--- a/Source/WebCore/accessibility/atk/WebKitAccessibleInterfaceSelection.cpp
+++ /dev/null
@@ -1,254 +0,0 @@
-/*
- * Copyright (C) 2008 Nuanti Ltd.
- * Copyright (C) 2009 Jan Alonzo
- * Copyright (C) 2010, 2011, 2012 Igalia S.L.
- *
- * Portions from Mozilla a11y, copyright as follows:
- *
- * The Original Code is mozilla.org code.
- *
- * The Initial Developer of the Original Code is
- * Sun Microsystems, Inc.
- * Portions created by the Initial Developer are Copyright (C) 2002
- * the Initial Developer. All Rights Reserved.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public License
- * along with this library; see the file COPYING.LIB. If not, write to
- * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
-
-#include "config.h"
-#include "WebKitAccessibleInterfaceSelection.h"
-
-#if HAVE(ACCESSIBILITY)
-
-#include "AccessibilityListBox.h"
-#include "AccessibilityObject.h"
-#include "HTMLSelectElement.h"
-#include "RenderObject.h"
-#include "WebKitAccessibleWrapperAtk.h"
-
-using namespace WebCore;
-
-static AccessibilityObject* core(AtkSelection* selection)
-{
- if (!WEBKIT_IS_ACCESSIBLE(selection))
- return 0;
-
- return webkitAccessibleGetAccessibilityObject(WEBKIT_ACCESSIBLE(selection));
-}
-
-static AccessibilityObject* listObjectForSelection(AtkSelection* selection)
-{
- AccessibilityObject* coreSelection = core(selection);
-
- // Only list boxes and menu lists supported so far.
- if (!coreSelection->isListBox() && !coreSelection->isMenuList())
- return 0;
-
- // For list boxes the list object is just itself.
- if (coreSelection->isListBox())
- return coreSelection;
-
- // For menu lists we need to return the first accessible child,
- // with role MenuListPopupRole, since that's the one holding the list
- // of items with role MenuListOptionRole.
- AccessibilityObject::AccessibilityChildrenVector children = coreSelection->children();
- if (!children.size())
- return 0;
-
- AccessibilityObject* listObject = children.at(0).get();
- if (!listObject->isMenuListPopup())
- return 0;
-
- return listObject;
-}
-
-static AccessibilityObject* optionFromList(AtkSelection* selection, gint index)
-{
- AccessibilityObject* coreSelection = core(selection);
- if (!coreSelection || index < 0)
- return 0;
-
- // Need to select the proper list object depending on the type.
- AccessibilityObject* listObject = listObjectForSelection(selection);
- if (!listObject)
- return 0;
-
- AccessibilityObject::AccessibilityChildrenVector options = listObject->children();
- if (index < static_cast<gint>(options.size()))
- return options.at(index).get();
-
- return 0;
-}
-
-static AccessibilityObject* optionFromSelection(AtkSelection* selection, gint index)
-{
- // i is the ith selection as opposed to the ith child.
-
- AccessibilityObject* coreSelection = core(selection);
- if (!coreSelection || !coreSelection->isAccessibilityRenderObject() || index < 0)
- return 0;
-
- AccessibilityObject::AccessibilityChildrenVector selectedItems;
- if (coreSelection->isListBox())
- coreSelection->selectedChildren(selectedItems);
- else if (coreSelection->isMenuList()) {
- RenderObject* renderer = coreSelection->renderer();
- if (!renderer)
- return 0;
-
- HTMLSelectElement* selectNode = toHTMLSelectElement(renderer->node());
- int selectedIndex = selectNode->selectedIndex();
- const Vector<HTMLElement*> listItems = selectNode->listItems();
-
- if (selectedIndex < 0 || selectedIndex >= static_cast<int>(listItems.size()))
- return 0;
-
- return optionFromList(selection, selectedIndex);
- }
-
- if (index < static_cast<gint>(selectedItems.size()))
- return selectedItems.at(index).get();
-
- return 0;
-}
-
-static gboolean webkitAccessibleSelectionAddSelection(AtkSelection* selection, gint index)
-{
- AccessibilityObject* coreSelection = core(selection);
- if (!coreSelection)
- return FALSE;
-
- AccessibilityObject* option = optionFromList(selection, index);
- if (option && (coreSelection->isListBox() || coreSelection->isMenuList())) {
- option->setSelected(true);
- return option->isSelected();
- }
-
- return FALSE;
-}
-
-static gboolean webkitAccessibleSelectionClearSelection(AtkSelection* selection)
-{
- AccessibilityObject* coreSelection = core(selection);
- if (!coreSelection)
- return FALSE;
-
- AccessibilityObject::AccessibilityChildrenVector selectedItems;
- if (coreSelection->isListBox() || coreSelection->isMenuList()) {
- // Set the list of selected items to an empty list; then verify that it worked.
- AccessibilityListBox* listBox = static_cast<AccessibilityListBox*>(coreSelection);
- listBox->setSelectedChildren(selectedItems);
- listBox->selectedChildren(selectedItems);
- return !selectedItems.size();
- }
- return FALSE;
-}
-
-static AtkObject* webkitAccessibleSelectionRefSelection(AtkSelection* selection, gint index)
-{
- AccessibilityObject* option = optionFromSelection(selection, index);
- if (option) {
- AtkObject* child = option->wrapper();
- g_object_ref(child);
- return child;
- }
-
- return 0;
-}
-
-static gint webkitAccessibleSelectionGetSelectionCount(AtkSelection* selection)
-{
- AccessibilityObject* coreSelection = core(selection);
- if (!coreSelection || !coreSelection->isAccessibilityRenderObject())
- return 0;
-
- if (coreSelection->isListBox()) {
- AccessibilityObject::AccessibilityChildrenVector selectedItems;
- coreSelection->selectedChildren(selectedItems);
- return static_cast<gint>(selectedItems.size());
- }
-
- if (coreSelection->isMenuList()) {
- RenderObject* renderer = coreSelection->renderer();
- if (!renderer)
- return 0;
-
- int selectedIndex = toHTMLSelectElement(renderer->node())->selectedIndex();
- return selectedIndex >= 0 && selectedIndex < static_cast<int>(toHTMLSelectElement(renderer->node())->listItems().size());
- }
-
- return 0;
-}
-
-static gboolean webkitAccessibleSelectionIsChildSelected(AtkSelection* selection, gint index)
-{
- AccessibilityObject* coreSelection = core(selection);
- if (!coreSelection)
- return 0;
-
- AccessibilityObject* option = optionFromList(selection, index);
- if (option && (coreSelection->isListBox() || coreSelection->isMenuList()))
- return option->isSelected();
-
- return FALSE;
-}
-
-static gboolean webkitAccessibleSelectionRemoveSelection(AtkSelection* selection, gint index)
-{
- AccessibilityObject* coreSelection = core(selection);
- if (!coreSelection)
- return 0;
-
- // TODO: This is only getting called if i == 0. What is preventing the rest?
- AccessibilityObject* option = optionFromSelection(selection, index);
- if (option && (coreSelection->isListBox() || coreSelection->isMenuList())) {
- option->setSelected(false);
- return !option->isSelected();
- }
-
- return FALSE;
-}
-
-static gboolean webkitAccessibleSelectionSelectAllSelection(AtkSelection* selection)
-{
- AccessibilityObject* coreSelection = core(selection);
- if (!coreSelection || !coreSelection->isMultiSelectable())
- return FALSE;
-
- AccessibilityObject::AccessibilityChildrenVector children = coreSelection->children();
- if (coreSelection->isListBox()) {
- AccessibilityListBox* listBox = static_cast<AccessibilityListBox*>(coreSelection);
- listBox->setSelectedChildren(children);
- AccessibilityObject::AccessibilityChildrenVector selectedItems;
- listBox->selectedChildren(selectedItems);
- return selectedItems.size() == children.size();
- }
-
- return FALSE;
-}
-
-void webkitAccessibleSelectionInterfaceInit(AtkSelectionIface* iface)
-{
- iface->add_selection = webkitAccessibleSelectionAddSelection;
- iface->clear_selection = webkitAccessibleSelectionClearSelection;
- iface->ref_selection = webkitAccessibleSelectionRefSelection;
- iface->get_selection_count = webkitAccessibleSelectionGetSelectionCount;
- iface->is_child_selected = webkitAccessibleSelectionIsChildSelected;
- iface->remove_selection = webkitAccessibleSelectionRemoveSelection;
- iface->select_all_selection = webkitAccessibleSelectionSelectAllSelection;
-}
-
-#endif

Powered by Google App Engine
This is Rietveld 408576698