Renaming of enum values for coding standards compliance.
[platform/core/uifw/dali-core.git] / automated-tests / src / dali / utc-Dali-TouchEventCombiner.cpp
index 80eb3da..09fb6aa 100644 (file)
 #include <dali/public-api/dali-core.h>
 #include <dali/integration-api/events/touch-event-combiner.h>
 #include <dali/integration-api/events/touch-event-integ.h>
+#include <dali/integration-api/events/hover-event-integ.h>
 #include <dali-test-suite-utils.h>
 
 using namespace Dali;
 using namespace Dali::Integration;
 
+namespace
+{
+Point GeneratePoint( int deviceId, PointState::Type state, float x, float y )
+{
+  Point point;
+  point.SetDeviceId( deviceId );
+  point.SetState( state );
+  point.SetScreenPosition( Vector2( x, y ) );
+  return point;
+}
+}
+
 void utc_dali_touch_event_combiner_startup(void)
 {
   test_return_value = TET_UNDEF;
@@ -216,13 +229,14 @@ int UtcDaliTouchEventCombinerSingleTouchNormal(void)
   // Down event
   {
     Integration::TouchEvent touchEvent;
-    TouchPoint point( 1, TouchPoint::Down, 100.0f, 100.0f );
+    Integration::HoverEvent hoverEvent;
+    Integration::Point point = GeneratePoint( 1, PointState::DOWN, 100.0f, 100.0f );
 
-    DALI_TEST_EQUALS( true, combiner.GetNextTouchEvent( point, time, touchEvent ), TEST_LOCATION );
+    DALI_TEST_EQUALS( Integration::TouchEventCombiner::DISPATCH_TOUCH, combiner.GetNextTouchEvent( point, time, touchEvent, hoverEvent ), TEST_LOCATION );
     DALI_TEST_EQUALS( touchEvent.GetPointCount(), 1u, TEST_LOCATION );
-    DALI_TEST_EQUALS( touchEvent.points[0].deviceId, point.deviceId, TEST_LOCATION );
-    DALI_TEST_EQUALS( touchEvent.points[0].state, point.state, TEST_LOCATION );
-    DALI_TEST_EQUALS( touchEvent.points[0].screen, point.screen, TEST_LOCATION );
+    DALI_TEST_EQUALS( touchEvent.points[0].GetDeviceId(), point.GetDeviceId(), TEST_LOCATION );
+    DALI_TEST_EQUALS( touchEvent.points[0].GetState(), point.GetState(), TEST_LOCATION );
+    DALI_TEST_EQUALS( touchEvent.points[0].GetScreenPosition(), point.GetScreenPosition(), TEST_LOCATION );
   }
 
   time++;
@@ -230,13 +244,14 @@ int UtcDaliTouchEventCombinerSingleTouchNormal(void)
   // Motion in X direction
   {
     Integration::TouchEvent touchEvent;
-    TouchPoint point( 1, TouchPoint::Motion, 101.0f, 100.0f );
+    Integration::HoverEvent hoverEvent;
+    Integration::Point point = GeneratePoint( 1, PointState::MOTION, 101.0f, 100.0f );
 
-    DALI_TEST_EQUALS( true, combiner.GetNextTouchEvent( point, time, touchEvent ), TEST_LOCATION );
+    DALI_TEST_EQUALS( Integration::TouchEventCombiner::DISPATCH_TOUCH, combiner.GetNextTouchEvent( point, time, touchEvent, hoverEvent ), TEST_LOCATION );
     DALI_TEST_EQUALS( touchEvent.GetPointCount(), 1u, TEST_LOCATION );
-    DALI_TEST_EQUALS( touchEvent.points[0].deviceId, point.deviceId, TEST_LOCATION );
-    DALI_TEST_EQUALS( touchEvent.points[0].state, point.state, TEST_LOCATION );
-    DALI_TEST_EQUALS( touchEvent.points[0].screen, point.screen, TEST_LOCATION );
+    DALI_TEST_EQUALS( touchEvent.points[0].GetDeviceId(), point.GetDeviceId(), TEST_LOCATION );
+    DALI_TEST_EQUALS( touchEvent.points[0].GetState(), point.GetState(), TEST_LOCATION );
+    DALI_TEST_EQUALS( touchEvent.points[0].GetScreenPosition(), point.GetScreenPosition(), TEST_LOCATION );
   }
 
   time++;
@@ -244,21 +259,23 @@ int UtcDaliTouchEventCombinerSingleTouchNormal(void)
   // Motion in Y direction
   {
     Integration::TouchEvent touchEvent;
-    TouchPoint point( 1, TouchPoint::Motion, 101.0f, 101.0f );
+    Integration::HoverEvent hoverEvent;
+    Integration::Point point = GeneratePoint( 1, PointState::MOTION, 101.0f, 101.0f );
 
-    DALI_TEST_EQUALS( true, combiner.GetNextTouchEvent( point, time, touchEvent ), TEST_LOCATION );
+    DALI_TEST_EQUALS( Integration::TouchEventCombiner::DISPATCH_TOUCH, combiner.GetNextTouchEvent( point, time, touchEvent, hoverEvent ), TEST_LOCATION );
     DALI_TEST_EQUALS( touchEvent.GetPointCount(), 1u, TEST_LOCATION );
-    DALI_TEST_EQUALS( touchEvent.points[0].deviceId, point.deviceId, TEST_LOCATION );
-    DALI_TEST_EQUALS( touchEvent.points[0].state, point.state, TEST_LOCATION );
-    DALI_TEST_EQUALS( touchEvent.points[0].screen, point.screen, TEST_LOCATION );
+    DALI_TEST_EQUALS( touchEvent.points[0].GetDeviceId(), point.GetDeviceId(), TEST_LOCATION );
+    DALI_TEST_EQUALS( touchEvent.points[0].GetState(), point.GetState(), TEST_LOCATION );
+    DALI_TEST_EQUALS( touchEvent.points[0].GetScreenPosition(), point.GetScreenPosition(), TEST_LOCATION );
   }
 
   // Motion event, but same time
   {
     Integration::TouchEvent touchEvent;
-    TouchPoint point( 1, TouchPoint::Motion, 102.0f, 102.0f );
+    Integration::HoverEvent hoverEvent;
+    Integration::Point point = GeneratePoint( 1, PointState::MOTION, 102.0f, 102.0f );
 
-    DALI_TEST_EQUALS( false, combiner.GetNextTouchEvent( point, time, touchEvent ), TEST_LOCATION );
+    DALI_TEST_EQUALS( Integration::TouchEventCombiner::DISPATCH_NONE, combiner.GetNextTouchEvent( point, time, touchEvent, hoverEvent ), TEST_LOCATION );
   }
 
   time++;
@@ -266,13 +283,14 @@ int UtcDaliTouchEventCombinerSingleTouchNormal(void)
   // Motion event, both X and Y movement
   {
     Integration::TouchEvent touchEvent;
-    TouchPoint point( 1, TouchPoint::Motion, 102.0f, 102.0f );
+    Integration::HoverEvent hoverEvent;
+    Integration::Point point = GeneratePoint( 1, PointState::MOTION, 102.0f, 102.0f );
 
-    DALI_TEST_EQUALS( true, combiner.GetNextTouchEvent( point, time, touchEvent ), TEST_LOCATION );
+    DALI_TEST_EQUALS( Integration::TouchEventCombiner::DISPATCH_TOUCH, combiner.GetNextTouchEvent( point, time, touchEvent, hoverEvent ), TEST_LOCATION );
     DALI_TEST_EQUALS( touchEvent.GetPointCount(), 1u, TEST_LOCATION );
-    DALI_TEST_EQUALS( touchEvent.points[0].deviceId, point.deviceId, TEST_LOCATION );
-    DALI_TEST_EQUALS( touchEvent.points[0].state, point.state, TEST_LOCATION );
-    DALI_TEST_EQUALS( touchEvent.points[0].screen, point.screen, TEST_LOCATION );
+    DALI_TEST_EQUALS( touchEvent.points[0].GetDeviceId(), point.GetDeviceId(), TEST_LOCATION );
+    DALI_TEST_EQUALS( touchEvent.points[0].GetState(), point.GetState(), TEST_LOCATION );
+    DALI_TEST_EQUALS( touchEvent.points[0].GetScreenPosition(), point.GetScreenPosition(), TEST_LOCATION );
   }
 
   time++;
@@ -280,21 +298,23 @@ int UtcDaliTouchEventCombinerSingleTouchNormal(void)
   // Motion event, no movement
   {
     Integration::TouchEvent touchEvent;
-    TouchPoint point( 1, TouchPoint::Motion, 102.0f, 102.0f );
+    Integration::HoverEvent hoverEvent;
+    Integration::Point point = GeneratePoint( 1, PointState::MOTION, 102.0f, 102.0f );
 
-    DALI_TEST_EQUALS( false, combiner.GetNextTouchEvent( point, time, touchEvent ), TEST_LOCATION );
+    DALI_TEST_EQUALS( Integration::TouchEventCombiner::DISPATCH_NONE, combiner.GetNextTouchEvent( point, time, touchEvent, hoverEvent ), TEST_LOCATION );
   }
 
   // Up event, no time diff, no movement
   {
     Integration::TouchEvent touchEvent;
-    TouchPoint point( 1, TouchPoint::Up, 102.0f, 102.0f );
+    Integration::HoverEvent hoverEvent;
+    Integration::Point point = GeneratePoint( 1, PointState::UP, 102.0f, 102.0f );
 
-    DALI_TEST_EQUALS( true, combiner.GetNextTouchEvent( point, time, touchEvent ), TEST_LOCATION );
+    DALI_TEST_EQUALS( Integration::TouchEventCombiner::DISPATCH_TOUCH, combiner.GetNextTouchEvent( point, time, touchEvent, hoverEvent ), TEST_LOCATION );
     DALI_TEST_EQUALS( touchEvent.GetPointCount(), 1u, TEST_LOCATION );
-    DALI_TEST_EQUALS( touchEvent.points[0].deviceId, point.deviceId, TEST_LOCATION );
-    DALI_TEST_EQUALS( touchEvent.points[0].state, point.state, TEST_LOCATION );
-    DALI_TEST_EQUALS( touchEvent.points[0].screen, point.screen, TEST_LOCATION );
+    DALI_TEST_EQUALS( touchEvent.points[0].GetDeviceId(), point.GetDeviceId(), TEST_LOCATION );
+    DALI_TEST_EQUALS( touchEvent.points[0].GetState(), point.GetState(), TEST_LOCATION );
+    DALI_TEST_EQUALS( touchEvent.points[0].GetScreenPosition(), point.GetScreenPosition(), TEST_LOCATION );
   }
   END_TEST;
 }
