X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=blobdiff_plain;f=dali-toolkit%2Fdevel-api%2Fcontrols%2Fcontrol-devel.cpp;h=ef1265b42d1538881c00793f3197f59ee04a8694;hp=a604433e1f08b69aface0d3bdafca4e67cb20fa4;hb=6fcd54cf99718c78d77cb8a9bf836059111afe16;hpb=443e920238427ac044e165b0e6f9c58ae67d62e0 diff --git a/dali-toolkit/devel-api/controls/control-devel.cpp b/dali-toolkit/devel-api/controls/control-devel.cpp index a604433..ef1265b 100644 --- a/dali-toolkit/devel-api/controls/control-devel.cpp +++ b/dali-toolkit/devel-api/controls/control-devel.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2021 Samsung Electronics Co., Ltd. + * Copyright (c) 2022 Samsung Electronics Co., Ltd. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -114,6 +114,13 @@ void DoAction(Control& control, Dali::Property::Index visualIndex, Dali::Propert controlDataImpl.DoAction(visualIndex, actionId, attributes); } +void DoActionExtension(Control& control, Dali::Property::Index visualIndex, Dali::Property::Index actionId, Dali::Any attributes) +{ + Internal::Control& controlInternal = Toolkit::Internal::GetImplementation(control); + Internal::Control::Impl& controlDataImpl = Internal::Control::Impl::Get(controlInternal); + controlDataImpl.DoActionExtension(visualIndex, actionId, attributes); +} + void SetInputMethodContext(Internal::Control& control, InputMethodContext& inputMethodContext) { Internal::Control::Impl::Get(control).SetInputMethodContext(inputMethodContext); @@ -201,19 +208,17 @@ void RemoveAccessibilityRelation(Toolkit::Control control, Dali::Actor destinati } } -std::vector> GetAccessibilityRelations(Toolkit::Control control) +std::vector GetAccessibilityRelations(Toolkit::Control control) { - std::vector> result(static_cast(Accessibility::RelationType::MAX_COUNT)); + const auto& relations = GetControlImplementation(control).mAccessibilityRelations; + std::vector result; - // Map every Accessible* to its Address - for(auto& relation : GetControlImplementation(control).mAccessibilityRelations) + for(auto& relation : relations) { - auto index = static_cast(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;