1// Copyright 2014 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#ifndef UI_ACCESSIBILITY_PLATFORM_AX_PLATFORM_NODE_BASE_H_ 6#define UI_ACCESSIBILITY_PLATFORM_AX_PLATFORM_NODE_BASE_H_ 7 8#include "ui/accessibility/ax_enums.h" 9#include "ui/accessibility/platform/ax_platform_node.h" 10#include "ui/gfx/geometry/rect.h" 11#include "ui/gfx/native_widget_types.h" 12 13namespace ui { 14 15class AXPlatformNodeDelegate; 16 17class AXPlatformNodeBase : public AXPlatformNode { 18 public: 19 virtual void Init(AXPlatformNodeDelegate* delegate); 20 21 // These are simple wrappers to our delegate. 22 AXRole GetRole() const; 23 gfx::Rect GetBoundsInScreen() const; 24 gfx::NativeViewAccessible GetParent(); 25 int GetChildCount(); 26 gfx::NativeViewAccessible ChildAtIndex(int index); 27 28 // AXPlatformNode 29 virtual void Destroy() OVERRIDE; 30 virtual gfx::NativeViewAccessible GetNativeViewAccessible() OVERRIDE; 31 32 protected: 33 AXPlatformNodeBase(); 34 virtual ~AXPlatformNodeBase(); 35 36 AXPlatformNodeDelegate* delegate_; // Weak. Owns this. 37 38 private: 39 DISALLOW_COPY_AND_ASSIGN(AXPlatformNodeBase); 40}; 41 42} // namespace ui 43 44#endif // UI_ACCESSIBILITY_PLATFORM_AX_PLATFORM_NODE_BASE_H_ 45