For custom wheel events, event propagation starts from the focused actor.
[platform/core/uifw/dali-toolkit.git] / automated-tests / src / dali-toolkit / dali-toolkit-test-utils / toolkit-scene-holder.cpp
index 98ea7dc..8bcb3c0 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2019 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2020 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.
  */
 
 #include <dali/integration-api/events/touch-event-integ.h>
-#include <dali/integration-api/adaptors/scene-holder.h>
+#include <dali/integration-api/adaptor-framework/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 <dali/integration-api/adaptor-framework/adaptor.h>
 #include <toolkit-adaptor-impl.h>
 
+using AdaptorImpl = Dali::Internal::Adaptor::Adaptor;
+
 namespace Dali
 {
 
@@ -45,12 +46,31 @@ namespace Adaptor
 
 SceneHolder::SceneHolder( const Dali::Rect<int>& positionSize )
 : mRenderSurface( positionSize ),
-  mScene( Dali::Integration::Scene::New( mRenderSurface ) )
+  mScene( Dali::Integration::Scene::New( Dali::Size( static_cast<float>( positionSize.width ), static_cast<float>( positionSize.height ) ) ) )
 {
 }
 
 SceneHolder::~SceneHolder()
 {
+  if ( Dali::Adaptor::IsAvailable() )
+  {
+    AdaptorImpl::GetImpl( AdaptorImpl::Get() ).RemoveWindow( this );
+  }
+}
+
+void SceneHolder::Add( Dali::Actor actor )
+{
+  mScene.Add( actor );
+}
+
+void SceneHolder::Remove( Dali::Actor actor )
+{
+  mScene.Remove( actor );
+}
+
+Dali::Layer SceneHolder::GetRootLayer() const
+{
+  return mScene.GetRootLayer();
 }
 
 void SceneHolder::SetBackgroundColor( Vector4 color )
@@ -85,9 +105,9 @@ Dali::Integration::SceneHolder::KeyEventGeneratedSignalType& SceneHolder::KeyEve
   return mScene.KeyEventGeneratedSignal();
 }
 
-Dali::Integration::SceneHolder::TouchSignalType& SceneHolder::TouchSignal()
+Dali::Integration::SceneHolder::TouchEventSignalType& SceneHolder::TouchedSignal()
 {
-  return mScene.TouchSignal();
+  return mScene.TouchedSignal();
 }
 
 Dali::Integration::SceneHolder::WheelEventSignalType& SceneHolder::WheelEventSignal()
@@ -95,12 +115,17 @@ Dali::Integration::SceneHolder::WheelEventSignalType& SceneHolder::WheelEventSig
   return mScene.WheelEventSignal();
 }
 
+Dali::Integration::SceneHolder::WheelEventGeneratedSignalType& SceneHolder::WheelEventGeneratedSignal()
+{
+  return mScene.WheelEventGeneratedSignal();
+}
+
 Integration::Scene SceneHolder::GetScene()
 {
   return mScene;
 }
 
-Integration::RenderSurface& SceneHolder::GetRenderSurface()
+Dali::RenderSurfaceInterface& SceneHolder::GetRenderSurface()
 {
   return mRenderSurface;
 }
@@ -143,17 +168,31 @@ SceneHolder& SceneHolder::operator=( const SceneHolder& rhs )
   return *this;
 }
 
+Dali::Integration::SceneHolder SceneHolder::Get( Dali::Actor actor )
+{
+  Internal::Adaptor::SceneHolder* sceneHolderImpl = nullptr;
+
+  if ( Dali::Adaptor::IsAvailable() )
+  {
+    sceneHolderImpl = AdaptorImpl::GetImpl( AdaptorImpl::Get() ).GetWindow( actor );
+  }
+
+  return Dali::Integration::SceneHolder( sceneHolderImpl );
+}
+
 void SceneHolder::Add( Actor actor )
 {
+  GetImplementation( *this ).Add( actor );
 }
 
 void SceneHolder::Remove( Actor actor )
 {
+  GetImplementation( *this ).Remove( actor );
 }
 
 Dali::Layer SceneHolder::GetRootLayer() const
 {
-  return Dali::Stage::GetCurrent().GetRootLayer();
+  return GetImplementation( *this ).GetRootLayer();
 }
 
 void SceneHolder::SetBackgroundColor( Vector4 color )
@@ -191,9 +230,9 @@ SceneHolder::KeyEventGeneratedSignalType& SceneHolder::KeyEventGeneratedSignal()
   return GetImplementation( *this ).KeyEventGeneratedSignal();
 }
 
-SceneHolder::TouchSignalType& SceneHolder::TouchSignal()
+SceneHolder::TouchEventSignalType& SceneHolder::TouchedSignal()
 {
-  return GetImplementation( *this ).TouchSignal();
+  return GetImplementation( *this ).TouchedSignal();
 }
 
 SceneHolder::WheelEventSignalType& SceneHolder::WheelEventSignal()
@@ -201,9 +240,9 @@ SceneHolder::WheelEventSignalType& SceneHolder::WheelEventSignal()
   return GetImplementation( *this ).WheelEventSignal();
 }
 
-SceneHolder SceneHolder::Get( Actor actor )
+SceneHolder::WheelEventGeneratedSignalType& SceneHolder::WheelEventGeneratedSignal()
 {
-  return SceneHolder();
+  return GetImplementation( *this ).WheelEventGeneratedSignal();
 }
 
 } // Integration