/*
- * Copyright (c) 2014 Samsung Electronics Co., Ltd.
+ * 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.
#include <dali/integration-api/events/touch-event-integ.h>
#include <dali/integration-api/render-task-list-integ.h>
#include <dali-test-suite-utils.h>
+#include <dali/devel-api/events/touch-data-devel.h>
using namespace Dali;
END_TEST;
}
+int UtcDaliTouchRenderTaskWithExclusiveActor(void)
+{
+ TestApplication application;
+ auto stage = Stage::GetCurrent();
+ auto stageSize( stage.GetSize() );
+
+ auto actor = CreateRenderableActor();
+ actor.SetSize( stageSize.x, stageSize.y );
+ stage.Add( actor );
+
+ auto renderTask = stage.GetRenderTaskList().CreateTask();
+ renderTask.SetSourceActor( actor );
+ renderTask.SetExclusive( true );
+
+ // Render and notify
+ application.SendNotification();
+ application.Render();
+
+ // Connect to actor's touched signal
+ SignalData data;
+ TouchEventFunctor functor( data );
+ actor.TouchedSignal().Connect( &application, functor );
+
+ // Emit a down signal
+ application.ProcessEvent( GenerateSingleTouch( TouchPoint::Down, Vector2( 10.0f, 10.0f ) ) );
+ DALI_TEST_EQUALS( true, data.functorCalled, TEST_LOCATION );
+ data.Reset();
+
+ END_TEST;
+}
+
int UtcDaliTouchMultipleRenderableActors(void)
{
TestApplication application;
END_TEST;
}
+
+int UtcDaliTouchDataConvert(void)
+{
+ TestApplication application;
+
+ Actor actor = Actor::New();
+ actor.SetSize(100.0f, 100.0f);
+ actor.SetAnchorPoint(AnchorPoint::TOP_LEFT);
+ Stage::GetCurrent().Add(actor);
+
+ // Render and notify
+ application.SendNotification();
+ application.Render();
+
+ // Connect to actor's touch signal
+ SignalData data;
+ TouchEventFunctor functor(data);
+ actor.TouchedSignal().Connect(&application, functor);
+
+ Vector2 screenCoordiantes(10.0f, 10.0f);
+ Vector2 localCoordinates;
+ actor.ScreenToLocal(localCoordinates.x, localCoordinates.y, screenCoordiantes.x, screenCoordiantes.y);
+
+ // Emit a down signal
+ application.ProcessEvent(GenerateSingleTouch(TouchPoint::Down, screenCoordiantes));
+ Dali::TouchData touchData = Dali::DevelTouchData::Convert(data.touchEvent);
+
+ DALI_TEST_EQUALS( 1u, touchData.GetPointCount(), TEST_LOCATION );
+ DALI_TEST_EQUALS( screenCoordiantes, touchData.GetScreenPosition(0), TEST_LOCATION );
+ DALI_TEST_EQUALS( localCoordinates, touchData.GetLocalPosition(0), 0.1f, TEST_LOCATION );
+ DALI_TEST_EQUALS( PointState::DOWN, touchData.GetState(0), TEST_LOCATION );
+ DALI_TEST_EQUALS( actor, touchData.GetHitActor(0), TEST_LOCATION );
+
+ data.Reset();
+
+ END_TEST;
+
+}