Impl(Control& controlImpl)
: mControlImpl( controlImpl ),
mStyleName(""),
- mBackgroundVisual(),
mBackgroundColor(Color::TRANSPARENT),
mStartingPinchScale( NULL ),
mKeyEventSignal(),
}
else
{
- // An empty map means the background is no longer required
+ // An empty image means the background is no longer required
controlImpl.ClearBackground();
}
break;
case Toolkit::Control::Property::BACKGROUND:
{
const Property::Map* map = value.GetMap();
- if( map )
+ if( map && !map->Empty() )
{
controlImpl.SetBackground( *map );
}
else
{
- // The background is not a property map, so we should clear the background
+ // The background is an empty property map, so we should clear the background
controlImpl.ClearBackground();
}
break;
{
DALI_LOG_WARNING( "BACKGROUND_IMAGE property is deprecated. Use BACKGROUND property instead\n" );
Property::Map map;
- if( controlImpl.mImpl->mBackgroundVisual )
+ Toolkit::Visual::Base visual = controlImpl.GetVisual( Toolkit::Control::Property::BACKGROUND );
+ if( visual )
{
- controlImpl.mImpl->mBackgroundVisual.CreatePropertyMap( map );
+ visual.CreatePropertyMap( map );
}
value = map;
break;
case Toolkit::Control::Property::BACKGROUND:
{
Property::Map map;
- if( controlImpl.mImpl->mBackgroundVisual )
+ Toolkit::Visual::Base visual = controlImpl.GetVisual( Toolkit::Control::Property::BACKGROUND );
+ if( visual )
{
- (controlImpl.mImpl->mBackgroundVisual).CreatePropertyMap( map );
+ visual.CreatePropertyMap( map );
}
value = map;
Control& mControlImpl;
RegisteredVisualContainer mVisuals; // Stores visuals needed by the control, non trivial type so std::vector used.
std::string mStyleName;
- Toolkit::Visual::Base mBackgroundVisual; ///< The visual to render the background
Vector4 mBackgroundColor; ///< The color of the background visual
Vector3* mStartingPinchScale; ///< The scale when a pinch gesture starts, TODO: consider removing this
Toolkit::Control::KeyEventSignalType mKeyEventSignal;
Property::Map map;
map[ Toolkit::VisualProperty::TYPE ] = Toolkit::Visual::COLOR;
map[ Toolkit::ColorVisual::Property::MIX_COLOR ] = color;
- mImpl->mBackgroundVisual = Toolkit::VisualFactory::Get().CreateVisual( map );
- RegisterVisual( Toolkit::Control::Property::BACKGROUND, mImpl->mBackgroundVisual );
- if( mImpl->mBackgroundVisual )
- {
- mImpl->mBackgroundVisual.SetDepthIndex( DepthIndex::BACKGROUND );
- }
+
+ SetBackground( map );
}
Vector4 Control::GetBackgroundColor() const
void Control::SetBackground( const Property::Map& map )
{
- mImpl->mBackgroundVisual = Toolkit::VisualFactory::Get().CreateVisual( map );
- RegisterVisual( Toolkit::Control::Property::BACKGROUND, mImpl->mBackgroundVisual );
- if( mImpl->mBackgroundVisual )
+ Toolkit::Visual::Base visual = Toolkit::VisualFactory::Get().CreateVisual( map );
+ if( visual )
{
- mImpl->mBackgroundVisual.SetDepthIndex( DepthIndex::BACKGROUND );
+ RegisterVisual( Toolkit::Control::Property::BACKGROUND, visual );
+ visual.SetDepthIndex( DepthIndex::BACKGROUND );
}
}
void Control::SetBackgroundImage( Image image )
{
- mImpl->mBackgroundVisual = Toolkit::VisualFactory::Get().CreateVisual( image );
- RegisterVisual( Toolkit::Control::Property::BACKGROUND, mImpl->mBackgroundVisual );
- if( mImpl->mBackgroundVisual )
+ DALI_LOG_WARNING( "SetBackgroundImage is for the depreciated Property::BACKGROUND_IMAGE use SetBackground( const Property::Map& map )\n" );
+ Toolkit::Visual::Base visual = Toolkit::VisualFactory::Get().CreateVisual( image );
+ if( visual )
{
- mImpl->mBackgroundVisual.SetDepthIndex( DepthIndex::BACKGROUND );
+ RegisterVisual( Toolkit::Control::Property::BACKGROUND, visual );
+ visual.SetDepthIndex( DepthIndex::BACKGROUND );
}
}
void Control::ClearBackground()
{
- Actor self( Self() );
- mImpl->mBackgroundVisual.RemoveAndReset( self );
- mImpl->mBackgroundColor = Color::TRANSPARENT;
+ UnregisterVisual( Toolkit::Control::Property::BACKGROUND );
+ mImpl->mBackgroundColor = Color::TRANSPARENT;
}
void Control::EnableGestureDetection(Gesture::Type type)
{
if( (*iter)->visual && self.OnStage() )
{
- (*iter)->visual.SetOffStage( self );
+ Toolkit::GetImplementation((*iter)->visual).SetOffStage( self );
}
(*iter)->visual = visual;
visualReplaced = true;
if( visual && self.OnStage() && enabled )
{
- visual.SetOnStage( self );
+ Toolkit::GetImplementation(visual).SetOnStage( self );
}
}
RegisteredVisualContainer::Iterator iter;
if ( FindVisual( index, mImpl->mVisuals, iter ) )
{
+ Actor self( Self() );
+ Toolkit::GetImplementation((*iter)->visual).SetOffStage( self );
+ (*iter)->visual.Reset();
mImpl->mVisuals.Erase( iter );
}
}
if ( enable )
{
- (*iter)->visual.SetOnStage( parentActor );
+ Toolkit::GetImplementation((*iter)->visual).SetOnStage( parentActor );
}
else
{
- (*iter)->visual.SetOffStage( parentActor ); // No need to call if control not staged.
+ Toolkit::GetImplementation((*iter)->visual).SetOffStage( parentActor ); // No need to call if control not staged.
}
}
}
if( (*iter)->visual && (*iter)->enabled )
{
Actor self( Self() );
- (*iter)->visual.SetOnStage( self );
+ Toolkit::GetImplementation((*iter)->visual).SetOnStage( self );
}
}
}
if( (*iter)->visual )
{
Actor self( Self() );
- (*iter)->visual.SetOffStage( self );
+ Toolkit::GetImplementation((*iter)->visual).SetOffStage( self );
}
}
}
void Control::OnSizeSet(const Vector3& targetSize)
{
- if( mImpl->mBackgroundVisual )
+ Toolkit::Visual::Base visual = GetVisual( Toolkit::Control::Property::BACKGROUND );
+ if( visual )
{
Vector2 size( targetSize );
- mImpl->mBackgroundVisual.SetSize( size );
+ visual.SetSize( size );
}
}
Vector3 Control::GetNaturalSize()
{
- if( mImpl->mBackgroundVisual )
+ Toolkit::Visual::Base visual = GetVisual( Toolkit::Control::Property::BACKGROUND );
+ if( visual )
{
Vector2 naturalSize;
- mImpl->mBackgroundVisual.GetNaturalSize(naturalSize);
- return Vector3(naturalSize);
+ visual.GetNaturalSize( naturalSize );
+ return Vector3( naturalSize );
}
return Vector3::ZERO;
}