@@ -307,9 +327,49 @@ int UtcDaliTouchEventCombinerSingleTouchMotionWithoutDown(void)
   // Motion event
   {
     Integration::TouchEvent touchEvent;
-    TouchPoint point( 1, TouchPoint::Motion, 100.0f, 100.0f );
+    Integration::HoverEvent hoverEvent;
+    Integration::Point point = GeneratePoint( 1, PointState::MOTION, 100.0f, 100.0f );
+
+    DALI_TEST_EQUALS( Integration::TouchEventCombiner::DISPATCH_HOVER, combiner.GetNextTouchEvent( point, time, touchEvent, hoverEvent ), TEST_LOCATION );
+    DALI_TEST_EQUALS( hoverEvent.GetPointCount(), 1u, TEST_LOCATION );
+    DALI_TEST_EQUALS( hoverEvent.points[0].GetDeviceId(), point.GetDeviceId(), TEST_LOCATION );
+    DALI_TEST_EQUALS( hoverEvent.points[0].GetState(), PointState::STARTED, TEST_LOCATION );
+    DALI_TEST_EQUALS( hoverEvent.points[0].GetScreenPosition(), point.GetScreenPosition(), TEST_LOCATION );
+  }
+
+  time++;
+
+  // Motion event
+  {
+    Integration::TouchEvent touchEvent;
+    Integration::HoverEvent hoverEvent;
+    Integration::Point point = GeneratePoint( 1, PointState::MOTION, 102.0f, 102.0f );
+
+    DALI_TEST_EQUALS( Integration::TouchEventCombiner::DISPATCH_HOVER, combiner.GetNextTouchEvent( point, time, touchEvent, hoverEvent ), TEST_LOCATION );
+    DALI_TEST_EQUALS( hoverEvent.GetPointCount(), 1u, TEST_LOCATION );
+    DALI_TEST_EQUALS( hoverEvent.points[0].GetDeviceId(), point.GetDeviceId(), TEST_LOCATION );
+    DALI_TEST_EQUALS( hoverEvent.points[0].GetState(), point.GetState(), TEST_LOCATION );
+    DALI_TEST_EQUALS( hoverEvent.points[0].GetScreenPosition(), point.GetScreenPosition(), TEST_LOCATION );
+  }
+  END_TEST;
+}
+
+int UtcDaliTouchEventCombinerSingleTouchMotionFollowedByDown(void)
+{
+  TouchEventCombiner combiner;
+  unsigned long time( 0u );
+
+  // Motion event
+  {
+    Integration::TouchEvent touchEvent;
+    Integration::HoverEvent hoverEvent;
+    Integration::Point point = GeneratePoint( 1, PointState::MOTION, 100.0f, 100.0f );
 
-    DALI_TEST_EQUALS( false, combiner.GetNextTouchEvent( point, time, touchEvent ), TEST_LOCATION );
+    DALI_TEST_EQUALS( Integration::TouchEventCombiner::DISPATCH_HOVER, combiner.GetNextTouchEvent( point, time, touchEvent, hoverEvent ), TEST_LOCATION );
+    DALI_TEST_EQUALS( hoverEvent.GetPointCount(), 1u, TEST_LOCATION );
+    DALI_TEST_EQUALS( hoverEvent.points[0].GetDeviceId(), point.GetDeviceId(), TEST_LOCATION );
+    DALI_TEST_EQUALS( hoverEvent.points[0].GetState(), PointState::STARTED, TEST_LOCATION );
+    DALI_TEST_EQUALS( hoverEvent.points[0].GetScreenPosition(), point.GetScreenPosition(), TEST_LOCATION );
   }
 
   time++;
@@ -317,9 +377,48 @@ int UtcDaliTouchEventCombinerSingleTouchMotionWithoutDown(void)
   // Motion event
   {
     Integration::TouchEvent touchEvent;
-    TouchPoint point( 1, TouchPoint::Motion, 102.0f, 102.0f );
+    Integration::HoverEvent hoverEvent;
+    Integration::Point point = GeneratePoint( 1, PointState::MOTION, 102.0f, 102.0f );
+
+    DALI_TEST_EQUALS( Integration::TouchEventCombiner::DISPATCH_HOVER, combiner.GetNextTouchEvent( point, time, touchEvent, hoverEvent ), TEST_LOCATION );
+    DALI_TEST_EQUALS( hoverEvent.GetPointCount(), 1u, TEST_LOCATION );
+    DALI_TEST_EQUALS( hoverEvent.points[0].GetDeviceId(), point.GetDeviceId(), TEST_LOCATION );
+    DALI_TEST_EQUALS( hoverEvent.points[0].GetState(), point.GetState(), TEST_LOCATION );
+    DALI_TEST_EQUALS( hoverEvent.points[0].GetScreenPosition(), point.GetScreenPosition(), TEST_LOCATION );
+  }
 
-    DALI_TEST_EQUALS( false, combiner.GetNextTouchEvent( point, time, touchEvent ), TEST_LOCATION );
+  time++;
+
+  // Motion event
+  {
+    Integration::TouchEvent touchEvent;
+    Integration::HoverEvent hoverEvent;
+    Integration::Point point = GeneratePoint( 1, PointState::MOTION, 103.0f, 103.0f );
+
+    DALI_TEST_EQUALS( Integration::TouchEventCombiner::DISPATCH_HOVER, combiner.GetNextTouchEvent( point, time, touchEvent, hoverEvent ), TEST_LOCATION );
+    DALI_TEST_EQUALS( hoverEvent.GetPointCount(), 1u, TEST_LOCATION );
+    DALI_TEST_EQUALS( hoverEvent.points[0].GetDeviceId(), point.GetDeviceId(), TEST_LOCATION );
+    DALI_TEST_EQUALS( hoverEvent.points[0].GetState(), point.GetState(), TEST_LOCATION );
+    DALI_TEST_EQUALS( hoverEvent.points[0].GetScreenPosition(), point.GetScreenPosition(), TEST_LOCATION );
+  }
+
+  time++;
+
+  // Down event
+  {
+    Integration::TouchEvent touchEvent;
+    Integration::HoverEvent hoverEvent;
+    Integration::Point point = GeneratePoint( 1, PointState::DOWN, 103.0f, 103.0f );
+
+    DALI_TEST_EQUALS( Integration::TouchEventCombiner::DISPATCH_BOTH, combiner.GetNextTouchEvent( point, time, touchEvent, hoverEvent ), TEST_LOCATION );
+    DALI_TEST_EQUALS( touchEvent.GetPointCount(), 1u, TEST_LOCATION );
+    DALI_TEST_EQUALS( touchEvent.points[0].GetDeviceId(), point.GetDeviceId(), TEST_LOCATION );
+    DALI_TEST_EQUALS( touchEvent.points[0].GetState(), point.GetState(), TEST_LOCATION );
+    DALI_TEST_EQUALS( touchEvent.points[0].GetScreenPosition(), point.GetScreenPosition(), TEST_LOCATION );
+    DALI_TEST_EQUALS( hoverEvent.GetPointCount(), 1u, TEST_LOCATION );
+    DALI_TEST_EQUALS( hoverEvent.points[0].GetDeviceId(), point.GetDeviceId(), TEST_LOCATION );
+    DALI_TEST_EQUALS( hoverEvent.points[0].GetState(), PointState::FINISHED, TEST_LOCATION );
+    DALI_TEST_EQUALS( hoverEvent.points[0].GetScreenPosition(), point.GetScreenPosition(), TEST_LOCATION );
   }
   END_TEST;
 }
