| Index: content/browser/accessibility/browser_accessibility_auralinux.cc
|
| diff --git a/content/browser/accessibility/browser_accessibility_auralinux.cc b/content/browser/accessibility/browser_accessibility_auralinux.cc
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..2cd0ea703f580e1955510849f878d35f9b083066
|
| --- /dev/null
|
| +++ b/content/browser/accessibility/browser_accessibility_auralinux.cc
|
| @@ -0,0 +1,672 @@
|
| +// Copyright (c) 2015 The Chromium Authors. All rights reserved.
|
| +// Use of this source code is governed by a BSD-style license that can be
|
| +// found in the LICENSE file.
|
| +
|
| +#include "content/browser/accessibility/browser_accessibility_auralinux.h"
|
| +
|
| +#include "base/strings/utf_string_conversions.h"
|
| +#include "content/browser/accessibility/browser_accessibility_manager_auralinux.h"
|
| +#include "content/common/accessibility_messages.h"
|
| +
|
| +namespace content {
|
| +
|
| +static gpointer browser_accessibility_parent_class = NULL;
|
| +
|
| +static BrowserAccessibilityAuraLinux* ToBrowserAccessibilityAuraLinux(
|
| + BrowserAccessibilityAtk* atk_object) {
|
| + if (!atk_object)
|
| + return NULL;
|
| +
|
| + return atk_object->m_object;
|
| +}
|
| +
|
| +//
|
| +// AtkComponent interface.
|
| +//
|
| +
|
| +static BrowserAccessibilityAuraLinux* ToBrowserAccessibilityAuraLinux(
|
| + AtkComponent* atk_component) {
|
| + if (!IS_BROWSER_ACCESSIBILITY(atk_component))
|
| + return NULL;
|
| +
|
| + return ToBrowserAccessibilityAuraLinux(BROWSER_ACCESSIBILITY(atk_component));
|
| +}
|
| +
|
| +static AtkObject* browser_accessibility_accessible_at_point(
|
| + AtkComponent* atk_component,
|
| + gint x,
|
| + gint y,
|
| + AtkCoordType coord_type) {
|
| + g_return_val_if_fail(ATK_IS_COMPONENT(atk_component), 0);
|
| +
|
| + BrowserAccessibilityAuraLinux* obj =
|
| + ToBrowserAccessibilityAuraLinux(atk_component);
|
| + if (!obj)
|
| + return NULL;
|
| +
|
| + gfx::Point point(x, y);
|
| + if (!obj->GetGlobalBoundsRect().Contains(point))
|
| + return NULL;
|
| +
|
| + BrowserAccessibility* result = obj->BrowserAccessibilityForPoint(point);
|
| + if (!result)
|
| + return NULL;
|
| +
|
| + AtkObject* atk_result =
|
| + result->ToBrowserAccessibilityAuraLinux()->GetAtkObject();
|
| + g_object_ref(atk_result);
|
| + return atk_result;
|
| +}
|
| +
|
| +static void browser_accessibility_get_extents(AtkComponent* atk_component,
|
| + gint* x,
|
| + gint* y,
|
| + gint* width,
|
| + gint* height,
|
| + AtkCoordType coord_type) {
|
| + g_return_if_fail(ATK_IS_COMPONENT(atk_component));
|
| +
|
| + BrowserAccessibilityAuraLinux* obj =
|
| + ToBrowserAccessibilityAuraLinux(atk_component);
|
| + if (!obj)
|
| + return;
|
| +
|
| + gfx::Rect bounds = obj->GetGlobalBoundsRect();
|
| + if (x)
|
| + *x = bounds.x();
|
| + if (y)
|
| + *y = bounds.y();
|
| + if (width)
|
| + *width = bounds.width();
|
| + if (height)
|
| + *height = bounds.height();
|
| +}
|
| +
|
| +static gboolean browser_accessibility_grab_focus(AtkComponent* atk_component) {
|
| + g_return_val_if_fail(ATK_IS_COMPONENT(atk_component), FALSE);
|
| +
|
| + BrowserAccessibilityAuraLinux* obj =
|
| + ToBrowserAccessibilityAuraLinux(atk_component);
|
| + if (!obj)
|
| + return false;
|
| +
|
| + obj->manager()->SetFocus(obj, true);
|
| + return true;
|
| +}
|
| +
|
| +static void ComponentInterfaceInit(AtkComponentIface* iface) {
|
| + iface->ref_accessible_at_point = browser_accessibility_accessible_at_point;
|
| + iface->get_extents = browser_accessibility_get_extents;
|
| + iface->grab_focus = browser_accessibility_grab_focus;
|
| +}
|
| +
|
| +static const GInterfaceInfo ComponentInfo = {
|
| + reinterpret_cast<GInterfaceInitFunc>(ComponentInterfaceInit),
|
| + 0,
|
| + 0};
|
| +
|
| +//
|
| +// AtkValue interface.
|
| +//
|
| +
|
| +static BrowserAccessibilityAuraLinux* ToBrowserAccessibilityAuraLinux(
|
| + AtkValue* atk_object) {
|
| + if (!IS_BROWSER_ACCESSIBILITY(atk_object))
|
| + return NULL;
|
| +
|
| + return ToBrowserAccessibilityAuraLinux(BROWSER_ACCESSIBILITY(atk_object));
|
| +}
|
| +
|
| +static float GetStepAttribute(BrowserAccessibilityAuraLinux* obj) {
|
| + // TODO(shreeram.k): Get Correct value of Step attribute.
|
| + return 1.0;
|
| +}
|
| +
|
| +static void browser_accessibility_get_current_value(AtkValue* atk_value,
|
| + GValue* value) {
|
| + g_return_if_fail(ATK_VALUE(atk_value));
|
| +
|
| + BrowserAccessibilityAuraLinux* obj =
|
| + ToBrowserAccessibilityAuraLinux(atk_value);
|
| + if (!obj)
|
| + return;
|
| +
|
| + float float_val;
|
| + if (obj->GetFloatAttribute(ui::AX_ATTR_VALUE_FOR_RANGE, &float_val)) {
|
| + memset(value, 0, sizeof(*value));
|
| + g_value_init(value, G_TYPE_FLOAT);
|
| + g_value_set_float(value, float_val);
|
| + }
|
| +}
|
| +
|
| +static void browser_accessibility_get_minimum_value(AtkValue* atk_value,
|
| + GValue* value) {
|
| + g_return_if_fail(ATK_VALUE(atk_value));
|
| +
|
| + BrowserAccessibilityAuraLinux* obj =
|
| + ToBrowserAccessibilityAuraLinux(atk_value);
|
| + if (!obj)
|
| + return;
|
| +
|
| + float float_val;
|
| + if (obj->GetFloatAttribute(ui::AX_ATTR_MIN_VALUE_FOR_RANGE, &float_val)) {
|
| + memset(value, 0, sizeof(*value));
|
| + g_value_init(value, G_TYPE_FLOAT);
|
| + g_value_set_float(value, float_val);
|
| + }
|
| +}
|
| +
|
| +static void browser_accessibility_get_maximum_value(AtkValue* atk_value,
|
| + GValue* value) {
|
| + g_return_if_fail(ATK_VALUE(atk_value));
|
| +
|
| + BrowserAccessibilityAuraLinux* obj =
|
| + ToBrowserAccessibilityAuraLinux(atk_value);
|
| + if (!obj)
|
| + return;
|
| +
|
| + float float_val;
|
| + if (obj->GetFloatAttribute(ui::AX_ATTR_MAX_VALUE_FOR_RANGE, &float_val)) {
|
| + memset(value, 0, sizeof(*value));
|
| + g_value_init(value, G_TYPE_FLOAT);
|
| + g_value_set_float(value, float_val);
|
| + }
|
| +}
|
| +
|
| +static void browser_accessibility_get_minimum_increment(AtkValue* atk_value,
|
| + GValue* gValue) {
|
| + g_return_if_fail(ATK_VALUE(atk_value));
|
| +
|
| + memset(gValue, 0, sizeof(GValue));
|
| + g_value_init(gValue, G_TYPE_FLOAT);
|
| +
|
| + BrowserAccessibilityAuraLinux* obj =
|
| + ToBrowserAccessibilityAuraLinux(atk_value);
|
| + if (!obj)
|
| + return;
|
| +
|
| + g_value_set_float(gValue, GetStepAttribute(obj));
|
| +}
|
| +
|
| +static void ValueInterfaceInit(AtkValueIface* iface) {
|
| + iface->get_current_value = browser_accessibility_get_current_value;
|
| + iface->get_minimum_value = browser_accessibility_get_minimum_value;
|
| + iface->get_maximum_value = browser_accessibility_get_maximum_value;
|
| + iface->get_minimum_increment = browser_accessibility_get_minimum_increment;
|
| +}
|
| +
|
| +static const GInterfaceInfo ValueInfo = {
|
| + reinterpret_cast<GInterfaceInitFunc>(ValueInterfaceInit),
|
| + 0,
|
| + 0};
|
| +
|
| +//
|
| +// AtkObject interface
|
| +//
|
| +
|
| +static BrowserAccessibilityAuraLinux* ToBrowserAccessibilityAuraLinux(
|
| + AtkObject* atk_object) {
|
| + if (!IS_BROWSER_ACCESSIBILITY(atk_object))
|
| + return NULL;
|
| +
|
| + return ToBrowserAccessibilityAuraLinux(BROWSER_ACCESSIBILITY(atk_object));
|
| +}
|
| +
|
| +static const gchar* browser_accessibility_get_name(AtkObject* atk_object) {
|
| + BrowserAccessibilityAuraLinux* obj =
|
| + ToBrowserAccessibilityAuraLinux(atk_object);
|
| + if (!obj)
|
| + return NULL;
|
| +
|
| + return obj->GetStringAttribute(ui::AX_ATTR_NAME).c_str();
|
| +}
|
| +
|
| +static const gchar* browser_accessibility_get_description(
|
| + AtkObject* atk_object) {
|
| + BrowserAccessibilityAuraLinux* obj =
|
| + ToBrowserAccessibilityAuraLinux(atk_object);
|
| + if (!obj)
|
| + return NULL;
|
| +
|
| + return obj->GetStringAttribute(ui::AX_ATTR_DESCRIPTION).c_str();
|
| +}
|
| +
|
| +static AtkObject* browser_accessibility_get_parent(AtkObject* atk_object) {
|
| + BrowserAccessibilityAuraLinux* obj =
|
| + ToBrowserAccessibilityAuraLinux(atk_object);
|
| + if (!obj)
|
| + return NULL;
|
| + if (obj->GetParent())
|
| + return obj->GetParent()->ToBrowserAccessibilityAuraLinux()->GetAtkObject();
|
| +
|
| + BrowserAccessibilityManagerAuraLinux* manager =
|
| + static_cast<BrowserAccessibilityManagerAuraLinux*>(obj->manager());
|
| + return manager->parent_object();
|
| +}
|
| +
|
| +static gint browser_accessibility_get_n_children(AtkObject* atk_object) {
|
| + BrowserAccessibilityAuraLinux* obj =
|
| + ToBrowserAccessibilityAuraLinux(atk_object);
|
| + if (!obj)
|
| + return 0;
|
| +
|
| + return obj->PlatformChildCount();
|
| +}
|
| +
|
| +static AtkObject* browser_accessibility_ref_child(AtkObject* atk_object,
|
| + gint index) {
|
| + BrowserAccessibilityAuraLinux* obj =
|
| + ToBrowserAccessibilityAuraLinux(atk_object);
|
| + if (!obj)
|
| + return NULL;
|
| +
|
| + if (index < 0 || index >= static_cast<gint>(obj->PlatformChildCount()))
|
| + return NULL;
|
| +
|
| + AtkObject* result = obj->InternalGetChild(index)
|
| + ->ToBrowserAccessibilityAuraLinux()
|
| + ->GetAtkObject();
|
| + g_object_ref(result);
|
| + return result;
|
| +}
|
| +
|
| +static gint browser_accessibility_get_index_in_parent(AtkObject* atk_object) {
|
| + BrowserAccessibilityAuraLinux* obj =
|
| + ToBrowserAccessibilityAuraLinux(atk_object);
|
| + if (!obj)
|
| + return 0;
|
| + return obj->GetIndexInParent();
|
| +}
|
| +
|
| +static AtkAttributeSet* browser_accessibility_get_attributes(
|
| + AtkObject* atk_object) {
|
| + return NULL;
|
| +}
|
| +
|
| +static AtkRole browser_accessibility_get_role(AtkObject* atk_object) {
|
| + BrowserAccessibilityAuraLinux* obj =
|
| + ToBrowserAccessibilityAuraLinux(atk_object);
|
| + if (!obj)
|
| + return ATK_ROLE_INVALID;
|
| + return obj->atk_role();
|
| +}
|
| +
|
| +static AtkStateSet* browser_accessibility_ref_state_set(AtkObject* atk_object) {
|
| + BrowserAccessibilityAuraLinux* obj =
|
| + ToBrowserAccessibilityAuraLinux(atk_object);
|
| + if (!obj)
|
| + return NULL;
|
| + AtkStateSet* state_set = ATK_OBJECT_CLASS(browser_accessibility_parent_class)
|
| + ->ref_state_set(atk_object);
|
| + int32 state = obj->GetState();
|
| +
|
| + if (state & (1 << ui::AX_STATE_FOCUSABLE))
|
| + atk_state_set_add_state(state_set, ATK_STATE_FOCUSABLE);
|
| + if (obj->manager()->GetFocus(NULL) == obj)
|
| + atk_state_set_add_state(state_set, ATK_STATE_FOCUSED);
|
| + if (state & (1 << ui::AX_STATE_ENABLED))
|
| + atk_state_set_add_state(state_set, ATK_STATE_ENABLED);
|
| +
|
| + return state_set;
|
| +}
|
| +
|
| +static AtkRelationSet* browser_accessibility_ref_relation_set(
|
| + AtkObject* atk_object) {
|
| + AtkRelationSet* relation_set =
|
| + ATK_OBJECT_CLASS(browser_accessibility_parent_class)
|
| + ->ref_relation_set(atk_object);
|
| + return relation_set;
|
| +}
|
| +
|
| +//
|
| +// The rest of the BrowserAccessibilityAuraLinux code, not specific to one
|
| +// of the Atk* interfaces.
|
| +//
|
| +
|
| +static void browser_accessibility_init(AtkObject* atk_object, gpointer data) {
|
| + if (ATK_OBJECT_CLASS(browser_accessibility_parent_class)->initialize) {
|
| + ATK_OBJECT_CLASS(browser_accessibility_parent_class)
|
| + ->initialize(atk_object, data);
|
| + }
|
| +
|
| + BROWSER_ACCESSIBILITY(atk_object)->m_object =
|
| + reinterpret_cast<BrowserAccessibilityAuraLinux*>(data);
|
| +}
|
| +
|
| +static void browser_accessibility_finalize(GObject* atk_object) {
|
| + G_OBJECT_CLASS(browser_accessibility_parent_class)->finalize(atk_object);
|
| +}
|
| +
|
| +static void browser_accessibility_class_init(AtkObjectClass* klass) {
|
| + GObjectClass* gobject_class = G_OBJECT_CLASS(klass);
|
| + browser_accessibility_parent_class = g_type_class_peek_parent(klass);
|
| +
|
| + gobject_class->finalize = browser_accessibility_finalize;
|
| + klass->initialize = browser_accessibility_init;
|
| + klass->get_name = browser_accessibility_get_name;
|
| + klass->get_description = browser_accessibility_get_description;
|
| + klass->get_parent = browser_accessibility_get_parent;
|
| + klass->get_n_children = browser_accessibility_get_n_children;
|
| + klass->ref_child = browser_accessibility_ref_child;
|
| + klass->get_role = browser_accessibility_get_role;
|
| + klass->ref_state_set = browser_accessibility_ref_state_set;
|
| + klass->get_index_in_parent = browser_accessibility_get_index_in_parent;
|
| + klass->get_attributes = browser_accessibility_get_attributes;
|
| + klass->ref_relation_set = browser_accessibility_ref_relation_set;
|
| +}
|
| +
|
| +GType browser_accessibility_get_type() {
|
| + static volatile gsize type_volatile = 0;
|
| +
|
| +#if !GLIB_CHECK_VERSION(2, 36, 0)
|
| + g_type_init();
|
| +#endif
|
| +
|
| + if (g_once_init_enter(&type_volatile)) {
|
| + static const GTypeInfo tinfo = {
|
| + sizeof(BrowserAccessibilityAtkClass),
|
| + (GBaseInitFunc)0,
|
| + (GBaseFinalizeFunc)0,
|
| + (GClassInitFunc)browser_accessibility_class_init,
|
| + (GClassFinalizeFunc)0,
|
| + 0, /* class data */
|
| + sizeof(BrowserAccessibilityAtk), /* instance size */
|
| + 0, /* nb preallocs */
|
| + (GInstanceInitFunc)0,
|
| + 0 /* value table */
|
| + };
|
| +
|
| + GType type = g_type_register_static(ATK_TYPE_OBJECT, "BrowserAccessibility",
|
| + &tinfo, GTypeFlags(0));
|
| + g_once_init_leave(&type_volatile, type);
|
| + }
|
| +
|
| + return type_volatile;
|
| +}
|
| +
|
| +static const char* GetUniqueAccessibilityTypeName(int interface_mask) {
|
| + // 20 characters is enough for "Chrome%x" with any integer value.
|
| + static char name[20];
|
| + snprintf(name, sizeof(name), "Chrome%x", interface_mask);
|
| + return name;
|
| +}
|
| +
|
| +enum AtkInterfaces {
|
| + ATK_ACTION_INTERFACE,
|
| + ATK_COMPONENT_INTERFACE,
|
| + ATK_DOCUMENT_INTERFACE,
|
| + ATK_EDITABLE_TEXT_INTERFACE,
|
| + ATK_HYPERLINK_INTERFACE,
|
| + ATK_HYPERTEXT_INTERFACE,
|
| + ATK_IMAGE_INTERFACE,
|
| + ATK_SELECTION_INTERFACE,
|
| + ATK_TABLE_INTERFACE,
|
| + ATK_TEXT_INTERFACE,
|
| + ATK_VALUE_INTERFACE,
|
| +};
|
| +
|
| +static int GetInterfaceMaskFromObject(BrowserAccessibilityAuraLinux* obj) {
|
| + int interface_mask = 0;
|
| +
|
| + // Component interface is always supported.
|
| + interface_mask |= 1 << ATK_COMPONENT_INTERFACE;
|
| +
|
| + int role = obj->GetRole();
|
| + if (role == ui::AX_ROLE_PROGRESS_INDICATOR ||
|
| + role == ui::AX_ROLE_SCROLL_BAR || role == ui::AX_ROLE_SLIDER) {
|
| + interface_mask |= 1 << ATK_VALUE_INTERFACE;
|
| + }
|
| +
|
| + return interface_mask;
|
| +}
|
| +
|
| +static GType GetAccessibilityTypeFromObject(
|
| + BrowserAccessibilityAuraLinux* obj) {
|
| + static const GTypeInfo type_info = {
|
| + sizeof(BrowserAccessibilityAtkClass),
|
| + (GBaseInitFunc)0,
|
| + (GBaseFinalizeFunc)0,
|
| + (GClassInitFunc)0,
|
| + (GClassFinalizeFunc)0,
|
| + 0, /* class data */
|
| + sizeof(BrowserAccessibilityAtk), /* instance size */
|
| + 0, /* nb preallocs */
|
| + (GInstanceInitFunc)0,
|
| + 0 /* value table */
|
| + };
|
| +
|
| + int interface_mask = GetInterfaceMaskFromObject(obj);
|
| + const char* atk_type_name = GetUniqueAccessibilityTypeName(interface_mask);
|
| + GType type = g_type_from_name(atk_type_name);
|
| + if (type)
|
| + return type;
|
| +
|
| + type = g_type_register_static(BROWSER_ACCESSIBILITY_TYPE, atk_type_name,
|
| + &type_info, GTypeFlags(0));
|
| + if (interface_mask & (1 << ATK_COMPONENT_INTERFACE))
|
| + g_type_add_interface_static(type, ATK_TYPE_COMPONENT, &ComponentInfo);
|
| + if (interface_mask & (1 << ATK_VALUE_INTERFACE))
|
| + g_type_add_interface_static(type, ATK_TYPE_VALUE, &ValueInfo);
|
| +
|
| + return type;
|
| +}
|
| +
|
| +BrowserAccessibilityAtk* browser_accessibility_new(
|
| + BrowserAccessibilityAuraLinux* obj) {
|
| + GType type = GetAccessibilityTypeFromObject(obj);
|
| + AtkObject* atk_object = static_cast<AtkObject*>(g_object_new(type, 0));
|
| +
|
| + atk_object_initialize(atk_object, obj);
|
| +
|
| + return BROWSER_ACCESSIBILITY(atk_object);
|
| +}
|
| +
|
| +void browser_accessibility_detach(BrowserAccessibilityAtk* atk_object) {
|
| + atk_object->m_object = NULL;
|
| +}
|
| +
|
| +// static
|
| +BrowserAccessibility* BrowserAccessibility::Create() {
|
| + return new BrowserAccessibilityAuraLinux();
|
| +}
|
| +
|
| +BrowserAccessibilityAuraLinux*
|
| +BrowserAccessibility::ToBrowserAccessibilityAuraLinux() {
|
| + return static_cast<BrowserAccessibilityAuraLinux*>(this);
|
| +}
|
| +
|
| +BrowserAccessibilityAuraLinux::BrowserAccessibilityAuraLinux()
|
| + : atk_object_(NULL) {
|
| +}
|
| +
|
| +BrowserAccessibilityAuraLinux::~BrowserAccessibilityAuraLinux() {
|
| + browser_accessibility_detach(BROWSER_ACCESSIBILITY(atk_object_));
|
| + if (atk_object_)
|
| + g_object_unref(atk_object_);
|
| +}
|
| +
|
| +AtkObject* BrowserAccessibilityAuraLinux::GetAtkObject() const {
|
| + if (!G_IS_OBJECT(atk_object_))
|
| + return NULL;
|
| + return atk_object_;
|
| +}
|
| +
|
| +void BrowserAccessibilityAuraLinux::OnDataChanged() {
|
| + BrowserAccessibility::OnDataChanged();
|
| + InitRoleAndState();
|
| +
|
| + if (atk_object_) {
|
| + // If the object's role changes and that causes its
|
| + // interface mask to change, we need to create a new
|
| + // AtkObject for it.
|
| + int interface_mask = GetInterfaceMaskFromObject(this);
|
| + if (interface_mask != interface_mask_) {
|
| + g_object_unref(atk_object_);
|
| + atk_object_ = NULL;
|
| + }
|
| + }
|
| +
|
| + if (!atk_object_) {
|
| + interface_mask_ = GetInterfaceMaskFromObject(this);
|
| + atk_object_ = ATK_OBJECT(browser_accessibility_new(this));
|
| + if (this->GetParent()) {
|
| + atk_object_set_parent(
|
| + atk_object_,
|
| + this->GetParent()->ToBrowserAccessibilityAuraLinux()->GetAtkObject());
|
| + }
|
| + }
|
| +}
|
| +
|
| +bool BrowserAccessibilityAuraLinux::IsNative() const {
|
| + return true;
|
| +}
|
| +
|
| +void BrowserAccessibilityAuraLinux::InitRoleAndState() {
|
| + switch (GetRole()) {
|
| + case ui::AX_ROLE_DOCUMENT:
|
| + case ui::AX_ROLE_ROOT_WEB_AREA:
|
| + case ui::AX_ROLE_WEB_AREA:
|
| + atk_role_ = ATK_ROLE_DOCUMENT_WEB;
|
| + break;
|
| + case ui::AX_ROLE_ALERT:
|
| + case ui::AX_ROLE_ALERT_DIALOG:
|
| + atk_role_ = ATK_ROLE_ALERT;
|
| + break;
|
| + case ui::AX_ROLE_APPLICATION:
|
| + atk_role_ = ATK_ROLE_APPLICATION;
|
| + break;
|
| + case ui::AX_ROLE_BUTTON:
|
| + atk_role_ = ATK_ROLE_PUSH_BUTTON;
|
| + break;
|
| + case ui::AX_ROLE_CANVAS:
|
| + atk_role_ = ATK_ROLE_CANVAS;
|
| + break;
|
| + case ui::AX_ROLE_CAPTION:
|
| + atk_role_ = ATK_ROLE_CAPTION;
|
| + break;
|
| + case ui::AX_ROLE_CHECK_BOX:
|
| + atk_role_ = ATK_ROLE_CHECK_BOX;
|
| + break;
|
| + case ui::AX_ROLE_COLOR_WELL:
|
| + atk_role_ = ATK_ROLE_COLOR_CHOOSER;
|
| + break;
|
| + case ui::AX_ROLE_COLUMN_HEADER:
|
| + atk_role_ = ATK_ROLE_COLUMN_HEADER;
|
| + break;
|
| + case ui::AX_ROLE_COMBO_BOX:
|
| + atk_role_ = ATK_ROLE_COMBO_BOX;
|
| + break;
|
| + case ui::AX_ROLE_DATE:
|
| + case ui::AX_ROLE_DATE_TIME:
|
| + atk_role_ = ATK_ROLE_DATE_EDITOR;
|
| + break;
|
| + case ui::AX_ROLE_DIALOG:
|
| + atk_role_ = ATK_ROLE_DIALOG;
|
| + break;
|
| + case ui::AX_ROLE_DIV:
|
| + case ui::AX_ROLE_GROUP:
|
| + atk_role_ = ATK_ROLE_SECTION;
|
| + break;
|
| + case ui::AX_ROLE_FORM:
|
| + atk_role_ = ATK_ROLE_FORM;
|
| + break;
|
| + case ui::AX_ROLE_IMAGE:
|
| + atk_role_ = ATK_ROLE_IMAGE;
|
| + break;
|
| + case ui::AX_ROLE_IMAGE_MAP:
|
| + atk_role_ = ATK_ROLE_IMAGE_MAP;
|
| + break;
|
| + case ui::AX_ROLE_LABEL_TEXT:
|
| + atk_role_ = ATK_ROLE_LABEL;
|
| + break;
|
| + case ui::AX_ROLE_LINK:
|
| + atk_role_ = ATK_ROLE_LINK;
|
| + break;
|
| + case ui::AX_ROLE_LIST:
|
| + atk_role_ = ATK_ROLE_LIST;
|
| + break;
|
| + case ui::AX_ROLE_LIST_BOX:
|
| + atk_role_ = ATK_ROLE_LIST_BOX;
|
| + break;
|
| + case ui::AX_ROLE_LIST_ITEM:
|
| + atk_role_ = ATK_ROLE_LIST_ITEM;
|
| + break;
|
| + case ui::AX_ROLE_MENU:
|
| + atk_role_ = ATK_ROLE_MENU;
|
| + break;
|
| + case ui::AX_ROLE_MENU_BAR:
|
| + atk_role_ = ATK_ROLE_MENU_BAR;
|
| + break;
|
| + case ui::AX_ROLE_MENU_ITEM:
|
| + atk_role_ = ATK_ROLE_MENU_ITEM;
|
| + break;
|
| + case ui::AX_ROLE_MENU_ITEM_CHECK_BOX:
|
| + atk_role_ = ATK_ROLE_CHECK_MENU_ITEM;
|
| + break;
|
| + case ui::AX_ROLE_MENU_ITEM_RADIO:
|
| + atk_role_ = ATK_ROLE_RADIO_MENU_ITEM;
|
| + break;
|
| + case ui::AX_ROLE_METER:
|
| + atk_role_ = ATK_ROLE_PROGRESS_BAR;
|
| + break;
|
| + case ui::AX_ROLE_PARAGRAPH:
|
| + atk_role_ = ATK_ROLE_PARAGRAPH;
|
| + break;
|
| + case ui::AX_ROLE_RADIO_BUTTON:
|
| + atk_role_ = ATK_ROLE_RADIO_BUTTON;
|
| + break;
|
| + case ui::AX_ROLE_ROW_HEADER:
|
| + atk_role_ = ATK_ROLE_ROW_HEADER;
|
| + break;
|
| + case ui::AX_ROLE_SCROLL_BAR:
|
| + atk_role_ = ATK_ROLE_SCROLL_BAR;
|
| + break;
|
| + case ui::AX_ROLE_SLIDER:
|
| + atk_role_ = ATK_ROLE_SLIDER;
|
| + break;
|
| + case ui::AX_ROLE_SPIN_BUTTON:
|
| + atk_role_ = ATK_ROLE_SPIN_BUTTON;
|
| + break;
|
| + case ui::AX_ROLE_SPLITTER:
|
| + atk_role_ = ATK_ROLE_SEPARATOR;
|
| + break;
|
| + case ui::AX_ROLE_STATIC_TEXT:
|
| + atk_role_ = ATK_ROLE_TEXT;
|
| + break;
|
| + case ui::AX_ROLE_STATUS:
|
| + atk_role_ = ATK_ROLE_STATUSBAR;
|
| + break;
|
| + case ui::AX_ROLE_TAB:
|
| + atk_role_ = ATK_ROLE_PAGE_TAB;
|
| + break;
|
| + case ui::AX_ROLE_TABLE:
|
| + atk_role_ = ATK_ROLE_TABLE;
|
| + break;
|
| + case ui::AX_ROLE_TAB_LIST:
|
| + atk_role_ = ATK_ROLE_PAGE_TAB_LIST;
|
| + break;
|
| + case ui::AX_ROLE_TOGGLE_BUTTON:
|
| + atk_role_ = ATK_ROLE_TOGGLE_BUTTON;
|
| + break;
|
| + case ui::AX_ROLE_TOOLBAR:
|
| + atk_role_ = ATK_ROLE_TOOL_BAR;
|
| + break;
|
| + case ui::AX_ROLE_TOOLTIP:
|
| + atk_role_ = ATK_ROLE_TOOL_TIP;
|
| + break;
|
| + case ui::AX_ROLE_TEXT_FIELD:
|
| + atk_role_ = ATK_ROLE_ENTRY;
|
| + break;
|
| + case ui::AX_ROLE_TREE:
|
| + atk_role_ = ATK_ROLE_TREE;
|
| + break;
|
| + case ui::AX_ROLE_TREE_ITEM:
|
| + atk_role_ = ATK_ROLE_TREE_ITEM;
|
| + break;
|
| + default:
|
| + atk_role_ = ATK_ROLE_UNKNOWN;
|
| + break;
|
| + }
|
| +}
|
| +
|
| +} // namespace content
|
|
|