#include <dali/public-api/animation/animation.h>
// INTERNAL INCLUDES
-#include <dali/public-api/actors/actor.h>
#include <dali-toolkit/internal/controls/control/control-data-impl.h>
-#include <dali-toolkit/public-api/controls/control.h>
#include <dali-toolkit/public-api/controls/control-impl.h>
#include <dali-toolkit/devel-api/visual-factory/transition-data.h>
return controlDataImpl.VisualEventSignal();
}
-static Toolkit::Internal::Control::Impl *GetControlImplementationIfAny( Dali::Actor actor)
-{
- Dali::Toolkit::Control c = Toolkit::Control::DownCast( actor );
- if ( c )
- {
- auto &impl1 = Toolkit::Internal::GetImplementation( c );
- auto &impl2 = Toolkit::Internal::Control::Impl::Get( impl1 );
- return &impl2;
- }
- return nullptr;
-}
-
-Toolkit::Control::AccessibilityActivateSignalType &AccessibilityActivateSignal( Toolkit::Control control )
-{
- auto ac = GetControlImplementationIfAny ( control );
- return ac->mAccessibilityActivateSignal;
-}
-
-Toolkit::Control::AccessibilityReadingSkippedSignalType &AccessibilityReadingSkippedSignal( Toolkit::Control control )
-{
- auto ac = GetControlImplementationIfAny ( control );
- return ac->mAccessibilityReadingSkippedSignal;
-}
-
-Toolkit::Control::AccessibilityReadingCancelledSignalType &AccessibilityReadingCancelledSignal( Toolkit::Control control )
-{
- auto ac = GetControlImplementationIfAny ( control );
- return ac->mAccessibilityReadingCancelledSignal;
-}
-
-Toolkit::Control::AccessibilityReadingStoppedSignalType &AccessibilityReadingStoppedSignal( Toolkit::Control control )
-{
- auto ac = GetControlImplementationIfAny ( control );
- return ac->mAccessibilityReadingStoppedSignal;
-}
-
-Toolkit::Control::AccessibilityGetNameSignalType &AccessibilityGetNameSignal( Toolkit::Control control )
-{
- auto ac = GetControlImplementationIfAny ( control );
- return ac->mAccessibilityGetNameSignal;
-}
-
-Toolkit::Control::AccessibilityGetDescriptionSignalType &AccessibilityGetDescriptionSignal( Toolkit::Control control )
-{
- auto ac = GetControlImplementationIfAny ( control );
- return ac->mAccessibilityGetDescriptionSignal;
-}
-
-Toolkit::Control::AccessibilityDoGestureSignalType &AccessibilityDoGestureSignal( Toolkit::Control control )
-{
- auto ac = GetControlImplementationIfAny ( control );
- return ac->mAccessibilityDoGestureSignal;
-}
-
-void AppendAccessibilityRelation( Dali::Actor control, Actor destination, Dali::Accessibility::RelationType relation)
-{
- if ( auto ac = GetControlImplementationIfAny ( control ) )
- {
- auto index = static_cast<Dali::Property::Array::SizeType>(relation);
- if (index >= ac->mAccessibilityRelations.size())
- {
- DALI_LOG_INFO( gLogFilter, Debug::Verbose, "Relation index exceeds vector size." );
- return;
- }
-
- auto obj = ac->GetAccessibilityObject(destination);
- ac->mAccessibilityRelations[index].push_back(obj->GetAddress());
- }
-}
-
-void RemoveAccessibilityRelation( Dali::Actor control, Actor destination, Dali::Accessibility::RelationType relation)
-{
- if ( auto ac = GetControlImplementationIfAny ( control ) )
- {
- auto index = static_cast<Dali::Property::Array::SizeType>(relation);
- if (index >= ac->mAccessibilityRelations.size())
- {
- DALI_LOG_INFO( gLogFilter, Debug::Verbose, "Relation index exceeds vector size." );
- return;
- }
-
- auto obj = ac->GetAccessibilityObject(destination);
- auto address = obj->GetAddress();
-
- auto &targets = ac->mAccessibilityRelations[index];
- for (auto i = 0u; i < targets.size(); ++i) {
- if (targets[i].ToString() == address.ToString())
- {
- targets[i] = targets.back();
- targets.erase(targets.end() - 1);
- }
- }
- }
-}
-
-std::vector<std::vector<Accessibility::Address>> GetAccessibilityRelations( Dali::Actor control )
-{
- if ( auto ac = GetControlImplementationIfAny ( control ) )
- {
- return ac->mAccessibilityRelations;
- }
- return {};
-}
-
-void ClearAccessibilityRelations( Dali::Actor control )
-{
- if ( auto ac = GetControlImplementationIfAny ( control ) )
- {
- for (auto &it : ac->mAccessibilityRelations)
- it.clear();
- }
-}
-
-void SetAccessibilityConstructor( Dali::Actor control,
- std::function< std::unique_ptr< Dali::Accessibility::Accessible >( Dali::Actor ) > constructor )
-{
- if ( auto ac = GetControlImplementationIfAny ( control ) )
- {
- ac->accessibilityConstructor = constructor;
- }
-}
-
-void AppendAccessibilityAttribute( Dali::Actor control, const std::string& key,
- const std::string value )
-{
- if ( auto ac = GetControlImplementationIfAny ( control ) )
- {
- ac->AppendAccessibilityAttribute( key, value );
- }
-}
-
-void RemoveAccessibilityAttribute( Dali::Actor control, const std::string& key )
-{
- if ( auto ac = GetControlImplementationIfAny ( control ) )
- {
- ac->RemoveAccessibilityAttribute( key );
- }
-}
-
-void ClearAccessibilityAttributes( Dali::Actor control )
-{
- if ( auto ac = GetControlImplementationIfAny ( control ) )
- {
- ac->ClearAccessibilityAttributes();
- }
-}
-
-void SetAccessibilityReadingInfoType( Dali::Actor control, const Dali::Accessibility::ReadingInfoTypes types )
-{
- if ( auto ac = GetControlImplementationIfAny ( control ) )
- {
- ac->SetAccessibilityReadingInfoType( types );
- }
-}
-
-Dali::Accessibility::ReadingInfoTypes GetAccessibilityReadingInfoType(Dali::Actor control )
-{
- if ( auto ac = GetControlImplementationIfAny ( control ) )
- {
- return ac->GetAccessibilityReadingInfoType();
- }
- return {};
-}
-
-bool ClearAccessibilityHighlight( Dali::Actor control )
-{
- if ( auto ac = GetControlImplementationIfAny ( control ) )
- {
- auto ptr = dynamic_cast<Dali::Accessibility::Component*>( ac );
- if( ptr )
- return ptr->ClearHighlight();
- }
- return false;
-}
-
-bool GrabAccessibilityHighlight( Dali::Actor control )
-{
- if ( auto ac = GetControlImplementationIfAny ( control ) )
- {
- auto ptr = dynamic_cast<Dali::Accessibility::Component*>( ac );
- if( ptr )
- return ptr->GrabHighlight();
- }
- return false;
-}
-
-Dali::Accessibility::States GetAccessibilityStates( Dali::Actor control )
-{
- if ( auto ac = GetControlImplementationIfAny ( control ) )
- {
- auto ptr = dynamic_cast<Dali::Accessibility::Component*>( ac );
- if(ptr)
- return ptr->GetStates();
- }
- return {};
-}
-
-void NotifyAccessibilityStateChange( Dali::Actor control, Dali::Accessibility::States states, bool doRecursive )
-{
- if ( auto ac = GetControlImplementationIfAny ( control ) )
- {
- ac->GetAccessibilityObject()->NotifyAccessibilityStateChange( states, doRecursive );
- }
-}
-
-Dali::Accessibility::Accessible *GetBoundAccessibilityObject( Dali::Actor control )
-{
- return Dali::Accessibility::Accessible::Get( control );
-}
-
} // namespace DevelControl
} // namespace Toolkit