@@ -332,13 +431,14 @@ int UtcDaliTouchEventCombinerSingleTouchTwoDowns(void)
   // Down event
   {
     Integration::TouchEvent touchEvent;
-    TouchPoint point( 1, TouchPoint::Down, 100.0f, 100.0f );
+    Integration::HoverEvent hoverEvent;
+    Integration::Point point = GeneratePoint( 1, PointState::DOWN, 100.0f, 100.0f );
 
-    DALI_TEST_EQUALS( true, combiner.GetNextTouchEvent( point, time, touchEvent ), TEST_LOCATION );
+    DALI_TEST_EQUALS( Integration::TouchEventCombiner::DISPATCH_TOUCH, combiner.GetNextTouchEvent( point, time, touchEvent, hoverEvent ), TEST_LOCATION );
     DALI_TEST_EQUALS( touchEvent.GetPointCount(), 1u, TEST_LOCATION );
-    DALI_TEST_EQUALS( touchEvent.points[0].deviceId, point.deviceId, TEST_LOCATION );
-    DALI_TEST_EQUALS( touchEvent.points[0].state, point.state, TEST_LOCATION );
-    DALI_TEST_EQUALS( touchEvent.points[0].screen, point.screen, TEST_LOCATION );
+    DALI_TEST_EQUALS( touchEvent.points[0].GetDeviceId(), point.GetDeviceId(), TEST_LOCATION );
+    DALI_TEST_EQUALS( touchEvent.points[0].GetState(), point.GetState(), TEST_LOCATION );
+    DALI_TEST_EQUALS( touchEvent.points[0].GetScreenPosition(), point.GetScreenPosition(), TEST_LOCATION );
   }
 
   time++;
@@ -346,9 +446,10 @@ int UtcDaliTouchEventCombinerSingleTouchTwoDowns(void)
   // Another down with the same ID
   {
     Integration::TouchEvent touchEvent;
-    TouchPoint point( 1, TouchPoint::Down, 100.0f, 100.0f );
+    Integration::HoverEvent hoverEvent;
+    Integration::Point point = GeneratePoint( 1, PointState::DOWN, 100.0f, 100.0f );
 
-    DALI_TEST_EQUALS( false, combiner.GetNextTouchEvent( point, time, touchEvent ), TEST_LOCATION );
+    DALI_TEST_EQUALS( Integration::TouchEventCombiner::DISPATCH_NONE, combiner.GetNextTouchEvent( point, time, touchEvent, hoverEvent ), TEST_LOCATION );
   }
   END_TEST;
 }
@@ -361,9 +462,10 @@ int UtcDaliTouchEventCombinerSingleTouchUpWithoutDown(void)
   // Up event
   {
     Integration::TouchEvent touchEvent;
-    TouchPoint point( 1, TouchPoint::Up, 100.0f, 100.0f );
+    Integration::HoverEvent hoverEvent;
+    Integration::Point point = GeneratePoint( 1, PointState::UP, 100.0f, 100.0f );
 
-    DALI_TEST_EQUALS( false, combiner.GetNextTouchEvent( point, time, touchEvent ), TEST_LOCATION );
+    DALI_TEST_EQUALS( Integration::TouchEventCombiner::DISPATCH_NONE, combiner.GetNextTouchEvent( point, time, touchEvent, hoverEvent ), TEST_LOCATION );
   }
 
   time++;
@@ -371,9 +473,10 @@ int UtcDaliTouchEventCombinerSingleTouchUpWithoutDown(void)
   // Up event
   {
     Integration::TouchEvent touchEvent;
-    TouchPoint point( 1, TouchPoint::Up, 102.0f, 102.0f );
+    Integration::HoverEvent hoverEvent;
+    Integration::Point point = GeneratePoint( 1, PointState::UP, 102.0f, 102.0f );
 
-    DALI_TEST_EQUALS( false, combiner.GetNextTouchEvent( point, time, touchEvent ), TEST_LOCATION );
+    DALI_TEST_EQUALS( Integration::TouchEventCombiner::DISPATCH_NONE, combiner.GetNextTouchEvent( point, time, touchEvent, hoverEvent ), TEST_LOCATION );
   }
   END_TEST;
 }
