blob: 587f7375d749efb7ef0eeef2dca60b3283021eea [file] [log] [blame]
// 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 "ui/accessibility/ax_node.h"
namespace ui {
AXNode::AXNode(AXNode* parent, int32 id, int32 index_in_parent)
: index_in_parent_(index_in_parent),
parent_(parent) {
data_.id = id;
}
AXNode::~AXNode() {
}
void AXNode::SetData(const AXNodeData& src) {
data_ = src;
}
void AXNode::SetLocation(const gfx::Rect& new_location) {
data_.location = new_location;
}
void AXNode::SetIndexInParent(int index_in_parent) {
index_in_parent_ = index_in_parent;
}
void AXNode::SwapChildren(std::vector<AXNode*>& children) {
children.swap(children_);
}
void AXNode::Destroy() {
delete this;
}
bool AXNode::IsDescendantOf(AXNode* ancestor) {
if (this == ancestor)
return true;
else if (parent())
return parent()->IsDescendantOf(ancestor);
return false;
}
} // namespace ui