+ mImpl->mBackgroundRenderer.SetDepthIndex( DepthIndex::BACKGROUND );
+ mImpl->mBackgroundRenderer.SetOnStage( self );
+ }
+}
+
+void Control::SetBackgroundImage( Image image )
+{
+ Actor self( Self() );
+ Toolkit::RendererFactory factory = Toolkit::RendererFactory::Get();
+ factory.ResetRenderer( mImpl->mBackgroundRenderer, self, image );
+ mImpl->mBackgroundRenderer.SetDepthIndex( DepthIndex::BACKGROUND );
+}
+
+void Control::ClearBackground()
+{
+ Actor self( Self() );
+ mImpl->mBackgroundRenderer.RemoveAndReset( self );
+}
+
+void Control::EnableGestureDetection(Gesture::Type type)
+{
+ if ( (type & Gesture::Pinch) && !mImpl->mPinchGestureDetector )
+ {
+ mImpl->mPinchGestureDetector = PinchGestureDetector::New();
+ mImpl->mPinchGestureDetector.DetectedSignal().Connect(mImpl, &Impl::PinchDetected);
+ mImpl->mPinchGestureDetector.Attach(Self());
+ }
+
+ if ( (type & Gesture::Pan) && !mImpl->mPanGestureDetector )
+ {
+ mImpl->mPanGestureDetector = PanGestureDetector::New();
+ mImpl->mPanGestureDetector.DetectedSignal().Connect(mImpl, &Impl::PanDetected);
+ mImpl->mPanGestureDetector.Attach(Self());
+ }
+
+ if ( (type & Gesture::Tap) && !mImpl->mTapGestureDetector )
+ {
+ mImpl->mTapGestureDetector = TapGestureDetector::New();
+ mImpl->mTapGestureDetector.DetectedSignal().Connect(mImpl, &Impl::TapDetected);
+ mImpl->mTapGestureDetector.Attach(Self());
+ }
+
+ if ( (type & Gesture::LongPress) && !mImpl->mLongPressGestureDetector )
+ {
+ mImpl->mLongPressGestureDetector = LongPressGestureDetector::New();
+ mImpl->mLongPressGestureDetector.DetectedSignal().Connect(mImpl, &Impl::LongPressDetected);
+ mImpl->mLongPressGestureDetector.Attach(Self());
+ }
+}
+
+void Control::DisableGestureDetection(Gesture::Type type)
+{
+ if ( (type & Gesture::Pinch) && mImpl->mPinchGestureDetector )
+ {
+ mImpl->mPinchGestureDetector.Detach(Self());
+ mImpl->mPinchGestureDetector.Reset();
+ }
+
+ if ( (type & Gesture::Pan) && mImpl->mPanGestureDetector )
+ {
+ mImpl->mPanGestureDetector.Detach(Self());
+ mImpl->mPanGestureDetector.Reset();
+ }
+
+ if ( (type & Gesture::Tap) && mImpl->mTapGestureDetector )
+ {
+ mImpl->mTapGestureDetector.Detach(Self());
+ mImpl->mTapGestureDetector.Reset();
+ }
+
+ if ( (type & Gesture::LongPress) && mImpl->mLongPressGestureDetector)
+ {
+ mImpl->mLongPressGestureDetector.Detach(Self());
+ mImpl->mLongPressGestureDetector.Reset();