-
- // Does either it's renderer or placement actor have an associated property?
- if( iter != visuals.End() )
- {
- Actor placementActor = (*iter)->placementActor;
- if( !placementActor )
- {
- placementActor = controlImpl.Self();
- }
-
- Property::Index index = placementActor.GetPropertyIndex( propertyKey );
- if( index != Property::INVALID_INDEX )
- {
- // It's a placement actor property:
- return VisualProperty( placementActor, index );
- }
- else
- {
- // Check if it is a renderer property:
- if( placementActor.GetRendererCount() > 0 )
- {
- // @todo Need to use correct renderer index when placement actors
- // are removed
- Renderer renderer = placementActor.GetRendererAt(0);
- Property::Index index = renderer.GetPropertyIndex( propertyKey );
- if( index != Property::INVALID_INDEX )
- {
- // It's a renderer property:
- return VisualProperty( renderer, index );
- }
- }
- else
- {
- std::ostringstream oss;
- oss << propertyKey;
- DALI_LOG_WARNING( "Control::GetVisualProperty(%s, %s) No renderers\n", visualName.c_str(), oss.str().c_str() );
- }
- }
- }
- Handle handle;
- return VisualProperty( handle, Property::INVALID_INDEX );