return controlDataImpl.GetVisualProperty(index, visualPropertyKey);
}
-void CreateTransitions(Control control, Dali::Animation& animation, Dali::Toolkit::Control source, AlphaFunction alphaFunction, TimePeriod timePeriod)
-{
- if(animation)
- {
- // make visual transition of control visual.
- Internal::Control& internalControl = Toolkit::Internal::GetImplementation(control);
- Internal::Control::Impl& controlDataImpl = Internal::Control::Impl::Get(internalControl);
- controlDataImpl.MakeVisualTransition(animation, source, Toolkit::Control::Property::BACKGROUND, alphaFunction, timePeriod);
- controlDataImpl.MakeVisualTransition(animation, source, Toolkit::DevelControl::Property::SHADOW, alphaFunction, timePeriod);
- internalControl.OnCreateTransitions(animation, source, alphaFunction, timePeriod);
- }
-}
-
static Toolkit::Internal::Control::Impl* GetControlImplementation(Dali::Actor actor)
{
Dali::Toolkit::Control control = Toolkit::Control::DownCast(actor);
auto object = controlDataImpl->GetAccessibilityObject(destination);
if(object)
{
- controlDataImpl->mAccessibilityRelations[index].push_back(object->GetAddress());
+ controlDataImpl->mAccessibilityRelations[index].push_back(object);
}
}
}
return;
}
- auto address = object->GetAddress();
-
auto& targets = controlDataImpl->mAccessibilityRelations[index];
for(auto i = 0u; i < targets.size(); ++i)
{
- if(targets[i].ToString() == address.ToString())
+ if(targets[i] == object)
{
- targets[i] = targets.back();
- targets.erase(targets.end() - 1);
+ std::swap(targets[i], targets.back());
+ targets.pop_back();
+ --i;
}
}
}
{
if(auto controlDataImpl = GetControlImplementation(control))
{
- return controlDataImpl->mAccessibilityRelations;
+ auto& relations = controlDataImpl->mAccessibilityRelations;
+
+ std::vector<std::vector<Accessibility::Address>> result(relations.size());
+
+ // Map every Accessible* to its Address
+ for(std::size_t i = 0; i < relations.size(); ++i)
+ {
+ auto& relation = relations[i];
+
+ std::transform(relation.begin(), relation.end(), std::back_inserter(result[i]), [](auto* x) {
+ return x->GetAddress();
+ });
+ }
+
+ return result;
}
+
return {};
}