X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=blobdiff_plain;f=dali-toolkit%2Finternal%2Fcontrols%2Fcontrol%2Fcontrol-data-impl.cpp;h=0a7d70e25ab7eb38c2413aff56556c5d938280f6;hp=c3c8062304fcad6a85975bc055534848d93b3b33;hb=e3d6a0a27fd980a4ced6e7257abdc32bc192e871;hpb=db6ae061c3e1939a4525579d215b5edbd352ac88;ds=sidebyside diff --git a/dali-toolkit/internal/controls/control/control-data-impl.cpp b/dali-toolkit/internal/controls/control/control-data-impl.cpp index c3c8062..0a7d70e 100755 --- a/dali-toolkit/internal/controls/control/control-data-impl.cpp +++ b/dali-toolkit/internal/controls/control/control-data-impl.cpp @@ -1882,6 +1882,32 @@ Control::Impl::AccessibleImpl::AccessibleImpl(Dali::Actor self, Dali::Accessibil Internal::Control::Impl& controlImpl = Internal::Control::Impl::Get( internalControl ); if( controlImpl.mAccessibilityRole == Dali::Accessibility::Role::UNKNOWN ) controlImpl.mAccessibilityRole = role; + + self.PropertySetSignal().Connect(&controlImpl, [this, &controlImpl](Dali::Handle &handle, Dali::Property::Index index, Dali::Property::Value value) + { + if (this->self != Dali::Accessibility::Accessible::GetCurrentlyHighlightedActor()) + { + return; + } + + if (index == DevelControl::Property::ACCESSIBILITY_NAME + || (index == GetNamePropertyIndex() && !controlImpl.mAccessibilityNameSet)) + { + if (controlImpl.mAccessibilityGetNameSignal.Empty()) + { + Emit(Dali::Accessibility::ObjectPropertyChangeEvent::NAME); + } + } + + if (index == DevelControl::Property::ACCESSIBILITY_DESCRIPTION + || (index == GetDescriptionPropertyIndex() && !controlImpl.mAccessibilityDescriptionSet)) + { + if (controlImpl.mAccessibilityGetDescriptionSignal.Empty()) + { + Emit(Dali::Accessibility::ObjectPropertyChangeEvent::DESCRIPTION); + } + } + }); } std::string Control::Impl::AccessibleImpl::GetName() @@ -2218,6 +2244,16 @@ void Control::Impl::AccessibleImpl::EnsureSelfVisible() } } +Property::Index Control::Impl::AccessibleImpl::GetNamePropertyIndex() +{ + return Actor::Property::NAME; +} + +Property::Index Control::Impl::AccessibleImpl::GetDescriptionPropertyIndex() +{ + return Property::INVALID_INDEX; +} + void Control::Impl::PositionOrSizeChangedCallback( PropertyNotification &p ) { auto self = Dali::Actor::DownCast(p.GetTarget());