// INTERNAL INCLUDES
#include <dali-toolkit/public-api/visuals/image-visual-properties.h>
#include <dali-toolkit/devel-api/visuals/visual-properties-devel.h>
+#include <dali-toolkit/devel-api/visuals/image-visual-properties-devel.h>
#include <dali-toolkit/internal/visuals/npatch-loader.h>
#include <dali-toolkit/internal/visuals/visual-factory-impl.h>
#include <dali-toolkit/internal/visuals/visual-factory-cache.h>
namespace
{
-const char * const BORDER_ONLY("borderOnly");
+const char * const BORDER_ONLY( "borderOnly" );
+const char * const BORDER( "border" );
const char* VERTEX_SHADER = DALI_COMPOSE_SHADER(
attribute mediump vec2 aPosition;\n
// load now if not already loaded
if( NPatchLoader::UNINITIALIZED_ID == mId )
{
- mId = mLoader.Load( mImageUrl );
+ mId = mLoader.Load( mImageUrl, mBorder );
}
const NPatchLoader::Data* data;
if( mLoader.GetNPatchData( mId, data ) )
{
borderOnlyValue->Get( mBorderOnly );
}
+
+ Property::Value* borderValue = propertyMap.Find( Toolkit::DevelImageVisual::Property::BORDER, BORDER );
+ if( borderValue && ! borderValue->Get( mBorder ) ) // If value exists and is rect, just set mBorder
+ {
+ // Not a rect so try vector4
+ Vector4 border;
+ if( borderValue->Get( border ) )
+ {
+ mBorder.left = static_cast< int >( border.x );
+ mBorder.right = static_cast< int >( border.y );
+ mBorder.bottom = static_cast< int >( border.z );
+ mBorder.top = static_cast< int >( border.w );
+ }
+ }
}
void NPatchVisual::DoSetOnStage( Actor& actor )
// load when first go on stage
if( NPatchLoader::UNINITIALIZED_ID == mId )
{
- mId = mLoader.Load( mImageUrl );
+ mId = mLoader.Load( mImageUrl, mBorder );
}
Geometry geometry = CreateGeometry();
void NPatchVisual::DoCreatePropertyMap( Property::Map& map ) const
{
map.Clear();
- map.Insert( Toolkit::DevelVisual::Property::TYPE, Toolkit::Visual::IMAGE );
+ map.Insert( Toolkit::DevelVisual::Property::TYPE, Toolkit::DevelVisual::N_PATCH );
map.Insert( Toolkit::ImageVisual::Property::URL, mImageUrl );
map.Insert( Toolkit::ImageVisual::Property::BORDER_ONLY, mBorderOnly );
+ map.Insert( Toolkit::DevelImageVisual::Property::BORDER, mBorder );
+}
+
+void NPatchVisual::DoCreateInstancePropertyMap( Property::Map& map ) const
+{
+ // Do nothing
}
NPatchVisual::NPatchVisual( VisualFactoryCache& factoryCache )
mLoader( factoryCache.GetNPatchLoader() ),
mImageUrl(),
mId( NPatchLoader::UNINITIALIZED_ID ),
- mBorderOnly( false )
+ mBorderOnly( false ),
+ mBorder()
{
}