1// Copyright 2013 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#include "ui/accessibility/ax_node.h"
6
7namespace ui {
8
9AXNode::AXNode(AXNode* parent, int32 id, int32 index_in_parent)
10    : index_in_parent_(index_in_parent),
11      parent_(parent) {
12  data_.id = id;
13}
14
15AXNode::~AXNode() {
16}
17
18void AXNode::SetData(const AXNodeData& src) {
19  data_ = src;
20}
21
22void AXNode::SetLocation(const gfx::Rect& new_location) {
23  data_.location = new_location;
24}
25
26void AXNode::SetIndexInParent(int index_in_parent) {
27  index_in_parent_ = index_in_parent;
28}
29
30void AXNode::SwapChildren(std::vector<AXNode*>& children) {
31  children.swap(children_);
32}
33
34void AXNode::Destroy() {
35  delete this;
36}
37
38bool AXNode::IsDescendantOf(AXNode* ancestor) {
39  if (this == ancestor)
40    return true;
41  else if (parent())
42    return parent()->IsDescendantOf(ancestor);
43
44  return false;
45}
46
47}  // namespace ui
48