X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=blobdiff_plain;f=dali-toolkit%2Finternal%2Fcontrols%2Fbuttons%2Fbutton-impl.cpp;h=fcd046825510e55ad8e011774ca47d97360dc7fc;hp=dc00a3cd1beccd00507f27dbdb3bda9fe21b97bd;hb=958bd01cb1bc4cf43cbe740a7b041927d9d34ed6;hpb=4a2c09ae826a352ce60c50f9986167ae3d3e6693 diff --git a/dali-toolkit/internal/controls/buttons/button-impl.cpp b/dali-toolkit/internal/controls/buttons/button-impl.cpp index dc00a3c..fcd0468 100644 --- a/dali-toolkit/internal/controls/buttons/button-impl.cpp +++ b/dali-toolkit/internal/controls/buttons/button-impl.cpp @@ -29,6 +29,7 @@ // INTERNAL INCLUDES #include #include +#include /** * Button states and contents @@ -527,46 +528,48 @@ void Button::SetupContent( Actor& actorToModify, Actor newActor ) } } -void Button::SetUnselectedColor( const Vector4& color ) +const Vector4 Button::GetUnselectedColor() const +{ + return mUnselectedColor; +} + +void Button::SetColor( const Vector4& color, Button::PaintState selectedState ) { - mUnselectedColor = color; + Actor& contentActor = mSelectedContent; + bool imageFileExists = false; - if( mUnselectedContent && !GetUnselectedImageFilename().empty() ) + if ( selectedState == SelectedState || selectedState == DisabledSelectedState ) { - // If there is existing unselected content, change the color on it directly. - mUnselectedContent.SetColor( mUnselectedColor ); + mSelectedColor = color; + imageFileExists = !GetSelectedImageFilename().empty(); } else { - // If there is no existing content, create a new actor to use for flat color. - Toolkit::Control unselectedContentActor = Toolkit::Control::New(); - unselectedContentActor.SetBackgroundColor( mUnselectedColor ); - SetupContent( mUnselectedContent, unselectedContentActor ); - mUnselectedContent.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS ); + mUnselectedColor = color; + contentActor = mUnselectedContent; + imageFileExists = !GetUnselectedImageFilename().empty(); } -} -const Vector4 Button::GetUnselectedColor() const -{ - return mUnselectedColor; -} - -void Button::SetSelectedColor( const Vector4& color ) -{ - mSelectedColor = color; - - if( mSelectedContent && !GetSelectedImageFilename().empty() ) + if( contentActor && imageFileExists ) { // If there is existing unselected content, change the color on it directly. - mSelectedContent.SetColor( mSelectedColor ); + contentActor.SetColor( color ); } else { // If there is no existing content, create a new actor to use for flat color. - Toolkit::Control selectedContentActor = Toolkit::Control::New(); - selectedContentActor.SetBackgroundColor( mSelectedColor ); - SetupContent( mSelectedContent, selectedContentActor ); - mSelectedContent.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS ); + Actor placementActor = Actor::New(); + Toolkit::RendererFactory rendererFactory = Toolkit::RendererFactory::Get(); + Toolkit::ControlRenderer colorRenderer; + + Property::Map map; + map["rendererType"] = "color"; + map["mixColor"] = color; + + colorRenderer = rendererFactory.CreateControlRenderer( map ); + colorRenderer.SetOnStage( placementActor ); + SetupContent( contentActor, placementActor ); + contentActor.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS ); } } @@ -1386,13 +1389,13 @@ void Button::SetProperty( BaseObject* object, Property::Index index, const Prope case Toolkit::Button::Property::UNSELECTED_COLOR: { - GetImplementation( button ).SetUnselectedColor( value.Get< Vector4 >() ); + GetImplementation( button ).SetColor( value.Get< Vector4 >(), UnselectedState ); break; } case Toolkit::Button::Property::SELECTED_COLOR: { - GetImplementation( button ).SetSelectedColor( value.Get< Vector4 >() ); + GetImplementation( button ).SetColor( value.Get< Vector4 >(), SelectedState ); break; }