- // Find the size of the control using size negotiation
- Vector3 actorNaturalSize( mLabel.GetNaturalSize() );
- Control::Relayout( mLabel, Vector2( actorNaturalSize.width, actorNaturalSize.height ), container );
-
- Vector3 actorSize( mLabel.GetSize() );
- newSize.width += actorSize.width;
- newSize.height = std::max( newSize.height, actorSize.height );
- }
-
- Self().SetSize( newSize );
-}
-
-void RadioButton::OnInitialize()
-{
- mRadioIcon.SetAnchorPoint( AnchorPoint::CENTER_LEFT );
- mRadioIcon.SetParentOrigin( ParentOrigin::CENTER_LEFT );
- Self().Add( mRadioIcon );
-
- RelayoutRequest();
-}
-
-void RadioButton::OnButtonUp()
-{
- // Don't allow selection on an already selected radio button
- if( !mSelected )
- {
- ToggleState();
- }
-}
-
-void RadioButton::SetProperty(BaseObject* object, Property::Index propertyIndex, const Property::Value& value)
-{
- Toolkit::RadioButton radioButton = Toolkit::RadioButton::DownCast( Dali::BaseHandle( object ) );
-
- if( radioButton )
- {
- RadioButton& radioButtonImpl( GetImplementation( radioButton ) );
-
- if ( propertyIndex == Toolkit::Button::PROPERTY_TOGGLED )
- {
- radioButtonImpl.SetSelected( value.Get< bool >( ) );
- }
- else if ( propertyIndex == Toolkit::Button::PROPERTY_LABEL_ACTOR )
- {
- radioButtonImpl.SetLabel( Scripting::NewActor( value.Get< Property::Map >( ) ) );
- }
- }
-}
-
-Property::Value RadioButton::GetProperty(BaseObject* object, Property::Index propertyIndex)
-{
- Property::Value value;
-
- Toolkit::RadioButton radioButton = Toolkit::RadioButton::DownCast( Dali::BaseHandle(object) );
-
- if( radioButton )
- {
- RadioButton& radioButtonImpl( GetImplementation( radioButton ) );
-
- if ( propertyIndex == Toolkit::Button::PROPERTY_TOGGLED )
- {
- value = radioButtonImpl.mSelected;
- }
- else if ( propertyIndex == Toolkit::Button::PROPERTY_LABEL_ACTOR )
- {
- Property::Map map;
- Scripting::CreatePropertyMap( radioButtonImpl.mLabel, map );
- value = map;
- }
- }
-
- return value;
-}