void CreatePropertyMap( Actor actor, Property::Map& map ) { map.Clear(); if ( actor ) { map[ "type" ] = actor.GetTypeName(); // Default properties Property::IndexContainer indices; actor.GetPropertyIndices( indices ); const Property::IndexContainer::ConstIterator endIter = indices.End(); for ( Property::IndexContainer::Iterator iter = indices.Begin(); iter != endIter; ++iter ) { map[ actor.GetPropertyName( *iter ) ] = actor.GetProperty( *iter ); } // Children unsigned int childCount( actor.GetChildCount() ); if ( childCount ) { Property::Array childArray; for ( unsigned int child = 0; child < childCount; ++child ) { Property::Map childMap; CreatePropertyMap( actor.GetChildAt( child ), childMap ); childArray.PushBack( childMap ); } map[ "actors" ] = childArray; } } }
int UtcDaliPropertyMapPopulate(void) { Property::Map map; DALI_TEST_CHECK( map.Empty() ); map[ "hello" ] = 1; map[ "world" ] = "world"; map[ "world" ] = 3; // same item as line above DALI_TEST_CHECK( !map.Empty() ); // Should no longer be empty DALI_TEST_CHECK( map.Count() == 2 ); // Should only have two items, not three!! DALI_TEST_CHECK( map["hello"].Get<int>() == 1 ); DALI_TEST_CHECK( map["world"].Get<int>() == 3 ); map.Clear(); DALI_TEST_CHECK( map.Empty() ); END_TEST; }
void CreatePropertyMap( Image image, Property::Map& map ) { map.Clear(); if ( image ) { std::string imageType( "ResourceImage" ); // Get Type - cannot use TypeRegistry as Image is not an Object and thus, not registered BufferImage bufferImage = BufferImage::DownCast( image ); if ( bufferImage ) { imageType = "BufferImage"; map[ "pixelFormat" ] = GetEnumerationName< Pixel::Format >( bufferImage.GetPixelFormat(), PIXEL_FORMAT_TABLE, PIXEL_FORMAT_TABLE_COUNT ); } else if ( FrameBufferImage::DownCast( image ) ) { imageType = "FrameBufferImage"; } map[ "type" ] = imageType; map[ "releasePolicy" ] = GetEnumerationName< Image::ReleasePolicy >( image.GetReleasePolicy(), IMAGE_RELEASE_POLICY_TABLE, IMAGE_RELEASE_POLICY_TABLE_COUNT ); ResourceImage resourceImage = ResourceImage::DownCast( image ); if( resourceImage ) { map[ "filename" ] = resourceImage.GetUrl(); map[ "loadPolicy" ] = GetEnumerationName< ResourceImage::LoadPolicy >( resourceImage.GetLoadPolicy(), IMAGE_LOAD_POLICY_TABLE, IMAGE_LOAD_POLICY_TABLE_COUNT ); } int width( image.GetWidth() ); int height( image.GetHeight() ); if ( width && height ) { map[ "width" ] = width; map[ "height" ] = height; } } }