@@ -386,13 +489,14 @@ int UtcDaliTouchEventCombinerSingleTouchTwoUps(void)
   // Down event
   {
     Integration::TouchEvent touchEvent;
-    TouchPoint point( 1, TouchPoint::Down, 100.0f, 100.0f );
+    Integration::HoverEvent hoverEvent;
+    Integration::Point point = GeneratePoint( 1, PointState::DOWN, 100.0f, 100.0f );
 
-    DALI_TEST_EQUALS( true, combiner.GetNextTouchEvent( point, time, touchEvent ), TEST_LOCATION );
+    DALI_TEST_EQUALS( Integration::TouchEventCombiner::DISPATCH_TOUCH, combiner.GetNextTouchEvent( point, time, touchEvent, hoverEvent ), TEST_LOCATION );
     DALI_TEST_EQUALS( touchEvent.GetPointCount(), 1u, TEST_LOCATION );
-    DALI_TEST_EQUALS( touchEvent.points[0].deviceId, point.deviceId, TEST_LOCATION );
-    DALI_TEST_EQUALS( touchEvent.points[0].state, point.state, TEST_LOCATION );
-    DALI_TEST_EQUALS( touchEvent.points[0].screen, point.screen, TEST_LOCATION );
+    DALI_TEST_EQUALS( touchEvent.points[0].GetDeviceId(), point.GetDeviceId(), TEST_LOCATION );
+    DALI_TEST_EQUALS( touchEvent.points[0].GetState(), point.GetState(), TEST_LOCATION );
+    DALI_TEST_EQUALS( touchEvent.points[0].GetScreenPosition(), point.GetScreenPosition(), TEST_LOCATION );
   }
 
   time++;
@@ -400,13 +504,14 @@ int UtcDaliTouchEventCombinerSingleTouchTwoUps(void)
   // Up event
   {
     Integration::TouchEvent touchEvent;
-    TouchPoint point( 1, TouchPoint::Up, 100.0f, 100.0f );
+    Integration::HoverEvent hoverEvent;
+    Integration::Point point = GeneratePoint( 1, PointState::UP, 100.0f, 100.0f );
 
-    DALI_TEST_EQUALS( true, combiner.GetNextTouchEvent( point, time, touchEvent ), TEST_LOCATION );
+    DALI_TEST_EQUALS( Integration::TouchEventCombiner::DISPATCH_TOUCH, combiner.GetNextTouchEvent( point, time, touchEvent, hoverEvent ), TEST_LOCATION );
     DALI_TEST_EQUALS( touchEvent.GetPointCount(), 1u, TEST_LOCATION );
-    DALI_TEST_EQUALS( touchEvent.points[0].deviceId, point.deviceId, TEST_LOCATION );
-    DALI_TEST_EQUALS( touchEvent.points[0].state, point.state, TEST_LOCATION );
-    DALI_TEST_EQUALS( touchEvent.points[0].screen, point.screen, TEST_LOCATION );
+    DALI_TEST_EQUALS( touchEvent.points[0].GetDeviceId(), point.GetDeviceId(), TEST_LOCATION );
+    DALI_TEST_EQUALS( touchEvent.points[0].GetState(), point.GetState(), TEST_LOCATION );
+    DALI_TEST_EQUALS( touchEvent.points[0].GetScreenPosition(), point.GetScreenPosition(), TEST_LOCATION );
   }
 
   time++;
@@ -414,9 +519,10 @@ int UtcDaliTouchEventCombinerSingleTouchTwoUps(void)
   // Another up event
   {
     Integration::TouchEvent touchEvent;
-    TouchPoint point( 1, TouchPoint::Up, 100.0f, 100.0f );
+    Integration::HoverEvent hoverEvent;
+    Integration::Point point = GeneratePoint( 1, PointState::UP, 100.0f, 100.0f );
 
-    DALI_TEST_EQUALS( false, combiner.GetNextTouchEvent( point, time, touchEvent ), TEST_LOCATION );
+    DALI_TEST_EQUALS( Integration::TouchEventCombiner::DISPATCH_NONE, combiner.GetNextTouchEvent( point, time, touchEvent, hoverEvent ), TEST_LOCATION );
   }
   END_TEST;
 }
@@ -429,13 +535,14 @@ int UtcDaliTouchEventCombinerSingleTouchUpWithDifferentId(void)
   // Down event
   {
     Integration::TouchEvent touchEvent;
-    TouchPoint point( 1, TouchPoint::Down, 100.0f, 100.0f );
+    Integration::HoverEvent hoverEvent;
+    Integration::Point point = GeneratePoint( 1, PointState::DOWN, 100.0f, 100.0f );
 
-    DALI_TEST_EQUALS( true, combiner.GetNextTouchEvent( point, time, touchEvent ), TEST_LOCATION );
+    DALI_TEST_EQUALS( Integration::TouchEventCombiner::DISPATCH_TOUCH, combiner.GetNextTouchEvent( point, time, touchEvent, hoverEvent ), TEST_LOCATION );
     DALI_TEST_EQUALS( touchEvent.GetPointCount(), 1u, TEST_LOCATION );
-    DALI_TEST_EQUALS( touchEvent.points[0].deviceId, point.deviceId, TEST_LOCATION );
-    DALI_TEST_EQUALS( touchEvent.points[0].state, point.state, TEST_LOCATION );
-    DALI_TEST_EQUALS( touchEvent.points[0].screen, point.screen, TEST_LOCATION );
+    DALI_TEST_EQUALS( touchEvent.points[0].GetDeviceId(), point.GetDeviceId(), TEST_LOCATION );
+    DALI_TEST_EQUALS( touchEvent.points[0].GetState(), point.GetState(), TEST_LOCATION );
+    DALI_TEST_EQUALS( touchEvent.points[0].GetScreenPosition(), point.GetScreenPosition(), TEST_LOCATION );
   }
 
   time++;
@@ -443,9 +550,10 @@ int UtcDaliTouchEventCombinerSingleTouchUpWithDifferentId(void)
   // Up event with different ID
   {
     Integration::TouchEvent touchEvent;
-    TouchPoint point( 2, TouchPoint::Up, 100.0f, 100.0f );
+    Integration::HoverEvent hoverEvent;
+    Integration::Point point = GeneratePoint( 2, PointState::UP, 100.0f, 100.0f );
 
-    DALI_TEST_EQUALS( false, combiner.GetNextTouchEvent( point, time, touchEvent ), TEST_LOCATION );
+    DALI_TEST_EQUALS( Integration::TouchEventCombiner::DISPATCH_NONE, combiner.GetNextTouchEvent( point, time, touchEvent, hoverEvent ), TEST_LOCATION );
   }
 
   time++;
@@ -453,13 +561,14 @@ int UtcDaliTouchEventCombinerSingleTouchUpWithDifferentId(void)
   // Up event
   {
     Integration::TouchEvent touchEvent;
-    TouchPoint point( 1, TouchPoint::Up, 100.0f, 100.0f );
+    Integration::HoverEvent hoverEvent;
+    Integration::Point point = GeneratePoint( 1, PointState::UP, 100.0f, 100.0f );
 
-    DALI_TEST_EQUALS( true, combiner.GetNextTouchEvent( point, time, touchEvent ), TEST_LOCATION );
+    DALI_TEST_EQUALS( Integration::TouchEventCombiner::DISPATCH_TOUCH, combiner.GetNextTouchEvent( point, time, touchEvent, hoverEvent ), TEST_LOCATION );
     DALI_TEST_EQUALS( touchEvent.GetPointCount(), 1u, TEST_LOCATION );
-    DALI_TEST_EQUALS( touchEvent.points[0].deviceId, point.deviceId, TEST_LOCATION );
-    DALI_TEST_EQUALS( touchEvent.points[0].state, point.state, TEST_LOCATION );
-    DALI_TEST_EQUALS( touchEvent.points[0].screen, point.screen, TEST_LOCATION );
+    DALI_TEST_EQUALS( touchEvent.points[0].GetDeviceId(), point.GetDeviceId(), TEST_LOCATION );
+    DALI_TEST_EQUALS( touchEvent.points[0].GetState(), point.GetState(), TEST_LOCATION );
+    DALI_TEST_EQUALS( touchEvent.points[0].GetScreenPosition(), point.GetScreenPosition(), TEST_LOCATION );
   }
   END_TEST;
 }
