+void Adaptor::SetPreRenderCallback( CallbackBase* callback )
+{
+ mThreadController->SetPreRenderCallback( callback );
+}
+
+bool Adaptor::AddWindow( Dali::Integration::SceneHolder* childWindow, const std::string& childWindowName, const std::string& childWindowClassName, const bool& childWindowMode )
+{
+ Internal::Adaptor::SceneHolder& windowImpl = Dali::GetImplementation( *childWindow );
+ windowImpl.SetAdaptor( Get() );
+
+ // Add the new Window to the container - the order is not important
+ mWindows.push_back( SceneHolderPtr( &windowImpl ) );
+ return true;
+}
+
+bool Adaptor::RemoveWindow( Dali::Integration::SceneHolder* childWindow )
+{
+ Internal::Adaptor::SceneHolder& windowImpl = Dali::GetImplementation( *childWindow );
+ for ( WindowContainer::iterator iter = mWindows.begin(); iter != mWindows.end(); ++iter )
+ {
+ if( *iter == &windowImpl )
+ {
+ mWindows.erase( iter );
+ return true;
+ }
+ }
+
+ return false;
+}
+
+bool Adaptor::RemoveWindow( std::string childWindowName )
+{
+ for ( WindowContainer::iterator iter = mWindows.begin(); iter != mWindows.end(); ++iter )
+ {
+ if( ( *iter )->GetName() == childWindowName )
+ {
+ mWindows.erase( iter );
+ return true;
+ }
+ }
+
+ return false;
+}
+
+bool Adaptor::RemoveWindow( Internal::Adaptor::SceneHolder* childWindow )
+{
+ for ( WindowContainer::iterator iter = mWindows.begin(); iter != mWindows.end(); ++iter )
+ {
+ if( ( *iter )->GetId() == childWindow->GetId() )
+ {
+ mWindows.erase( iter );
+ return true;
+ }
+ }
+
+ return false;
+}
+