return labelText;
}
+Property::Index Button::AccessibleImpl::GetNamePropertyIndex()
+{
+ Property::Index label = Toolkit::Button::Property::LABEL;
+ Property::Map labelMap = self.GetProperty<Property::Map>(label);
+
+ if (MapContainsTextString(labelMap))
+ return label;
+ else
+ return Property::INVALID_INDEX;
+}
+
Dali::Accessibility::States Button::AccessibleImpl::CalculateStates()
{
auto tmp = Control::Impl::AccessibleImpl::CalculateStates();
Dali::Accessibility::States CalculateStates() override;
std::string GetNameRaw() override;
+ Property::Index GetNamePropertyIndex() override;
};
};
return tooltips[index].Get<std::string>();
}
+Property::Index ToggleButton::AccessibleImpl::GetDescriptionPropertyIndex()
+{
+ return Toolkit::ToggleButton::Property::TOOLTIPS;
+}
+
void ToggleButton::OnStateChange( State newState )
{
// TODO: replace it with OnPropertySet hook once Button::Property::SELECTED will be consistently used
Dali::Accessibility::States CalculateStates() override;
std::string GetDescriptionRaw() override;
+ Property::Index GetDescriptionPropertyIndex() override;
};
void OnStateChange( State newState ) override;
};
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()
}
}
+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());
virtual Dali::Accessibility::States CalculateStates();
virtual void EnsureChildVisible(Actor child);
virtual void EnsureSelfVisible();
+ virtual Property::Index GetNamePropertyIndex();
+ virtual Property::Index GetDescriptionPropertyIndex();
};
std::function< std::unique_ptr< Dali::Accessibility::Accessible >( Actor ) > accessibilityConstructor;
return slf.GetProperty( Toolkit::TextLabel::Property::TEXT ).Get< std::string >();
}
+Property::Index TextLabel::AccessibleImpl::GetNamePropertyIndex()
+{
+ return Toolkit::TextLabel::Property::TEXT;
+}
+
std::string TextLabel::AccessibleImpl::GetText( size_t startOffset,
size_t endOffset )
{
bool SetSelection( size_t selectionNum, size_t startOffset,
size_t endOffset ) override;
std::string GetNameRaw() override;
+ Property::Index GetNamePropertyIndex() override;
};
};
}
break;
}
- case Toolkit::DevelControl::Property::ACCESSIBILITY_NAME:
- {
- if( Dali::Accessibility::IsUp() )
- {
- Dali::Accessibility::Accessible::Get(Self())->Emit( Dali::Accessibility::ObjectPropertyChangeEvent::NAME );
- }
- break;
- }
case Toolkit::DevelControl::Property::ACCESSIBILITY_ROLE:
{
if( Dali::Accessibility::IsUp() )
}
break;
}
- case Toolkit::DevelControl::Property::ACCESSIBILITY_DESCRIPTION:
- {
- if( Dali::Accessibility::IsUp() )
- {
- Dali::Accessibility::Accessible::Get(Self())->Emit( Dali::Accessibility::ObjectPropertyChangeEvent::DESCRIPTION );
- }
- break;
- }
}
}