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_DELEGATE_H_ 6 #define UI_ACCESSIBILITY_PLATFORM_AX_PLATFORM_NODE_DELEGATE_H_ 7 8 #include "ui/accessibility/ax_enums.h" 9 #include "ui/accessibility/ax_export.h" 10 #include "ui/gfx/geometry/vector2d.h" 11 #include "ui/gfx/native_widget_types.h" 12 13 namespace ui { 14 15 struct AXNodeData; 16 class AXPlatformNode; 17 18 class AX_EXPORT AXPlatformNodeDelegate { 19 public: 20 // Get the accessibility data that should be exposed for this node. 21 virtual AXNodeData* GetData() = 0; 22 23 // Get the parent of the node unless it's the root, then it returns NULL. 24 virtual gfx::NativeViewAccessible GetParent() = 0; 25 26 // Get the number of children of this node. 27 virtual int GetChildCount() = 0; 28 29 // Get the child of a node from [0...GetChildCount() - 1] 30 virtual gfx::NativeViewAccessible ChildAtIndex(int index) = 0; 31 32 // Get the offset to convert local coordinates to screen global coordinates. 33 virtual gfx::Vector2d GetGlobalCoordinateOffset() = 0; 34 35 // 36 // Events. 37 // 38 virtual void NotifyAccessibilityEvent(ui::AXEvent event_type) = 0; 39 40 }; 41 42 } // namespace ui 43 44 #endif // UI_ACCESSIBILITY_PLATFORM_AX_PLATFORM_NODE_DELEGATE_H_ 45