@@ -472,13 +581,14 @@ int UtcDaliTouchEventCombinerSingleTouchMotionWithDifferentId(void)
   // Down event
   {
     Integration::TouchEvent touchEvent;
-    TouchPoint point( 1, TouchPoint::Down, 100.0f, 100.0f );
+    Integration::HoverEvent hoverEvent;
+    Integration::Point point = GeneratePoint( 1, PointState::DOWN, 100.0f, 100.0f );
 
-    DALI_TEST_EQUALS( true, combiner.GetNextTouchEvent( point, time, touchEvent ), TEST_LOCATION );
+    DALI_TEST_EQUALS( Integration::TouchEventCombiner::DISPATCH_TOUCH, combiner.GetNextTouchEvent( point, time, touchEvent, hoverEvent ), TEST_LOCATION );
     DALI_TEST_EQUALS( touchEvent.GetPointCount(), 1u, TEST_LOCATION );
-    DALI_TEST_EQUALS( touchEvent.points[0].deviceId, point.deviceId, TEST_LOCATION );
-    DALI_TEST_EQUALS( touchEvent.points[0].state, point.state, TEST_LOCATION );
-    DALI_TEST_EQUALS( touchEvent.points[0].screen, point.screen, TEST_LOCATION );
+    DALI_TEST_EQUALS( touchEvent.points[0].GetDeviceId(), point.GetDeviceId(), TEST_LOCATION );
+    DALI_TEST_EQUALS( touchEvent.points[0].GetState(), point.GetState(), TEST_LOCATION );
+    DALI_TEST_EQUALS( touchEvent.points[0].GetScreenPosition(), point.GetScreenPosition(), TEST_LOCATION );
   }
 
   time++;
@@ -486,9 +596,14 @@ int UtcDaliTouchEventCombinerSingleTouchMotionWithDifferentId(void)
   // Motion event with different ID
   {
     Integration::TouchEvent touchEvent;
-    TouchPoint point( 2, TouchPoint::Motion, 100.0f, 100.0f );
+    Integration::HoverEvent hoverEvent;
+    Integration::Point point = GeneratePoint( 2, PointState::MOTION, 100.0f, 100.0f );
 
-    DALI_TEST_EQUALS( false, combiner.GetNextTouchEvent( point, time, touchEvent ), TEST_LOCATION );
+    DALI_TEST_EQUALS( Integration::TouchEventCombiner::DISPATCH_HOVER, combiner.GetNextTouchEvent( point, time, touchEvent, hoverEvent ), TEST_LOCATION );
+    DALI_TEST_EQUALS( hoverEvent.GetPointCount(), 1u, TEST_LOCATION );
+    DALI_TEST_EQUALS( hoverEvent.points[0].GetDeviceId(), point.GetDeviceId(), TEST_LOCATION );
+    DALI_TEST_EQUALS( hoverEvent.points[0].GetState(), PointState::STARTED, TEST_LOCATION );
+    DALI_TEST_EQUALS( hoverEvent.points[0].GetScreenPosition(), point.GetScreenPosition(), TEST_LOCATION );
   }
 
   time++;
@@ -496,13 +611,14 @@ int UtcDaliTouchEventCombinerSingleTouchMotionWithDifferentId(void)
   // Motion event
   {
     Integration::TouchEvent touchEvent;
-    TouchPoint point( 1, TouchPoint::Motion, 102.0f, 102.0f );
+    Integration::HoverEvent hoverEvent;
+    Integration::Point point = GeneratePoint( 1, PointState::MOTION, 102.0f, 102.0f );
 
-    DALI_TEST_EQUALS( true, combiner.GetNextTouchEvent( point, time, touchEvent ), TEST_LOCATION );
+    DALI_TEST_EQUALS( Integration::TouchEventCombiner::DISPATCH_TOUCH, combiner.GetNextTouchEvent( point, time, touchEvent, hoverEvent ), TEST_LOCATION );
     DALI_TEST_EQUALS( touchEvent.GetPointCount(), 1u, TEST_LOCATION );
-    DALI_TEST_EQUALS( touchEvent.points[0].deviceId, point.deviceId, TEST_LOCATION );
-    DALI_TEST_EQUALS( touchEvent.points[0].state, point.state, TEST_LOCATION );
-    DALI_TEST_EQUALS( touchEvent.points[0].screen, point.screen, TEST_LOCATION );
+    DALI_TEST_EQUALS( touchEvent.points[0].GetDeviceId(), point.GetDeviceId(), TEST_LOCATION );
+    DALI_TEST_EQUALS( touchEvent.points[0].GetState(), point.GetState(), TEST_LOCATION );
+    DALI_TEST_EQUALS( touchEvent.points[0].GetScreenPosition(), point.GetScreenPosition(), TEST_LOCATION );
   }
   END_TEST;
 }
@@ -515,13 +631,14 @@ int UtcDaliTouchEventCombinerMultiTouchNormal(void)
   // 1st point down
   {
     Integration::TouchEvent touchEvent;
-    TouchPoint point( 1, TouchPoint::Down, 100.0f, 100.0f );
+    Integration::HoverEvent hoverEvent;
+    Integration::Point point = GeneratePoint( 1, PointState::DOWN, 100.0f, 100.0f );
 
-    DALI_TEST_EQUALS( true, combiner.GetNextTouchEvent( point, time, touchEvent ), TEST_LOCATION );
+    DALI_TEST_EQUALS( Integration::TouchEventCombiner::DISPATCH_TOUCH, combiner.GetNextTouchEvent( point, time, touchEvent, hoverEvent ), TEST_LOCATION );
     DALI_TEST_EQUALS( touchEvent.GetPointCount(), 1u, TEST_LOCATION );
-    DALI_TEST_EQUALS( touchEvent.points[0].deviceId, point.deviceId, TEST_LOCATION );
-    DALI_TEST_EQUALS( touchEvent.points[0].state, point.state, TEST_LOCATION );
-    DALI_TEST_EQUALS( touchEvent.points[0].screen, point.screen, TEST_LOCATION );
+    DALI_TEST_EQUALS( touchEvent.points[0].GetDeviceId(), point.GetDeviceId(), TEST_LOCATION );
+    DALI_TEST_EQUALS( touchEvent.points[0].GetState(), point.GetState(), TEST_LOCATION );
+    DALI_TEST_EQUALS( touchEvent.points[0].GetScreenPosition(), point.GetScreenPosition(), TEST_LOCATION );
   }
 
   time++;
@@ -529,14 +646,15 @@ int UtcDaliTouchEventCombinerMultiTouchNormal(void)
   // 2nd point down
   {
     Integration::TouchEvent touchEvent;
-    TouchPoint point( 2, TouchPoint::Down, 200.0f, 200.0f );
+    Integration::HoverEvent hoverEvent;
+    Integration::Point point = GeneratePoint( 2, PointState::DOWN, 200.0f, 200.0f );
 
-    DALI_TEST_EQUALS( true, combiner.GetNextTouchEvent( point, time, touchEvent ), TEST_LOCATION );
+    DALI_TEST_EQUALS( Integration::TouchEventCombiner::DISPATCH_TOUCH, combiner.GetNextTouchEvent( point, time, touchEvent, hoverEvent ), TEST_LOCATION );
     DALI_TEST_EQUALS( touchEvent.GetPointCount(), 2u, TEST_LOCATION );
-    DALI_TEST_EQUALS( touchEvent.points[1].deviceId, point.deviceId, TEST_LOCATION );
-    DALI_TEST_EQUALS( touchEvent.points[0].state, TouchPoint::Stationary, TEST_LOCATION );
-    DALI_TEST_EQUALS( touchEvent.points[1].state, point.state, TEST_LOCATION );
-    DALI_TEST_EQUALS( touchEvent.points[1].screen, point.screen, TEST_LOCATION );
+    DALI_TEST_EQUALS( touchEvent.points[1].GetDeviceId(), point.GetDeviceId(), TEST_LOCATION );
+    DALI_TEST_EQUALS( touchEvent.points[0].GetState(), PointState::STATIONARY, TEST_LOCATION );
+    DALI_TEST_EQUALS( touchEvent.points[1].GetState(), point.GetState(), TEST_LOCATION );
+    DALI_TEST_EQUALS( touchEvent.points[1].GetScreenPosition(), point.GetScreenPosition(), TEST_LOCATION );
   }
 
   time++;
