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 15 namespace ui { 16 struct AXNodeData; 17 } // namespace ui 18 19 namespace views { 20 21 // An interface abstraction for Aura views that exposes the view-tree formed 22 // by the implementing view types. 23 class 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