Select the renderer type based on the image url 30/66830/3
authorXiangyin Ma <x1.ma@samsung.com>
Thu, 21 Apr 2016 10:01:08 +0000 (11:01 +0100)
committerXiangyin Ma <x1.ma@samsung.com>
Fri, 22 Apr 2016 16:43:57 +0000 (17:43 +0100)
Change-Id: I394fdccd108871aaa234dc95b3e7b98142a9e7c7

21 files changed:
automated-tests/src/dali-toolkit/utc-Dali-Control.cpp
automated-tests/src/dali-toolkit/utc-Dali-ControlRenderer.cpp
automated-tests/src/dali-toolkit/utc-Dali-DebugRenderer.cpp
automated-tests/src/dali-toolkit/utc-Dali-RendererFactory.cpp
dali-toolkit/devel-api/controls/bloom-view/bloom-view.h
dali-toolkit/devel-api/controls/shadow-view/shadow-view.h
dali-toolkit/internal/controls/renderers/border/border-renderer.cpp
dali-toolkit/internal/controls/renderers/color/color-renderer.cpp
dali-toolkit/internal/controls/renderers/gradient/gradient-renderer.cpp
dali-toolkit/internal/controls/renderers/image/image-renderer.cpp
dali-toolkit/internal/controls/renderers/npatch/npatch-renderer.cpp
dali-toolkit/internal/controls/renderers/renderer-factory-impl.cpp
dali-toolkit/internal/controls/renderers/renderer-factory-impl.h
dali-toolkit/internal/controls/renderers/renderer-string-constants.cpp [new file with mode: 0644]
dali-toolkit/internal/controls/renderers/renderer-string-constants.h [new file with mode: 0644]
dali-toolkit/internal/controls/renderers/svg/svg-renderer.cpp
dali-toolkit/internal/file.list
dali-toolkit/styles/480x800/dali-toolkit-default-theme.json
dali-toolkit/styles/720x1280/dali-toolkit-default-theme.json
node-addon/examples/scripts/item-template.json
node-addon/item-template.json

index 588c7c5..9a7e6ff 100644 (file)
@@ -428,16 +428,16 @@ int UtcDaliControlBackgroundImage(void)
   Property::Map* resultMap = propValue.GetMap();
   DALI_TEST_CHECK( resultMap->Find( "rendererType" ) );
   DALI_TEST_CHECK( resultMap->Find( "rendererType" )->Get<std::string>() == "image" );
-  DALI_TEST_CHECK( resultMap->Find( "imageUrl" ) );
-  DALI_TEST_CHECK( resultMap->Find( "imageUrl" )->Get<std::string>() == "TestImage" );
+  DALI_TEST_CHECK( resultMap->Find( "url" ) );
+  DALI_TEST_CHECK( resultMap->Find( "url" )->Get<std::string>() == "TestImage" );
 
   image = ResourceImage::New("TestImage2");
   control.SetBackgroundImage( image );
 
   propValue = control.GetProperty( Control::Property::BACKGROUND );
   resultMap = propValue.GetMap();
-  DALI_TEST_CHECK( resultMap->Find( "imageUrl" ) );
-  DALI_TEST_CHECK( resultMap->Find( "imageUrl" )->Get<std::string>() == "TestImage2" );
+  DALI_TEST_CHECK( resultMap->Find( "url" ) );
+  DALI_TEST_CHECK( resultMap->Find( "url" )->Get<std::string>() == "TestImage2" );
 
   END_TEST;
 }
@@ -452,14 +452,14 @@ int UtcDaliControlBackgroundProperties(void)
 
   Property::Map imageMap;
   imageMap[ "rendererType" ] = "image";
-  imageMap[ "imageUrl" ] = "TestImage";
+  imageMap[ "url" ] = "TestImage";
   control.SetProperty( Control::Property::BACKGROUND, imageMap );
   Property::Value propValue = control.GetProperty( Control::Property::BACKGROUND );
   Property::Map* resultMap = propValue.GetMap();
   DALI_TEST_CHECK( resultMap->Find( "rendererType" ) );
   DALI_TEST_CHECK( resultMap->Find( "rendererType" )->Get<std::string>() == "image" );
-  DALI_TEST_CHECK( resultMap->Find( "imageUrl" ) );
-  DALI_TEST_CHECK( resultMap->Find( "imageUrl" )->Get<std::string>() == "TestImage" );
+  DALI_TEST_CHECK( resultMap->Find( "url" ) );
+  DALI_TEST_CHECK( resultMap->Find( "url" )->Get<std::string>() == "TestImage" );
 
   Property::Map rendererMap;
   rendererMap["rendererType"] = "color";
@@ -487,7 +487,7 @@ int UtcDaliControlBackgroundProperties(void)
   control.SetProperty( Control::Property::BACKGROUND_IMAGE, deprecatedImageMap );
   propValue = control.GetProperty( Control::Property::BACKGROUND_IMAGE );
   resultMap = propValue.GetMap();
-  DALI_TEST_CHECK( resultMap->Find( "imageUrl" )->Get< std::string >() == "TestImage" );
+  DALI_TEST_CHECK( resultMap->Find( "url" )->Get< std::string >() == "TestImage" );
   control.SetProperty( Control::Property::BACKGROUND_IMAGE, emptyMap );
   DALI_TEST_CHECK( control.GetProperty( Control::Property::BACKGROUND_IMAGE ).Get< Property::Map >().Empty() );
 
index 9a89c9c..810079f 100644 (file)
@@ -478,11 +478,11 @@ int UtcDaliControlRendererGetPropertyMap5(void)
   RendererFactory factory = RendererFactory::Get();
   Property::Map propertyMap;
   propertyMap.Insert( "rendererType",  "image" );
