blob: ad27587491c0a0b33995245fbf75c038df87a1ea [file] [log] [blame]
// 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 "content/browser/accessibility/browser_accessibility_manager.h"
#include "ui/accessibility/platform/ax_platform_node_auralinux.h"
namespace content {
BrowserAccessibilityAuraLinux* ToBrowserAccessibilityAuraLinux(
BrowserAccessibility* obj) {
DCHECK(!obj || obj->IsNative());
return static_cast<BrowserAccessibilityAuraLinux*>(obj);
}
// static
BrowserAccessibility* BrowserAccessibility::Create() {
return new BrowserAccessibilityAuraLinux();
}
BrowserAccessibilityAuraLinux::BrowserAccessibilityAuraLinux() {
node_ = static_cast<ui::AXPlatformNodeAuraLinux*>(
ui::AXPlatformNode::Create(this));
}
BrowserAccessibilityAuraLinux::~BrowserAccessibilityAuraLinux() {
DCHECK(node_);
node_->Destroy();
}
ui::AXPlatformNodeAuraLinux* BrowserAccessibilityAuraLinux::GetNode() const {
return node_;
}
gfx::NativeViewAccessible
BrowserAccessibilityAuraLinux::GetNativeViewAccessible() {
DCHECK(node_);
return node_->GetNativeViewAccessible();
}
void BrowserAccessibilityAuraLinux::OnDataChanged() {
BrowserAccessibility::OnDataChanged();
DCHECK(node_);
node_->DataChanged();
}
void BrowserAccessibilityAuraLinux::UpdatePlatformAttributes() {
GetNode()->UpdateHypertext();
}
bool BrowserAccessibilityAuraLinux::IsNative() const {
return true;
}
base::string16 BrowserAccessibilityAuraLinux::GetText() const {
return GetNode()->AXPlatformNodeAuraLinux::GetText();
}
ui::AXPlatformNode* BrowserAccessibilityAuraLinux::GetFromNodeID(int32_t id) {
if (!instance_active())
return nullptr;
BrowserAccessibility* accessibility = manager_->GetFromID(id);
if (!accessibility)
return nullptr;
return ToBrowserAccessibilityAuraLinux(accessibility)->GetNode();
}
} // namespace content