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 CHROME_BROWSER_UI_ASH_ACCESSIBILITY_AX_TREE_SOURCE_ASH_H_ 6#define CHROME_BROWSER_UI_ASH_ACCESSIBILITY_AX_TREE_SOURCE_ASH_H_ 7 8#include <map> 9 10#include "base/basictypes.h" 11#include "base/memory/scoped_ptr.h" 12#include "chrome/browser/ui/ash/accessibility/ax_root_obj_wrapper.h" 13#include "ui/accessibility/ax_tree_source.h" 14 15namespace views { 16class AXAuraObjWrapper; 17} // namespace views 18 19// This class exposes the views hierarchy as an accessibility tree permitting 20// use with other accessibility classes. 21class AXTreeSourceAsh 22 : public ui::AXTreeSource<views::AXAuraObjWrapper*> { 23 public: 24 AXTreeSourceAsh(); 25 virtual ~AXTreeSourceAsh(); 26 27 // A set of actions invoked on an Aura view. 28 void DoDefault(int32 id); 29 void Focus(int32 id); 30 void MakeVisible(int32 id); 31 void SetSelection(int32 id, int32 start, int32 end); 32 33 // AXTreeSource implementation. 34 virtual views::AXAuraObjWrapper* GetRoot() const OVERRIDE; 35 virtual views::AXAuraObjWrapper* GetFromId(int32 id) const OVERRIDE; 36 virtual int32 GetId(views::AXAuraObjWrapper* node) const OVERRIDE; 37 virtual void GetChildren(views::AXAuraObjWrapper* node, 38 std::vector<views::AXAuraObjWrapper*>* out_children) const OVERRIDE; 39 virtual views::AXAuraObjWrapper* GetParent( 40 views::AXAuraObjWrapper* node) const OVERRIDE; 41 virtual bool IsValid(views::AXAuraObjWrapper* node) const OVERRIDE; 42 virtual bool IsEqual(views::AXAuraObjWrapper* node1, 43 views::AXAuraObjWrapper* node2) const OVERRIDE; 44 virtual views::AXAuraObjWrapper* GetNull() const OVERRIDE; 45 virtual void SerializeNode( 46 views::AXAuraObjWrapper* node, ui::AXNodeData* out_data) const OVERRIDE; 47 48 // Useful for debugging. 49 std::string ToString(views::AXAuraObjWrapper* root, std::string prefix); 50 51 private: 52 scoped_ptr<AXRootObjWrapper> root_; 53 54 DISALLOW_COPY_AND_ASSIGN(AXTreeSourceAsh); 55}; 56 57#endif // CHROME_BROWSER_UI_ASH_ACCESSIBILITY_AX_TREE_SOURCE_ASH_H_ 58