-  propertyMap.Insert( "imageUrl",  TEST_IMAGE_FILE_NAME );
-  propertyMap.Insert( "imageDesiredWidth",   20 );
-  propertyMap.Insert( "imageDesiredHeight",   30 );
-  propertyMap.Insert( "imageFittingMode",   "fitHeight" );
-  propertyMap.Insert( "imageSamplingMode",   "boxThenNearest" );
+  propertyMap.Insert( "url",  TEST_IMAGE_FILE_NAME );
+  propertyMap.Insert( "desiredWidth",   20 );
+  propertyMap.Insert( "desiredHeight",   30 );
+  propertyMap.Insert( "fittingMode",   "FIT_HEIGHT" );
+  propertyMap.Insert( "samplingMode",   "BOX_THEN_NEAREST" );
 
   ControlRenderer imageRenderer = factory.GetControlRenderer(propertyMap);
   DALI_TEST_CHECK( imageRenderer );
@@ -495,23 +495,23 @@ int UtcDaliControlRendererGetPropertyMap5(void)
   DALI_TEST_CHECK( value );
   DALI_TEST_CHECK( value->Get<std::string>() == "image" );
 
-  value = resultMap.Find( "imageUrl",  Property::STRING );
+  value = resultMap.Find( "url",  Property::STRING );
   DALI_TEST_CHECK( value );
   DALI_TEST_CHECK( value->Get<std::string>() == TEST_IMAGE_FILE_NAME );
 
-  value = resultMap.Find( "imageFittingMode",   Property::STRING );
+  value = resultMap.Find( "fittingMode",   Property::STRING );
   DALI_TEST_CHECK( value );
-  DALI_TEST_CHECK( value->Get<std::string>() == "fitHeight" );
+  DALI_TEST_CHECK( value->Get<std::string>() == "FIT_HEIGHT" );
 
-  value = resultMap.Find( "imageSamplingMode",   Property::STRING );
+  value = resultMap.Find( "samplingMode",   Property::STRING );
   DALI_TEST_CHECK( value );
-  DALI_TEST_CHECK( value->Get<std::string>() == "boxThenNearest" );
+  DALI_TEST_CHECK( value->Get<std::string>() == "BOX_THEN_NEAREST" );
 
-  value = resultMap.Find( "imageDesiredWidth",   Property::INTEGER );
+  value = resultMap.Find( "desiredWidth",   Property::INTEGER );
   DALI_TEST_CHECK( value );
   DALI_TEST_CHECK( value->Get<int>() == 20 );
 
-  value = resultMap.Find( "imageDesiredHeight",   Property::INTEGER );
+  value = resultMap.Find( "desiredHeight",   Property::INTEGER );
   DALI_TEST_CHECK( value );
   DALI_TEST_CHECK( value->Get<int>() == 30 );
 
@@ -524,23 +524,23 @@ int UtcDaliControlRendererGetPropertyMap5(void)
   DALI_TEST_CHECK( value );
   DALI_TEST_CHECK( value->Get<std::string>() == "image" );
 
-  value = resultMap.Find( "imageUrl",  Property::STRING );
+  value = resultMap.Find( "url",  Property::STRING );
   DALI_TEST_CHECK( value );
   DALI_TEST_CHECK( value->Get<std::string>() == TEST_IMAGE_FILE_NAME );
 
-  value = resultMap.Find( "imageFittingMode",   Property::STRING );
+  value = resultMap.Find( "fittingMode",   Property::STRING );
   DALI_TEST_CHECK( value );
-  DALI_TEST_CHECK( value->Get<std::string>() == "shrinkToFit" );
+  DALI_TEST_CHECK( value->Get<std::string>() == "SHRINK_TO_FIT" );
 
-  value = resultMap.Find( "imageSamplingMode",   Property::STRING );
+  value = resultMap.Find( "samplingMode",   Property::STRING );
   DALI_TEST_CHECK( value );
-  DALI_TEST_CHECK( value->Get<std::string>() == "box" );
+  DALI_TEST_CHECK( value->Get<std::string>() == "BOX" );
 
-  value = resultMap.Find( "imageDesiredWidth",   Property::INTEGER );
+  value = resultMap.Find( "desiredWidth",   Property::INTEGER );
   DALI_TEST_CHECK( value );
   DALI_TEST_CHECK( value->Get<int>() == 100 );
 
-  value = resultMap.Find( "imageDesiredHeight",   Property::INTEGER );
+  value = resultMap.Find( "desiredHeight",   Property::INTEGER );
   DALI_TEST_CHECK( value );
   DALI_TEST_CHECK( value->Get<int>() == 200 );
 
@@ -554,8 +554,8 @@ int UtcDaliControlRendererGetPropertyMap6(void)
 
   RendererFactory factory = RendererFactory::Get();
   Property::Map propertyMap;
-  propertyMap.Insert( "rendererType",  "nPatch" );
-  propertyMap.Insert( "imageUrl",  TEST_NPATCH_FILE_NAME );
+  propertyMap.Insert( "rendererType",  "image" );
+  propertyMap.Insert( "url",  TEST_NPATCH_FILE_NAME );
   propertyMap.Insert( "borderOnly",  true );
   ControlRenderer nPatchRenderer = factory.GetControlRenderer( propertyMap );
 
@@ -565,9 +565,9 @@ int UtcDaliControlRendererGetPropertyMap6(void)
   // check the property values from the returned map from control renderer
   Property::Value* value = resultMap.Find( "rendererType",  Property::STRING );
   DALI_TEST_CHECK( value );
