Button::OnInitialize();
}
-void RadioButton::OnButtonUp()
+bool RadioButton::OnToggleReleased()
{
- DALI_LOG_INFO( gLogButtonFilter, Debug::Verbose, "RadioButton::OnStateChange selecting:%s\n", ( (!IsSelected())?"true":"false" ) );
-
- // Don't allow un-selection on an already selected radio button, can only un-select by selecting a sibling radio button
+ // Radio button overrides toggle release (button up) as doesn't allow un-selection to be performed on it directly.
+ bool stateChanged = false;
if( !IsSelected() )
{
- SetSelected( !IsSelected() );
+ Button::SetSelected( true ); // Set button to selected as previously unselected
+ stateChanged = true;
}
+ return stateChanged;
}
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 );
- switch( newState )
- {
- case SELECTED_STATE:
- {
- 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.SetSelected( false );
- }
- }
- }
- }
-
- default:
- {
- break;
- }
- }
+ 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.SetSelected( false );
+ }
+ }
+ }
+ }
}
} // namespace Internal