diff options
author | erg@chromium.org <erg@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-04-10 22:20:52 +0000 |
---|---|---|
committer | erg@chromium.org <erg@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-04-10 22:20:52 +0000 |
commit | dcc2977772bdd296d8bfbcaedafd4441def78e3d (patch) | |
tree | cb0bdc148cff3f5a221b89ad2c055212d58bb976 /content/browser/accessibility | |
parent | 404d9a54ceae52b741b3e173af12fb7fd21c8548 (diff) | |
download | chromium_src-dcc2977772bdd296d8bfbcaedafd4441def78e3d.zip chromium_src-dcc2977772bdd296d8bfbcaedafd4441def78e3d.tar.gz chromium_src-dcc2977772bdd296d8bfbcaedafd4441def78e3d.tar.bz2 |
Delete the GTK+ port of Chrome.
BUG=297026
R=ben@chromium.org
Review URL: https://codereview.chromium.org/231733005
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@263101 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content/browser/accessibility')
5 files changed, 0 insertions, 851 deletions
diff --git a/content/browser/accessibility/accessibility_tree_formatter_gtk.cc b/content/browser/accessibility/accessibility_tree_formatter_gtk.cc deleted file mode 100644 index d244667..0000000 --- a/content/browser/accessibility/accessibility_tree_formatter_gtk.cc +++ /dev/null @@ -1,111 +0,0 @@ -// Copyright 2013 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/accessibility_tree_formatter.h" - -#include <atk/atk.h> - -#include "base/logging.h" -#include "base/strings/string_number_conversions.h" -#include "base/strings/string_util.h" -#include "base/strings/stringprintf.h" -#include "base/strings/utf_string_conversions.h" -#include "content/browser/accessibility/browser_accessibility_gtk.h" - -namespace content { - -void AccessibilityTreeFormatter::AddProperties(const BrowserAccessibility& node, - base::DictionaryValue* dict) { - BrowserAccessibilityGtk* node_gtk = - const_cast<BrowserAccessibility*>(&node)->ToBrowserAccessibilityGtk(); - AtkObject* atk_object = node_gtk->GetAtkObject(); - AtkRole role = atk_object_get_role(atk_object); - if (role != ATK_ROLE_UNKNOWN) - dict->SetString("role", atk_role_get_name(role)); - dict->SetString("name", atk_object_get_name(atk_object)); - dict->SetString("description", atk_object_get_description(atk_object)); - AtkStateSet* state_set = - atk_object_ref_state_set(atk_object); - base::ListValue* states = new base::ListValue; - for (int i = ATK_STATE_INVALID; i < ATK_STATE_LAST_DEFINED; i++) { - AtkStateType state_type = static_cast<AtkStateType>(i); - if (atk_state_set_contains_state(state_set, state_type)) - states->AppendString(atk_state_type_get_name(state_type)); - } - dict->Set("states", states); - dict->SetInteger("id", node.GetId()); -} - -base::string16 AccessibilityTreeFormatter::ToString( - const base::DictionaryValue& node, - const base::string16& indent) { - base::string16 line; - std::string role_value; - node.GetString("role", &role_value); - if (!role_value.empty()) { - WriteAttribute(true, - base::StringPrintf("[%s]", role_value.c_str()), &line); - } - - std::string name_value; - node.GetString("name", &name_value); - WriteAttribute(true, base::StringPrintf("name='%s'", name_value.c_str()), - &line); - - std::string description_value; - node.GetString("description", &description_value); - WriteAttribute(false, - base::StringPrintf("description='%s'", - description_value.c_str()), - &line); - - const base::ListValue* states_value; - node.GetList("states", &states_value); - for (base::ListValue::const_iterator it = states_value->begin(); - it != states_value->end(); - ++it) { - std::string state_value; - if ((*it)->GetAsString(&state_value)) - WriteAttribute(true, state_value, &line); - } - - int id_value; - node.GetInteger("id", &id_value); - WriteAttribute(false, - base::StringPrintf("id=%d", id_value), - &line); - - return indent + line + base::ASCIIToUTF16("\n"); -} - -void AccessibilityTreeFormatter::Initialize() {} - -// static -const base::FilePath::StringType -AccessibilityTreeFormatter::GetActualFileSuffix() { - return FILE_PATH_LITERAL("-actual-gtk.txt"); -} - -// static -const base::FilePath::StringType -AccessibilityTreeFormatter::GetExpectedFileSuffix() { - return FILE_PATH_LITERAL("-expected-gtk.txt"); -} - -// static -const std::string AccessibilityTreeFormatter::GetAllowEmptyString() { - return "@GTK-ALLOW-EMPTY:"; -} - -// static -const std::string AccessibilityTreeFormatter::GetAllowString() { - return "@GTK-ALLOW:"; -} - -// static -const std::string AccessibilityTreeFormatter::GetDenyString() { - return "@GTK-DENY:"; -} - -} diff --git a/content/browser/accessibility/browser_accessibility_gtk.cc b/content/browser/accessibility/browser_accessibility_gtk.cc deleted file mode 100644 index 4ec1b89..0000000 --- a/content/browser/accessibility/browser_accessibility_gtk.cc +++ /dev/null @@ -1,518 +0,0 @@ -// Copyright (c) 2012 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_gtk.h" - -#include <gtk/gtk.h> - -#include "base/strings/utf_string_conversions.h" -#include "content/browser/accessibility/browser_accessibility_manager_gtk.h" -#include "content/common/accessibility_messages.h" - -namespace content { - -static gpointer browser_accessibility_parent_class = NULL; - -static BrowserAccessibilityGtk* ToBrowserAccessibilityGtk( - BrowserAccessibilityAtk* atk_object) { - if (!atk_object) - return NULL; - - return atk_object->m_object; -} - -// -// AtkComponent interface. -// - -static BrowserAccessibilityGtk* ToBrowserAccessibilityGtk( - AtkComponent* atk_object) { - if (!IS_BROWSER_ACCESSIBILITY(atk_object)) - return NULL; - - return ToBrowserAccessibilityGtk(BROWSER_ACCESSIBILITY(atk_object)); -} - -static AtkObject* browser_accessibility_accessible_at_point( - AtkComponent* component, gint x, gint y, AtkCoordType coord_type) { - BrowserAccessibilityGtk* obj = ToBrowserAccessibilityGtk(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->ToBrowserAccessibilityGtk()->GetAtkObject(); - g_object_ref(atk_result); - return atk_result; -} - -static void browser_accessibility_get_extents( - AtkComponent* component, gint* x, gint* y, gint* width, gint* height, - AtkCoordType coord_type) { - BrowserAccessibilityGtk* obj = ToBrowserAccessibilityGtk(component); - if (!obj) - return; - - gfx::Rect bounds = obj->GetGlobalBoundsRect(); - *x = bounds.x(); - *y = bounds.y(); - *width = bounds.width(); - *height = bounds.height(); -} - -static gboolean browser_accessibility_grab_focus(AtkComponent* component) { - BrowserAccessibilityGtk* obj = ToBrowserAccessibilityGtk(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 BrowserAccessibilityGtk* ToBrowserAccessibilityGtk( - AtkValue* atk_object) { - if (!IS_BROWSER_ACCESSIBILITY(atk_object)) - return NULL; - - return ToBrowserAccessibilityGtk(BROWSER_ACCESSIBILITY(atk_object)); -} - -static void browser_accessibility_get_current_value( - AtkValue* atk_object, GValue* value) { - BrowserAccessibilityGtk* obj = ToBrowserAccessibilityGtk(atk_object); - 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_object, GValue* value) { - BrowserAccessibilityGtk* obj = ToBrowserAccessibilityGtk(atk_object); - 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_object, GValue* value) { - BrowserAccessibilityGtk* obj = ToBrowserAccessibilityGtk(atk_object); - 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_object, GValue* value) { - // TODO(dmazzoni): get the correct value from an <input type=range>. - memset(value, 0, sizeof(*value)); - g_value_init(value, G_TYPE_FLOAT); - g_value_set_float(value, 1.0); -} - -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 BrowserAccessibilityGtk* ToBrowserAccessibilityGtk( - AtkObject* atk_object) { - if (!IS_BROWSER_ACCESSIBILITY(atk_object)) - return NULL; - - return ToBrowserAccessibilityGtk(BROWSER_ACCESSIBILITY(atk_object)); -} - -static const gchar* browser_accessibility_get_name(AtkObject* atk_object) { - BrowserAccessibilityGtk* obj = ToBrowserAccessibilityGtk(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) { - BrowserAccessibilityGtk* obj = ToBrowserAccessibilityGtk(atk_object); - if (!obj) - return NULL; - - return obj->GetStringAttribute( - ui::AX_ATTR_DESCRIPTION).c_str(); -} - -static AtkObject* browser_accessibility_get_parent(AtkObject* atk_object) { - BrowserAccessibilityGtk* obj = ToBrowserAccessibilityGtk(atk_object); - if (!obj) - return NULL; - if (obj->GetParent()) - return obj->GetParent()->ToBrowserAccessibilityGtk()->GetAtkObject(); - - BrowserAccessibilityManagerGtk* manager = - static_cast<BrowserAccessibilityManagerGtk*>(obj->manager()); - return gtk_widget_get_accessible(manager->parent_widget()); -} - -static gint browser_accessibility_get_n_children(AtkObject* atk_object) { - BrowserAccessibilityGtk* obj = ToBrowserAccessibilityGtk(atk_object); - if (!obj) - return 0; - - return obj->PlatformChildCount(); -} - -static AtkObject* browser_accessibility_ref_child( - AtkObject* atk_object, gint index) { - BrowserAccessibilityGtk* obj = ToBrowserAccessibilityGtk(atk_object); - if (!obj) - return NULL; - - if (index < 0 || index >= static_cast<gint>(obj->PlatformChildCount())) - return NULL; - - AtkObject* result = - obj->InternalGetChild(index)->ToBrowserAccessibilityGtk()->GetAtkObject(); - g_object_ref(result); - return result; -} - -static gint browser_accessibility_get_index_in_parent(AtkObject* atk_object) { - BrowserAccessibilityGtk* obj = ToBrowserAccessibilityGtk(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) { - BrowserAccessibilityGtk* obj = ToBrowserAccessibilityGtk(atk_object); - if (!obj) - return ATK_ROLE_INVALID; - return obj->atk_role(); -} - -static AtkStateSet* browser_accessibility_ref_state_set(AtkObject* atk_object) { - BrowserAccessibilityGtk* obj = ToBrowserAccessibilityGtk(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 BrowserAccessibilityGtk 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<BrowserAccessibilityGtk*>(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 (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(BrowserAccessibilityGtk* 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(BrowserAccessibilityGtk* 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( - BrowserAccessibilityGtk* 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 BrowserAccessibilityGtk(); -} - -BrowserAccessibilityGtk* BrowserAccessibility::ToBrowserAccessibilityGtk() { - return static_cast<BrowserAccessibilityGtk*>(this); -} - -BrowserAccessibilityGtk::BrowserAccessibilityGtk() - : atk_object_(NULL) { -} - -BrowserAccessibilityGtk::~BrowserAccessibilityGtk() { - browser_accessibility_detach(BROWSER_ACCESSIBILITY(atk_object_)); - if (atk_object_) - g_object_unref(atk_object_); -} - -AtkObject* BrowserAccessibilityGtk::GetAtkObject() const { - if (!G_IS_OBJECT(atk_object_)) - return NULL; - return atk_object_; -} - -void BrowserAccessibilityGtk::PreInitialize() { - BrowserAccessibility::PreInitialize(); - 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()->ToBrowserAccessibilityGtk()->GetAtkObject()); - } - } -} - -bool BrowserAccessibilityGtk::IsNative() const { - return true; -} - -void BrowserAccessibilityGtk::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_GROUP: - case ui::AX_ROLE_DIV: - atk_role_ = ATK_ROLE_SECTION; - break; - case ui::AX_ROLE_BUTTON: - atk_role_ = ATK_ROLE_PUSH_BUTTON; - break; - case ui::AX_ROLE_CHECK_BOX: - atk_role_ = ATK_ROLE_CHECK_BOX; - break; - case ui::AX_ROLE_COMBO_BOX: - atk_role_ = ATK_ROLE_COMBO_BOX; - break; - case ui::AX_ROLE_LINK: - atk_role_ = ATK_ROLE_LINK; - break; - case ui::AX_ROLE_RADIO_BUTTON: - atk_role_ = ATK_ROLE_RADIO_BUTTON; - break; - case ui::AX_ROLE_STATIC_TEXT: - atk_role_ = ATK_ROLE_TEXT; - break; - case ui::AX_ROLE_TEXT_AREA: - atk_role_ = ATK_ROLE_ENTRY; - break; - case ui::AX_ROLE_TEXT_FIELD: - atk_role_ = ATK_ROLE_ENTRY; - break; - default: - atk_role_ = ATK_ROLE_UNKNOWN; - break; - } -} - -} // namespace content diff --git a/content/browser/accessibility/browser_accessibility_gtk.h b/content/browser/accessibility/browser_accessibility_gtk.h deleted file mode 100644 index c8895e3..0000000 --- a/content/browser/accessibility/browser_accessibility_gtk.h +++ /dev/null @@ -1,92 +0,0 @@ -// Copyright (c) 2012 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. - -#ifndef CONTENT_BROWSER_ACCESSIBILITY_BROWSER_ACCESSIBILITY_GTK_H_ -#define CONTENT_BROWSER_ACCESSIBILITY_BROWSER_ACCESSIBILITY_GTK_H_ - -#include <atk/atk.h> - -#include "base/compiler_specific.h" -#include "content/browser/accessibility/browser_accessibility.h" - -namespace content { - -class BrowserAccessibilityGtk; -class BrowserAccessibilityManagerGtk; - -G_BEGIN_DECLS - -#define BROWSER_ACCESSIBILITY_TYPE (browser_accessibility_get_type()) -#define BROWSER_ACCESSIBILITY(obj) \ - (G_TYPE_CHECK_INSTANCE_CAST( \ - (obj), BROWSER_ACCESSIBILITY_TYPE, BrowserAccessibilityAtk)) -#define BROWSER_ACCESSIBILITY_CLASS(klass) \ - (G_TYPE_CHECK_CLASS_CAST( \ - (klass), BROWSER_ACCESSIBILITY_TYPE, BrowserAccessibilityAtkClass)) -#define IS_BROWSER_ACCESSIBILITY(obj) \ - (G_TYPE_CHECK_INSTANCE_TYPE((obj), BROWSER_ACCESSIBILITY_TYPE)) -#define IS_BROWSER_ACCESSIBILITY_CLASS(klass) \ - (G_TYPE_CHECK_CLASS_TYPE((klass), BROWSER_ACCESSIBILITY_TYPE)) -#define BROWSER_ACCESSIBILITY_GET_CLASS(obj) \ - (G_TYPE_INSTANCE_GET_CLASS( \ - (obj), BROWSER_ACCESSIBILITY_TYPE, BrowserAccessibilityAtkClass)) - -typedef struct _BrowserAccessibilityAtk BrowserAccessibilityAtk; -typedef struct _BrowserAccessibilityAtkClass BrowserAccessibilityAtkClass; - -struct _BrowserAccessibilityAtk { - AtkObject parent; - BrowserAccessibilityGtk* m_object; -}; - -struct _BrowserAccessibilityAtkClass { - AtkObjectClass parent_class; -}; - -GType browser_accessibility_get_type (void) G_GNUC_CONST; - -BrowserAccessibilityAtk* browser_accessibility_new( - BrowserAccessibilityGtk* object); - -BrowserAccessibilityGtk* browser_accessibility_get_object( - BrowserAccessibilityAtk* atk_object); - -void browser_accessibility_detach (BrowserAccessibilityAtk* atk_object); - -AtkObject* browser_accessibility_get_focused_element( - BrowserAccessibilityAtk* atk_object); - -G_END_DECLS - -class BrowserAccessibilityGtk : public BrowserAccessibility { - public: - BrowserAccessibilityGtk(); - - virtual ~BrowserAccessibilityGtk(); - - AtkObject* GetAtkObject() const; - - AtkRole atk_role() { return atk_role_; } - - // BrowserAccessibility methods. - virtual void PreInitialize() OVERRIDE; - virtual bool IsNative() const OVERRIDE; - - private: - virtual void InitRoleAndState(); - - // Give BrowserAccessibility::Create access to our constructor. - friend class BrowserAccessibility; - - AtkObject* atk_object_; - AtkRole atk_role_; - int interface_mask_; - - private: - DISALLOW_COPY_AND_ASSIGN(BrowserAccessibilityGtk); -}; - -} // namespace content - -#endif // CONTENT_BROWSER_ACCESSIBILITY_BROWSER_ACCESSIBILITY_GTK_H_ diff --git a/content/browser/accessibility/browser_accessibility_manager_gtk.cc b/content/browser/accessibility/browser_accessibility_manager_gtk.cc deleted file mode 100644 index 8748de5..0000000 --- a/content/browser/accessibility/browser_accessibility_manager_gtk.cc +++ /dev/null @@ -1,82 +0,0 @@ -// Copyright (c) 2012 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_manager_gtk.h" - -#include "content/browser/accessibility/browser_accessibility_gtk.h" -#include "content/common/accessibility_messages.h" - -namespace content { - -// static -BrowserAccessibilityManager* BrowserAccessibilityManager::Create( - const ui::AXNodeData& src, - BrowserAccessibilityDelegate* delegate, - BrowserAccessibilityFactory* factory) { - return new BrowserAccessibilityManagerGtk( - NULL, - src, - delegate, - factory); -} - -BrowserAccessibilityManagerGtk::BrowserAccessibilityManagerGtk( - GtkWidget* parent_widget, - const ui::AXNodeData& src, - BrowserAccessibilityDelegate* delegate, - BrowserAccessibilityFactory* factory) - : BrowserAccessibilityManager(delegate, factory), - parent_widget_(parent_widget) { - Initialize(src); -} - -BrowserAccessibilityManagerGtk::~BrowserAccessibilityManagerGtk() { -} - -// static -ui::AXNodeData BrowserAccessibilityManagerGtk::GetEmptyDocument() { - ui::AXNodeData empty_document; - empty_document.id = 0; - empty_document.role = ui::AX_ROLE_ROOT_WEB_AREA; - empty_document.state = - 1 << ui::AX_STATE_READ_ONLY; - return empty_document; -} - -void BrowserAccessibilityManagerGtk::NotifyAccessibilityEvent( - ui::AXEvent event_type, - BrowserAccessibility* node) { - if (!node->IsNative()) - return; - AtkObject* atk_object = node->ToBrowserAccessibilityGtk()->GetAtkObject(); - - switch (event_type) { - case ui::AX_EVENT_CHILDREN_CHANGED: - RecursivelySendChildrenChanged(GetRoot()->ToBrowserAccessibilityGtk()); - break; - case ui::AX_EVENT_FOCUS: - // Note: the focus-event was deprecated in ATK 2.9.4 - // See https://bugzilla.gnome.org/show_bug.cgi?id=649575#c8 - g_signal_emit_by_name(atk_object, "focus-event", true); - break; - default: - break; - } -} - -void BrowserAccessibilityManagerGtk::RecursivelySendChildrenChanged( - BrowserAccessibilityGtk* node) { - AtkObject* atkObject = node->ToBrowserAccessibilityGtk()->GetAtkObject(); - for (unsigned int i = 0; i < node->InternalChildCount(); ++i) { - BrowserAccessibilityGtk* child = - node->InternalGetChild(i)->ToBrowserAccessibilityGtk(); - g_signal_emit_by_name(atkObject, - "children-changed::add", - i, - child->GetAtkObject()); - RecursivelySendChildrenChanged(child); - } -} - -} // namespace content diff --git a/content/browser/accessibility/browser_accessibility_manager_gtk.h b/content/browser/accessibility/browser_accessibility_manager_gtk.h deleted file mode 100644 index 6349a81..0000000 --- a/content/browser/accessibility/browser_accessibility_manager_gtk.h +++ /dev/null @@ -1,48 +0,0 @@ -// Copyright (c) 2012 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. - -#ifndef CONTENT_BROWSER_ACCESSIBILITY_BROWSER_ACCESSIBILITY_MANAGER_GTK_H_ -#define CONTENT_BROWSER_ACCESSIBILITY_BROWSER_ACCESSIBILITY_MANAGER_GTK_H_ - -#include "content/browser/accessibility/browser_accessibility_manager.h" - -struct ViewHostMsg_AccessibilityNotification_Params; - -namespace content { -class BrowserAccessibilityGtk; - -// Manages a tree of BrowserAccessibilityGtk objects. -class CONTENT_EXPORT BrowserAccessibilityManagerGtk - : public BrowserAccessibilityManager { - public: - BrowserAccessibilityManagerGtk( - GtkWidget* parent_widget, - const ui::AXNodeData& src, - BrowserAccessibilityDelegate* delegate, - BrowserAccessibilityFactory* factory = new BrowserAccessibilityFactory()); - - virtual ~BrowserAccessibilityManagerGtk(); - - static ui::AXNodeData GetEmptyDocument(); - - // BrowserAccessibilityManager methods - virtual void NotifyAccessibilityEvent( - ui::AXEvent event_type, BrowserAccessibility* node) OVERRIDE; - - GtkWidget* parent_widget() { return parent_widget_; } - - private: - void RecursivelySendChildrenChanged(BrowserAccessibilityGtk* node); - - GtkWidget* parent_widget_; - - // Give BrowserAccessibilityManager::Create access to our constructor. - friend class BrowserAccessibilityManager; - - DISALLOW_COPY_AND_ASSIGN(BrowserAccessibilityManagerGtk); -}; - -} // namespace content - -#endif // CONTENT_BROWSER_ACCESSIBILITY_BROWSER_ACCESSIBILITY_MANAGER_GTK_H_ |