This removes the following RemoteAccessible methods: Name Value Step Description Help State Bounds BoundsInCSSPixels Language Attributes RelationByType CurValue MinValue MaxValue OffsetAtPoint TextSubstring TextBeforeOffset TextAtOffset TextAfterOffset RemoveFromSelection CaretOffset SetCaretOffset ScrollSubstringTo DOMNodeID TakeFocus ChildAtPoint GroupPosition SetSelectionBoundsAt IsSearchbox LandmarkRole CharacterCount SelectionCount CharAt TextAttributes DefaultTextAttributes TextBounds CharBounds SelectionBoundsAt Text StartOffset EndOffset LinkCount LinkIndexAtOffset TableIsProbablyForLayout SelectedItems SelectedItemCount GetSelectedItem IsItemSelected AddItemToSelection RemoveItemFromSelection SelectAll UnselectAll DoAction ActionCount ActionNameAt AccessKey Extents AtkKeyBinding NativeState Relations ImagePosition ImageSize TableSummary TableRowAndColumnIndicesAt TableSelectedCellCount TableSelectedColumnCount TableSelectedRowCount TableSelectedCells TableSelectedCellIndices TableOfACell ColIdx RowIdx GetPosition ColExtent RowExtent GetColRowExtents ColHeaderCells RowHeaderCells IsCellSelected TableCaption TableColumnCount TableRowCount TableCellAt TableCellIndexAt TableColumnIndexAt TableRowIndexAt TableColumnExtentAt TableRowExtentAt TableColumnDescription TableRowDescription TableColumnSelected TableRowSelected TableSelectedColumnIndices TableSelectedRowIndices TableSelectColumn TableSelectRow TableUnselectColumn TableUnselectRow AtkTableColumnHeader AtkTableRowHeader Differential Revision: https://phabricator.services.mozilla.com/D177873
84 lines
2.3 KiB
C++
84 lines
2.3 KiB
C++
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
|
/* vim: set ts=2 et sw=2 tw=80: */
|
|
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
|
|
|
#include "InterfaceInitFuncs.h"
|
|
|
|
#include "LocalAccessible-inl.h"
|
|
#include "nsMai.h"
|
|
#include "mozilla/Likely.h"
|
|
#include "nsAccessibilityService.h"
|
|
#include "RemoteAccessible.h"
|
|
#include "nsString.h"
|
|
|
|
using namespace mozilla;
|
|
using namespace mozilla::a11y;
|
|
|
|
extern "C" {
|
|
|
|
static gboolean doActionCB(AtkAction* aAction, gint aActionIndex) {
|
|
AtkObject* atkObject = ATK_OBJECT(aAction);
|
|
if (Accessible* acc = GetInternalObj(atkObject)) {
|
|
return acc->DoAction(aActionIndex);
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
static gint getActionCountCB(AtkAction* aAction) {
|
|
AtkObject* atkObject = ATK_OBJECT(aAction);
|
|
if (Accessible* acc = GetInternalObj(atkObject)) {
|
|
return acc->ActionCount();
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
static const gchar* getActionDescriptionCB(AtkAction* aAction,
|
|
gint aActionIndex) {
|
|
AtkObject* atkObject = ATK_OBJECT(aAction);
|
|
nsAutoString description;
|
|
if (Accessible* acc = GetInternalObj(atkObject)) {
|
|
acc->ActionDescriptionAt(aActionIndex, description);
|
|
return AccessibleWrap::ReturnString(description);
|
|
}
|
|
|
|
return nullptr;
|
|
}
|
|
|
|
static const gchar* getActionNameCB(AtkAction* aAction, gint aActionIndex) {
|
|
AtkObject* atkObject = ATK_OBJECT(aAction);
|
|
nsAutoString autoStr;
|
|
if (Accessible* acc = GetInternalObj(atkObject)) {
|
|
acc->ActionNameAt(aActionIndex, autoStr);
|
|
return AccessibleWrap::ReturnString(autoStr);
|
|
}
|
|
|
|
return nullptr;
|
|
}
|
|
|
|
static const gchar* getKeyBindingCB(AtkAction* aAction, gint aActionIndex) {
|
|
Accessible* acc = GetInternalObj(ATK_OBJECT(aAction));
|
|
if (!acc) {
|
|
return nullptr;
|
|
}
|
|
nsAutoString keyBindingsStr;
|
|
AccessibleWrap::GetKeyBinding(acc, keyBindingsStr);
|
|
|
|
return AccessibleWrap::ReturnString(keyBindingsStr);
|
|
}
|
|
}
|
|
|
|
void actionInterfaceInitCB(AtkActionIface* aIface) {
|
|
NS_ASSERTION(aIface, "Invalid aIface");
|
|
if (MOZ_UNLIKELY(!aIface)) return;
|
|
|
|
aIface->do_action = doActionCB;
|
|
aIface->get_n_actions = getActionCountCB;
|
|
aIface->get_description = getActionDescriptionCB;
|
|
aIface->get_keybinding = getKeyBindingCB;
|
|
aIface->get_name = getActionNameCB;
|
|
}
|