Ensured Control::Background visual is named to "background" regardless.
During visual registration, a lookup of registered properties is attempted to
retrieve the name of the property and assign that name to the visual.
(Used by scripting and styling).
In the case of non-native controls, where they use ControlWrapper as
their gateway class, the typeid lookup cannot get past ControlWrapper,
so will currently fail to name the visuals.
Instead, changed the RegisterVisual method to call GetPropertyName() directly -
for the ControlWrapper case, the non-native type name has been set on this object,
and in the glue layer, any C# properties annotated with ScriptableProperties
will be registered with the same type name. Consequently, GetPropertyName() will
work as intended for non-native properties.
However, this has to be within a try-catch block, as it will assert if the
developer hasn't registered the property index, which is the case
for some native controls.
Change-Id: I8b92496a21d13e3696fb827e67586f92e9e0dffb
Signed-off-by: David Steele <david.steele@samsung.com>
Integration::ResourcePointer resourcePtr = Integration::ResourcePointer())
{
DummyControlImpl& dummyImpl = static_cast<DummyControlImpl&>(actor.GetImplementation());
Integration::ResourcePointer resourcePtr = Integration::ResourcePointer())
{
DummyControlImpl& dummyImpl = static_cast<DummyControlImpl&>(actor.GetImplementation());
- dummyImpl.RegisterVisual( Control::CONTROL_PROPERTY_END_INDEX + 1, visual );
+ dummyImpl.RegisterVisual( DummyControl::Property::TEST_VISUAL, visual );
Visual::Base visual = factory.CreateVisual(propertyMap);
DALI_TEST_CHECK( visual );
Visual::Base visual = factory.CreateVisual(propertyMap);
DALI_TEST_CHECK( visual );
- DummyControl actor = DummyControl::New();
+ DummyControl actor = DummyControl::New(true);
TestVisualRender( application, actor, visual );
Vector3 actualValue(Vector4::ZERO);
TestVisualRender( application, actor, visual );
Vector3 actualValue(Vector4::ZERO);
Visual::Base visual = factory.CreateVisual( map );
DALI_TEST_CHECK( visual );
Visual::Base visual = factory.CreateVisual( map );
DALI_TEST_CHECK( visual );
- DummyControl actor = DummyControl::New();
+ DummyControl actor = DummyControl::New(true);
TestVisualRender( application, actor, visual );
Vector3 actualValue;
TestVisualRender( application, actor, visual );
Vector3 actualValue;
Visual::Base visual = factory.CreateVisual(propertyMap);
DALI_TEST_CHECK( visual );
Visual::Base visual = factory.CreateVisual(propertyMap);
DALI_TEST_CHECK( visual );
- DummyControl actor = DummyControl::New();
+ DummyControl actor = DummyControl::New(true);
DummyControlImpl& dummyImpl = static_cast<DummyControlImpl&>(actor.GetImplementation());
DummyControlImpl& dummyImpl = static_cast<DummyControlImpl&>(actor.GetImplementation());
- dummyImpl.RegisterVisual( Control::CONTROL_PROPERTY_END_INDEX + 1, visual );
+ dummyImpl.RegisterVisual( DummyControl::Property::TEST_VISUAL, visual );
actor.SetSize(200.f, 200.f);
Stage::GetCurrent().Add( actor );
visual.SetTransformAndSize(DefaultTransform(), Vector2(200.f, 200.f));
actor.SetSize(200.f, 200.f);
Stage::GetCurrent().Add( actor );
visual.SetTransformAndSize(DefaultTransform(), Vector2(200.f, 200.f));
Visual::Base visual = factory.CreateVisual( propertyMap );
DALI_TEST_CHECK( visual );
Visual::Base visual = factory.CreateVisual( propertyMap );
DALI_TEST_CHECK( visual );
- DummyControl actor = DummyControl::New();
+ DummyControl actor = DummyControl::New(true);
DummyControlImpl& dummyImpl = static_cast<DummyControlImpl&>(actor.GetImplementation());
DummyControlImpl& dummyImpl = static_cast<DummyControlImpl&>(actor.GetImplementation());
- dummyImpl.RegisterVisual( Control::CONTROL_PROPERTY_END_INDEX + 1, visual );
+ dummyImpl.RegisterVisual( DummyControl::Property::TEST_VISUAL, visual );
actor.SetSize(200.f, 200.f);
Stage::GetCurrent().Add( actor );
visual.SetTransformAndSize(DefaultTransform(), Vector2(200.f, 200.f));
actor.SetSize(200.f, 200.f);
Stage::GetCurrent().Add( actor );
visual.SetTransformAndSize(DefaultTransform(), Vector2(200.f, 200.f));
DALI_TEST_CHECK( visual );
// A lookup texture is generated and pass to shader as sampler
DALI_TEST_CHECK( visual );
// A lookup texture is generated and pass to shader as sampler
- DummyControl actor = DummyControl::New();
+ DummyControl actor = DummyControl::New(true);
TestVisualRender( application, actor, visual, 1u);
END_TEST;
TestVisualRender( application, actor, visual, 1u);
END_TEST;
DALI_TEST_CHECK( visual );
// A lookup texture is generated and pass to shader as sampler
DALI_TEST_CHECK( visual );
// A lookup texture is generated and pass to shader as sampler
- DummyControl actor = DummyControl::New();
+ DummyControl actor = DummyControl::New(true);
TestVisualRender( application, actor, visual, 1u );
Matrix3 alignMatrix( radius, 0.f, 0.f, 0.f, radius, 0.f, center.x, center.y, 1.f );
TestVisualRender( application, actor, visual, 1u );
Matrix3 alignMatrix( radius, 0.f, 0.f, 0.f, radius, 0.f, center.x, center.y, 1.f );
DALI_TEST_CHECK( visual );
// A lookup texture is generated and pass to shader as sampler
DALI_TEST_CHECK( visual );
// A lookup texture is generated and pass to shader as sampler
- DummyControl actor = DummyControl::New();
+ DummyControl actor = DummyControl::New(true);
TestVisualRender( application, actor, visual, 1u );
Stage::GetCurrent().Remove( actor );
TestVisualRender( application, actor, visual, 1u );
Stage::GetCurrent().Remove( actor );
TraceCallStack& textureTrace = gl.GetTextureTrace();
textureTrace.Enable(true);
TraceCallStack& textureTrace = gl.GetTextureTrace();
textureTrace.Enable(true);
- DummyControl actor = DummyControl::New();
+ DummyControl actor = DummyControl::New(true);
TestVisualRender( application, actor, visual, 1u,
ImageDimensions(ninePatchImageWidth, ninePatchImageHeight),
ninePatchResource );
TestVisualRender( application, actor, visual, 1u,
ImageDimensions(ninePatchImageWidth, ninePatchImageHeight),
ninePatchResource );
TraceCallStack& textureTrace = gl.GetTextureTrace();
textureTrace.Enable(true);
TraceCallStack& textureTrace = gl.GetTextureTrace();
textureTrace.Enable(true);
- DummyControl actor = DummyControl::New();
+ DummyControl actor = DummyControl::New(true);
TestVisualRender( application, actor, visual, 1u,
ImageDimensions(ninePatchImageWidth, ninePatchImageHeight),
ninePatchResource );
TestVisualRender( application, actor, visual, 1u,
ImageDimensions(ninePatchImageWidth, ninePatchImageHeight),
ninePatchResource );
TraceCallStack& textureTrace = gl.GetTextureTrace();
textureTrace.Enable(true);
TraceCallStack& textureTrace = gl.GetTextureTrace();
textureTrace.Enable(true);
- DummyControl actor = DummyControl::New();
+ DummyControl actor = DummyControl::New(true);
TestVisualRender( application, actor, visual, 1u );
DALI_TEST_EQUALS( textureTrace.FindMethod("BindTexture"), true, TEST_LOCATION );
TestVisualRender( application, actor, visual, 1u );
DALI_TEST_EQUALS( textureTrace.FindMethod("BindTexture"), true, TEST_LOCATION );
TraceCallStack& textureTrace = gl.GetTextureTrace();
textureTrace.Enable(true);
TraceCallStack& textureTrace = gl.GetTextureTrace();
textureTrace.Enable(true);
- DummyControl actor = DummyControl::New();
+ DummyControl actor = DummyControl::New(true);
TestVisualRender( application, actor, visual, 1u );
DALI_TEST_EQUALS( textureTrace.FindMethod("BindTexture"), true, TEST_LOCATION );
TestVisualRender( application, actor, visual, 1u );
DALI_TEST_EQUALS( textureTrace.FindMethod("BindTexture"), true, TEST_LOCATION );
TraceCallStack& textureTrace = gl.GetTextureTrace();
textureTrace.Enable(true);
TraceCallStack& textureTrace = gl.GetTextureTrace();
textureTrace.Enable(true);
- DummyControl actor = DummyControl::New();
+ DummyControl actor = DummyControl::New(true);
TestVisualRender( application, actor, visual, 1u );
DALI_TEST_EQUALS( textureTrace.FindMethod("BindTexture"), true, TEST_LOCATION );
TestVisualRender( application, actor, visual, 1u );
DALI_TEST_EQUALS( textureTrace.FindMethod("BindTexture"), true, TEST_LOCATION );
TraceCallStack& textureTrace = gl.GetTextureTrace();
textureTrace.Enable(true);
TraceCallStack& textureTrace = gl.GetTextureTrace();
textureTrace.Enable(true);
- DummyControl actor = DummyControl::New();
+ DummyControl actor = DummyControl::New(true);
TestVisualRender( application, actor, visual, 1u,
ImageDimensions(ninePatchImageWidth, ninePatchImageHeight),
ninePatchResource );
TestVisualRender( application, actor, visual, 1u,
ImageDimensions(ninePatchImageWidth, ninePatchImageHeight),
ninePatchResource );
TestGlAbstraction& gl = application.GetGlAbstraction();
TraceCallStack& textureTrace = gl.GetTextureTrace();
textureTrace.Enable(true);
TestGlAbstraction& gl = application.GetGlAbstraction();
TraceCallStack& textureTrace = gl.GetTextureTrace();
textureTrace.Enable(true);
- DummyControl actor = DummyControl::New();
+ DummyControl actor = DummyControl::New(true);
TestVisualRender( application, actor, visual, 1u,
ImageDimensions(ninePatchImageWidth, ninePatchImageHeight),
ninePatchResource );
TestVisualRender( application, actor, visual, 1u,
ImageDimensions(ninePatchImageWidth, ninePatchImageHeight),
ninePatchResource );
TraceCallStack& textureTrace = gl.GetTextureTrace();
textureTrace.Enable(true);
TraceCallStack& textureTrace = gl.GetTextureTrace();
textureTrace.Enable(true);
- DummyControl actor = DummyControl::New();
+ DummyControl actor = DummyControl::New(true);
TestVisualRender( application, actor, visual, 1u,
ImageDimensions(ninePatchImageWidth, ninePatchImageHeight),
ninePatchResource );
TestVisualRender( application, actor, visual, 1u,
ImageDimensions(ninePatchImageWidth, ninePatchImageHeight),
ninePatchResource );
TraceCallStack& textureTrace = gl.GetTextureTrace();
textureTrace.Enable(true);
TraceCallStack& textureTrace = gl.GetTextureTrace();
textureTrace.Enable(true);
- DummyControl actor = DummyControl::New();
+ DummyControl actor = DummyControl::New(true);
TestVisualRender( application, actor, visual, 1u,
ImageDimensions(ninePatchImageWidth, ninePatchImageHeight),
ninePatchResource );
TestVisualRender( application, actor, visual, 1u,
ImageDimensions(ninePatchImageWidth, ninePatchImageHeight),
ninePatchResource );
TraceCallStack& textureTrace = gl.GetTextureTrace();
textureTrace.Enable(true);
TraceCallStack& textureTrace = gl.GetTextureTrace();
textureTrace.Enable(true);
- DummyControl actor = DummyControl::New();
+ DummyControl actor = DummyControl::New(true);
TestVisualRender( application, actor, visual, 1u,
ImageDimensions(),
Integration::ResourcePointer(bitmap) );
TestVisualRender( application, actor, visual, 1u,
ImageDimensions(),
Integration::ResourcePointer(bitmap) );
TraceCallStack& drawTrace = gl.GetDrawTrace();
drawTrace.Enable(true);
TraceCallStack& drawTrace = gl.GetDrawTrace();
drawTrace.Enable(true);
- DummyControl actor = DummyControl::New();
+ DummyControl actor = DummyControl::New(true);
TestVisualRender( application, actor, visual, 1u,
ImageDimensions(),
Integration::ResourcePointer(bitmap) );
TestVisualRender( application, actor, visual, 1u,
ImageDimensions(),
Integration::ResourcePointer(bitmap) );
TraceCallStack& textureTrace = gl.GetTextureTrace();
textureTrace.Enable(true);
TraceCallStack& textureTrace = gl.GetTextureTrace();
textureTrace.Enable(true);
- DummyControl actor = DummyControl::New();
+ DummyControl actor = DummyControl::New(true);
DummyControlImpl& dummyImpl = static_cast<DummyControlImpl&>(actor.GetImplementation());
DummyControlImpl& dummyImpl = static_cast<DummyControlImpl&>(actor.GetImplementation());
- dummyImpl.RegisterVisual( Control::CONTROL_PROPERTY_END_INDEX + 1, visual );
+ dummyImpl.RegisterVisual( DummyControl::Property::TEST_VISUAL, visual );
actor.SetSize( 200.f, 200.f );
Stage::GetCurrent().Add( actor );
visual.SetTransformAndSize(DefaultTransform(), Vector2(200.f, 200.f) );
actor.SetSize( 200.f, 200.f );
Stage::GetCurrent().Add( actor );
visual.SetTransformAndSize(DefaultTransform(), Vector2(200.f, 200.f) );
DummyControl actor = DummyControl::New(true);
DummyControlImpl& dummyImpl = static_cast<DummyControlImpl&>(actor.GetImplementation());
actor.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS ); // Only rasterizes when it knows control size.
DummyControl actor = DummyControl::New(true);
DummyControlImpl& dummyImpl = static_cast<DummyControlImpl&>(actor.GetImplementation());
actor.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS ); // Only rasterizes when it knows control size.
- dummyImpl.RegisterVisual( Control::CONTROL_PROPERTY_END_INDEX + 1, visual );
+ dummyImpl.RegisterVisual( DummyControl::Property::TEST_VISUAL, visual );
Stage::GetCurrent().Add( actor );
application.SendNotification();
Stage::GetCurrent().Add( actor );
application.SendNotification();
DALI_TEST_CHECK( visual );
//Create an actor on stage to house the visual.
DALI_TEST_CHECK( visual );
//Create an actor on stage to house the visual.
- DummyControl actor = DummyControl::New();
+ DummyControl actor = DummyControl::New(true);
DummyControlImpl& dummyImpl = static_cast<DummyControlImpl&>(actor.GetImplementation());
DummyControlImpl& dummyImpl = static_cast<DummyControlImpl&>(actor.GetImplementation());
- dummyImpl.RegisterVisual( Control::CONTROL_PROPERTY_END_INDEX + 1, visual );
+ dummyImpl.RegisterVisual( DummyControl::Property::TEST_VISUAL, visual );
actor.SetSize( 200.f, 200.f );
Stage::GetCurrent().Add( actor );
visual.SetTransformAndSize(DefaultTransform(), Vector2( 200.f, 200.f ) );
actor.SetSize( 200.f, 200.f );
Stage::GetCurrent().Add( actor );
visual.SetTransformAndSize(DefaultTransform(), Vector2( 200.f, 200.f ) );
DALI_TEST_CHECK( visual );
//Create an actor on stage to house the visual.
DALI_TEST_CHECK( visual );
//Create an actor on stage to house the visual.
- DummyControl actor = DummyControl::New();
+ DummyControl actor = DummyControl::New(true);
DummyControlImpl& dummyImpl = static_cast<DummyControlImpl&>(actor.GetImplementation());
DummyControlImpl& dummyImpl = static_cast<DummyControlImpl&>(actor.GetImplementation());
- dummyImpl.RegisterVisual( Control::CONTROL_PROPERTY_END_INDEX + 1, visual );
+ dummyImpl.RegisterVisual( DummyControl::Property::TEST_VISUAL, visual );
actor.SetSize( 200.f, 200.f );
Stage::GetCurrent().Add( actor );
visual.SetTransformAndSize(DefaultTransform(), Vector2( 200.f, 200.f ) );
actor.SetSize( 200.f, 200.f );
Stage::GetCurrent().Add( actor );
visual.SetTransformAndSize(DefaultTransform(), Vector2( 200.f, 200.f ) );
DALI_TEST_CHECK( visual );
//Create an actor on stage to house the visual.
DALI_TEST_CHECK( visual );
//Create an actor on stage to house the visual.
- DummyControl actor = DummyControl::New();
+ DummyControl actor = DummyControl::New(true);
DummyControlImpl& dummyImpl = static_cast<DummyControlImpl&>(actor.GetImplementation());
DummyControlImpl& dummyImpl = static_cast<DummyControlImpl&>(actor.GetImplementation());
- dummyImpl.RegisterVisual( Control::CONTROL_PROPERTY_END_INDEX + 1, visual );
+ dummyImpl.RegisterVisual( DummyControl::Property::TEST_VISUAL, visual );
actor.SetSize( 200.f, 200.f );
Stage::GetCurrent().Add( actor );
actor.SetSize( 200.f, 200.f );
Stage::GetCurrent().Add( actor );
TraceCallStack& textureTrace = gl.GetTextureTrace();
textureTrace.Enable(true);
TraceCallStack& textureTrace = gl.GetTextureTrace();
textureTrace.Enable(true);
- DummyControl actor = DummyControl::New();
+ DummyControl actor = DummyControl::New(true);
DummyControlImpl& dummyImpl = static_cast<DummyControlImpl&>(actor.GetImplementation());
DummyControlImpl& dummyImpl = static_cast<DummyControlImpl&>(actor.GetImplementation());
- dummyImpl.RegisterVisual( Control::CONTROL_PROPERTY_END_INDEX + 1, visual );
+ dummyImpl.RegisterVisual( DummyControl::Property::TEST_VISUAL, visual );
actor.SetSize( 200.0f, 200.0f );
Stage::GetCurrent().Add( actor );
actor.SetSize( 200.0f, 200.0f );
Stage::GetCurrent().Add( actor );
TraceCallStack& texParameterTrace = gl.GetTexParameterTrace();
texParameterTrace.Enable( true );
TraceCallStack& texParameterTrace = gl.GetTexParameterTrace();
texParameterTrace.Enable( true );
- DummyControl actor = DummyControl::New();
+ DummyControl actor = DummyControl::New(true);
DummyControlImpl& dummyImpl = static_cast<DummyControlImpl&>(actor.GetImplementation());
dummyImpl.RegisterVisual( Control::CONTROL_PROPERTY_END_INDEX + 1, visual );
actor.SetSize( 200.0f, 200.0f );
DummyControlImpl& dummyImpl = static_cast<DummyControlImpl&>(actor.GetImplementation());
dummyImpl.RegisterVisual( Control::CONTROL_PROPERTY_END_INDEX + 1, visual );
actor.SetSize( 200.0f, 200.0f );
// ( If the control has been type registered )
if( visual.GetName().empty() )
{
// ( If the control has been type registered )
if( visual.GetName().empty() )
{
- // Check if the control has been type registered:
- TypeInfo typeInfo = TypeRegistry::Get().GetTypeInfo( typeid( mControlImpl ) );
- if( typeInfo )
- // Check if the property index has been registered:
- Property::IndexContainer indices;
- typeInfo.GetPropertyIndices( indices );
- Property::IndexContainer::Iterator iter = std::find( indices.Begin(), indices.End(), index );
- if( iter != indices.End() )
+ std::string visualName = self.GetPropertyName( index );
+ if( !visualName.empty() )
- // If it has, then get it's name and use that for the visual
- std::string visualName = typeInfo.GetPropertyName( index );
+ DALI_LOG_INFO( gLogFilter, Debug::Concise, "Setting visual name for property %d to %s\n",
+ index, visualName.c_str() );
visual.SetName( visualName );
}
}
visual.SetName( visualName );
}
}
+ catch( Dali::DaliException e )
+ {
+ DALI_LOG_WARNING( "Attempting to register visual without a registered property, index: %d\n", index );
+ }
}
if( !visualReplaced ) // New registration entry
}
if( !visualReplaced ) // New registration entry
+ DALI_LOG_INFO( gLogFilter, Debug::Concise, "CreateTransition: Found visual for %s\n",
+ visual.GetName().c_str() );
Internal::Visual::Base& visualImpl = Toolkit::GetImplementation( visual );
visualImpl.AnimateProperty( transition, *animator );
}
else
{
Internal::Visual::Base& visualImpl = Toolkit::GetImplementation( visual );
visualImpl.AnimateProperty( transition, *animator );
}
else
{
+ DALI_LOG_INFO( gLogFilter, Debug::Concise, "CreateTransition: Could not find visual. Trying actors");
// Otherwise, try any actor children of control (Including the control)
Actor child = mControlImpl.Self().FindChildByName( animator->objectName );
if( child )
// Otherwise, try any actor children of control (Including the control)
Actor child = mControlImpl.Self().FindChildByName( animator->objectName );
if( child )
void Control::SetBackground( const Property::Map& map )
{
Toolkit::Visual::Base visual = Toolkit::VisualFactory::Get().CreateVisual( map );
void Control::SetBackground( const Property::Map& map )
{
Toolkit::Visual::Base visual = Toolkit::VisualFactory::Get().CreateVisual( map );
+ visual.SetName("background");
if( visual )
{
mImpl->RegisterVisual( Toolkit::Control::Property::BACKGROUND, visual, DepthIndex::BACKGROUND );
if( visual )
{
mImpl->RegisterVisual( Toolkit::Control::Property::BACKGROUND, visual, DepthIndex::BACKGROUND );