@@ -544,22 +662,24 @@ int UtcDaliTouchEventCombinerMultiTouchNormal(void)
   // 1st point motion
   {
     Integration::TouchEvent touchEvent;
-    TouchPoint point( 1, TouchPoint::Motion, 101.0f, 100.0f );
+    Integration::HoverEvent hoverEvent;
+    Integration::Point point = GeneratePoint( 1, PointState::MOTION, 101.0f, 100.0f );
 
-    DALI_TEST_EQUALS( true, combiner.GetNextTouchEvent( point, time, touchEvent ), TEST_LOCATION );
+    DALI_TEST_EQUALS( Integration::TouchEventCombiner::DISPATCH_TOUCH, combiner.GetNextTouchEvent( point, time, touchEvent, hoverEvent ), TEST_LOCATION );
     DALI_TEST_EQUALS( touchEvent.GetPointCount(), 2u, TEST_LOCATION );
-    DALI_TEST_EQUALS( touchEvent.points[0].deviceId, point.deviceId, TEST_LOCATION );
-    DALI_TEST_EQUALS( touchEvent.points[0].state, point.state, TEST_LOCATION );
-    DALI_TEST_EQUALS( touchEvent.points[1].state, TouchPoint::Stationary, TEST_LOCATION );
-    DALI_TEST_EQUALS( touchEvent.points[0].screen, point.screen, TEST_LOCATION );
+    DALI_TEST_EQUALS( touchEvent.points[0].GetDeviceId(), point.GetDeviceId(), TEST_LOCATION );
+    DALI_TEST_EQUALS( touchEvent.points[0].GetState(), point.GetState(), TEST_LOCATION );
+    DALI_TEST_EQUALS( touchEvent.points[1].GetState(), PointState::STATIONARY, TEST_LOCATION );
+    DALI_TEST_EQUALS( touchEvent.points[0].GetScreenPosition(), point.GetScreenPosition(), TEST_LOCATION );
   }
 
   // 2nd point motion, no time diff
   {
     Integration::TouchEvent touchEvent;
-    TouchPoint point( 2, TouchPoint::Motion, 200.0f, 200.0f );
+    Integration::HoverEvent hoverEvent;
+    Integration::Point point = GeneratePoint( 2, PointState::MOTION, 200.0f, 200.0f );
 
-    DALI_TEST_EQUALS( false, combiner.GetNextTouchEvent( point, time, touchEvent ), TEST_LOCATION );
+    DALI_TEST_EQUALS( Integration::TouchEventCombiner::DISPATCH_NONE, combiner.GetNextTouchEvent( point, time, touchEvent, hoverEvent ), TEST_LOCATION );
   }
 
   time++;
@@ -567,14 +687,15 @@ int UtcDaliTouchEventCombinerMultiTouchNormal(void)
   // 2nd point motion
   {
     Integration::TouchEvent touchEvent;
-    TouchPoint point( 2, TouchPoint::Motion, 201.0f, 201.0f );
+    Integration::HoverEvent hoverEvent;
+    Integration::Point point = GeneratePoint( 2, PointState::MOTION, 201.0f, 201.0f );
 
-    DALI_TEST_EQUALS( true, combiner.GetNextTouchEvent( point, time, touchEvent ), TEST_LOCATION );
+    DALI_TEST_EQUALS( Integration::TouchEventCombiner::DISPATCH_TOUCH, combiner.GetNextTouchEvent( point, time, touchEvent, hoverEvent ), TEST_LOCATION );
     DALI_TEST_EQUALS( touchEvent.GetPointCount(), 2u, TEST_LOCATION );
-    DALI_TEST_EQUALS( touchEvent.points[1].deviceId, point.deviceId, TEST_LOCATION );
-    DALI_TEST_EQUALS( touchEvent.points[0].state, TouchPoint::Stationary, TEST_LOCATION );
-    DALI_TEST_EQUALS( touchEvent.points[1].state, point.state, TEST_LOCATION );
-    DALI_TEST_EQUALS( touchEvent.points[1].screen, point.screen, TEST_LOCATION );
+    DALI_TEST_EQUALS( touchEvent.points[1].GetDeviceId(), point.GetDeviceId(), TEST_LOCATION );
+    DALI_TEST_EQUALS( touchEvent.points[0].GetState(), PointState::STATIONARY, TEST_LOCATION );
+    DALI_TEST_EQUALS( touchEvent.points[1].GetState(), point.GetState(), TEST_LOCATION );
+    DALI_TEST_EQUALS( touchEvent.points[1].GetScreenPosition(), point.GetScreenPosition(), TEST_LOCATION );
   }
 
   time++;
@@ -582,14 +703,15 @@ int UtcDaliTouchEventCombinerMultiTouchNormal(void)
   // 1st point up
   {
     Integration::TouchEvent touchEvent;
-    TouchPoint point( 1, TouchPoint::Up, 101.0f, 100.0f );
+    Integration::HoverEvent hoverEvent;
+    Integration::Point point = GeneratePoint( 1, PointState::UP, 101.0f, 100.0f );
 
-    DALI_TEST_EQUALS( true, combiner.GetNextTouchEvent( point, time, touchEvent ), TEST_LOCATION );
+    DALI_TEST_EQUALS( Integration::TouchEventCombiner::DISPATCH_TOUCH, combiner.GetNextTouchEvent( point, time, touchEvent, hoverEvent ), TEST_LOCATION );
     DALI_TEST_EQUALS( touchEvent.GetPointCount(), 2u, TEST_LOCATION );
-    DALI_TEST_EQUALS( touchEvent.points[0].deviceId, point.deviceId, TEST_LOCATION );
-    DALI_TEST_EQUALS( touchEvent.points[0].state, point.state, TEST_LOCATION );
-    DALI_TEST_EQUALS( touchEvent.points[1].state, TouchPoint::Stationary, TEST_LOCATION );
-    DALI_TEST_EQUALS( touchEvent.points[0].screen, point.screen, TEST_LOCATION );
+    DALI_TEST_EQUALS( touchEvent.points[0].GetDeviceId(), point.GetDeviceId(), TEST_LOCATION );
+    DALI_TEST_EQUALS( touchEvent.points[0].GetState(), point.GetState(), TEST_LOCATION );
+    DALI_TEST_EQUALS( touchEvent.points[1].GetState(), PointState::STATIONARY, TEST_LOCATION );
+    DALI_TEST_EQUALS( touchEvent.points[0].GetScreenPosition(), point.GetScreenPosition(), TEST_LOCATION );
   }
 
   time++;
