-int UtcDaliHoverStencil(void)
-{
- TestApplication application;
- Stage stage = Stage::GetCurrent();
-
- Actor actor = ImageActor::New();
- actor.SetSize(100.0f, 100.0f);
- actor.SetAnchorPoint(AnchorPoint::TOP_LEFT);
- stage.Add(actor);
-
- Actor stencil = Actor::New();
- stencil.SetSize(50.0f, 50.0f);
- stencil.SetAnchorPoint(AnchorPoint::TOP_LEFT);
- stencil.SetDrawMode( DrawMode::STENCIL );
- stage.Add(stencil);
-
- // Render and notify
- application.SendNotification();
- application.Render();
-
- // Connect to actor's hovered signal
- SignalData data;
- HoverEventFunctor functor( data );
- actor.HoveredSignal().Connect( &application, functor );
-
- // Emit an event within stencil area
- application.ProcessEvent( GenerateSingleHover( TouchPoint::Started, Vector2( 10.0f, 10.0f ) ) );
- DALI_TEST_EQUALS( true, data.functorCalled, TEST_LOCATION );
- data.Reset();
-
- // Emit an event outside the stencil area but within the actor area
- application.ProcessEvent( GenerateSingleHover( TouchPoint::Started, Vector2( 60.0f, 60.0f ) ) );
- DALI_TEST_EQUALS( false, data.functorCalled, TEST_LOCATION );
- data.Reset();
-
- END_TEST;
-}
-
-int UtcDaliHoverStencilInActorHierarchy(void)
-{
- TestApplication application;
- Stage stage = Stage::GetCurrent();
-
- ImageActor parent = ImageActor::New();
- parent.SetSize(100.0f, 100.0f);
- parent.SetAnchorPoint(AnchorPoint::TOP_LEFT);
- stage.Add(parent);
-
- ImageActor child = ImageActor::New();
- child.SetSize(25.0f, 25.0f);
- child.SetAnchorPoint(AnchorPoint::TOP_LEFT);
- parent.Add(child);
-
- Actor stencil = Actor::New();
- stencil.SetSize(50.0f, 50.0f);
- stencil.SetAnchorPoint(AnchorPoint::TOP_LEFT);
- stencil.SetDrawMode( DrawMode::STENCIL );
- stage.Add(stencil);
-
- // Render and notify
- application.SendNotification();
- application.Render();
-
- // Connect to hover signals
- SignalData parentData;
- parent.HoveredSignal().Connect( &application, HoverEventFunctor(parentData) );
- SignalData childData;
- child.HoveredSignal().Connect( &application, HoverEventFunctor(childData) );
-
- // Emit an event within stencil area
- application.ProcessEvent( GenerateSingleHover( TouchPoint::Started, Vector2( 10.0f, 10.0f ) ) );
- DALI_TEST_EQUALS( false, parentData.functorCalled, TEST_LOCATION );
- DALI_TEST_EQUALS( true, childData.functorCalled, TEST_LOCATION );
- parentData.Reset();
- childData.Reset();
-
- // Emit an event outside child area and within stencil area
- application.ProcessEvent( GenerateSingleHover( TouchPoint::Motion, Vector2( 40.0f, 40.0f ) ) );
- DALI_TEST_EQUALS( true, parentData.functorCalled, TEST_LOCATION );
- DALI_TEST_EQUALS( false, childData.functorCalled, TEST_LOCATION );
- parentData.Reset();
- childData.Reset();
-
- // Emit an event outside stencil are but within parent area
- application.ProcessEvent( GenerateSingleHover( TouchPoint::Motion, Vector2( 60.0f, 60.0f ) ) );
- DALI_TEST_EQUALS( false, parentData.functorCalled, TEST_LOCATION );
- DALI_TEST_EQUALS( false, childData.functorCalled, TEST_LOCATION );
- parentData.Reset();
- childData.Reset();
-
- // Readd actor (so that stencil is the first child)
- stage.Remove(parent);
- application.SendNotification();
- application.Render();
- stage.Add(parent);
- application.SendNotification();
- application.Render();
-
- // Redo hit in same area...
-
- // Emit an event within stencil area
- application.ProcessEvent( GenerateSingleHover( TouchPoint::Motion, Vector2( 10.0f, 10.0f ) ) );
- DALI_TEST_EQUALS( false, parentData.functorCalled, TEST_LOCATION );
- DALI_TEST_EQUALS( true, childData.functorCalled, TEST_LOCATION );
- parentData.Reset();
- childData.Reset();
-
- // Emit an event outside child area and within stencil area
- application.ProcessEvent( GenerateSingleHover( TouchPoint::Motion, Vector2( 40.0f, 40.0f ) ) );
- DALI_TEST_EQUALS( true, parentData.functorCalled, TEST_LOCATION );
- DALI_TEST_EQUALS( false, childData.functorCalled, TEST_LOCATION );
- parentData.Reset();
- childData.Reset();
-
- // Emit an event outside stencil are but within parent area
- application.ProcessEvent( GenerateSingleHover( TouchPoint::Motion, Vector2( 60.0f, 60.0f ) ) );
- DALI_TEST_EQUALS( false, parentData.functorCalled, TEST_LOCATION );
- DALI_TEST_EQUALS( false, childData.functorCalled, TEST_LOCATION );
- parentData.Reset();
- childData.Reset();
-
- END_TEST;
-}
-
-int UtcDaliHoverMultipleStencils(void)
-{
- TestApplication application;
- Stage stage = Stage::GetCurrent();
-
- ImageActor actor = ImageActor::New();
- actor.SetSize(100.0f, 100.0f);
- actor.SetAnchorPoint(AnchorPoint::TOP_LEFT);
- stage.Add(actor);
-
- Actor stencil = Actor::New();
- stencil.SetSize(50.0f, 50.0f);
- stencil.SetAnchorPoint(AnchorPoint::TOP_LEFT);
- stencil.SetDrawMode( DrawMode::STENCIL );
- stage.Add(stencil);
-
- Actor stencil2 = Actor::New();
- stencil2.SetSize(50.0f, 50.0f);
- stencil2.SetAnchorPoint(AnchorPoint::TOP_LEFT);
- stencil2.SetDrawMode( DrawMode::STENCIL );
- stencil2.SetPosition(50.0f, 50.0f);
- stage.Add(stencil2);
-
- // Render and notify
- application.SendNotification();
- application.Render();
-
- // Connect to actor's hovered signal
- SignalData data;
- HoverEventFunctor functor( data );
- actor.HoveredSignal().Connect( &application, functor );
-
- // Emit an event within stencil area
- application.ProcessEvent( GenerateSingleHover( TouchPoint::Started, Vector2( 10.0f, 10.0f ) ) );
- DALI_TEST_EQUALS( true, data.functorCalled, TEST_LOCATION );
- data.Reset();
-
- // Emit an event inside the second stencil area
- application.ProcessEvent( GenerateSingleHover( TouchPoint::Started, Vector2( 60.0f, 60.0f ) ) );
- DALI_TEST_EQUALS( true, data.functorCalled, TEST_LOCATION );
- data.Reset();
-
- // Emit an event outside both stencil areas but within the actor area
- application.ProcessEvent( GenerateSingleHover( TouchPoint::Started, Vector2( 10.0f, 60.0f ) ) );
- DALI_TEST_EQUALS( false, data.functorCalled, TEST_LOCATION );
- data.Reset();
-
- END_TEST;
-}