-  DALI_TEST_CHECK( value->Get<std::string>() == "nPatch" );
+  DALI_TEST_CHECK( value->Get<std::string>() == "image" );
 
-  value = resultMap.Find( "imageUrl",  Property::STRING );
+  value = resultMap.Find( "url",  Property::STRING );
   DALI_TEST_CHECK( value );
   DALI_TEST_CHECK( value->Get<std::string>() == TEST_NPATCH_FILE_NAME );
 
@@ -586,8 +586,8 @@ int UtcDaliControlRendererGetPropertyMap7(void)
   // request SvgRenderer with a property map
   RendererFactory factory = RendererFactory::Get();
   Property::Map propertyMap;
-  propertyMap.Insert( "rendererType",  "svg" );
-  propertyMap.Insert( "imageUrl",  TEST_SVG_FILE_NAME );
+  propertyMap.Insert( "rendererType",  "image" );
+  propertyMap.Insert( "url",  TEST_SVG_FILE_NAME );
   ControlRenderer svgRenderer = factory.GetControlRenderer( propertyMap );
 
   Property::Map resultMap;
@@ -595,9 +595,9 @@ int UtcDaliControlRendererGetPropertyMap7(void)
   // check the property values from the returned map from control renderer
   Property::Value* value = resultMap.Find( "rendererType",  Property::STRING );
   DALI_TEST_CHECK( value );
-  DALI_TEST_CHECK( value->Get<std::string>() == "svg" );
+  DALI_TEST_CHECK( value->Get<std::string>() == "image" );
 
-  value = resultMap.Find( "imageUrl",  Property::STRING );
+  value = resultMap.Find( "url",  Property::STRING );
   DALI_TEST_CHECK( value );
   DALI_TEST_CHECK( value->Get<std::string>() == TEST_SVG_FILE_NAME );
 
@@ -608,9 +608,9 @@ int UtcDaliControlRendererGetPropertyMap7(void)
   // check the property values from the returned map from control renderer
   value = resultMap.Find( "rendererType",  Property::STRING );
   DALI_TEST_CHECK( value );
-  DALI_TEST_CHECK( value->Get<std::string>() == "svg" );
+  DALI_TEST_CHECK( value->Get<std::string>() == "image" );
 
-  value = resultMap.Find( "imageUrl",  Property::STRING );
+  value = resultMap.Find( "url",  Property::STRING );
   DALI_TEST_CHECK( value );
   DALI_TEST_CHECK( value->Get<std::string>() == TEST_SVG_FILE_NAME );
 
index 1429161..28999a0 100644 (file)
@@ -110,15 +110,15 @@ int UtcDaliDebugRendererGetRenderer1(void)
   // Test that image renderer is replaced with debug renderer
   Property::Map propertyMap4;
   propertyMap4.Insert( "rendererType",  "image" );
-  propertyMap4.Insert( "imageUrl",  TEST_IMAGE_FILE_NAME );
+  propertyMap4.Insert( "url",  TEST_IMAGE_FILE_NAME );
   ControlRenderer imageRenderer = factory.GetControlRenderer( propertyMap4 );
   DALI_TEST_CHECK( imageRenderer );
   DALI_TEST_CHECK( IsDebugRenderer( imageRenderer ) );
 
   // Test that n patch renderer is replaced with debug renderer
   Property::Map propertyMap5;
-  propertyMap5.Insert( "rendererType",  "nPatch" );
-  propertyMap5.Insert( "imageUrl",  TEST_NPATCH_FILE_NAME );
+  propertyMap5.Insert( "rendererType",  "image" );
+  propertyMap5.Insert( "url",  TEST_NPATCH_FILE_NAME );
   ControlRenderer nPatchRenderer = factory.GetControlRenderer( propertyMap4 );
   DALI_TEST_CHECK( nPatchRenderer );
   DALI_TEST_CHECK( IsDebugRenderer( nPatchRenderer ) );
index 6e22042..f37298c 100644 (file)
@@ -561,7 +561,7 @@ int UtcDaliRendererFactoryGetImageRenderer1(void)
 
   Property::Map propertyMap;
   propertyMap.Insert( "rendererType",  "image" );
-  propertyMap.Insert( "imageUrl",  TEST_IMAGE_FILE_NAME );
+  propertyMap.Insert( "url",  TEST_IMAGE_FILE_NAME );
 
   ControlRenderer controlRenderer = factory.GetControlRenderer( propertyMap );
   DALI_TEST_CHECK( controlRenderer );
@@ -642,8 +642,8 @@ int UtcDaliRendererFactoryGetNPatchRenderer1(void)
   Integration::ResourcePointer ninePatchResource = CustomizeNinePatch( application, ninePatchImageWidth, ninePatchImageHeight, stretchRangesX, stretchRangesY );
 
   Property::Map propertyMap;
