[AT-SPI] Make DevelControl::GetAccessibilityRelations() equivalent to Accessible...
[platform/core/uifw/dali-toolkit.git] / dali-toolkit / devel-api / controls / control-devel.cpp
index a98cefe..51e0564 100644 (file)
@@ -201,19 +201,17 @@ void RemoveAccessibilityRelation(Toolkit::Control control, Dali::Actor destinati
   }
 }
 
-std::vector<std::vector<Accessibility::Address>> GetAccessibilityRelations(Toolkit::Control control)
+std::vector<Accessibility::Relation> GetAccessibilityRelations(Toolkit::Control control)
 {
-  std::vector<std::vector<Accessibility::Address>> result(static_cast<std::size_t>(Accessibility::RelationType::MAX_COUNT));
+  const auto&                          relations = GetControlImplementation(control).mAccessibilityRelations;
+  std::vector<Accessibility::Relation> result;
 
-  // Map every Accessible* to its Address
-  for(auto& relation : GetControlImplementation(control).mAccessibilityRelations)
+  for(auto& relation : relations)
   {
-    auto  index   = static_cast<std::size_t>(relation.first);
     auto& targets = relation.second;
 
-    std::transform(targets.begin(), targets.end(), std::back_inserter(result[index]), [](auto* x) {
-      return x->GetAddress();
-    });
+    result.emplace_back(Accessibility::Relation{relation.first, {}});
+    std::copy(targets.begin(), targets.end(), std::back_inserter(result.back().mTargets));
   }
 
   return result;
@@ -224,11 +222,6 @@ void ClearAccessibilityRelations(Toolkit::Control control)
   GetControlImplementation(control).mAccessibilityRelations.clear();
 }
 
-void SetAccessibilityConstructor(Dali::Actor control, std::function<std::unique_ptr<Dali::Accessibility::Accessible>(Dali::Actor)> constructor)
-{
-  GetControlImplementation(Toolkit::Control::DownCast(control)).mAccessibilityConstructor = constructor;
-}
-
 void AppendAccessibilityAttribute(Toolkit::Control control, const std::string& key, const std::string& value)
 {
   GetControlImplementation(control).AppendAccessibilityAttribute(key, value);
@@ -256,28 +249,22 @@ Dali::Accessibility::ReadingInfoTypes GetAccessibilityReadingInfoType(Toolkit::C
 
 bool ClearAccessibilityHighlight(Toolkit::Control control)
 {
-  auto* accessible = Dali::Accessibility::Component::DownCast(GetControlImplementation(control).GetAccessibilityObject());
-
-  return accessible ? accessible->ClearHighlight() : false;
+  return GetControlImplementation(control).GetAccessibleObject()->ClearHighlight();
 }
 
 bool GrabAccessibilityHighlight(Toolkit::Control control)
 {
-  auto* accessible = Dali::Accessibility::Component::DownCast(GetControlImplementation(control).GetAccessibilityObject());
-
-  return accessible ? accessible->GrabHighlight() : false;
+  return GetControlImplementation(control).GetAccessibleObject()->GrabHighlight();
 }
 
 Dali::Accessibility::States GetAccessibilityStates(Toolkit::Control control)
 {
-  auto* accessible = GetControlImplementation(control).GetAccessibilityObject();
-
-  return accessible->GetStates();
+  return GetControlImplementation(control).GetAccessibleObject()->GetStates();
 }
 
 void NotifyAccessibilityStateChange(Toolkit::Control control, Dali::Accessibility::States states, bool recurse)
 {
-  GetControlImplementation(control).GetAccessibilityObject()->NotifyAccessibilityStateChange(std::move(states), recurse);
+  GetControlImplementation(control).GetAccessibleObject()->NotifyAccessibilityStateChange(std::move(states), recurse);
 }
 
 } // namespace DevelControl