#include <stdlib.h>
#include <dali/public-api/dali-core.h>
#include <dali/integration-api/events/touch-event-integ.h>
-#include <dali/integration-api/system-overlay.h>
+#include <dali/integration-api/render-task-list-integ.h>
#include <dali-test-suite-utils.h>
using namespace Dali;
END_TEST;
}
-int UtcDaliTouchDataSystemOverlayActor(void)
-{
- TestApplication application;
- Dali::Integration::Core& core( application.GetCore() );
- Dali::Integration::SystemOverlay& systemOverlay( core.GetSystemOverlay() );
- systemOverlay.GetOverlayRenderTasks().CreateTask();
-
- // Create an actor and add it to the system overlay.
- Actor systemActor = Actor::New();
- systemActor.SetSize(100.0f, 100.0f);
- systemActor.SetAnchorPoint(AnchorPoint::TOP_LEFT);
- systemOverlay.Add( systemActor );
-
- // Create an actor and add it to the stage as per normal, same position and size as systemActor
- Actor actor = Actor::New();
- actor.SetSize(100.0f, 100.0f);
- actor.SetAnchorPoint(AnchorPoint::TOP_LEFT);
- Stage::GetCurrent().Add(actor);
-
- // Connect to the touch signals.
- SignalData data;
- TouchDataFunctor functor( data );
- systemActor.TouchSignal().Connect( &application, functor );
- actor.TouchSignal().Connect( &application, functor );
-
- // Render and notify
- application.SendNotification();
- application.Render();
-
- // Emit a down signal, the system overlay is drawn last so is at the top, should hit the systemActor.
- application.ProcessEvent( GenerateSingleTouch( PointState::DOWN, Vector2( 10.0f, 10.0f ) ) );
- DALI_TEST_EQUALS( true, data.functorCalled, TEST_LOCATION );
- DALI_TEST_CHECK( systemActor == data.touchedActor );
- END_TEST;
-}
-
int UtcDaliTouchDataLayerConsumesTouch(void)
{
TestApplication application;
DALI_TEST_EQUALS( data.GetDeviceSubclass( -1 ), Device::Subclass::NONE, TEST_LOCATION );
END_TEST;
}
+
+int UtcDaliTouchDataGetMouseButtonPositive(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 touched signal
+ HandleData handleData;
+ TouchDataHandleFunctor functor( handleData );
+ actor.TouchSignal().Connect( &application, functor );
+
+ // Emit a down signal with MouseButton
+ Integration::TouchEvent touchEvent = GenerateSingleTouch( PointState::DOWN, Vector2( 10.0f, 10.0f ) );
+ touchEvent.points[ 0 ].SetMouseButton( static_cast< MouseButton::Type >( 3 ) );
+ application.ProcessEvent( touchEvent );
+
+ TouchData data = handleData.touchData;
+ DALI_TEST_EQUALS( data.GetMouseButton( 0 ), MouseButton::SECONDARY, TEST_LOCATION );
+
+ END_TEST;
+}
+
+int UtcDaliTouchDataGetMouseButtonNagative(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 touched signal
+ HandleData handleData;
+ TouchDataHandleFunctor functor( handleData );
+ actor.TouchSignal().Connect( &application, functor );
+
+ // Emit a down signal with MouseButton
+ Integration::TouchEvent touchEvent = GenerateSingleTouch( PointState::DOWN, Vector2( 10.0f, 10.0f ) );
+ touchEvent.points[ 0 ].SetMouseButton( static_cast< MouseButton::Type >( 2 ) );
+ application.ProcessEvent( touchEvent );
+
+ TouchData data = handleData.touchData;
+ DALI_TEST_EQUALS( data.GetMouseButton( 0 ), MouseButton::TERTIARY, TEST_LOCATION );
+ DALI_TEST_EQUALS( data.GetMouseButton( 3 ), MouseButton::INVALID, TEST_LOCATION );
+
+ END_TEST;
+}
+