X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=blobdiff_plain;f=dali-toolkit%2Finternal%2Fcontrols%2Frenderers%2Fnpatch%2Fnpatch-renderer.cpp;h=842a0997ef07697f6469ccf96b029cbd23d6c5a9;hp=d7577125a30c4f0b445ae082f90903629e01fef0;hb=cde5ef8b9c6de8008865e29f3b1acab8f7cd2bbc;hpb=618c084142032296c60a188b9438d63a81a2d264 diff --git a/dali-toolkit/internal/controls/renderers/npatch/npatch-renderer.cpp b/dali-toolkit/internal/controls/renderers/npatch/npatch-renderer.cpp index d757712..842a099 100644 --- a/dali-toolkit/internal/controls/renderers/npatch/npatch-renderer.cpp +++ b/dali-toolkit/internal/controls/renderers/npatch/npatch-renderer.cpp @@ -41,6 +41,8 @@ namespace Internal namespace { +const char * const RENDERER_TYPE("renderer-type"); +const char * const RENDERER_TYPE_VALUE("n-patch-renderer"); const char * const IMAGE_URL_NAME("image-url"); const char * const BORDER_ONLY("border-only"); @@ -158,7 +160,7 @@ NPatchRenderer::~NPatchRenderer() { } -void NPatchRenderer::Initialize( RendererFactoryCache& factoryCache, const Property::Map& propertyMap ) +void NPatchRenderer::DoInitialize( RendererFactoryCache& factoryCache, const Property::Map& propertyMap ) { Initialize(factoryCache); @@ -185,6 +187,25 @@ void NPatchRenderer::Initialize( RendererFactoryCache& factoryCache, const Prope } } +void NPatchRenderer::GetNaturalSize( Vector2& naturalSize ) const +{ + if( mImage ) + { + naturalSize.x = mImage.GetWidth(); + naturalSize.y = mImage.GetHeight(); + return; + } + else if( !mImageUrl.empty() ) + { + ImageDimensions dimentions = ResourceImage::GetImageSize( mImageUrl ); + naturalSize.x = dimentions.GetWidth(); + naturalSize.y = dimentions.GetHeight(); + return; + } + + naturalSize = Vector2::ZERO; +} + void NPatchRenderer::SetClipRect( const Rect& clipRect ) { ControlRenderer::SetClipRect( clipRect ); @@ -222,6 +243,21 @@ void NPatchRenderer::DoSetOffStage( Actor& actor ) mCroppedImage.Reset(); } +void NPatchRenderer::DoCreatePropertyMap( Property::Map& map ) const +{ + map.Clear(); + map.Insert( RENDERER_TYPE, RENDERER_TYPE_VALUE ); + if( !mImageUrl.empty() ) + { + map.Insert( IMAGE_URL_NAME, mImageUrl ); + } + else if( mImage ) + { + map.Insert( IMAGE_URL_NAME, mImage.GetUrl() ); + } + map.Insert( BORDER_ONLY, mBorderOnly ); +} + void NPatchRenderer::Initialize( RendererFactoryCache& factoryCache ) { mNinePatchGeometry = factoryCache.GetGeometry( RendererFactoryCache::NINE_PATCH_GEOMETRY );