+ return false;
+}
+
+void RadioButton::OnStateChange(State newState)
+{
+ // Radio button can be part of a group, if a button in the group is selected then all others should be unselected
+ DALI_LOG_INFO(gLogButtonFilter, Debug::Verbose, "RadioButton::OnStateChange state(%d)\n", newState);
+
+ if(SELECTED_STATE == newState)
+ {
+ Actor parent = Self().GetParent();
+ if(parent)
+ {
+ for(unsigned int i = 0; i < parent.GetChildCount(); ++i)
+ {
+ Dali::Toolkit::RadioButton radioButtonChild = Dali::Toolkit::RadioButton::DownCast(parent.GetChildAt(i));
+ if(radioButtonChild && radioButtonChild != Self())
+ {
+ radioButtonChild.SetProperty(Toolkit::Button::Property::SELECTED, false);
+ }
+ }
+ }
+ }
+
+ // TODO: replace it with OnPropertySet hook once Button::Property::SELECTED will be consistently used
+ if(Dali::Accessibility::IsUp() && (Dali::Accessibility::Accessible::GetCurrentlyHighlightedActor() == Self())
+ && (newState == SELECTED_STATE || newState == UNSELECTED_STATE))