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 UI_ACCESSIBILITY_MOJOM_AX_ACTION_DATA_MOJOM_TRAITS_H_ 6 #define UI_ACCESSIBILITY_MOJOM_AX_ACTION_DATA_MOJOM_TRAITS_H_ 7 8 #include "ui/accessibility/ax_action_data.h" 9 #include "ui/accessibility/mojom/ax_action_data.mojom-shared.h" 10 #include "ui/accessibility/mojom/ax_tree_id_mojom_traits.h" 11 #include "ui/gfx/geometry/mojom/geometry_mojom_traits.h" 12 13 namespace mojo { 14 15 template <> 16 struct StructTraits<ax::mojom::AXActionDataDataView, ui::AXActionData> { 17 static ax::mojom::Action action(const ui::AXActionData& a) { 18 return a.action; 19 } 20 static const ui::AXTreeID& target_tree_id(const ui::AXActionData& a) { 21 return a.target_tree_id; 22 } 23 static const std::string& source_extension_id(const ui::AXActionData& a) { 24 return a.source_extension_id; 25 } 26 static int32_t target_node_id(const ui::AXActionData& a) { 27 return a.target_node_id; 28 } 29 static int32_t request_id(const ui::AXActionData& a) { return a.request_id; } 30 static int32_t flags(const ui::AXActionData& a) { return a.flags; } 31 static int32_t anchor_node_id(const ui::AXActionData& a) { 32 return a.anchor_node_id; 33 } 34 static int32_t anchor_offset(const ui::AXActionData& a) { 35 return a.anchor_offset; 36 } 37 static int32_t focus_node_id(const ui::AXActionData& a) { 38 return a.focus_node_id; 39 } 40 static int32_t focus_offset(const ui::AXActionData& a) { 41 return a.focus_offset; 42 } 43 static int32_t custom_action_id(const ui::AXActionData& a) { 44 return a.custom_action_id; 45 } 46 static const gfx::Rect& target_rect(const ui::AXActionData& a) { 47 return a.target_rect; 48 } 49 static const gfx::Point& target_point(const ui::AXActionData& a) { 50 return a.target_point; 51 } 52 static const std::string& value(const ui::AXActionData& a) { return a.value; } 53 static ax::mojom::Event hit_test_event_to_fire(const ui::AXActionData& a) { 54 return a.hit_test_event_to_fire; 55 } 56 static ax::mojom::ScrollAlignment horizontal_scroll_alignment( 57 const ui::AXActionData& a) { 58 return a.horizontal_scroll_alignment; 59 } 60 static ax::mojom::ScrollAlignment vertical_scroll_alignment( 61 const ui::AXActionData& a) { 62 return a.vertical_scroll_alignment; 63 } 64 static ax::mojom::ScrollBehavior scroll_behavior(const ui::AXActionData& a) { 65 return a.scroll_behavior; 66 } 67 68 static bool Read(ax::mojom::AXActionDataDataView data, ui::AXActionData* out); 69 }; 70 71 } // namespace mojo 72 73 #endif // UI_ACCESSIBILITY_MOJOM_AX_ACTION_DATA_MOJOM_TRAITS_H_ 74