1 // Copyright 2018 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_CHROMEOS_ARC_ACCESSIBILITY_ACCESSIBILITY_WINDOW_INFO_DATA_WRAPPER_H_ 6 #define CHROME_BROWSER_CHROMEOS_ARC_ACCESSIBILITY_ACCESSIBILITY_WINDOW_INFO_DATA_WRAPPER_H_ 7 8 #include <string> 9 #include <vector> 10 11 #include "chrome/browser/chromeos/arc/accessibility/accessibility_info_data_wrapper.h" 12 #include "ui/accessibility/ax_node_data.h" 13 14 namespace arc { 15 16 class AXTreeSourceArc; 17 18 // Wrapper class for an AccessibilityWindowInfoData. 19 class AccessibilityWindowInfoDataWrapper : public AccessibilityInfoDataWrapper { 20 public: 21 AccessibilityWindowInfoDataWrapper( 22 AXTreeSourceArc* tree_source, 23 mojom::AccessibilityWindowInfoData* window); 24 25 // AccessibilityInfoDataWrapper overrides. 26 bool IsNode() const override; 27 mojom::AccessibilityNodeInfoData* GetNode() const override; 28 mojom::AccessibilityWindowInfoData* GetWindow() const override; 29 int32_t GetId() const override; 30 const gfx::Rect GetBounds() const override; 31 bool IsVisibleToUser() const override; 32 bool IsVirtualNode() const override; 33 bool IsIgnored() const override; 34 bool IsImportantInAndroid() const override; 35 bool CanBeAccessibilityFocused() const override; 36 bool IsAccessibilityFocusableContainer() const override; 37 void PopulateAXRole(ui::AXNodeData* out_data) const override; 38 void PopulateAXState(ui::AXNodeData* out_data) const override; 39 void Serialize(ui::AXNodeData* out_data) const override; 40 std::string ComputeAXName(bool do_recursive) const override; 41 void GetChildren( 42 std::vector<AccessibilityInfoDataWrapper*>* children) const override; 43 44 private: 45 bool GetProperty(mojom::AccessibilityWindowBooleanProperty prop) const; 46 bool GetProperty(mojom::AccessibilityWindowIntProperty prop, 47 int32_t* out_value) const; 48 bool HasProperty(mojom::AccessibilityWindowStringProperty prop) const; 49 bool GetProperty(mojom::AccessibilityWindowStringProperty prop, 50 std::string* out_value) const; 51 bool GetProperty(mojom::AccessibilityWindowIntListProperty prop, 52 std::vector<int32_t>* out_value) const; 53 54 mojom::AccessibilityWindowInfoData* window_ptr_ = nullptr; 55 56 DISALLOW_COPY_AND_ASSIGN(AccessibilityWindowInfoDataWrapper); 57 }; 58 59 } // namespace arc 60 61 #endif // CHROME_BROWSER_CHROMEOS_ARC_ACCESSIBILITY_ACCESSIBILITY_WINDOW_INFO_DATA_WRAPPER_H_ 62