Home | History | Annotate | Download | only in platform
      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