blob: 9af5c4d5df48027749872a68803c98a878274432 [file] [log] [blame]
// Copyright 2014 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.
#ifndef UI_ACCESSIBILITY_PLATFORM_AX_PLATFORM_NODE_DELEGATE_H_
#define UI_ACCESSIBILITY_PLATFORM_AX_PLATFORM_NODE_DELEGATE_H_
#include "ui/accessibility/ax_enums.h"
#include "ui/accessibility/ax_export.h"
#include "ui/gfx/geometry/vector2d.h"
#include "ui/gfx/native_widget_types.h"
namespace ui {
struct AXNodeData;
class AXPlatformNode;
class AX_EXPORT AXPlatformNodeDelegate {
public:
// Get the accessibility data that should be exposed for this node.
virtual AXNodeData* GetData() = 0;
// Get the parent of the node unless it's the root, then it returns NULL.
virtual gfx::NativeViewAccessible GetParent() = 0;
// Get the number of children of this node.
virtual int GetChildCount() = 0;
// Get the child of a node from [0...GetChildCount() - 1]
virtual gfx::NativeViewAccessible ChildAtIndex(int index) = 0;
// Get the offset to convert local coordinates to screen global coordinates.
virtual gfx::Vector2d GetGlobalCoordinateOffset() = 0;
//
// Events.
//
virtual void NotifyAccessibilityEvent(ui::AXEvent event_type) = 0;
};
} // namespace ui
#endif // UI_ACCESSIBILITY_PLATFORM_AX_PLATFORM_NODE_DELEGATE_H_