@@ -597,13 +719,14 @@ int UtcDaliTouchEventCombinerMultiTouchNormal(void)
   // 2nd point motion
   {
     Integration::TouchEvent touchEvent;
-    TouchPoint point( 2, TouchPoint::Motion, 202.0f, 202.0f );
+    Integration::HoverEvent hoverEvent;
+    Integration::Point point = GeneratePoint( 2, PointState::MOTION, 202.0f, 202.0f );
 
-    DALI_TEST_EQUALS( true, combiner.GetNextTouchEvent( point, time, touchEvent ), TEST_LOCATION );
+    DALI_TEST_EQUALS( Integration::TouchEventCombiner::DISPATCH_TOUCH, combiner.GetNextTouchEvent( point, time, touchEvent, hoverEvent ), TEST_LOCATION );
     DALI_TEST_EQUALS( touchEvent.GetPointCount(), 1u, TEST_LOCATION );
-    DALI_TEST_EQUALS( touchEvent.points[0].deviceId, point.deviceId, TEST_LOCATION );
-    DALI_TEST_EQUALS( touchEvent.points[0].state, point.state, TEST_LOCATION );
-    DALI_TEST_EQUALS( touchEvent.points[0].screen, point.screen, TEST_LOCATION );
+    DALI_TEST_EQUALS( touchEvent.points[0].GetDeviceId(), point.GetDeviceId(), TEST_LOCATION );
+    DALI_TEST_EQUALS( touchEvent.points[0].GetState(), point.GetState(), TEST_LOCATION );
+    DALI_TEST_EQUALS( touchEvent.points[0].GetScreenPosition(), point.GetScreenPosition(), TEST_LOCATION );
   }
 
   time++;
@@ -611,13 +734,14 @@ int UtcDaliTouchEventCombinerMultiTouchNormal(void)
   // 2nd point up
   {
     Integration::TouchEvent touchEvent;
-    TouchPoint point( 2, TouchPoint::Up, 202.0f, 202.0f );
+    Integration::HoverEvent hoverEvent;
+    Integration::Point point = GeneratePoint( 2, PointState::UP, 202.0f, 202.0f );
 
-    DALI_TEST_EQUALS( true, combiner.GetNextTouchEvent( point, time, touchEvent ), TEST_LOCATION );
+    DALI_TEST_EQUALS( Integration::TouchEventCombiner::DISPATCH_TOUCH, combiner.GetNextTouchEvent( point, time, touchEvent, hoverEvent ), TEST_LOCATION );
     DALI_TEST_EQUALS( touchEvent.GetPointCount(), 1u, TEST_LOCATION );
-    DALI_TEST_EQUALS( touchEvent.points[0].deviceId, point.deviceId, TEST_LOCATION );
-    DALI_TEST_EQUALS( touchEvent.points[0].state, point.state, TEST_LOCATION );
-    DALI_TEST_EQUALS( touchEvent.points[0].screen, point.screen, TEST_LOCATION );
+    DALI_TEST_EQUALS( touchEvent.points[0].GetDeviceId(), point.GetDeviceId(), TEST_LOCATION );
+    DALI_TEST_EQUALS( touchEvent.points[0].GetState(), point.GetState(), TEST_LOCATION );
+    DALI_TEST_EQUALS( touchEvent.points[0].GetScreenPosition(), point.GetScreenPosition(), TEST_LOCATION );
   }
   END_TEST;
 }
@@ -632,9 +756,10 @@ int UtcDaliTouchEventCombinerSeveralPoints(void)
   for ( unsigned int pointCount = 1u; pointCount < maximum; ++pointCount )
   {
     Integration::TouchEvent touchEvent;
-    TouchPoint point( pointCount, TouchPoint::Down, 100.0f, 100.0f );
+    Integration::HoverEvent hoverEvent;
+    Integration::Point point = GeneratePoint( pointCount, PointState::DOWN, 100.0f, 100.0f );
 
-    DALI_TEST_EQUALS( true, combiner.GetNextTouchEvent( point, time++, touchEvent ), TEST_LOCATION );
+    DALI_TEST_EQUALS( Integration::TouchEventCombiner::DISPATCH_TOUCH, combiner.GetNextTouchEvent( point, time++, touchEvent, hoverEvent ), TEST_LOCATION );
     DALI_TEST_EQUALS( touchEvent.GetPointCount(), pointCount, TEST_LOCATION );
   }
 
@@ -642,9 +767,10 @@ int UtcDaliTouchEventCombinerSeveralPoints(void)
   for ( unsigned int pointCount = maximum - 1; pointCount > 0; --pointCount )
   {
     Integration::TouchEvent touchEvent;
-    TouchPoint point( pointCount, TouchPoint::Up, 100.0f, 100.0f );
+    Integration::HoverEvent hoverEvent;
+    Integration::Point point = GeneratePoint( pointCount, PointState::UP, 100.0f, 100.0f );
 
-    DALI_TEST_EQUALS( true, combiner.GetNextTouchEvent( point, time++, touchEvent ), TEST_LOCATION );
+    DALI_TEST_EQUALS( Integration::TouchEventCombiner::DISPATCH_TOUCH, combiner.GetNextTouchEvent( point, time++, touchEvent, hoverEvent ), TEST_LOCATION );
     DALI_TEST_EQUALS( touchEvent.GetPointCount(), pointCount, TEST_LOCATION );
   }
   END_TEST;
@@ -658,13 +784,14 @@ int UtcDaliTouchEventCombinerReset(void)
   // Down event
   {
     Integration::TouchEvent touchEvent;
-    TouchPoint point( 1, TouchPoint::Down, 100.0f, 100.0f );
+    Integration::HoverEvent hoverEvent;
+    Integration::Point point = GeneratePoint( 1, PointState::DOWN, 100.0f, 100.0f );
 
-    DALI_TEST_EQUALS( true, combiner.GetNextTouchEvent( point, time, touchEvent ), TEST_LOCATION );
+    DALI_TEST_EQUALS( Integration::TouchEventCombiner::DISPATCH_TOUCH, combiner.GetNextTouchEvent( point, time, touchEvent, hoverEvent ), TEST_LOCATION );
     DALI_TEST_EQUALS( touchEvent.GetPointCount(), 1u, TEST_LOCATION );
-    DALI_TEST_EQUALS( touchEvent.points[0].deviceId, point.deviceId, TEST_LOCATION );
-    DALI_TEST_EQUALS( touchEvent.points[0].state, point.state, TEST_LOCATION );
-    DALI_TEST_EQUALS( touchEvent.points[0].screen, point.screen, TEST_LOCATION );
+    DALI_TEST_EQUALS( touchEvent.points[0].GetDeviceId(), point.GetDeviceId(), TEST_LOCATION );
+    DALI_TEST_EQUALS( touchEvent.points[0].GetState(), point.GetState(), TEST_LOCATION );
+    DALI_TEST_EQUALS( touchEvent.points[0].GetScreenPosition(), point.GetScreenPosition(), TEST_LOCATION );
   }
 
   time++;
@@ -675,9 +802,10 @@ int UtcDaliTouchEventCombinerReset(void)
   // Up event
   {
     Integration::TouchEvent touchEvent;
-    TouchPoint point( 1, TouchPoint::Up, 100.0f, 100.0f );
+    Integration::HoverEvent hoverEvent;
+    Integration::Point point = GeneratePoint( 1, PointState::UP, 100.0f, 100.0f );
 
-    DALI_TEST_EQUALS( false, combiner.GetNextTouchEvent( point, time, touchEvent ), TEST_LOCATION );
+    DALI_TEST_EQUALS( Integration::TouchEventCombiner::DISPATCH_NONE, combiner.GetNextTouchEvent( point, time, touchEvent, hoverEvent ), TEST_LOCATION );
   }
   END_TEST;
 }
