From: Agnelo Vaz Date: Fri, 12 May 2017 09:24:22 +0000 (+0100) Subject: Ensure Button Set and Get works with Image/Actor API X-Git-Tag: dali_1.2.40~8 X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=commitdiff_plain;h=63a67363d8c83606f62c79ebbf119536bfa29df8 Ensure Button Set and Get works with Image/Actor API Old Dali API using Set/Get Image or setting image via Actor were broken. Adding functionality to so old API still works. Change-Id: I65689e324d6651d488fee6f0ac7b206afeabffa3 --- diff --git a/automated-tests/src/dali-toolkit/utc-Dali-PushButton.cpp b/automated-tests/src/dali-toolkit/utc-Dali-PushButton.cpp index ad65aea..57b39a5 100644 --- a/automated-tests/src/dali-toolkit/utc-Dali-PushButton.cpp +++ b/automated-tests/src/dali-toolkit/utc-Dali-PushButton.cpp @@ -1523,3 +1523,296 @@ int UtcDaliPushButtonSetLabelText(void) END_TEST; } + +int UtcDaliPushButtonSetButtonImageDeprecatedP(void) +{ + ToolkitTestApplication application; + Image setButtonImage = ResourceImage::New( TEST_IMAGE_ONE); + PushButton pushButton = PushButton::New(); + pushButton.SetButtonImage( setButtonImage ); + Image retreivedButtonImage = ImageView::DownCast(pushButton.GetButtonImage()).GetImage(); + DALI_TEST_EQUALS( retreivedButtonImage, setButtonImage , TEST_LOCATION ); + + END_TEST; +} + +int UtcDaliPushButtonSetSelectedImageDeprecatedP(void) +{ + ToolkitTestApplication application; + Image setButtonImage = ResourceImage::New( TEST_IMAGE_ONE); + PushButton pushButton = PushButton::New(); + pushButton.SetSelectedImage( setButtonImage ); + Image retreivedButtonImage = ImageView::DownCast(pushButton.GetSelectedImage()).GetImage(); + DALI_TEST_EQUALS( retreivedButtonImage, setButtonImage , TEST_LOCATION ); + + END_TEST; +} + +int UtcDaliPushButtonGetButtonImageURLDeprecatedP(void) +{ + tet_infoline(" UtcDaliPushButtonGetButtonImageURLDeprecatedP Testing mix use of API"); + + ToolkitTestApplication application; + + PushButton pushButton = PushButton::New(); + pushButton.SetProperty( Toolkit::DevelButton::Property::UNSELECTED_BACKGROUND_VISUAL, TEST_IMAGE_ONE ); + + ImageView retreivedButtonImageView = ImageView::DownCast(pushButton.GetButtonImage()); + Image retreivedButtonImage = retreivedButtonImageView.GetImage(); + ResourceImage resourceImage = ResourceImage::DownCast( retreivedButtonImage ); + + DALI_TEST_EQUALS( resourceImage.GetUrl(), TEST_IMAGE_ONE , TEST_LOCATION ); + + END_TEST; +} + +int UtcDaliPushButtonGetSelectedImageURLDeprecatedP(void) +{ + tet_infoline(" UtcDaliPushButtonGetSelectedImageURLDeprecatedP Testing mix use of API"); + + ToolkitTestApplication application; + + PushButton pushButton = PushButton::New(); + + pushButton.SetProperty( Toolkit::DevelButton::Property::SELECTED_BACKGROUND_VISUAL, TEST_IMAGE_ONE ); + + Image retreivedButtonImage = ImageView::DownCast(pushButton.GetSelectedImage()).GetImage(); + ResourceImage resourceImage = ResourceImage::DownCast( retreivedButtonImage ); + DALI_TEST_EQUALS( resourceImage.GetUrl(), TEST_IMAGE_ONE , TEST_LOCATION ); + + END_TEST; +} + +int UtcDaliPushButtonSetSelectedImageWithActorDeprecatedP(void) +{ + tet_infoline(" UtcDaliPushButton SetSelectedImage With ImageView (Actor)"); + + ToolkitTestApplication application; + + Image image = ResourceImage::New( TEST_IMAGE_ONE ); + + DALI_TEST_CHECK( image ); + + ImageView imgViewSet = ImageView::New(image); + + DALI_TEST_CHECK(imgViewSet ); + + PushButton pushButton = PushButton::New(); + + DALI_TEST_CHECK( pushButton ); + + pushButton.SetSelectedImage( imgViewSet ); + + ImageView imageView = ImageView::DownCast( pushButton.GetSelectedImage()); + + DALI_TEST_CHECK( imageView ); + + Property::Value value = imageView.GetProperty( imageView.GetPropertyIndex( "image" ) ); + Property::Map map; + value.Get( map ); + DALI_TEST_CHECK( !map.Empty() ); + DALI_TEST_EQUALS( map[ "filename" ].Get(), TEST_IMAGE_ONE , TEST_LOCATION ); + + END_TEST; +} + +int UtcDaliPushButtonSetButtonImageWithActorDeprecatedP(void) +{ + tet_infoline(" UtcDaliPushButton SetButtonImage With ImageView (Actor)"); + + ToolkitTestApplication application; + + Image image = ResourceImage::New( TEST_IMAGE_ONE ); + + DALI_TEST_CHECK( image ); + + ImageView imgViewSet = ImageView::New(image); + + DALI_TEST_CHECK(imgViewSet ); + + PushButton pushButton = PushButton::New(); + + DALI_TEST_CHECK( pushButton ); + + pushButton.SetButtonImage( imgViewSet ); + + ImageView imageView = ImageView::DownCast( pushButton.GetButtonImage()); + + DALI_TEST_CHECK( imageView ); + + Property::Value value = imageView.GetProperty( imageView.GetPropertyIndex( "image" ) ); + Property::Map map; + value.Get( map ); + DALI_TEST_CHECK( !map.Empty() ); + DALI_TEST_EQUALS( map[ "filename" ].Get(), TEST_IMAGE_ONE , TEST_LOCATION ); + + END_TEST; +} + +int UtcDaliPushButtonSetBackgroundImageWithActorDeprecatedP(void) +{ + tet_infoline(" UtcDaliPushButton SetBackgroundImage With ImageView (Actor)"); + + ToolkitTestApplication application; + + Image image = ResourceImage::New( TEST_IMAGE_ONE ); + + DALI_TEST_CHECK( image ); + + ImageView imgViewSet = ImageView::New(image); + + DALI_TEST_CHECK(imgViewSet ); + + PushButton pushButton = PushButton::New(); + + DALI_TEST_CHECK( pushButton ); + + pushButton.SetBackgroundImage( imgViewSet ); + + ImageView imageView = ImageView::DownCast( pushButton.GetButtonImage()); + + DALI_TEST_CHECK( imageView ); + + Property::Value value = imageView.GetProperty( imageView.GetPropertyIndex( "image" ) ); + Property::Map map; + value.Get( map ); + DALI_TEST_CHECK( !map.Empty() ); + DALI_TEST_EQUALS( map[ "filename" ].Get(), TEST_IMAGE_ONE , TEST_LOCATION ); + + END_TEST; +} + + +int UtcDaliPushButtonSetSelectedBackgroundImageWithActorDeprecatedP(void) +{ + tet_infoline(" UtcDaliPushButton SetSelectedBackgroundImage With ImageView (Actor)"); + + ToolkitTestApplication application; + + Image image = ResourceImage::New( TEST_IMAGE_ONE ); + + DALI_TEST_CHECK( image ); + + ImageView imgViewSet = ImageView::New(image); + + DALI_TEST_CHECK(imgViewSet ); + + PushButton pushButton = PushButton::New(); + + DALI_TEST_CHECK( pushButton ); + + pushButton.SetSelectedBackgroundImage( imgViewSet ); + + ImageView imageView = ImageView::DownCast( pushButton.GetSelectedImage()); + + DALI_TEST_CHECK( imageView ); + + Property::Value value = imageView.GetProperty( imageView.GetPropertyIndex( "image" ) ); + Property::Map map; + value.Get( map ); + DALI_TEST_CHECK( !map.Empty() ); + DALI_TEST_EQUALS( map[ "filename" ].Get(), TEST_IMAGE_ONE , TEST_LOCATION ); + + END_TEST; +} + +int UtcDaliPushButtonSetDisabledBackgroundImageWithActorDeprecatedP(void) +{ + tet_infoline(" UtcDaliPushButton SetDisabledBackgroundImage With ImageView (Actor)"); + + ToolkitTestApplication application; + + Image image = ResourceImage::New( TEST_IMAGE_ONE ); + + DALI_TEST_CHECK( image ); + + ImageView imgViewSet = ImageView::New(image); + + DALI_TEST_CHECK(imgViewSet ); + + PushButton pushButton = PushButton::New(); + + DALI_TEST_CHECK( pushButton ); + + pushButton.SetDisabledBackgroundImage( imgViewSet ); + + Property::Value value = pushButton.GetProperty( Toolkit::DevelButton::Property::DISABLED_UNSELECTED_BACKGROUND_VISUAL ); + Property::Map map; + value.Get( map ); + + Property::Value* urlValue = map.Find( ImageVisual::Property::URL ); + + std::string urlString; + urlValue->Get( urlString ); + DALI_TEST_EQUALS( urlString , TEST_IMAGE_ONE , TEST_LOCATION ); + + END_TEST; +} + +int UtcDaliPushButtonSetDisabledImageWithActorDeprecatedP(void) +{ + tet_infoline(" UtcDaliPushButton SetDisabledImage With ImageView (Actor)"); + + ToolkitTestApplication application; + + Image image = ResourceImage::New( TEST_IMAGE_ONE ); + + DALI_TEST_CHECK( image ); + + ImageView imgViewSet = ImageView::New(image); + + DALI_TEST_CHECK(imgViewSet ); + + PushButton pushButton = PushButton::New(); + + DALI_TEST_CHECK( pushButton ); + + pushButton.SetDisabledImage( imgViewSet ); + + Property::Value value = pushButton.GetProperty( Toolkit::DevelButton::Property::DISABLED_UNSELECTED_BACKGROUND_VISUAL ); + + Property::Map map; + value.Get( map ); + + Property::Value* urlValue = map.Find( ImageVisual::Property::URL ); + + std::string urlString; + urlValue->Get( urlString ); + DALI_TEST_EQUALS( urlString , TEST_IMAGE_ONE , TEST_LOCATION ); + + END_TEST; +} + +int UtcDaliPushButtonSetDisabledSelectedImageWithActorDeprecatedP(void) +{ + tet_infoline(" UtcDaliPushButton SetDisabledSelectedImage With ImageView (Actor)"); + + ToolkitTestApplication application; + + Image image = ResourceImage::New( TEST_IMAGE_ONE ); + + DALI_TEST_CHECK( image ); + + ImageView imgViewSet = ImageView::New(image); + + DALI_TEST_CHECK(imgViewSet ); + + PushButton pushButton = PushButton::New(); + + DALI_TEST_CHECK( pushButton ); + + pushButton.SetDisabledSelectedImage( imgViewSet ); + + Property::Value value = pushButton.GetProperty( Toolkit::DevelButton::Property::DISABLED_SELECTED_BACKGROUND_VISUAL ); + + Property::Map map; + value.Get( map ); + + Property::Value* urlValue = map.Find( ImageVisual::Property::URL ); + + std::string urlString; + urlValue->Get( urlString ); + DALI_TEST_EQUALS( urlString , TEST_IMAGE_ONE , TEST_LOCATION ); + + END_TEST; +} diff --git a/dali-toolkit/internal/controls/buttons/button-impl.cpp b/dali-toolkit/internal/controls/buttons/button-impl.cpp index 79ac7db..ac12863 100644 --- a/dali-toolkit/internal/controls/buttons/button-impl.cpp +++ b/dali-toolkit/internal/controls/buttons/button-impl.cpp @@ -1597,27 +1597,52 @@ void Button::SetButtonImage( Image image ) { DALI_LOG_WARNING("Button::SetButtonImage @DEPRECATED_1_0.50\n"); SetUnselectedImage( GetUrlFromImage( image ) ); + mSetButtonImage = image; } void Button::SetSelectedImage( Image image ) { DALI_LOG_WARNING("Button::SetSelectedImage @DEPRECATED_1_0.50\n"); SetSelectedImage( GetUrlFromImage( image ) ); + mSetSelectedImage = image; } Actor Button::GetButtonImage() const { + // When deprecated ImageView API removed then this button API can be removed too. DALI_LOG_WARNING("Button::GetButtonImage @DEPRECATED_1_0.50\n"); - Actor imageView = Toolkit::ImageView::New( GetUrlForImageVisual( Toolkit::DevelButton::Property::UNSELECTED_BACKGROUND_VISUAL ) ); + + Actor imageView; + + if ( mSetButtonImage ) + { + imageView = Toolkit::ImageView::New( mSetButtonImage ); + } + else + { + ResourceImage image = ResourceImage::New( GetUrlForImageVisual( Toolkit::DevelButton::Property::UNSELECTED_BACKGROUND_VISUAL ) ); + imageView = Toolkit::ImageView::New( image ); + } return imageView; } Actor Button::GetSelectedImage() const { + // When deprecated ImageView API removed then this button API can be removed too. DALI_LOG_WARNING("Button::GetSelectedImage @DEPRECATED_1_0.50\n"); - Actor imageView = Toolkit::ImageView::New( GetUrlForImageVisual( Toolkit::DevelButton::Property::SELECTED_BACKGROUND_VISUAL ) ); + Actor imageView; + + if ( mSetSelectedImage ) + { + imageView = Toolkit::ImageView::New( mSetSelectedImage ); + } + else + { + ResourceImage image = ResourceImage::New( GetUrlForImageVisual( Toolkit::DevelButton::Property::SELECTED_BACKGROUND_VISUAL ) ); + imageView = Toolkit::ImageView::New( image ); + } return imageView; } diff --git a/dali-toolkit/internal/controls/buttons/button-impl.h b/dali-toolkit/internal/controls/buttons/button-impl.h index e0b7d50..210246e 100644 --- a/dali-toolkit/internal/controls/buttons/button-impl.h +++ b/dali-toolkit/internal/controls/buttons/button-impl.h @@ -680,6 +680,11 @@ private: // Actions bool mClickActionPerforming; ///< Used to manage signal emissions during action + + // Deprecated API support + Image mSetButtonImage; ///< Store set image if deprecated SetButtonImage used. + Image mSetSelectedImage; ///< Store set image if deprecated SetSelectedImage used. + }; } // namespace Internal diff --git a/dali-toolkit/internal/controls/buttons/push-button-impl.cpp b/dali-toolkit/internal/controls/buttons/push-button-impl.cpp index 3391bae..1b7f495 100644 --- a/dali-toolkit/internal/controls/buttons/push-button-impl.cpp +++ b/dali-toolkit/internal/controls/buttons/push-button-impl.cpp @@ -243,6 +243,104 @@ Property::Value PushButton::GetProperty( BaseObject* object, Property::Index pro return value; } +// Deprecated API using Actor to set images + +void PushButton::SetButtonImage( Actor image ) +{ + DALI_LOG_WARNING_NOFN("DEPRECATION WARNING: SetButtonImage() is deprecated and will be removed from next release. Use Button.SetProperty UNSELECTED_STATE_IMAGE or Styling file instead.\n" ); + + Image retreivedButtonImage = Toolkit::ImageView::DownCast( image ).GetImage(); + if ( retreivedButtonImage ) + { + ResourceImage resourceImage = ResourceImage::DownCast( retreivedButtonImage ); + + if ( resourceImage ) + { + Self().SetProperty( Toolkit::DevelButton::Property::UNSELECTED_BACKGROUND_VISUAL, resourceImage.GetUrl() ); + + } + } +} + +void PushButton::SetBackgroundImage( Actor image ) +{ + DALI_LOG_WARNING_NOFN("DEPRECATION WARNING: SetBackgroundImage() is deprecated and will be removed from next release.\n" ); + + SetButtonImage( image ); + +} + +void PushButton::SetSelectedImage( Actor image ) +{ + DALI_LOG_WARNING_NOFN("DEPRECATION WARNING: SetSelectedImage() is deprecated and will be removed from next release. Use Button.SetProperty SELECTED_STATE_IMAGE or Styling file instead.\n" ); + + Image retreivedButtonImage = Toolkit::ImageView::DownCast( image ).GetImage(); + if ( retreivedButtonImage ) + { + ResourceImage resourceImage = ResourceImage::DownCast( retreivedButtonImage ); + + if ( resourceImage ) + { + Self().SetProperty( Toolkit::DevelButton::Property::SELECTED_BACKGROUND_VISUAL, resourceImage.GetUrl() ); + } + } +} + +void PushButton::SetSelectedBackgroundImage( Actor image ) +{ + DALI_LOG_WARNING_NOFN("DEPRECATION WARNING: SetSelectedBackgroundImage() is deprecated and will be removed from next release.\n" ); + + SetSelectedImage( image ); +} + +void PushButton::SetDisabledBackgroundImage( Actor image ) +{ + DALI_LOG_WARNING_NOFN("DEPRECATION WARNING: SetDisabledBackgroundImage() is deprecated and will be removed from next release.\n" ); + + Image retreivedButtonImage = Toolkit::ImageView::DownCast( image ).GetImage(); + if ( retreivedButtonImage ) + { + ResourceImage resourceImage = ResourceImage::DownCast( retreivedButtonImage ); + + if ( resourceImage ) + { + Self().SetProperty( Toolkit::DevelButton::Property::DISABLED_UNSELECTED_BACKGROUND_VISUAL, resourceImage.GetUrl() ); + } + } +} + +void PushButton::SetDisabledImage( Actor image ) +{ + DALI_LOG_WARNING_NOFN("DEPRECATION WARNING: SetDisabledImage() is deprecated and will be removed from next release. Use Button.SetProperty DISABLED_STATE_IMAGE or Styling file instead.\n" ); + + Image retreivedButtonImage = Toolkit::ImageView::DownCast( image ).GetImage(); + if ( retreivedButtonImage ) + { + ResourceImage resourceImage = ResourceImage::DownCast( retreivedButtonImage ); + + if ( resourceImage ) + { + Self().SetProperty( Toolkit::DevelButton::Property::DISABLED_UNSELECTED_BACKGROUND_VISUAL, resourceImage.GetUrl() ); + } + } +} + +void PushButton::SetDisabledSelectedImage( Actor image ) +{ + DALI_LOG_WARNING_NOFN("DEPRECATION WARNING: SetDisabledSelectedImage() is deprecated and will be removed from next release.\n" ); + + Image retreivedButtonImage = Toolkit::ImageView::DownCast( image ).GetImage(); + if ( retreivedButtonImage ) + { + ResourceImage resourceImage = ResourceImage::DownCast( retreivedButtonImage ); + + if ( resourceImage ) + { + Self().SetProperty( Toolkit::DevelButton::Property::DISABLED_SELECTED_BACKGROUND_VISUAL, resourceImage.GetUrl() ); + } + } +} + } // namespace Internal } // namespace Toolkit diff --git a/dali-toolkit/internal/controls/buttons/push-button-impl.h b/dali-toolkit/internal/controls/buttons/push-button-impl.h index ecc7ac7..6417b4b 100644 --- a/dali-toolkit/internal/controls/buttons/push-button-impl.h +++ b/dali-toolkit/internal/controls/buttons/push-button-impl.h @@ -93,6 +93,48 @@ public: */ static Property::Value GetProperty( BaseObject* object, Property::Index propertyIndex ); + /** + * Deprecated API for Setting Pushbutton image using an Actor + * @param[in] image, Image Actor that has a url which can be used to create an image visual + */ + void SetButtonImage( Actor image ); + + /** + * Deprecated API for Setting Pushbutton image using an Actor + * @param[in] image, Image Actor that has a url which can be used to create an image visual + */ + void SetBackgroundImage( Actor image ); + + /** + * Deprecated API for Setting Pushbutton image using an Actor + * @param[in] image, Image Actor that has a url which can be used to create an image visual + */ + void SetSelectedImage( Actor image ); + + /** + * Deprecated API for Setting Pushbutton image using an Actor + * @param[in] image, Image Actor that has a url which can be used to create an image visual + */ + void SetSelectedBackgroundImage( Actor image ); + + /** + * Deprecated API for Setting Pushbutton image using an Actor + * @param[in] image, Image Actor that has a url which can be used to create an image visual + */ + void SetDisabledBackgroundImage( Actor image ); + + /** + * Deprecated API for Setting Pushbutton image using an Actor + * @param[in] image, Image Actor that has a url which can be used to create an image visual + */ + void SetDisabledImage( Actor image ); + + /** + * Deprecated API for Setting Pushbutton image using an Actor + * @param[in] image, Image Actor that has a url which can be used to create an image visual + */ + void SetDisabledSelectedImage( Actor image ); + private: // From Button /** diff --git a/dali-toolkit/public-api/controls/buttons/push-button.cpp b/dali-toolkit/public-api/controls/buttons/push-button.cpp index 80f8b16..22dba2d 100644 --- a/dali-toolkit/public-api/controls/buttons/push-button.cpp +++ b/dali-toolkit/public-api/controls/buttons/push-button.cpp @@ -82,46 +82,49 @@ void PushButton::SetButtonImage( Actor image ) { DALI_LOG_WARNING_NOFN("DEPRECATION WARNING: SetButtonImage() is deprecated and will be removed from next release. Use Button.SetProperty UNSELECTED_STATE_IMAGE or Styling file instead.\n" ); - // Passing Image as Actor not supported + Dali::Toolkit::GetImplementation( *this ).SetButtonImage( image ); } void PushButton::SetBackgroundImage( Actor image ) { DALI_LOG_WARNING_NOFN("DEPRECATION WARNING: SetBackgroundImage() is deprecated and will be removed from next release.\n" ); - // Passing Image as Actor not supported} + Dali::Toolkit::GetImplementation( *this ).SetBackgroundImage( image ); } void PushButton::SetSelectedImage( Actor image ) { DALI_LOG_WARNING_NOFN("DEPRECATION WARNING: SetSelectedImage() is deprecated and will be removed from next release. Use Button.SetProperty SELECTED_STATE_IMAGE or Styling file instead.\n" ); - // Passing Image as Actor not supported} + Dali::Toolkit::GetImplementation( *this ).SetSelectedImage( image ); } void PushButton::SetSelectedBackgroundImage( Actor image ) { DALI_LOG_WARNING_NOFN("DEPRECATION WARNING: SetSelectedBackgroundImage() is deprecated and will be removed from next release.\n" ); - // Passing Image as Actor not supported} + Dali::Toolkit::GetImplementation( *this ).SetSelectedBackgroundImage( image ); } void PushButton::SetDisabledBackgroundImage( Actor image ) { DALI_LOG_WARNING_NOFN("DEPRECATION WARNING: SetDisabledBackgroundImage() is deprecated and will be removed from next release.\n" ); - // Passing Image as Actor not supported} + + Dali::Toolkit::GetImplementation( *this ).SetDisabledBackgroundImage( image ); } void PushButton::SetDisabledImage( Actor image ) { DALI_LOG_WARNING_NOFN("DEPRECATION WARNING: SetDisabledImage() is deprecated and will be removed from next release. Use Button.SetProperty DISABLED_STATE_IMAGE or Styling file instead.\n" ); - // Passing Image as Actor not supported + + Dali::Toolkit::GetImplementation( *this ).SetDisabledImage( image ); } void PushButton::SetDisabledSelectedImage( Actor image ) { DALI_LOG_WARNING_NOFN("DEPRECATION WARNING: SetDisabledSelectedImage() is deprecated and will be removed from next release.\n" ); - // Passing Image as Actor not supported + + Dali::Toolkit::GetImplementation( *this ).SetDisabledSelectedImage( image ); } } // namespace Toolkit