X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=automated-tests%2Fsrc%2Fdali%2Futc-Dali-HoverProcessing.cpp;h=df73182ee22619a0105caffd082df2dce383c372;hb=3b1dbdc4b4cdbfbdfb558aa53eca064bb97bdb32;hp=7dd76a6d1c88a23822a6ac57cb29b76e02a195f9;hpb=3d64028b759662e0f0d6aa159755066a3b83a281;p=platform%2Fcore%2Fuifw%2Fdali-core.git diff --git a/automated-tests/src/dali/utc-Dali-HoverProcessing.cpp b/automated-tests/src/dali/utc-Dali-HoverProcessing.cpp index 7dd76a6..df73182 100644 --- a/automated-tests/src/dali/utc-Dali-HoverProcessing.cpp +++ b/automated-tests/src/dali/utc-Dali-HoverProcessing.cpp @@ -20,7 +20,7 @@ #include #include #include -#include +#include #include using namespace Dali; @@ -1166,42 +1166,6 @@ int UtcDaliHoverActorUnStaged(void) END_TEST; } -int UtcDaliHoverSystemOverlayActor(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 hover signals. - SignalData data; - HoverEventFunctor functor( data ); - systemActor.HoveredSignal().Connect( &application, functor ); - actor.HoveredSignal().Connect( &application, functor ); - - // Render and notify - application.SendNotification(); - application.Render(); - - // Emit a started signal, the system overlay is drawn last so is at the top, should hit the systemActor. - application.ProcessEvent( GenerateSingleHover( TouchPoint::Started, Vector2( 10.0f, 10.0f ) ) ); - DALI_TEST_EQUALS( true, data.functorCalled, TEST_LOCATION ); - DALI_TEST_CHECK( systemActor == data.hoveredActor ); - END_TEST; -} - int UtcDaliHoverLeaveActorReadded(void) { TestApplication application; @@ -1248,41 +1212,54 @@ int UtcDaliHoverLeaveActorReadded(void) END_TEST; } - -int UtcDaliHoverStencilNonRenderableActor(void) +int UtcDaliHoverClippingActor(void) { TestApplication application; Stage stage = Stage::GetCurrent(); Actor actor = Actor::New(); - actor.SetSize(100.0f, 100.0f); - actor.SetAnchorPoint(AnchorPoint::TOP_LEFT); - stage.Add(actor); + 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 clippingActor = Actor::New(); + clippingActor.SetSize( 50.0f, 50.0f ); + clippingActor.SetAnchorPoint( AnchorPoint::TOP_LEFT ); + clippingActor.SetProperty( Actor::Property::CLIPPING_MODE, ClippingMode::CLIP_CHILDREN ); + stage.Add( clippingActor ); - // Render and notify + // Add a child to the clipped region. + Actor clippingChild = Actor::New(); + clippingChild.SetSize( 50.0f, 50.0f ); + clippingChild.SetPosition( 25.0f, 25.0f ); + clippingChild.SetAnchorPoint( AnchorPoint::TOP_LEFT ); + clippingActor.Add( clippingChild ); + + // Render and notify. application.SendNotification(); application.Render(); - // Connect to actor's hovered signal + // Connect to actor's hovered signal. SignalData data; HoverEventFunctor functor( data ); actor.HoveredSignal().Connect( &application, functor ); - // Emit an event within stencil area + // Emit an event within clipped area - no hit. application.ProcessEvent( GenerateSingleHover( TouchPoint::Started, Vector2( 10.0f, 10.0f ) ) ); - DALI_TEST_EQUALS( true, data.functorCalled, TEST_LOCATION ); + DALI_TEST_EQUALS( false, data.functorCalled, TEST_LOCATION ); data.Reset(); - // Emit an event outside the stencil area but within the actor area, we should have a hit! + // Emit an event outside the clipped area but within the actor area, we should have a hit. application.ProcessEvent( GenerateSingleHover( TouchPoint::Started, Vector2( 60.0f, 60.0f ) ) ); DALI_TEST_EQUALS( true, data.functorCalled, TEST_LOCATION ); data.Reset(); + clippingChild.HoveredSignal().Connect( &application, functor ); + + // Emit an event inside part of the child which is within the clipped area, we should have a hit. + application.ProcessEvent( GenerateSingleHover( TouchPoint::Started, Vector2( 30.0f, 30.0f ) ) ); + DALI_TEST_EQUALS( true, data.functorCalled, TEST_LOCATION ); + data.Reset(); + END_TEST; }