../dali-toolkit/dali-toolkit-test-utils/toolkit-tts-player.cpp
../dali-toolkit/dali-toolkit-test-utils/toolkit-vector-animation-renderer.cpp
../dali-toolkit/dali-toolkit-test-utils/toolkit-window.cpp
+ ../dali-toolkit/dali-toolkit-test-utils/toolkit-scene-holder.cpp
../dali-toolkit/dali-toolkit-test-utils/dali-test-suite-utils.cpp
../dali-toolkit/dali-toolkit-test-utils/dali-toolkit-test-suite-utils.cpp
../dali-toolkit/dali-toolkit-test-utils/dummy-control.cpp
../dali-toolkit/dali-toolkit-test-utils/toolkit-video-player.cpp
../dali-toolkit/dali-toolkit-test-utils/toolkit-virtual-keyboard.cpp
../dali-toolkit/dali-toolkit-test-utils/toolkit-window.cpp
+ ../dali-toolkit/dali-toolkit-test-utils/toolkit-scene-holder.cpp
../dali-toolkit/dali-toolkit-test-utils/dummy-control.cpp
../dali-toolkit/dali-toolkit-test-utils/dali-test-suite-utils.cpp
../dali-toolkit/dali-toolkit-test-utils/dali-toolkit-test-suite-utils.cpp
Dali::RenderSurfaceInterface& GetSurface();
Dali::WindowContainer GetWindows();
+ Dali::SceneHolderList GetSceneHolders();
Dali::Adaptor::AdaptorSignalType& ResizedSignal();
Dali::Adaptor::AdaptorSignalType& LanguageChangedSignal();
Vector<CallbackBase*> mCallbacks;
Dali::WindowContainer mWindows;
+ Dali::SceneHolderList mSceneHolders;
Dali::Adaptor::AdaptorSignalType mResizedSignal;
Dali::Adaptor::AdaptorSignalType mLanguageChangedSignal;
Dali::Adaptor::WindowCreatedSignalType mWindowCreatedSignal;
#include <dali/integration-api/adaptors/adaptor.h>
#include <dali/integration-api/adaptors/scene-holder.h>
+#include <toolkit-scene-holder-impl.h>
#include <toolkit-adaptor-impl.h>
#include <dali/integration-api/debug.h>
if ( window )
{
mWindows.push_back( window );
- mWindowCreatedSignal.Emit( window );
+
+ mSceneHolders.emplace_back( static_cast<SceneHolder*>( &window.GetBaseObject() ) );
}
}
return mWindows;
}
+Dali::SceneHolderList Adaptor::GetSceneHolders()
+{
+ return mSceneHolders;
+}
+
Dali::Adaptor::AdaptorSignalType& Adaptor::ResizedSignal()
{
return mResizedSignal;
return mImpl->GetWindows();
}
+Dali::SceneHolderList Adaptor::GetSceneHolders() const
+{
+ return mImpl->GetSceneHolders();
+}
+
Any Adaptor::GetNativeWindowHandle()
{
Any window;
--- /dev/null
+#ifndef DALI_TOOLKIT_SCENE_HOLDER_IMPL_H
+#define DALI_TOOLKIT_SCENE_HOLDER_IMPL_H
+
+/*
+ * Copyright (c) 2019 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#include <test-render-surface.h>
+
+#include <dali/integration-api/scene.h>
+#include <dali/public-api/actors/layer.h>
+#include <dali/public-api/object/base-object.h>
+
+namespace Dali
+{
+
+namespace Internal
+{
+
+namespace Adaptor
+{
+
+class SceneHolder : public Dali::BaseObject
+{
+public:
+
+ SceneHolder( const Dali::Rect<int>& positionSize );
+
+ virtual ~SceneHolder();
+
+ Dali::Layer GetRootLayer() const;
+
+ void SetBackgroundColor( Vector4 color );
+
+ Vector4 GetBackgroundColor() const;
+
+ void FeedTouchPoint( Dali::TouchPoint& point, int timeStamp );
+
+ void FeedWheelEvent( Dali::WheelEvent& wheelEvent );
+
+ void FeedKeyEvent( Dali::KeyEvent& keyEvent );
+
+ Dali::Integration::SceneHolder::KeyEventSignalType& KeyEventSignal();
+
+ Dali::Integration::SceneHolder::KeyEventGeneratedSignalType& KeyEventGeneratedSignal();
+
+ Dali::Integration::SceneHolder::TouchSignalType& TouchSignal();
+
+ Dali::Integration::SceneHolder::WheelEventSignalType& WheelEventSignal();
+
+ Integration::Scene GetScene();
+
+ Integration::RenderSurface& GetRenderSurface();
+
+private:
+
+ TestRenderSurface mRenderSurface;
+ Integration::Scene mScene;
+};
+
+} // namespace Adaptor
+
+} // namespace Internal
+
+inline Internal::Adaptor::SceneHolder& GetImplementation( Dali::Integration::SceneHolder& sceneHolder )
+{
+ DALI_ASSERT_ALWAYS( sceneHolder && "SceneHolder handle is empty" );
+ BaseObject& object = sceneHolder.GetBaseObject();
+ return static_cast<Internal::Adaptor::SceneHolder&>( object );
+}
+
+inline const Internal::Adaptor::SceneHolder& GetImplementation( const Dali::Integration::SceneHolder& sceneHolder )
+{
+ DALI_ASSERT_ALWAYS( sceneHolder && "SceneHolder handle is empty" );
+ const BaseObject& object = sceneHolder.GetBaseObject();
+ return static_cast<const Internal::Adaptor::SceneHolder&>( object );
+}
+
+} // namespace Dali
+
+#endif // DALI_TOOLKIT_SCENE_HOLDER_IMPL_H
*
*/
+#include <dali/integration-api/events/touch-event-integ.h>
#include <dali/integration-api/adaptors/scene-holder.h>
+#include <toolkit-scene-holder-impl.h>
+
#include <dali/public-api/actors/actor.h>
#include <dali/public-api/actors/layer.h>
#include <dali/public-api/common/stage.h>
#include <dali/public-api/object/base-object.h>
+#include <dali/integration-api/adaptors/adaptor.h>
+#include <toolkit-adaptor-impl.h>
+
namespace Dali
{
+///////////////////////////////////////////////////////////////////////////////
+//
+// Dali::Internal::Adaptor::SceneHolder Stub
+//
+///////////////////////////////////////////////////////////////////////////////
+
namespace Internal
{
namespace Adaptor
{
-class SceneHolder: public Dali::BaseObject
+SceneHolder::SceneHolder( const Dali::Rect<int>& positionSize )
+: mRenderSurface( positionSize ),
+ mScene( Dali::Integration::Scene::New( mRenderSurface ) )
+{
+}
+
+SceneHolder::~SceneHolder()
{
+}
-};
+void SceneHolder::SetBackgroundColor( Vector4 color )
+{
+ return mScene.SetBackgroundColor( color );
+}
-} // Adaptor
+Vector4 SceneHolder::GetBackgroundColor() const
+{
+ return mScene.GetBackgroundColor();
+}
-} // Internal
+void SceneHolder::FeedTouchPoint( Dali::TouchPoint& point, int timeStamp )
+{
+}
+
+void SceneHolder::FeedWheelEvent( Dali::WheelEvent& wheelEvent )
+{
+}
+
+void SceneHolder::FeedKeyEvent( Dali::KeyEvent& keyEvent )
+{
+}
+
+Dali::Integration::SceneHolder::KeyEventSignalType& SceneHolder::KeyEventSignal()
+{
+ return mScene.KeyEventSignal();
+}
+
+Dali::Integration::SceneHolder::KeyEventGeneratedSignalType& SceneHolder::KeyEventGeneratedSignal()
+{
+ return mScene.KeyEventGeneratedSignal();
+}
+
+Dali::Integration::SceneHolder::TouchSignalType& SceneHolder::TouchSignal()
+{
+ return mScene.TouchSignal();
+}
+
+Dali::Integration::SceneHolder::WheelEventSignalType& SceneHolder::WheelEventSignal()
+{
+ return mScene.WheelEventSignal();
+}
+
+Integration::Scene SceneHolder::GetScene()
+{
+ return mScene;
+}
+
+Integration::RenderSurface& SceneHolder::GetRenderSurface()
+{
+ return mRenderSurface;
+}
+
+} // namespace Adaptor
+
+} // namespace Internal
+
+///////////////////////////////////////////////////////////////////////////////
+//
+// Dali::Integration::SceneHolder Stub
+//
+///////////////////////////////////////////////////////////////////////////////
namespace Integration
{
SceneHolder::SceneHolder()
{
+ // Dali::Internal::Adaptor::Adaptor::Get().WindowCreatedSignal().Emit( *this );
}
SceneHolder::~SceneHolder()
{
}
-Layer SceneHolder::GetRootLayer() const
+Dali::Layer SceneHolder::GetRootLayer() const
{
return Dali::Stage::GetCurrent().GetRootLayer();
}
void SceneHolder::SetBackgroundColor( Vector4 color )
{
+ GetImplementation( *this ).SetBackgroundColor( color );
}
Vector4 SceneHolder::GetBackgroundColor() const
{
- return Dali::Stage::GetCurrent().GetBackgroundColor();
+ return GetImplementation( *this ).GetBackgroundColor();
}
void SceneHolder::FeedTouchPoint( Dali::TouchPoint& point, int timeStamp )
{
+ GetImplementation( *this ).FeedTouchPoint( point, timeStamp );
}
void SceneHolder::FeedWheelEvent( Dali::WheelEvent& wheelEvent )
{
+ GetImplementation( *this ).FeedWheelEvent( wheelEvent );
}
void SceneHolder::FeedKeyEvent( Dali::KeyEvent& keyEvent )
{
+ GetImplementation( *this ).FeedKeyEvent( keyEvent );
+}
+
+SceneHolder::KeyEventSignalType& SceneHolder::KeyEventSignal()
+{
+ return GetImplementation( *this ).KeyEventSignal();
+}
+
+SceneHolder::KeyEventGeneratedSignalType& SceneHolder::KeyEventGeneratedSignal()
+{
+ return GetImplementation( *this ).KeyEventGeneratedSignal();
+}
+
+SceneHolder::TouchSignalType& SceneHolder::TouchSignal()
+{
+ return GetImplementation( *this ).TouchSignal();
+}
+
+SceneHolder::WheelEventSignalType& SceneHolder::WheelEventSignal()
+{
+ return GetImplementation( *this ).WheelEventSignal();
+}
+
+SceneHolder SceneHolder::Get( Actor actor )
+{
+ return SceneHolder();
}
} // Integration
#include <dali/public-api/common/stage.h>
#include <dali/public-api/object/base-object.h>
+#include <dali/integration-api/adaptors/scene-holder.h>
+#include <toolkit-scene-holder-impl.h>
+
#define DALI_WINDOW_H
#include <dali/integration-api/adaptors/adaptor.h>
#include <toolkit-adaptor-impl.h>
{
namespace Adaptor
{
-class Window : public Dali::BaseObject
+class Window : public SceneHolder
{
public:
Window( const PositionSize& positionSize )
- : mRenderSurface( positionSize ),
- mScene( Dali::Integration::Scene::New( mRenderSurface ) )
+ : SceneHolder( positionSize )
{
}
{
return new Window( positionSize );
}
-
- TestRenderSurface mRenderSurface;
- Integration::Scene mScene;
};
} // Adaptor
Dali::Window Window::New(PositionSize windowPosition, const std::string& name, const std::string& className, bool isTransparent )
{
Internal::Adaptor::Window* window = Internal::Adaptor::Window::New( windowPosition, name, className, isTransparent );
- Dali::Window newWindow = Window( window );
- Dali::Adaptor::WindowCreatedSignalType& windowCreatedSignal = AdaptorImpl::Get().WindowCreatedSignal();
- windowCreatedSignal.Emit( newWindow );
- return Window( window );
+
+ Dali::Window result( window );
+
+ Dali::Integration::SceneHolder sceneHolder( static_cast<Dali::Internal::Adaptor::SceneHolder*>( window ) );
+ Dali::Internal::Adaptor::Adaptor::Get().WindowCreatedSignal().Emit( sceneHolder );
+
+ return result;
}
Dali::Layer Window::GetRootLayer() const
Integration::Scene Window::GetScene()
{
- return GetImplementation( *this ).mScene;
+ return GetImplementation( *this ).GetScene();
}
Integration::RenderSurface& Window::GetRenderSurface()
{
- return GetImplementation( *this ).mRenderSurface;
+ return GetImplementation( *this ).GetRenderSurface();
}
namespace DevelWindow
EventProcessingFinishedSignalType& EventProcessingFinishedSignal( Window window )
{
- return GetImplementation( window ).mScene.EventProcessingFinishedSignal();
+ return GetImplementation( window ).GetScene().EventProcessingFinishedSignal();
}
KeyEventSignalType& KeyEventSignal( Window window )
{
- return GetImplementation( window ).mScene.KeyEventSignal();
+ return GetImplementation( window ).KeyEventSignal();
}
KeyEventGeneratedSignalType& KeyEventGeneratedSignal( Window window )
{
- return GetImplementation( window ).mScene.KeyEventGeneratedSignal();
+ return GetImplementation( window ).KeyEventGeneratedSignal();
}
TouchSignalType& TouchSignal( Window window )
{
- return GetImplementation( window ).mScene.TouchSignal();
+ return GetImplementation( window ).TouchSignal();
}
WheelEventSignalType& WheelEventSignal( Window window )
{
- return GetImplementation( window ).mScene.WheelEventSignal();
+ return GetImplementation( window ).WheelEventSignal();
}
} // namespace DevelWindow
#include <dali/public-api/actors/layer.h>
#include <dali/devel-api/adaptor-framework/accessibility-adaptor.h>
#include <dali/devel-api/adaptor-framework/singleton-service.h>
-#include <dali/devel-api/adaptor-framework/window-devel.h>
#include <dali/devel-api/adaptor-framework/lifecycle-controller.h>
#include <dali/public-api/animation/constraints.h>
#include <dali/public-api/common/stage.h>
{
if( Adaptor::IsAvailable() )
{
- // Retrieve all the existing widnows
- Dali::WindowContainer windows = Adaptor::Get().GetWindows();
- for ( auto iter = windows.begin(); iter != windows.end(); ++iter )
+ // Retrieve all the existing scene holders
+ Dali::SceneHolderList sceneHolders = Adaptor::Get().GetSceneHolders();
+ for( auto iter = sceneHolders.begin(); iter != sceneHolders.end(); ++iter )
{
- DevelWindow::KeyEventSignal( *iter ).Connect( mSlotDelegate, &KeyboardFocusManager::OnKeyEvent);
- DevelWindow::TouchSignal( *iter ).Connect( mSlotDelegate, &KeyboardFocusManager::OnTouch);
+ ( *iter ).KeyEventSignal().Connect( mSlotDelegate, &KeyboardFocusManager::OnKeyEvent );
+ ( *iter ).TouchSignal().Connect( mSlotDelegate, &KeyboardFocusManager::OnTouch );
}
- // Get notified when any new window is created afterwards
- Adaptor::Get().WindowCreatedSignal().Connect( mSlotDelegate, &KeyboardFocusManager::OnWindowCreated);
+ // Get notified when any new scene holder is created afterwards
+ Adaptor::Get().WindowCreatedSignal().Connect( mSlotDelegate, &KeyboardFocusManager::OnSceneHolderCreated );
}
}
-void KeyboardFocusManager::OnWindowCreated( Dali::Window& window )
+void KeyboardFocusManager::OnSceneHolderCreated( Dali::Integration::SceneHolder& sceneHolder )
{
- DevelWindow::KeyEventSignal( window ).Connect( mSlotDelegate, &KeyboardFocusManager::OnKeyEvent);
- DevelWindow::TouchSignal( window ).Connect( mSlotDelegate, &KeyboardFocusManager::OnTouch);
+ sceneHolder.KeyEventSignal().Connect( mSlotDelegate, &KeyboardFocusManager::OnKeyEvent );
+ sceneHolder.TouchSignal().Connect( mSlotDelegate, &KeyboardFocusManager::OnTouch );
}
KeyboardFocusManager::~KeyboardFocusManager()
namespace Dali
{
-class Window;
+namespace Integration
+{
+
+class SceneHolder;
+
+} // namespace Integration
namespace Toolkit
{
void OnAdaptorInit();
/**
- * This will be called when a new wndow is created
- * @param window The new window
+ * This will be called when a new scene holder is created
+ * @param sceneHolder The new scene holder
*/
- void OnWindowCreated( Dali::Window& window );
+ void OnSceneHolderCreated( Dali::Integration::SceneHolder& sceneHolder );
/**
* Get configuration from StyleManager.
#include <dali/public-api/actors/layer.h>
#include <dali/public-api/common/stage.h>
#include <dali/devel-api/common/stage-devel.h>
-#include <dali/devel-api/adaptor-framework/window-devel.h>
#include <dali/integration-api/adaptors/adaptor.h>
+#include <dali/integration-api/adaptors/scene-holder.h>
// INTERNAL INCLUDES
#include <dali-toolkit/public-api/controls/control-impl.h>
mCurrentFocusControl()
{
// Retrieve all the existing widnows
- Dali::WindowContainer windows = Adaptor::Get().GetWindows();
- for ( auto iter = windows.begin(); iter != windows.end(); ++iter )
+ Dali::SceneHolderList sceneHolders = Adaptor::Get().GetSceneHolders();
+ for( auto iter = sceneHolders.begin(); iter != sceneHolders.end(); ++iter )
{
- DevelWindow::KeyEventGeneratedSignal( *iter ).Connect( mSlotDelegate, &KeyInputFocusManager::OnKeyEvent);
+ ( *iter ).KeyEventGeneratedSignal().Connect( mSlotDelegate, &KeyInputFocusManager::OnKeyEvent );
}
- // Get notified when any new window is created afterwards
- Adaptor::Get().WindowCreatedSignal().Connect( mSlotDelegate, &KeyInputFocusManager::OnWindowCreated);
+ // Get notified when any new scene holder is created afterwards
+ Adaptor::Get().WindowCreatedSignal().Connect( mSlotDelegate, &KeyInputFocusManager::OnSceneHolderCreated );
}
KeyInputFocusManager::~KeyInputFocusManager()
{
}
-void KeyInputFocusManager::OnWindowCreated( Dali::Window& window )
+void KeyInputFocusManager::OnSceneHolderCreated( Dali::Integration::SceneHolder& sceneHolder )
{
- DevelWindow::KeyEventGeneratedSignal( window ).Connect( mSlotDelegate, &KeyInputFocusManager::OnKeyEvent);
+ sceneHolder.KeyEventGeneratedSignal().Connect( mSlotDelegate, &KeyInputFocusManager::OnKeyEvent );
}
void KeyInputFocusManager::SetFocus( Toolkit::Control control )
namespace Dali
{
-class Window;
+namespace Integration
+{
+
+class SceneHolder;
+
+} // namespace Integration
namespace Toolkit
{
private:
/**
- * This will be called when a new window is created
- * @param window The new window
+ * This will be called when a new scene holder is created
+ * @param sceneHolder The new scene holder
*/
- void OnWindowCreated( Dali::Window& window );
+ void OnSceneHolderCreated( Dali::Integration::SceneHolder& sceneHolder );
/**
* Callback for the key event when no actor in the stage has gained the key input focus