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_VIEWS_ACCESSIBILITY_AX_AURA_OBJ_WRAPPER_H_ 6#define UI_VIEWS_ACCESSIBILITY_AX_AURA_OBJ_WRAPPER_H_ 7 8#include <vector> 9 10#include "base/basictypes.h" 11#include "base/compiler_specific.h" 12#include "base/macros.h" 13#include "ui/views/views_export.h" 14 15namespace ui { 16struct AXNodeData; 17} // namespace ui 18 19namespace views { 20 21// An interface abstraction for Aura views that exposes the view-tree formed 22// by the implementing view types. 23class VIEWS_EXPORT AXAuraObjWrapper { 24 public: 25 virtual ~AXAuraObjWrapper() {} 26 27 // Traversal and serialization. 28 virtual AXAuraObjWrapper* GetParent() = 0; 29 virtual void GetChildren( 30 std::vector<AXAuraObjWrapper*>* out_children) = 0; 31 virtual void Serialize(ui::AXNodeData* out_node_data) = 0; 32 virtual int32 GetID() = 0; 33 34 // Actions. 35 virtual void DoDefault() {} 36 virtual void Focus() {} 37 virtual void MakeVisible() {} 38 virtual void SetSelection(int32 start, int32 end) {} 39}; 40 41} // namespace views 42 43#endif // UI_VIEWS_ACCESSIBILITY_AX_AURA_OBJ_WRAPPER_H_ 44