-  propertyMap.Insert( "rendererType",  "nPatch" );
-  propertyMap.Insert( "imageUrl",  TEST_NPATCH_FILE_NAME );
+  propertyMap.Insert( "rendererType",  "image" );
+  propertyMap.Insert( "url",  TEST_NPATCH_FILE_NAME );
   {
     tet_infoline( "whole grid" );
     ControlRenderer controlRenderer = factory.GetControlRenderer( propertyMap );
@@ -706,8 +706,8 @@ int UtcDaliRendererFactoryGetNPatchRenderer2(void)
   Integration::ResourcePointer ninePatchResource = CustomizeNinePatch( application, ninePatchImageWidth, ninePatchImageHeight, stretchRangesX, stretchRangesY );
 
   Property::Map propertyMap;
-  propertyMap.Insert( "rendererType",  "nPatch" );
-  propertyMap.Insert( "imageUrl",  TEST_NPATCH_FILE_NAME );
+  propertyMap.Insert( "rendererType",  "image" );
+  propertyMap.Insert( "url",  TEST_NPATCH_FILE_NAME );
   {
     ControlRenderer controlRenderer = factory.GetControlRenderer( propertyMap );
     DALI_TEST_CHECK( controlRenderer );
@@ -868,8 +868,8 @@ int UtcDaliRendererFactoryGetNPatchRendererN2(void)
   DALI_TEST_CHECK( factory );
 
   Property::Map propertyMap;
-  propertyMap.Insert( "rendererType",  "nPatch" );
-  propertyMap.Insert( "imageUrl",  111 );
+  propertyMap.Insert( "rendererType",  111 );
+  propertyMap.Insert( "url",  "ERROR.9.jpg" );
 
   ControlRenderer controlRenderer = factory.GetControlRenderer( propertyMap );
   DALI_TEST_CHECK( controlRenderer );
index 9353f13..50ae2a8 100644 (file)
@@ -69,8 +69,8 @@ class BloomView;
  *
  *  // create and add some visible actors to the BloomView, all these child actors will therefore get bloomed\n
  *  Image image = Image::New(...);\n
- *  ImageActor imageActor = ImageActor::New(image);\n
- *  bloomView.Add(imageActor);\n
+ *  ImageView imageView = ImageView::New(image);\n
+ *  bloomView.Add(imageView);\n
  *  ...\n
  *
  *  // Start rendering the BloomView\n
index 188c3c3..bbe4f91 100644 (file)
@@ -66,17 +66,17 @@ class ShadowView;
  *
  *  // create and add some visible actors to the ShadowView, all these child actors will therefore cast a shadow.
  *  Image image = Image::New(...);
- *  ImageActor imageActor = ImageActor::New(image);
- *  imageActor.SetParentOrigin( ParentOrigin::CENTER );
- *  imageActor.SetAnchorPoint( AnchorPoint::CENTER );
+ *  ImageView imageView = ImageView::New(image);
+ *  imageView.SetParentOrigin( ParentOrigin::CENTER );
+ *  imageView.SetAnchorPoint( AnchorPoint::CENTER );
  *  shadowView.Add(imageActor);\n Add the renderable actor to the shadow view
  *
- *  ImageActor shadowPlane = ImageActor::New(); //This will be the shadow plane
- *  shadowPlane.SetParentOrigin( ParentOrigin::CENTER );
- *  shadowPlane.SetAnchorPoint( AnchorPoint::CENTER );
- *  shadowPlane.SetSize(700.0f, 700.0f);
- *  shadowPlane.SetPosition( Vector3(0.0f, 0.0f, -30.0f) ); //Just behind the image actor.
- *  shadowPlane.SetShadowPlane(ShadowPlane);
+ *  ImageView shadowPlaneBg = ImageView::New(); //This will be the shadow plane
+ *  shadowPlaneBg.SetParentOrigin( ParentOrigin::CENTER );
+ *  shadowPlaneBg.SetAnchorPoint( AnchorPoint::CENTER );
+ *  shadowPlaneBg.SetSize(700.0f, 700.0f);
+ *  shadowPlaneBg.SetPosition( Vector3(0.0f, 0.0f, -30.0f) ); //Just behind the image actor.
+ *  shadowView.SetShadowPlaneBackground(ShadowPlane);
  *
  *  Actor pointLight = Actor::New(); // This will be the light source
  *  pointLight.SetPosition(300.0f, 250.0f, 600.0f);
index 9ae46a1..bbe44a9 100644 (file)
@@ -24,6 +24,7 @@
 //INTERNAL INCLUDES
 #include <dali-toolkit/internal/controls/renderers/renderer-factory-impl.h>
 #include <dali-toolkit/internal/controls/renderers/renderer-factory-cache.h>
+#include <dali-toolkit/internal/controls/renderers/renderer-string-constants.h>
 #include <dali-toolkit/internal/controls/renderers/control-renderer-data-impl.h>
 
 namespace Dali
@@ -37,9 +38,6 @@ namespace Internal
 
 namespace
 {
-const char * const RENDERER_TYPE("rendererType");
-const char * const RENDERER_TYPE_VALUE("border");
-
 const char * const COLOR_NAME("borderColor");
 const char * const SIZE_NAME("borderSize");
 const char * const ANTI_ALIASING("antiAliasing");
@@ -160,7 +158,7 @@ void BorderRenderer::DoSetOnStage( Actor& actor )
 void BorderRenderer::DoCreatePropertyMap( Property::Map& map ) const
 {
   map.Clear();
-  map.Insert( RENDERER_TYPE, RENDERER_TYPE_VALUE );
+  map.Insert( RENDERER_TYPE, BORDER_RENDERER );
   map.Insert( COLOR_NAME, mBorderColor );
   map.Insert( SIZE_NAME, mBorderSize );
 }
index abdee4e..c054a5e 100644 (file)
@@ -24,6 +24,7 @@
 //INTERNAL INCLUDES
 #include <dali-toolkit/internal/controls/renderers/renderer-factory-impl.h>
 #include <dali-toolkit/internal/controls/renderers/renderer-factory-cache.h>
+#include <dali-toolkit/internal/controls/renderers/renderer-string-constants.h>
 #include <dali-toolkit/internal/controls/renderers/control-renderer-data-impl.h>
 
 namespace Dali
@@ -37,8 +38,6 @@ namespace Internal
 
 namespace
 {
-const char * const RENDERER_TYPE("rendererType");
-const char * const RENDERER_TYPE_VALUE("color");
 const char * const COLOR_NAME("blendColor");
 
 const char* VERTEX_SHADER = DALI_COMPOSE_SHADER(
@@ -111,7 +110,7 @@ void ColorRenderer::DoSetOnStage( Actor& actor )
 void ColorRenderer::DoCreatePropertyMap( Property::Map& map ) const
 {
   map.Clear();
-  map.Insert( RENDERER_TYPE, RENDERER_TYPE_VALUE );
+  map.Insert( RENDERER_TYPE, COLOR_RENDERER );
   map.Insert( COLOR_NAME, mBlendColor );
 }
 
index f1838ae..eec8029 100644 (file)
@@ -29,6 +29,7 @@
 #include <dali-toolkit/internal/controls/renderers/renderer-factory-impl.h>
 #include <dali-toolkit/internal/controls/renderers/renderer-factory-cache.h>
 #include <dali-toolkit/internal/controls/renderers/control-renderer-data-impl.h>
+#include <dali-toolkit/internal/controls/renderers/renderer-string-constants.h>
 #include <dali-toolkit/internal/controls/renderers/gradient/linear-gradient.h>
 #include <dali-toolkit/internal/controls/renderers/gradient/radial-gradient.h>
 
@@ -43,9 +44,6 @@ namespace Internal
 
 namespace
 {
-const char * const RENDERER_TYPE("rendererType");
-const char * const RENDERER_TYPE_VALUE("gradient");
-
 // properties: linear gradient
 const char * const START_POSITION_NAME("startPosition"); // Property::VECTOR2
 const char * const END_POSITION_NAME("endPosition"); // Property::VECTOR2
@@ -245,7 +243,7 @@ void GradientRenderer::DoSetOnStage( Actor& actor )
 void GradientRenderer::DoCreatePropertyMap( Property::Map& map ) const
 {
   map.Clear();
-  map.Insert( RENDERER_TYPE, RENDERER_TYPE_VALUE );
+  map.Insert( RENDERER_TYPE, GRADIENT_RENDERER );
 
   Gradient::GradientUnits units = mGradient->GetGradientUnits();
   if( units == Gradient::USER_SPACE_ON_USE )
index c2bec85..d0c6c91 100644 (file)
@@ -25,6 +25,7 @@
 #include <dali/integration-api/debug.h>
 
 // INTERNAL HEADER
+#include <dali-toolkit/internal/controls/renderers/renderer-string-constants.h>
 #include <dali-toolkit/internal/controls/renderers/renderer-factory-impl.h>
 #include <dali-toolkit/internal/controls/renderers/renderer-factory-cache.h>
 #include <dali-toolkit/internal/controls/renderers/control-renderer-impl.h>
@@ -45,33 +46,28 @@ namespace
 const char HTTP_URL[] = "http://";
 const char HTTPS_URL[] = "https://";
 
-const char * const RENDERER_TYPE("rendererType");
-const char * const RENDERER_TYPE_VALUE("image");
-
 // property names
-const char * const IMAGE_URL_NAME( "imageUrl" );
-const char * const IMAGE_FITTING_MODE( "imageFittingMode" );
-const char * const IMAGE_SAMPLING_MODE( "imageSamplingMode" );
-const char * const IMAGE_DESIRED_WIDTH( "imageDesiredWidth" );
-const char * const IMAGE_DESIRED_HEIGHT( "imageDesiredHeight" );
+const char * const IMAGE_FITTING_MODE( "fittingMode" );
+const char * const IMAGE_SAMPLING_MODE( "samplingMode" );
+const char * const IMAGE_DESIRED_WIDTH( "desiredWidth" );
+const char * const IMAGE_DESIRED_HEIGHT( "desiredHeight" );
 
 // fitting modes
-const char * const SHRINK_TO_FIT("shrinkToFit");
-const char * const SCALE_TO_FILL("scaleToFill");
-const char * const FIT_WIDTH("fitWidth");
-const char * const FIT_HEIGHT("fitHeight");
-const char * const DEFAULT("default");
+const char * const SHRINK_TO_FIT("SHRINK_TO_FIT");
+const char * const SCALE_TO_FILL("SCALE_TO_FILL");
+const char * const FIT_WIDTH("FIT_WIDTH");
+const char * const FIT_HEIGHT("FIT_HEIGHT");
+const char * const DEFAULT("DEFAULT");
 
 // sampling modes
-const char * const BOX("box");
-const char * const NEAREST("nearest");
-const char * const LINEAR("linear");
-const char * const BOX_THEN_NEAREST("boxThenNearest");
-const char * const BOX_THEN_LINEAR("boxThenLinear");
-const char * const NO_FILTER("noFilter");
-const char * const DONT_CARE("dontCare");
-
-const std::string ATLAS_RECT_UNIFORM_NAME = "uAtlasRect";
+const char * const BOX("BOX");
+const char * const NEAREST("NEAREST");
+const char * const LINEAR("LINEAR");
+const char * const BOX_THEN_NEAREST("BOX_THEN_NEAREST");
+const char * const BOX_THEN_LINEAR("BOX_THEN_LINEAR");
+const char * const NO_FILTER("NO_FILTER");
+const char * const DONT_CARE("DONT_CARE");
+
 const std::string PIXEL_AREA_UNIFORM_NAME = "pixelArea";
 
 const Vector4 FULL_TEXTURE_RECT(0.f, 0.f, 1.f, 1.f);
@@ -505,7 +501,7 @@ void ImageRenderer::DoSetOffStage( Actor& actor )
 void ImageRenderer::DoCreatePropertyMap( Property::Map& map ) const
 {
   map.Clear();
-  map.Insert( RENDERER_TYPE, RENDERER_TYPE_VALUE );
+  map.Insert( RENDERER_TYPE, IMAGE_RENDERER );
   if( !mImageUrl.empty() )
   {
     map.Insert( IMAGE_URL_NAME, mImageUrl );
index df0e8f5..028da4c 100644 (file)
@@ -26,6 +26,7 @@
 // INTERNAL IINCLUDES
 #include <dali-toolkit/internal/controls/renderers/renderer-factory-impl.h>
 #include <dali-toolkit/internal/controls/renderers/renderer-factory-cache.h>
+#include <dali-toolkit/internal/controls/renderers/renderer-string-constants.h>
 #include <dali-toolkit/internal/controls/renderers/control-renderer-impl.h>
 #include <dali-toolkit/internal/controls/renderers/control-renderer-data-impl.h>
 
@@ -41,10 +42,6 @@ namespace Internal
 
 namespace
 {
-const char * const RENDERER_TYPE("rendererType");
-const char * const RENDERER_TYPE_VALUE("nPatch");
-
-const char * const IMAGE_URL_NAME("imageUrl");
 const char * const BORDER_ONLY("borderOnly");
 
 const char* VERTEX_SHADER = DALI_COMPOSE_SHADER(
@@ -407,7 +404,7 @@ void NPatchRenderer::DoSetOffStage( Actor& actor )
 void NPatchRenderer::DoCreatePropertyMap( Property::Map& map ) const
 {
   map.Clear();
-  map.Insert( RENDERER_TYPE, RENDERER_TYPE_VALUE );
+  map.Insert( RENDERER_TYPE, IMAGE_RENDERER );
   if( !mImageUrl.empty() )
   {
     map.Insert( IMAGE_URL_NAME, mImageUrl );
index 2c88562..8ac1b74 100644 (file)
 #include <dali-toolkit/internal/controls/renderers/image/image-renderer.h>
 #include <dali-toolkit/internal/controls/renderers/svg/svg-renderer.h>
 #include <dali-toolkit/internal/controls/renderers/renderer-factory-cache.h>
+#include <dali-toolkit/internal/controls/renderers/renderer-string-constants.h>
 #include <dali-toolkit/internal/controls/renderers/image-atlas-manager.h>
 
 namespace
 {
-const char * const RENDERER_TYPE_NAME( "rendererType" );
-
-const char * const COLOR_RENDERER("color");
-const char * const BORDER_RENDERER("border");
-const char * const GRADIENT_RENDERER("gradient");
-const char * const IMAGE_RENDERER("image");
-const char * const N_PATCH_RENDERER("nPatch");
-const char * const SVG_RENDERER("svg");
-
 const char * const BROKEN_RENDERER_IMAGE_URL( DALI_IMAGE_DIR "broken.png");
-
 }
 
 namespace Dali
@@ -83,14 +74,64 @@ RendererFactory::~RendererFactory()
 {
 }
 
-Toolkit::ControlRenderer RendererFactory::GetControlRenderer( const Property::Map& propertyMap )
+RendererFactory::RendererType RendererFactory::GetRendererType( const Property::Map& propertyMap )
 {
-  ControlRenderer* rendererPtr = NULL;
+  RendererType rendererType = UNDEFINED;
 
-  Property::Value* type = propertyMap.Find( RENDERER_TYPE_NAME );
+  Property::Value* type = propertyMap.Find( RENDERER_TYPE );
   std::string typeValue ;
   if( type && type->Get( typeValue ))
   {
+    if( typeValue ==  COLOR_RENDERER )
+    {
+      rendererType = COLOR;
+    }
+    else if( typeValue == BORDER_RENDERER )
+    {
+      rendererType = BORDER;
+    }
+    else if( typeValue ==  GRADIENT_RENDERER )
+    {
+      rendererType = GRADIENT;
+    }
+    else if( typeValue ==  IMAGE_RENDERER )
+    {
+      rendererType = IMAGE;
+    }
+  }
+
+  // check the url if exist, to decide the renderer type
+  if( rendererType == IMAGE || rendererType == UNDEFINED )
+  {
+    Property::Value* imageURLValue = propertyMap.Find( IMAGE_URL_NAME );
+    std::string imageUrl;
+    if( imageURLValue && imageURLValue->Get( imageUrl ))
+    {
+      if( NinePatchImage::IsNinePatchUrl( imageUrl ) )
+      {
+        rendererType = N_PATCH;
+      }
+      else if( SvgRenderer::IsSvgUrl( imageUrl ) )
+      {
+        rendererType = SVG;
+      }
+      else
+      {
+        rendererType = IMAGE;
+      }
+    }
+  }
+
+  return rendererType;
+}
+
+Toolkit::ControlRenderer RendererFactory::GetControlRenderer( const Property::Map& propertyMap )
+{
+  ControlRenderer* rendererPtr = NULL;
+
+  RendererType type = GetRendererType( propertyMap );
+  if( type != UNDEFINED)
+  {
     if( !mFactoryCache )
     {
       mFactoryCache = new RendererFactoryCache();
@@ -100,32 +141,46 @@ Toolkit::ControlRenderer RendererFactory::GetControlRenderer( const Property::Ma
     {
       return Toolkit::ControlRenderer( new DebugRenderer( *( mFactoryCache.Get() ) ) );
     }
+  }
 
-    if( typeValue ==  COLOR_RENDERER )
+  switch( type )
+  {
+    case COLOR:
     {
       rendererPtr = new ColorRenderer( *( mFactoryCache.Get() ) );
+      break;
     }
-    else if( typeValue ==  GRADIENT_RENDERER )
+     case GRADIENT:
+     {
+       rendererPtr = new GradientRenderer( *( mFactoryCache.Get() ) );
+       break;
+     }
+    case BORDER:
     {
-      rendererPtr = new GradientRenderer( *( mFactoryCache.Get() ) );
+      rendererPtr = new BorderRenderer( *( mFactoryCache.Get() ) );
+      break;
     }
-    else if( typeValue ==  IMAGE_RENDERER )
+    case IMAGE:
     {
       CreateAtlasManager();
       rendererPtr = new ImageRenderer( *( mFactoryCache.Get() ), *( mAtlasManager.Get() ) );
+      break;
     }
-    else if( typeValue ==  N_PATCH_RENDERER )
+    case N_PATCH:
     {
       rendererPtr = new NPatchRenderer( *( mFactoryCache.Get() ) );
+      break;
     }
-    else if( typeValue == BORDER_RENDERER )
-    {
-      rendererPtr = new BorderRenderer( *( mFactoryCache.Get() ) );
-    }
-    else if( typeValue == SVG_RENDERER )
+    case SVG:
     {
       CreateAtlasManager();
       rendererPtr = new SvgRenderer( *( mFactoryCache.Get() ), *( mAtlasManager.Get() ) );
+      break;
+    }
+    case UNDEFINED:
+    default:
+    {
+      break;
     }
   }
 
@@ -385,17 +440,16 @@ void RendererFactory::ResetRenderer( Toolkit::ControlRenderer& renderer, Actor&
   {
     ControlRenderer& controlRenderer = GetImplementation( renderer );
 
-    Property::Value* type = propertyMap.Find( RENDERER_TYPE_NAME );
-    std::string typeValue ;
+    RendererType type = GetRendererType( propertyMap );
 
     //If there's no renderer type specified or if there hasn't been a renderer type change then we can reuse the renderer
-    if( !type || !type->Get( typeValue ) ||
-        ( typeValue == IMAGE_RENDERER    && typeid( controlRenderer ) == typeid( ImageRenderer ) ) ||
-        ( typeValue == N_PATCH_RENDERER  && typeid( controlRenderer ) == typeid( NPatchRenderer ) ) ||
-        ( typeValue == COLOR_RENDERER    && typeid( controlRenderer ) == typeid( ColorRenderer ) )||
-        ( typeValue == GRADIENT_RENDERER && typeid( controlRenderer ) == typeid( GradientRenderer ) ) ||
-        ( typeValue == BORDER_RENDERER   && typeid( controlRenderer ) == typeid( BorderRenderer ) ) ||
-        ( typeValue == SVG_RENDERER      && typeid( controlRenderer ) == typeid( SvgRenderer ) ) )
+    if( type == UNDEFINED ||
+        ( type == IMAGE    && typeid( controlRenderer ) == typeid( ImageRenderer ) ) ||
+        ( type == N_PATCH  && typeid( controlRenderer ) == typeid( NPatchRenderer ) ) ||
+        ( type == COLOR    && typeid( controlRenderer ) == typeid( ColorRenderer ) )||
+        ( type == GRADIENT && typeid( controlRenderer ) == typeid( GradientRenderer ) ) ||
+        ( type == BORDER   && typeid( controlRenderer ) == typeid( BorderRenderer ) ) ||
+        ( type == SVG      && typeid( controlRenderer ) == typeid( SvgRenderer ) ) )
     {
       controlRenderer.Initialize( actor, propertyMap );
       return;
index e129aef..b9d5cf1 100644 (file)
@@ -44,9 +44,19 @@ typedef IntrusivePtr<ImageAtlasManager> ImageAtlasManagerPtr;
  */
 class RendererFactory : public BaseObject
 {
-
 public:
 
+  enum RendererType
+  {
+    COLOR,
+    BORDER,
+    GRADIENT,
+    IMAGE,
+    N_PATCH,
+    SVG,
+    UNDEFINED
+  };
+
   /**
    * @brief Constructor
    *
@@ -115,6 +125,14 @@ protected:
 private:
 
   /**
+   * Get the renderer type from the property map.
+   *
+   * @param[in] propertyMap The map contains the properties of the control renderer
+   * @return The rendererType
+   */
+  RendererType GetRendererType( const Property::Map& propertyMap );
+
+  /**
    * Prepare the atlas manager
    */
   void CreateAtlasManager();
diff --git a/dali-toolkit/internal/controls/renderers/renderer-string-constants.cpp b/dali-toolkit/internal/controls/renderers/renderer-string-constants.cpp
new file mode 100644 (file)
index 0000000..ef01bd1
--- /dev/null
@@ -0,0 +1,43 @@
+ /*
+ * Copyright (c) 2015 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+// CLASS HEADER
+#include "renderer-string-constants.h"
+
+namespace Dali
+{
+
+namespace Toolkit
+{
+
+namespace Internal
+{
+
+const char * const RENDERER_TYPE("rendererType");
+const char * const COLOR_RENDERER("color");
+const char * const BORDER_RENDERER("border");
+const char * const GRADIENT_RENDERER("gradient");
+const char * const IMAGE_RENDERER("image");
+
+const char * const IMAGE_URL_NAME("url");
+const char * const ATLAS_RECT_UNIFORM_NAME ( "uAtlasRect" );
+
+} // namespace Internal
+
+} // namespace Toolkit
+
+} // namespace Dali
diff --git a/dali-toolkit/internal/controls/renderers/renderer-string-constants.h b/dali-toolkit/internal/controls/renderers/renderer-string-constants.h
new file mode 100644 (file)
index 0000000..ebaf29f
--- /dev/null
@@ -0,0 +1,45 @@
+#ifndef __DALI_TOOLKIT_INTERNAL_RENDERER_STRING_CONSTANTS_H__
+#define __DALI_TOOLKIT_INTERNAL_RENDERER_STRING_CONSTANTS_H__
+
+/*
+ * Copyright (c) 2016 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+namespace Dali
+{
+
+namespace Toolkit
+{
+
+namespace Internal
+{
+
+extern const char * const RENDERER_TYPE;
+extern const char * const COLOR_RENDERER;
+extern const char * const BORDER_RENDERER;
+extern const char * const GRADIENT_RENDERER;
+extern const char * const IMAGE_RENDERER;
+
+extern const char * const IMAGE_URL_NAME;
+extern const char * const ATLAS_RECT_UNIFORM_NAME;
+
+} // namespace Internal
+
+} // namespace Toolkit
+
+} // namespace Dali
+
+#endif /* __DALI_TOOLKIT_INTERNAL_RENDERER_STRING_CONSTANTS_H__ */
index 2642c74..d6619d3 100644 (file)
 #include "svg-rasterize-thread.h"
 #include <dali-toolkit/internal/controls/renderers/image/image-renderer.h>
 #include <dali-toolkit/internal/controls/renderers/renderer-factory-cache.h>
+#include <dali-toolkit/internal/controls/renderers/renderer-string-constants.h>
 #include <dali-toolkit/internal/controls/renderers/control-renderer-data-impl.h>
 
 
 namespace
 {
-const char * const RENDERER_TYPE("rendererType");
-const char * const RENDERER_TYPE_VALUE("svg");
-const char * const IMAGE_URL_NAME("imageUrl");
 const char * const UNITS("px");
 
-const std::string TEXTURE_UNIFORM_NAME = "sTexture";
-const std::string ATLAS_RECT_UNIFORM_NAME = "uAtlasRect";
-
 const Dali::Vector4 FULL_TEXTURE_RECT(0.f, 0.f, 1.f, 1.f);
 }
 
@@ -147,7 +142,7 @@ void SvgRenderer::SetSize( const Vector2& size )
 void SvgRenderer::DoCreatePropertyMap( Property::Map& map ) const
 {
   map.Clear();
-  map.Insert( RENDERER_TYPE, RENDERER_TYPE_VALUE );
+  map.Insert( RENDERER_TYPE, IMAGE_RENDERER );
   if( !mImageUrl.empty() )
   {
     map.Insert( IMAGE_URL_NAME, mImageUrl );
index 758160f..cd24d24 100644 (file)
@@ -16,6 +16,7 @@ toolkit_src_files = \
    $(toolkit_src_dir)/controls/renderers/image-atlas-manager.cpp \
    $(toolkit_src_dir)/controls/renderers/renderer-factory-cache.cpp \
    $(toolkit_src_dir)/controls/renderers/renderer-factory-impl.cpp \
+   $(toolkit_src_dir)/controls/renderers/renderer-string-constants.cpp \
    $(toolkit_src_dir)/controls/renderers/border/border-renderer.cpp \
    $(toolkit_src_dir)/controls/renderers/color/color-renderer.cpp \
    $(toolkit_src_dir)/controls/renderers/debug/debug-renderer.cpp \
index 46ee52d..4ecc335 100644 (file)
@@ -94,8 +94,8 @@
       "popupIconColor":[1.0,1.0,1.0,1.0],
       "popupPressedColor":[0.24,0.72,0.8,0.11],
       "background": {
-        "rendererType": "nPatch",
-        "imageUrl": "{DALI_IMAGE_DIR}selection-popup-bg.9.png"
+        "rendererType": "image",
+        "url": "{DALI_IMAGE_DIR}selection-popup-bg.9.png"
         },
       "popupFadeInDuration":0.25,
       "popupFadeOutDuration":0.25
index 26b3c80..ffe9326 100644 (file)
@@ -94,8 +94,8 @@
       "popupIconColor":[1.0,1.0,1.0,1.0],
       "popupPressedColor":[0.24,0.72,0.8,0.11],
       "background": {
-        "rendererType": "nPatch",
-        "imageUrl": "{DALI_IMAGE_DIR}selection-popup-bg.9.png"
+        "rendererType": "image",
+        "url": "{DALI_IMAGE_DIR}selection-popup-bg.9.png"
         },
       "popupFadeInDuration":0.25,
       "popupFadeOutDuration":0.25
index 1161765..2016ea7 100644 (file)
@@ -16,7 +16,7 @@
           "image":
           {
             "rendererType" : "image",
-            "imageUrl": "{icon_path}"
+            "url": "{icon_path}"
           },
           "position":[20.0, 0.0, 0.0],
           "size":[70.0, 70.0, 0.0],
@@ -60,7 +60,7 @@
           "image":
           {
             "rendererType" : "image",
-            "imageUrl": "{icon_path}"
+            "url": "{icon_path}"
           },
           "position":[0.0, -10.0, 0.0],
           "size":[70.0, 70.0, 0.0],
index 1161765..2016ea7 100644 (file)
@@ -16,7 +16,7 @@
           "image":
           {
             "rendererType" : "image",
-            "imageUrl": "{icon_path}"
+            "url": "{icon_path}"
           },
           "position":[20.0, 0.0, 0.0],
           "size":[70.0, 70.0, 0.0],
@@ -60,7 +60,7 @@
           "image":
           {
             "rendererType" : "image",
-            "imageUrl": "{icon_path}"
+            "url": "{icon_path}"
           },
           "position":[0.0, -10.0, 0.0],
           "size":[70.0, 70.0, 0.0],