15f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved.
25f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
35f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)// found in the LICENSE file.
45f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)
55f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)#include "ui/accessibility/platform/ax_platform_node_base.h"
65f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)
75f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)#include "ui/accessibility/ax_node_data.h"
85f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)#include "ui/accessibility/platform/ax_platform_node_delegate.h"
95f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)
105f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)namespace ui {
115f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)
125f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)AXPlatformNodeBase::AXPlatformNodeBase() {
135f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)}
145f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)
155f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)AXPlatformNodeBase::~AXPlatformNodeBase() {
165f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)}
175f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)
185f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)void AXPlatformNodeBase::Init(AXPlatformNodeDelegate* delegate) {
195f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)  delegate_ = delegate;
205f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)}
215f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)
225f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)AXRole AXPlatformNodeBase::GetRole() const {
235f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)  return delegate_ ? delegate_->GetData()->role : AX_ROLE_UNKNOWN;
245f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)}
255f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)
265f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)gfx::Rect AXPlatformNodeBase::GetBoundsInScreen() const {
275f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)  if (!delegate_)
285f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)    return gfx::Rect();
295f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)  gfx::Rect bounds = delegate_->GetData()->location;
305f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)  bounds.Offset(delegate_->GetGlobalCoordinateOffset());
315f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)  return bounds;
325f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)}
335f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)
345f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)gfx::NativeViewAccessible AXPlatformNodeBase::GetParent() {
355f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)  return delegate_ ? delegate_->GetParent() : NULL;
365f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)}
375f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)
385f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)int AXPlatformNodeBase::GetChildCount() {
395f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)  return delegate_ ? delegate_->GetChildCount() : 0;
405f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)}
415f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)
425f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)gfx::NativeViewAccessible AXPlatformNodeBase::ChildAtIndex(int index) {
435f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)  return delegate_ ? delegate_->ChildAtIndex(index) : NULL;
445f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)}
455f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)
465f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)// AXPlatformNode
475f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)
485f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)void AXPlatformNodeBase::Destroy() {
495f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)  delegate_ = NULL;
505f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)  delete this;
515f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)}
525f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)
535f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)gfx::NativeViewAccessible AXPlatformNodeBase::GetNativeViewAccessible() {
545f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)  return NULL;
555f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)}
565f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)
575f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)
585f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)}  // namespace ui
59