@@ -690,13 +818,14 @@ int UtcDaliTouchEventCombinerSingleTouchInterrupted(void)
   // Down event
   {
     Integration::TouchEvent touchEvent;
-    TouchPoint point( 1, TouchPoint::Down, 100.0f, 100.0f );
+    Integration::HoverEvent hoverEvent;
+    Integration::Point point = GeneratePoint( 1, PointState::DOWN, 100.0f, 100.0f );
 
-    DALI_TEST_EQUALS( true, combiner.GetNextTouchEvent( point, time, touchEvent ), TEST_LOCATION );
+    DALI_TEST_EQUALS( Integration::TouchEventCombiner::DISPATCH_TOUCH, combiner.GetNextTouchEvent( point, time, touchEvent, hoverEvent ), TEST_LOCATION );
     DALI_TEST_EQUALS( touchEvent.GetPointCount(), 1u, TEST_LOCATION );
-    DALI_TEST_EQUALS( touchEvent.points[0].deviceId, point.deviceId, TEST_LOCATION );
-    DALI_TEST_EQUALS( touchEvent.points[0].state, point.state, TEST_LOCATION );
-    DALI_TEST_EQUALS( touchEvent.points[0].screen, point.screen, TEST_LOCATION );
+    DALI_TEST_EQUALS( touchEvent.points[0].GetDeviceId(), point.GetDeviceId(), TEST_LOCATION );
+    DALI_TEST_EQUALS( touchEvent.points[0].GetState(), point.GetState(), TEST_LOCATION );
+    DALI_TEST_EQUALS( touchEvent.points[0].GetScreenPosition(), point.GetScreenPosition(), TEST_LOCATION );
   }
 
   time++;
@@ -704,20 +833,24 @@ int UtcDaliTouchEventCombinerSingleTouchInterrupted(void)
   // Interrupted event
   {
     Integration::TouchEvent touchEvent;
-    TouchPoint point( 1, TouchPoint::Interrupted, 100.0f, 100.0f );
+    Integration::HoverEvent hoverEvent;
+    Integration::Point point = GeneratePoint( 1, PointState::INTERRUPTED, 100.0f, 100.0f );
 
-    DALI_TEST_EQUALS( true, combiner.GetNextTouchEvent( point, time, touchEvent ), TEST_LOCATION );
+    DALI_TEST_EQUALS( Integration::TouchEventCombiner::DISPATCH_BOTH, combiner.GetNextTouchEvent( point, time, touchEvent, hoverEvent ), TEST_LOCATION );
     DALI_TEST_EQUALS( touchEvent.GetPointCount(), 1u, TEST_LOCATION );
-    DALI_TEST_EQUALS( touchEvent.points[0].state, point.state, TEST_LOCATION );
+    DALI_TEST_EQUALS( touchEvent.points[0].GetState(), point.GetState(), TEST_LOCATION );
+    DALI_TEST_EQUALS( hoverEvent.GetPointCount(), 1u, TEST_LOCATION );
+    DALI_TEST_EQUALS( hoverEvent.points[0].GetState(), point.GetState(), TEST_LOCATION );
   }
 
   // Send up, should not be able to send as combiner has been reset.
   // Up event
   {
     Integration::TouchEvent touchEvent;
-    TouchPoint point( 1, TouchPoint::Up, 100.0f, 100.0f );
+    Integration::HoverEvent hoverEvent;
+    Integration::Point point = GeneratePoint( 1, PointState::UP, 100.0f, 100.0f );
 
-    DALI_TEST_EQUALS( false, combiner.GetNextTouchEvent( point, time, touchEvent ), TEST_LOCATION );
+    DALI_TEST_EQUALS( Integration::TouchEventCombiner::DISPATCH_NONE, combiner.GetNextTouchEvent( point, time, touchEvent, hoverEvent ), TEST_LOCATION );
   }
   END_TEST;
 }
@@ -732,29 +865,34 @@ int UtcDaliTouchEventCombinerMultiTouchInterrupted(void)
   for ( unsigned int pointCount = 1u; pointCount < maximum; ++pointCount )
   {
     Integration::TouchEvent touchEvent;
-    TouchPoint point( pointCount, TouchPoint::Down, 100.0f, 100.0f );
+    Integration::HoverEvent hoverEvent;
+    Integration::Point point = GeneratePoint( pointCount, PointState::DOWN, 100.0f, 100.0f );
 
-    DALI_TEST_EQUALS( true, combiner.GetNextTouchEvent( point, time++, touchEvent ), TEST_LOCATION );
+    DALI_TEST_EQUALS( Integration::TouchEventCombiner::DISPATCH_TOUCH, combiner.GetNextTouchEvent( point, time, touchEvent, hoverEvent ), TEST_LOCATION );
     DALI_TEST_EQUALS( touchEvent.GetPointCount(), pointCount, TEST_LOCATION );
   }
 
   // Interrupted event
   {
     Integration::TouchEvent touchEvent;
-    TouchPoint point( 1, TouchPoint::Interrupted, 100.0f, 100.0f );
+    Integration::HoverEvent hoverEvent;
+    Integration::Point point = GeneratePoint( 1, PointState::INTERRUPTED, 100.0f, 100.0f );
 
-    DALI_TEST_EQUALS( true, combiner.GetNextTouchEvent( point, time, touchEvent ), TEST_LOCATION );
+    DALI_TEST_EQUALS( Integration::TouchEventCombiner::DISPATCH_BOTH, combiner.GetNextTouchEvent( point, time, touchEvent, hoverEvent ), TEST_LOCATION );
     DALI_TEST_EQUALS( touchEvent.GetPointCount(), 1u, TEST_LOCATION );
-    DALI_TEST_EQUALS( touchEvent.points[0].state, point.state, TEST_LOCATION );
+    DALI_TEST_EQUALS( touchEvent.points[0].GetState(), point.GetState(), TEST_LOCATION );
+    DALI_TEST_EQUALS( hoverEvent.GetPointCount(), 1u, TEST_LOCATION );
+    DALI_TEST_EQUALS( hoverEvent.points[0].GetState(), point.GetState(), TEST_LOCATION );
   }
 
   // Send up, should not be able to send as combiner has been reset.
   // Up event
   {
     Integration::TouchEvent touchEvent;
-    TouchPoint point( 1, TouchPoint::Up, 100.0f, 100.0f );
+    Integration::HoverEvent hoverEvent;
+    Integration::Point point = GeneratePoint( 1, PointState::UP, 100.0f, 100.0f );
 
-    DALI_TEST_EQUALS( false, combiner.GetNextTouchEvent( point, time, touchEvent ), TEST_LOCATION );
+    DALI_TEST_EQUALS( Integration::TouchEventCombiner::DISPATCH_NONE, combiner.GetNextTouchEvent( point, time, touchEvent, hoverEvent ), TEST_LOCATION );
   }
   END_TEST;
 }
@@ -767,9 +905,10 @@ int UtcDaliTouchEventCombinerInvalidState(void)
   // Stationary event
   {
     Integration::TouchEvent touchEvent;
-    TouchPoint point( 1, TouchPoint::Stationary, 100.0f, 100.0f );
+    Integration::HoverEvent hoverEvent;
+    Integration::Point point = GeneratePoint( 1, PointState::STATIONARY, 100.0f, 100.0f );
 
-    DALI_TEST_EQUALS( false, combiner.GetNextTouchEvent( point, time, touchEvent ), TEST_LOCATION );
+    DALI_TEST_EQUALS( Integration::TouchEventCombiner::DISPATCH_NONE, combiner.GetNextTouchEvent( point, time, touchEvent, hoverEvent ), TEST_LOCATION );
   }
   END_TEST;
 }