From 0e446efe2d2c2a430d3d413b9c473be53508a2b3 Mon Sep 17 00:00:00 2001 From: David Steele Date: Mon, 10 Aug 2020 18:47:53 +0100 Subject: [PATCH] Removed TouchEvent from actor & stage TouchEvent has been deprecated for over 2 versions, now time to remove it. Change-Id: I6d4891766b69a7faeeccf340e1de75a4ef329aee --- automated-tests/src/dali/CMakeLists.txt | 1 - .../dali-test-suite-utils/test-custom-actor.cpp | 5 - .../dali/dali-test-suite-utils/test-custom-actor.h | 81 +- .../dali/dali-test-suite-utils/test-touch-utils.h | 81 - automated-tests/src/dali/utc-Dali-Actor.cpp | 12 +- automated-tests/src/dali/utc-Dali-BaseHandle.cpp | 2 +- automated-tests/src/dali/utc-Dali-CustomActor.cpp | 37 - .../src/dali/utc-Dali-LongPressGestureDetector.cpp | 17 +- .../dali/utc-Dali-LongPressGestureRecognizer.cpp | 2 +- .../src/dali/utc-Dali-PanGestureDetector.cpp | 12 - .../src/dali/utc-Dali-PanGestureRecognizer.cpp | 2 +- .../src/dali/utc-Dali-PinchGestureDetector.cpp | 14 +- .../src/dali/utc-Dali-PinchGestureRecognizer.cpp | 1 - .../src/dali/utc-Dali-RotationGestureDetector.cpp | 14 - .../dali/utc-Dali-RotationGestureRecognizer.cpp | 2 +- automated-tests/src/dali/utc-Dali-Scene.cpp | 30 +- automated-tests/src/dali/utc-Dali-Scripting.cpp | 2 +- automated-tests/src/dali/utc-Dali-Stage.cpp | 126 +- .../src/dali/utc-Dali-TapGestureDetector.cpp | 12 +- .../src/dali/utc-Dali-TapGestureRecognizer.cpp | 2 +- .../src/dali/utc-Dali-TouchDataProcessing.cpp | 46 +- .../src/dali/utc-Dali-TouchProcessing.cpp | 1632 -------------------- automated-tests/src/dali/utc-Dali-TypeRegistry.cpp | 18 +- automated-tests/src/dali/utc-Dali-WeakHandle.cpp | 5 - dali/devel-api/common/stage.cpp | 7 - dali/devel-api/common/stage.h | 26 +- dali/devel-api/events/touch-data-devel.h | 45 - dali/devel-api/file.list | 2 - .../events/touch-data-integ.cpp} | 27 +- dali/integration-api/events/touch-data-integ.h | 42 + dali/integration-api/events/touch-event-integ.h | 3 +- dali/integration-api/file.list | 2 + dali/internal/event/actors/actor-impl.cpp | 30 +- dali/internal/event/actors/actor-impl.h | 20 +- dali/internal/event/actors/custom-actor-internal.h | 8 - dali/internal/event/common/scene-impl.cpp | 11 +- dali/internal/event/common/scene-impl.h | 14 +- dali/internal/event/common/stage-impl.cpp | 25 +- dali/internal/event/common/stage-impl.h | 16 +- dali/internal/event/events/touch-data-impl.h | 4 +- .../event/events/touch-event-processor.cpp | 46 +- dali/public-api/actors/actor.cpp | 7 - dali/public-api/actors/actor.h | 22 +- dali/public-api/actors/custom-actor-impl.h | 13 - dali/public-api/dali-core.h | 1 - dali/public-api/events/touch-event.cpp | 55 - dali/public-api/events/touch-event.h | 115 -- dali/public-api/file.list | 2 - dali/public-api/signals/dali-signal.h | 4 +- 49 files changed, 227 insertions(+), 2476 deletions(-) delete mode 100644 automated-tests/src/dali/dali-test-suite-utils/test-touch-utils.h delete mode 100644 automated-tests/src/dali/utc-Dali-TouchProcessing.cpp delete mode 100755 dali/devel-api/events/touch-data-devel.h rename dali/{devel-api/events/touch-data-devel.cpp => integration-api/events/touch-data-integ.cpp} (58%) mode change 100755 => 100644 create mode 100644 dali/integration-api/events/touch-data-integ.h delete mode 100644 dali/public-api/events/touch-event.cpp delete mode 100644 dali/public-api/events/touch-event.h diff --git a/automated-tests/src/dali/CMakeLists.txt b/automated-tests/src/dali/CMakeLists.txt index 632363b..5c90a0e 100644 --- a/automated-tests/src/dali/CMakeLists.txt +++ b/automated-tests/src/dali/CMakeLists.txt @@ -93,7 +93,6 @@ SET(TC_SOURCES utc-Dali-Thread.cpp utc-Dali-ThreadPool.cpp utc-Dali-TouchEventCombiner.cpp - utc-Dali-TouchProcessing.cpp utc-Dali-TouchDataProcessing.cpp utc-Dali-TypeRegistry.cpp utc-Dali-CSharp-TypeRegistry.cpp diff --git a/automated-tests/src/dali/dali-test-suite-utils/test-custom-actor.cpp b/automated-tests/src/dali/dali-test-suite-utils/test-custom-actor.cpp index 42839f0..5723f7f 100644 --- a/automated-tests/src/dali/dali-test-suite-utils/test-custom-actor.cpp +++ b/automated-tests/src/dali/dali-test-suite-utils/test-custom-actor.cpp @@ -336,11 +336,6 @@ void TestCustomActor::OnSizeAnimation(Animation& animation, const Vector3& targe mTargetSize = targetSize; AddToCallStacks("OnSizeAnimation"); } -bool TestCustomActor::OnTouchEvent(const TouchEvent& event) -{ - AddToCallStacks("OnTouchEvent"); - return true; -} bool TestCustomActor::OnHoverEvent(const HoverEvent& event) { AddToCallStacks("OnHoverEvent"); diff --git a/automated-tests/src/dali/dali-test-suite-utils/test-custom-actor.h b/automated-tests/src/dali/dali-test-suite-utils/test-custom-actor.h index 58e3f5c..907072f 100644 --- a/automated-tests/src/dali/dali-test-suite-utils/test-custom-actor.h +++ b/automated-tests/src/dali/dali-test-suite-utils/test-custom-actor.h @@ -131,28 +131,27 @@ public: virtual void OnInitialize( const char* name ); void ResetCallStack(); void AddToCallStacks( const char* method ); - virtual void OnSceneConnection( int depth ); - virtual void OnSceneDisconnection(); - virtual void OnChildAdd(Dali::Actor& child); - virtual void OnChildRemove(Dali::Actor& child); - virtual void OnPropertySet( Dali::Property::Index index, Dali::Property::Value propertyValue ); - virtual void OnSizeSet(const Dali::Vector3& targetSize); - virtual void OnSizeAnimation(Dali::Animation& animation, const Dali::Vector3& targetSize); - virtual bool OnTouchEvent(const Dali::TouchEvent& event); - virtual bool OnHoverEvent(const Dali::HoverEvent& event); - virtual bool OnWheelEvent(const Dali::WheelEvent& event); - virtual bool OnKeyEvent(const Dali::KeyEvent& event); + void OnSceneConnection( int depth ) override; + void OnSceneDisconnection() override; + void OnChildAdd(Dali::Actor& child) override; + void OnChildRemove(Dali::Actor& child) override; + void OnPropertySet( Dali::Property::Index index, Dali::Property::Value propertyValue ) override; + void OnSizeSet(const Dali::Vector3& targetSize) override; + void OnSizeAnimation(Dali::Animation& animation, const Dali::Vector3& targetSize) override; + bool OnHoverEvent(const Dali::HoverEvent& event) override; + bool OnWheelEvent(const Dali::WheelEvent& event) override; + bool OnKeyEvent(const Dali::KeyEvent& event) override; virtual void OnKeyInputFocusGained(); virtual void OnKeyInputFocusLost(); - virtual Dali::Vector3 GetNaturalSize(); - virtual float GetHeightForWidth( float width ); - virtual float GetWidthForHeight( float height ); - virtual void OnRelayout( const Dali::Vector2& size, Dali::RelayoutContainer& container ); - virtual void OnSetResizePolicy( Dali::ResizePolicy::Type policy, Dali::Dimension::Type dimension ); - virtual void OnCalculateRelayoutSize( Dali::Dimension::Type dimension ); - virtual float CalculateChildSize( const Dali::Actor& child, Dali::Dimension::Type dimension ); - virtual void OnLayoutNegotiated( float size, Dali::Dimension::Type dimension ); - virtual bool RelayoutDependentOnChildren( Dali::Dimension::Type dimension = Dali::Dimension::ALL_DIMENSIONS ); + Dali::Vector3 GetNaturalSize() override; + float GetHeightForWidth( float width ) override; + float GetWidthForHeight( float height ) override; + void OnRelayout( const Dali::Vector2& size, Dali::RelayoutContainer& container ) override; + void OnSetResizePolicy( Dali::ResizePolicy::Type policy, Dali::Dimension::Type dimension ) override; + void OnCalculateRelayoutSize( Dali::Dimension::Type dimension ) override; + float CalculateChildSize( const Dali::Actor& child, Dali::Dimension::Type dimension ) override; + void OnLayoutNegotiated( float size, Dali::Dimension::Type dimension ) override; + bool RelayoutDependentOnChildren( Dali::Dimension::Type dimension = Dali::Dimension::ALL_DIMENSIONS ) override; static void SetProperty( Dali::BaseObject* object, Dali::Property::Index index, const Dali::Property::Value& value ); static Dali::Property::Value GetProperty( Dali::BaseObject* object, Dali::Property::Index index ); @@ -208,7 +207,7 @@ struct TestCustomActorVariant1 : public TestCustomActor } // From CustomActorImpl - virtual void OnSceneConnection( int depth ) + void OnSceneConnection( int depth ) override { // Chain up first TestCustomActor::OnSceneConnection( depth ); @@ -444,37 +443,33 @@ public: } // From CustomActorImpl - virtual void OnSceneConnection( int depth ) + void OnSceneConnection( int depth ) override { } - virtual void OnSceneDisconnection() + void OnSceneDisconnection() override { } - virtual void OnChildAdd(Dali::Actor& child) + void OnChildAdd(Dali::Actor& child) override { } - virtual void OnChildRemove(Dali::Actor& child) + void OnChildRemove(Dali::Actor& child) override { } - virtual void OnSizeSet(const Dali::Vector3& targetSize) + void OnSizeSet(const Dali::Vector3& targetSize) override { } - virtual void OnSizeAnimation(Dali::Animation& animation, const Dali::Vector3& targetSize) + void OnSizeAnimation(Dali::Animation& animation, const Dali::Vector3& targetSize) override { } - virtual bool OnTouchEvent(const Dali::TouchEvent& event) - { - return true; - } - virtual bool OnHoverEvent(const Dali::HoverEvent& event) + bool OnHoverEvent(const Dali::HoverEvent& event) override { return true; } - virtual bool OnWheelEvent(const Dali::WheelEvent& event) + bool OnWheelEvent(const Dali::WheelEvent& event) override { return true; } - virtual bool OnKeyEvent(const Dali::KeyEvent& event) + bool OnKeyEvent(const Dali::KeyEvent& event) override { return true; } @@ -485,43 +480,43 @@ public: { } - virtual Dali::Vector3 GetNaturalSize() + Dali::Vector3 GetNaturalSize() override { return Dali::Vector3( 0.0f, 0.0f, 0.0f ); } - virtual float GetHeightForWidth( float width ) + float GetHeightForWidth( float width ) override { return 0.0f; } - virtual float GetWidthForHeight( float height ) + float GetWidthForHeight( float height ) override { return 0.0f; } - virtual void OnRelayout( const Dali::Vector2& size, Dali::RelayoutContainer& container ) + void OnRelayout( const Dali::Vector2& size, Dali::RelayoutContainer& container ) override { } - virtual void OnSetResizePolicy( Dali::ResizePolicy::Type policy, Dali::Dimension::Type dimension ) + void OnSetResizePolicy( Dali::ResizePolicy::Type policy, Dali::Dimension::Type dimension ) override { } - virtual void OnCalculateRelayoutSize( Dali::Dimension::Type dimension ) + void OnCalculateRelayoutSize( Dali::Dimension::Type dimension ) override { } - virtual float CalculateChildSize( const Dali::Actor& child, Dali::Dimension::Type dimension ) + float CalculateChildSize( const Dali::Actor& child, Dali::Dimension::Type dimension ) override { return 0.0f; } - virtual void OnLayoutNegotiated( float size, Dali::Dimension::Type dimension ) + void OnLayoutNegotiated( float size, Dali::Dimension::Type dimension ) override { } - virtual bool RelayoutDependentOnChildren( Dali::Dimension::Type dimension = Dali::Dimension::ALL_DIMENSIONS ) + bool RelayoutDependentOnChildren( Dali::Dimension::Type dimension = Dali::Dimension::ALL_DIMENSIONS ) override { return false; } diff --git a/automated-tests/src/dali/dali-test-suite-utils/test-touch-utils.h b/automated-tests/src/dali/dali-test-suite-utils/test-touch-utils.h deleted file mode 100644 index 3a623cb..0000000 --- a/automated-tests/src/dali/dali-test-suite-utils/test-touch-utils.h +++ /dev/null @@ -1,81 +0,0 @@ -#ifndef TEST_TOUCH_UTILS_H -#define TEST_TOUCH_UTILS_H - -/* - * 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. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -#include - -namespace Dali -{ - -// Data for touch events -struct TouchEventData -{ - TouchEventData() - : functorCalled(false), - receivedTouch(), - touchActor() - { - } - - void Reset() - { - functorCalled = false; - - receivedTouch.points.clear(); - receivedTouch.time = 0; - - touchActor.Reset(); - } - - bool functorCalled; - TouchEvent receivedTouch; - Actor touchActor; -}; - -// Functor that sets the data when called -struct TouchEventDataFunctor -{ - TouchEventDataFunctor(TouchEventData& data) : touchEventData(data) { } - - bool operator()(Actor actor, const TouchEvent& touch) - { - touchEventData.functorCalled = true; - touchEventData.touchActor = actor; - touchEventData.receivedTouch = touch; - return false; - } - - // Generate a touch-event - Integration::TouchEvent GenerateSingleTouch( PointState::Type state, const Vector2& screenPosition ) const - { - Integration::TouchEvent touchEvent; - Integration::Point point; - point.SetState( state ); - point.SetScreenPosition( screenPosition ); - touchEvent.points.push_back( point ); - return touchEvent; - } - - TouchEventData& touchEventData; -}; - - -} // namespace Dali - -#endif // TEST_TOUCH_UTILS_H diff --git a/automated-tests/src/dali/utc-Dali-Actor.cpp b/automated-tests/src/dali/utc-Dali-Actor.cpp index 65ea50b..c9d7ea3 100644 --- a/automated-tests/src/dali/utc-Dali-Actor.cpp +++ b/automated-tests/src/dali/utc-Dali-Actor.cpp @@ -88,12 +88,6 @@ struct TestConstraintRef unsigned int mValue; }; -static bool TestCallback(Actor actor, const TouchEvent& event) -{ - gTouchCallBackCalled = true; - return false; - END_TEST; -} static bool TestTouchCallback(Actor actor, const TouchData& touchData ) { @@ -2647,7 +2641,7 @@ int UtcDaliActorTouchedSignal(void) application.Render(); // connect to its touch signal - actor.TouchedSignal().Connect( TestCallback ); + actor.TouchSignal().Connect( TestTouchCallback ); // simulate a touch event in the middle of the screen Vector2 touchPoint( application.GetScene().GetSize() * 0.5 ); @@ -2888,7 +2882,7 @@ int UtcDaliActorHitTest(void) DALI_TEST_CHECK( !gTouchCallBackCalled ); // connect to its touch signal - actor.TouchedSignal().Connect(TestCallback); + actor.TouchSignal().Connect(TestTouchCallback); Dali::Integration::Point point; point.SetState( PointState::DOWN ); @@ -7742,7 +7736,7 @@ int utcDaliActorPartialUpdateSetProperty(void) TestApplication::DEFAULT_VERTICAL_DPI, true, true); - + tet_infoline( "Set/Update property with partial update" ); const TestGlAbstraction::ScissorParams& glScissorParams(application.GetGlAbstraction().GetScissorParams()); diff --git a/automated-tests/src/dali/utc-Dali-BaseHandle.cpp b/automated-tests/src/dali/utc-Dali-BaseHandle.cpp index f147800..1402b98 100644 --- a/automated-tests/src/dali/utc-Dali-BaseHandle.cpp +++ b/automated-tests/src/dali/utc-Dali-BaseHandle.cpp @@ -475,7 +475,7 @@ int UtcDaliBaseHandleConnectSignal(void) DALI_TEST_CHECK( gTouchCallBackCalled == false ); // connect to its touch signal - actor.ConnectSignal( &application, "touched", TestCallback() ); + actor.ConnectSignal( &application, "touch", TestCallback() ); application.SendNotification(); application.Render(1000); diff --git a/automated-tests/src/dali/utc-Dali-CustomActor.cpp b/automated-tests/src/dali/utc-Dali-CustomActor.cpp index ad9943a..bce0c34 100644 --- a/automated-tests/src/dali/utc-Dali-CustomActor.cpp +++ b/automated-tests/src/dali/utc-Dali-CustomActor.cpp @@ -997,40 +997,6 @@ int UtcDaliCustomActorSizeComponentAnimation(void) DALI_TEST_EQUALS( "OnSizeAnimation", custom.GetMethodsCalled()[ 2 ], TEST_LOCATION ); END_TEST; - -} - -int UtcDaliCustomActorOnTouchEvent(void) -{ - TestApplication application; - tet_infoline("Testing Dali::CustomActor::OnTouchEvent()"); - - Test::TestCustomActor custom = Test::TestCustomActor::New(); - DALI_TEST_EQUALS( 0, (int)(custom.GetMethodsCalled().size()), TEST_LOCATION ); - - // set size for custom actor - custom.SetProperty( Actor::Property::SIZE, Vector2( 100, 100 ) ); - // add the custom actor to stage - application.GetScene().Add( custom ); - custom.ResetCallStack(); - - // Render and notify a couple of times - application.SendNotification(); - application.Render(); - application.SendNotification(); - application.Render(); - - // simulate a touch event - Dali::Integration::Point point; - point.SetState( PointState::DOWN ); - point.SetScreenPosition( Vector2( 1, 1 ) ); - Dali::Integration::TouchEvent event; - event.AddPoint( point ); - application.ProcessEvent( event ); - - DALI_TEST_EQUALS( 1, (int)(custom.GetMethodsCalled().size()), TEST_LOCATION ); - DALI_TEST_EQUALS( "OnTouchEvent", custom.GetMethodsCalled()[ 0 ], TEST_LOCATION ); - END_TEST; } int UtcDaliCustomActorOnHoverEvent(void) @@ -1448,8 +1414,6 @@ struct UnregisteredCustomActor : public Dali::CustomActorImpl { } virtual void OnSizeAnimation(Animation& animation, const Vector3& targetSize) { } - virtual bool OnTouchEvent(const TouchEvent& event) DALI_DEPRECATED_API - { return false; } virtual bool OnHoverEvent(const HoverEvent& event) { return false; } virtual bool OnKeyEvent(const KeyEvent& event) @@ -1620,4 +1584,3 @@ int UtcDaliCustomActorPropertyRegistrationDefaultValue(void) END_TEST; } - diff --git a/automated-tests/src/dali/utc-Dali-LongPressGestureDetector.cpp b/automated-tests/src/dali/utc-Dali-LongPressGestureDetector.cpp index 1053762..a95c166 100644 --- a/automated-tests/src/dali/utc-Dali-LongPressGestureDetector.cpp +++ b/automated-tests/src/dali/utc-Dali-LongPressGestureDetector.cpp @@ -24,7 +24,6 @@ #include #include #include -#include #include using namespace Dali; @@ -116,16 +115,15 @@ struct UnstageActorFunctor : public GestureReceivedFunctor }; // Functor for receiving a touch event -struct TouchEventFunctor +struct TouchDataFunctor { - bool operator()(Actor actor, const TouchEvent& touch) + bool operator()(Actor actor, Dali::TouchData touch) { //For line coverage unsigned int points = touch.GetPointCount(); if( points > 0) { - const TouchPoint& touchPoint = touch.GetPoint(0); - tet_printf("Touch Point state = %d\n", touchPoint.state); + tet_printf("Touch Point state = %d\n", touch.GetState(0)); } return false; } @@ -209,8 +207,8 @@ int UtcDaliLongPressGestureDetectorNew(void) detector.Attach(actor); - TouchEventFunctor touchFunctor; - actor.TouchedSignal().Connect(&application, touchFunctor); + TouchDataFunctor touchFunctor; + actor.TouchSignal().Connect(&application, touchFunctor); Integration::TouchEvent touchEvent(1); Integration::Point point; @@ -224,8 +222,6 @@ int UtcDaliLongPressGestureDetectorNew(void) application.SendNotification(); application.Render(); - // For line coverage, Initialise default constructor - TouchEvent touchEvent2; END_TEST; } @@ -494,9 +490,6 @@ int UtcDaliLongPressGestureSignalReceptionChildHit(void) child.SetProperty( Actor::Property::ORIENTATION, Quaternion(Dali::Degree(90.0f), Vector3::ZAXIS) ); parent.Add(child); - TouchEventFunctor touchFunctor; - child.TouchedSignal().Connect(&application, touchFunctor); - // Render and notify application.SendNotification(); application.Render(); diff --git a/automated-tests/src/dali/utc-Dali-LongPressGestureRecognizer.cpp b/automated-tests/src/dali/utc-Dali-LongPressGestureRecognizer.cpp index eb90df5..456dac7 100644 --- a/automated-tests/src/dali/utc-Dali-LongPressGestureRecognizer.cpp +++ b/automated-tests/src/dali/utc-Dali-LongPressGestureRecognizer.cpp @@ -24,7 +24,7 @@ #include #include #include -#include + using namespace Dali; diff --git a/automated-tests/src/dali/utc-Dali-PanGestureDetector.cpp b/automated-tests/src/dali/utc-Dali-PanGestureDetector.cpp index f615f80..fd9d240 100644 --- a/automated-tests/src/dali/utc-Dali-PanGestureDetector.cpp +++ b/automated-tests/src/dali/utc-Dali-PanGestureDetector.cpp @@ -25,7 +25,6 @@ #include #include #include -#include #include using namespace Dali; @@ -120,15 +119,6 @@ struct UnstageActorFunctor : public GestureReceivedFunctor Integration::Scene scene; }; -// Functor for receiving a touch event -struct TouchEventFunctor -{ - bool operator()(Actor actor, const TouchEvent& touch) - { - return false; - } -}; - // Data for constraints struct ConstraintData { @@ -826,8 +816,6 @@ int UtcDaliPanGestureSignalReceptionChildHit(void) child.SetProperty( Actor::Property::ORIENTATION, Quaternion(Dali::Degree(90.0f), Vector3::ZAXIS) ); parent.Add(child); - TouchEventFunctor touchFunctor; - child.TouchedSignal().Connect(&application, touchFunctor); // Render and notify application.SendNotification(); diff --git a/automated-tests/src/dali/utc-Dali-PanGestureRecognizer.cpp b/automated-tests/src/dali/utc-Dali-PanGestureRecognizer.cpp index dac0418..e79b6a3 100644 --- a/automated-tests/src/dali/utc-Dali-PanGestureRecognizer.cpp +++ b/automated-tests/src/dali/utc-Dali-PanGestureRecognizer.cpp @@ -23,7 +23,7 @@ #include #include #include -#include + using namespace Dali; diff --git a/automated-tests/src/dali/utc-Dali-PinchGestureDetector.cpp b/automated-tests/src/dali/utc-Dali-PinchGestureDetector.cpp index c8f30b2..93d5c8b 100644 --- a/automated-tests/src/dali/utc-Dali-PinchGestureDetector.cpp +++ b/automated-tests/src/dali/utc-Dali-PinchGestureDetector.cpp @@ -22,7 +22,6 @@ #include #include #include -#include #include using namespace Dali; @@ -114,15 +113,6 @@ struct UnstageActorFunctor : public GestureReceivedFunctor Integration::Scene scene; }; -// Functor for receiving a touch event -struct TouchEventFunctor -{ - bool operator()(Actor actor, const TouchEvent& touch) - { - return false; - } -}; - } // anon namespace /////////////////////////////////////////////////////////////////////////////// @@ -622,9 +612,6 @@ int UtcDaliPinchGestureSignalReceptionChildHit(void) child.SetProperty( Actor::Property::ORIENTATION, Quaternion(Dali::Degree(90.0f), Vector3::ZAXIS) ); parent.Add(child); - TouchEventFunctor touchFunctor; - child.TouchedSignal().Connect(&application, touchFunctor); - // Render and notify application.SendNotification(); application.Render(); @@ -1166,6 +1153,7 @@ int UtcDaliPinchGestureInterruptedWhenTouchConsumed(void) END_TEST; } + int UtcDaliPinchGestureDisableDetectionDuringPinchN(void) { // Crash sometimes occurred when gesture-recognizer was deleted internally during a signal when the attached actor was detached diff --git a/automated-tests/src/dali/utc-Dali-PinchGestureRecognizer.cpp b/automated-tests/src/dali/utc-Dali-PinchGestureRecognizer.cpp index cfdc7a8..940dc90 100644 --- a/automated-tests/src/dali/utc-Dali-PinchGestureRecognizer.cpp +++ b/automated-tests/src/dali/utc-Dali-PinchGestureRecognizer.cpp @@ -23,7 +23,6 @@ #include #include #include -#include using namespace Dali; diff --git a/automated-tests/src/dali/utc-Dali-RotationGestureDetector.cpp b/automated-tests/src/dali/utc-Dali-RotationGestureDetector.cpp index 0219e84..75653c4 100644 --- a/automated-tests/src/dali/utc-Dali-RotationGestureDetector.cpp +++ b/automated-tests/src/dali/utc-Dali-RotationGestureDetector.cpp @@ -25,7 +25,6 @@ #include #include #include -#include #include using namespace Dali; @@ -116,15 +115,6 @@ struct UnstageActorFunctor : public GestureReceivedFunctor Integration::Scene scene; }; -// Functor for receiving a touch event -struct TouchEventFunctor -{ - bool operator()(Actor actor, const TouchEvent& touch) - { - return false; - } -}; - } // anon namespace /////////////////////////////////////////////////////////////////////////////// @@ -614,9 +604,6 @@ int UtcDaliRotationGestureSignalReceptionChildHit(void) child.SetProperty( Actor::Property::ORIENTATION, Quaternion(Dali::Degree(90.0f), Vector3::ZAXIS) ); parent.Add(child); - TouchEventFunctor touchFunctor; - child.TouchedSignal().Connect(&application, touchFunctor); - // Render and notify application.SendNotification(); application.Render(); @@ -1205,4 +1192,3 @@ int UtcDaliRotationGestureDisableDetectionDuringRotationN(void) END_TEST; } - diff --git a/automated-tests/src/dali/utc-Dali-RotationGestureRecognizer.cpp b/automated-tests/src/dali/utc-Dali-RotationGestureRecognizer.cpp index 3d23517..dd92e00 100644 --- a/automated-tests/src/dali/utc-Dali-RotationGestureRecognizer.cpp +++ b/automated-tests/src/dali/utc-Dali-RotationGestureRecognizer.cpp @@ -24,7 +24,7 @@ #include #include #include -#include + using namespace Dali; diff --git a/automated-tests/src/dali/utc-Dali-Scene.cpp b/automated-tests/src/dali/utc-Dali-Scene.cpp index a808711..374928f 100644 --- a/automated-tests/src/dali/utc-Dali-Scene.cpp +++ b/automated-tests/src/dali/utc-Dali-Scene.cpp @@ -103,35 +103,16 @@ struct TouchedSignalData functorCalled = false; createNewScene = false; newSceneCreated = false; - - receivedTouchEvent.points.clear(); - receivedTouchEvent.time = 0; - receivedTouchData.Reset(); } bool functorCalled; bool createNewScene; bool newSceneCreated; - TouchEvent receivedTouchEvent; TouchData receivedTouchData; }; // Functor that sets the data when touched signal is received -struct TouchedFunctor -{ - TouchedFunctor( TouchedSignalData& data ) : signalData( data ) { } - - void operator()( const TouchEvent& touch ) - { - signalData.functorCalled = true; - signalData.receivedTouchEvent = touch; - } - - TouchedSignalData& signalData; -}; - -// Functor that sets the data when touched signal is received struct TouchFunctor { TouchFunctor( TouchedSignalData& data ) : signalData( data ) { } @@ -139,7 +120,8 @@ struct TouchFunctor void operator()( const TouchData& touch ) { signalData.functorCalled = true; - signalData.receivedTouchData = touch; + Dali::TouchData touchData (touch); + signalData.receivedTouchData = touchData; if ( signalData.createNewScene ) { @@ -244,7 +226,7 @@ void GenerateTouch( TestApplication& application, PointState::Type state, const application.ProcessEvent( touchEvent ); } -bool DummyTouchCallback( Actor actor, const TouchEvent& touch ) +bool DummyTouchCallback( Actor actor, const TouchData& touch ) { return true; } @@ -678,7 +660,7 @@ int UtcDaliSceneTouchSignalP(void) actor.SetProperty( Actor::Property::SIZE, Vector2( 100.0f, 100.0f ) ); actor.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT ); actor.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT ); - actor.TouchedSignal().Connect( &DummyTouchCallback ); + actor.TouchSignal().Connect( &DummyTouchCallback ); scene.Add( actor ); // Render and notify. @@ -801,7 +783,7 @@ int UtcDaliSceneTouchSignalN(void) actor.SetProperty( Actor::Property::SIZE, Vector2( 100.0f, 100.0f ) ); actor.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT ); actor.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT ); - actor.TouchedSignal().Connect( &DummyTouchCallback ); + actor.TouchSignal().Connect( &DummyTouchCallback ); scene.Add( actor ); // Render and notify. @@ -1195,7 +1177,7 @@ int UtcDaliSceneEmptySceneRendering(void) Actor actor = Actor::New(); actor.AddRenderer( renderer ); - + actor.SetProperty( Actor::Property::SIZE, Vector2( 400, 400 ) ); application.GetScene().Add( actor ); diff --git a/automated-tests/src/dali/utc-Dali-Scripting.cpp b/automated-tests/src/dali/utc-Dali-Scripting.cpp index 2ae4abf..f0571f1 100644 --- a/automated-tests/src/dali/utc-Dali-Scripting.cpp +++ b/automated-tests/src/dali/utc-Dali-Scripting.cpp @@ -163,7 +163,7 @@ int UtcDaliScriptingNewActorNegative(void) DALI_TEST_CHECK( !handle.WheelEventSignal().GetConnectionCount() ); DALI_TEST_CHECK( !handle.OffSceneSignal().GetConnectionCount() ); DALI_TEST_CHECK( !handle.OnSceneSignal().GetConnectionCount() ); - DALI_TEST_CHECK( !handle.TouchedSignal().GetConnectionCount() ); + DALI_TEST_CHECK( !handle.TouchSignal().GetConnectionCount() ); } END_TEST; } diff --git a/automated-tests/src/dali/utc-Dali-Stage.cpp b/automated-tests/src/dali/utc-Dali-Stage.cpp index 2456d79..4ea5f5a 100644 --- a/automated-tests/src/dali/utc-Dali-Stage.cpp +++ b/automated-tests/src/dali/utc-Dali-Stage.cpp @@ -145,9 +145,9 @@ struct KeyEventReceivedFunctor }; // Stores data that is populated in the touched signal callback and will be read by the TET cases -struct TouchedSignalData +struct TouchSignalData { - TouchedSignalData() + TouchSignalData() : functorCalled(false) {} @@ -155,41 +155,23 @@ struct TouchedSignalData { functorCalled = false; - receivedTouchEvent.points.clear(); - receivedTouchEvent.time = 0; - receivedTouchData.Reset(); } bool functorCalled; - TouchEvent receivedTouchEvent; TouchData receivedTouchData; }; // Functor that sets the data when touched signal is received -struct TouchedFunctor -{ - TouchedFunctor( TouchedSignalData& data ) : signalData( data ) { } - - void operator()( const TouchEvent& touch ) - { - signalData.functorCalled = true; - signalData.receivedTouchEvent = touch; - } - - TouchedSignalData& signalData; -}; - - -// Functor that sets the data when touched signal is received struct TouchFunctor { - TouchFunctor( TouchedSignalData& data ) : signalData( data ) { } + TouchFunctor( TouchSignalData& data ) : signalData( data ) { } void operator()( const TouchData& touch ) { signalData.functorCalled = true; - signalData.receivedTouchData = touch; + TouchData handle(touch); + signalData.receivedTouchData = handle; } void operator()() @@ -197,7 +179,7 @@ struct TouchFunctor signalData.functorCalled = true; } - TouchedSignalData& signalData; + TouchSignalData& signalData; }; // Stores data that is populated in the wheel-event callback and will be read by the TET cases @@ -232,7 +214,7 @@ struct WheelEventReceivedFunctor WheelEventSignalData& signalData; }; -bool DummyTouchCallback( Actor actor, const TouchEvent& touch ) +bool DummyTouchCallback( Actor actor, const TouchData& touch ) { return true; } @@ -1001,9 +983,9 @@ int UtcDaliStageTouchedSignalP(void) TestApplication application; Stage stage = Stage::GetCurrent(); - TouchedSignalData data; - TouchedFunctor functor( data ); - stage.TouchedSignal().Connect( &application, functor ); + TouchSignalData data; + TouchFunctor functor( data ); + stage.TouchSignal().Connect( &application, functor ); // Render and notify. application.SendNotification(); @@ -1014,15 +996,16 @@ int UtcDaliStageTouchedSignalP(void) GenerateTouch( application, PointState::DOWN, Vector2( 10.0f, 10.0f ) ); DALI_TEST_EQUALS( true, data.functorCalled, TEST_LOCATION ); - DALI_TEST_CHECK( data.receivedTouchEvent.GetPointCount() != 0u ); - DALI_TEST_CHECK( !data.receivedTouchEvent.points[0].hitActor ); + DALI_TEST_CHECK( data.receivedTouchData.GetPointCount() != 0u ); + DALI_TEST_CHECK( !data.receivedTouchData.GetHitActor(0) ); data.Reset(); GenerateTouch( application, PointState::UP, Vector2( 10.0f, 10.0f ) ); DALI_TEST_EQUALS( true, data.functorCalled, TEST_LOCATION ); - DALI_TEST_CHECK( data.receivedTouchEvent.GetPointCount() != 0u ); - DALI_TEST_CHECK( !data.receivedTouchEvent.points[0].hitActor ); + DALI_TEST_CHECK( data.receivedTouchData.GetPointCount() != 0u ); + DALI_TEST_CHECK( !data.receivedTouchData.GetHitActor(0) ); + data.Reset(); } @@ -1031,7 +1014,7 @@ int UtcDaliStageTouchedSignalP(void) actor.SetProperty( Actor::Property::SIZE, Vector2( 100.0f, 100.0f ) ); actor.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT ); actor.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT ); - actor.TouchedSignal().Connect( &DummyTouchCallback ); + actor.TouchSignal().Connect( &DummyTouchCallback ); stage.Add( actor ); // Render and notify. @@ -1043,8 +1026,8 @@ int UtcDaliStageTouchedSignalP(void) GenerateTouch( application, PointState::DOWN, Vector2( 10.0f, 10.0f ) ); DALI_TEST_EQUALS( true, data.functorCalled, TEST_LOCATION ); - DALI_TEST_CHECK( data.receivedTouchEvent.GetPointCount() != 0u ); - DALI_TEST_CHECK( data.receivedTouchEvent.points[0].hitActor == actor ); + DALI_TEST_CHECK( data.receivedTouchData.GetPointCount() != 0u ); + DALI_TEST_CHECK( data.receivedTouchData.GetHitActor(0) ); data.Reset(); GenerateTouch( application, PointState::MOTION, Vector2( 150.0f, 10.0f ) ); // Some motion @@ -1055,8 +1038,8 @@ int UtcDaliStageTouchedSignalP(void) GenerateTouch( application, PointState::UP, Vector2( 150.0f, 10.0f ) ); // Some motion DALI_TEST_EQUALS( true, data.functorCalled, TEST_LOCATION ); - DALI_TEST_CHECK( data.receivedTouchEvent.GetPointCount() != 0u ); - DALI_TEST_CHECK( !data.receivedTouchEvent.points[0].hitActor ); + DALI_TEST_CHECK( data.receivedTouchData.GetPointCount() != 0u ); + DALI_TEST_CHECK( !data.receivedTouchData.GetHitActor(0) ); data.Reset(); } @@ -1071,7 +1054,7 @@ int UtcDaliStageTouchedSignalP(void) touchEvent.points.push_back( point ); application.ProcessEvent( touchEvent ); DALI_TEST_EQUALS( true, data.functorCalled, TEST_LOCATION ); - DALI_TEST_EQUALS( data.receivedTouchEvent.GetPointCount(), 1u, TEST_LOCATION ); + DALI_TEST_EQUALS( data.receivedTouchData.GetPointCount(), 1u, TEST_LOCATION ); data.Reset(); // 2nd point @@ -1081,7 +1064,7 @@ int UtcDaliStageTouchedSignalP(void) touchEvent.points.push_back( point ); application.ProcessEvent( touchEvent ); DALI_TEST_EQUALS( false, data.functorCalled, TEST_LOCATION ); - DALI_TEST_EQUALS( data.receivedTouchEvent.GetPointCount(), 0u, TEST_LOCATION ); + DALI_TEST_EQUALS( (bool)data.receivedTouchData, false, TEST_LOCATION ); data.Reset(); // Primary point is up @@ -1089,7 +1072,7 @@ int UtcDaliStageTouchedSignalP(void) touchEvent.points[1].SetState( PointState::STATIONARY ); application.ProcessEvent( touchEvent ); DALI_TEST_EQUALS( false, data.functorCalled, TEST_LOCATION ); - DALI_TEST_EQUALS( data.receivedTouchEvent.GetPointCount(), 0u, TEST_LOCATION ); + DALI_TEST_EQUALS( (bool)data.receivedTouchData, false, TEST_LOCATION ); data.Reset(); // Remove 1st point now, 2nd point is now in motion @@ -1098,14 +1081,14 @@ int UtcDaliStageTouchedSignalP(void) touchEvent.points[0].SetScreenPosition( Vector2( 150.0f, 50.0f ) ); application.ProcessEvent( touchEvent ); DALI_TEST_EQUALS( false, data.functorCalled, TEST_LOCATION ); - DALI_TEST_EQUALS( data.receivedTouchEvent.GetPointCount(), 0u, TEST_LOCATION ); + DALI_TEST_EQUALS( (bool)data.receivedTouchData, false, TEST_LOCATION ); data.Reset(); // Final point Up touchEvent.points[0].SetState( PointState::UP ); application.ProcessEvent( touchEvent ); DALI_TEST_EQUALS( true, data.functorCalled, TEST_LOCATION ); - DALI_TEST_EQUALS( data.receivedTouchEvent.GetPointCount(), 1u, TEST_LOCATION ); + DALI_TEST_EQUALS( data.receivedTouchData.GetPointCount(), 1u, TEST_LOCATION ); data.Reset(); } END_TEST; @@ -1116,9 +1099,9 @@ int UtcDaliStageTouchedSignalN(void) TestApplication application; Stage stage = Stage::GetCurrent(); - TouchedSignalData data; - TouchedFunctor functor( data ); - stage.TouchedSignal().Connect( &application, functor ); + TouchSignalData data; + TouchFunctor functor( data ); + stage.TouchSignal().Connect( &application, functor ); // Render and notify. application.SendNotification(); @@ -1132,8 +1115,8 @@ int UtcDaliStageTouchedSignalN(void) GenerateTouch( application, PointState::DOWN, Vector2( 10.0f, 10.0f ) ); DALI_TEST_EQUALS( true, data.functorCalled, TEST_LOCATION ); - DALI_TEST_CHECK( data.receivedTouchEvent.GetPointCount() != 0u ); - DALI_TEST_CHECK( !data.receivedTouchEvent.points[0].hitActor ); + DALI_TEST_CHECK( data.receivedTouchData.GetPointCount() != 0u ); + DALI_TEST_CHECK( !data.receivedTouchData.GetHitActor(0) ); data.Reset(); // Confirm there is no signal when the touchpoint is only moved. @@ -1146,8 +1129,8 @@ int UtcDaliStageTouchedSignalN(void) GenerateTouch( application, PointState::UP, Vector2( 1200.0f, 10.0f ) ); DALI_TEST_EQUALS( true, data.functorCalled, TEST_LOCATION ); - DALI_TEST_CHECK( data.receivedTouchEvent.GetPointCount() != 0u ); - DALI_TEST_CHECK( !data.receivedTouchEvent.points[0].hitActor ); + DALI_TEST_CHECK( data.receivedTouchData.GetPointCount() != 0u ); + DALI_TEST_CHECK( !data.receivedTouchData.GetHitActor(0) ); data.Reset(); } @@ -1156,7 +1139,7 @@ int UtcDaliStageTouchedSignalN(void) actor.SetProperty( Actor::Property::SIZE, Vector2( 100.0f, 100.0f ) ); actor.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT ); actor.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT ); - actor.TouchedSignal().Connect( &DummyTouchCallback ); + actor.TouchSignal().Connect( &DummyTouchCallback ); stage.Add( actor ); // Render and notify. @@ -1168,41 +1151,30 @@ int UtcDaliStageTouchedSignalN(void) GenerateTouch( application, PointState::INTERRUPTED, Vector2( 10.0f, 10.0f ) ); DALI_TEST_EQUALS( true, data.functorCalled, TEST_LOCATION ); - DALI_TEST_CHECK( data.receivedTouchEvent.GetPointCount() != 0u ); - DALI_TEST_CHECK( !data.receivedTouchEvent.points[0].hitActor ); - DALI_TEST_CHECK( data.receivedTouchEvent.points[0].state == TouchPoint::Interrupted ); + DALI_TEST_CHECK( data.receivedTouchData.GetPointCount() != 0u ); + DALI_TEST_CHECK( !data.receivedTouchData.GetHitActor(0) ); + DALI_TEST_CHECK( data.receivedTouchData.GetState(0) == PointState::INTERRUPTED ); data.Reset(); GenerateTouch( application, PointState::DOWN, Vector2( 10.0f, 10.0f ) ); DALI_TEST_EQUALS( true, data.functorCalled, TEST_LOCATION ); - DALI_TEST_CHECK( data.receivedTouchEvent.GetPointCount() != 0u ); - DALI_TEST_CHECK( data.receivedTouchEvent.points[0].hitActor == actor ); - DALI_TEST_CHECK( data.receivedTouchEvent.points[0].state == TouchPoint::Down ); + DALI_TEST_CHECK( data.receivedTouchData.GetPointCount() != 0u ); + DALI_TEST_CHECK( data.receivedTouchData.GetHitActor(0) == actor ); + DALI_TEST_CHECK( data.receivedTouchData.GetState(0) == PointState::DOWN ); data.Reset(); GenerateTouch( application, PointState::INTERRUPTED, Vector2( 10.0f, 10.0f ) ); DALI_TEST_EQUALS( true, data.functorCalled, TEST_LOCATION ); - DALI_TEST_CHECK( data.receivedTouchEvent.GetPointCount() != 0u ); - DALI_TEST_CHECK( !data.receivedTouchEvent.points[0].hitActor ); - DALI_TEST_CHECK( data.receivedTouchEvent.points[0].state == TouchPoint::Interrupted ); + DALI_TEST_CHECK( data.receivedTouchData.GetPointCount() != 0u ); + DALI_TEST_CHECK( !data.receivedTouchData.GetHitActor(0) ); + DALI_TEST_CHECK( data.receivedTouchData.GetState(0) == PointState::INTERRUPTED ); - DALI_TEST_EQUALS( data.receivedTouchEvent.GetPointCount(), 1u, TEST_LOCATION ); + DALI_TEST_EQUALS( data.receivedTouchData.GetPointCount(), 1u, TEST_LOCATION ); // Check that getting info about a non-existent point causes an assert. - bool asserted = false; - try - { - data.receivedTouchEvent.GetPoint( 1 ); - } - catch( Dali::DaliException& e ) - { - DALI_TEST_PRINT_ASSERT( e ); - DALI_TEST_ASSERT( e, "point < points.size() && \"No point at index\"", TEST_LOCATION ); - asserted = true; - } - DALI_TEST_CHECK( asserted ); + DALI_TEST_EQUALS( data.receivedTouchData.GetState( 1 ), PointState::FINISHED, TEST_LOCATION ); data.Reset(); } @@ -1216,7 +1188,7 @@ int UtcDaliStageTouchSignalP(void) TestApplication application; Stage stage = Stage::GetCurrent(); - TouchedSignalData data; + TouchSignalData data; TouchFunctor functor( data ); stage.TouchSignal().Connect( &application, functor ); @@ -1246,7 +1218,7 @@ int UtcDaliStageTouchSignalP(void) actor.SetProperty( Actor::Property::SIZE, Vector2( 100.0f, 100.0f ) ); actor.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT ); actor.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT ); - actor.TouchedSignal().Connect( &DummyTouchCallback ); + actor.TouchSignal().Connect( &DummyTouchCallback ); stage.Add( actor ); // Render and notify. @@ -1328,11 +1300,11 @@ int UtcDaliStageTouchSignalN(void) TestApplication application; Stage stage = Stage::GetCurrent(); - TouchedSignalData data; + TouchSignalData data; TouchFunctor functor( data ); stage.TouchSignal().Connect( &application, functor ); - TouchedSignalData data2; + TouchSignalData data2; TouchFunctor functor2( data2 ); GetImplementation( stage ).ConnectSignal( &application, "touch", functor2 ); @@ -1377,7 +1349,7 @@ int UtcDaliStageTouchSignalN(void) actor.SetProperty( Actor::Property::SIZE, Vector2( 100.0f, 100.0f ) ); actor.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT ); actor.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT ); - actor.TouchedSignal().Connect( &DummyTouchCallback ); + actor.TouchSignal().Connect( &DummyTouchCallback ); stage.Add( actor ); // Render and notify. diff --git a/automated-tests/src/dali/utc-Dali-TapGestureDetector.cpp b/automated-tests/src/dali/utc-Dali-TapGestureDetector.cpp index cf86531..4c449c6 100644 --- a/automated-tests/src/dali/utc-Dali-TapGestureDetector.cpp +++ b/automated-tests/src/dali/utc-Dali-TapGestureDetector.cpp @@ -22,7 +22,6 @@ #include #include #include -#include #include using namespace Dali; @@ -109,14 +108,13 @@ struct UnstageActorFunctor : public GestureReceivedFunctor // Functor for receiving a touch event struct TouchEventFunctor { - bool operator()(Actor actor, const TouchEvent& touch) + bool operator()(Actor actor, const TouchData& touch) { //For line coverage unsigned int points = touch.GetPointCount(); if( points > 0) { - const TouchPoint& touchPoint = touch.GetPoint(0); - tet_printf("Touch Point state = %d\n", touchPoint.state); + tet_printf("Touch Point state = %d\n", touch.GetState(0)); } return false; } @@ -195,7 +193,7 @@ int UtcDaliTapGestureDetectorNew(void) detector.Attach(actor); TouchEventFunctor touchFunctor; - actor.TouchedSignal().Connect( &application, touchFunctor ); + actor.TouchSignal().Connect( &application, touchFunctor ); Integration::TouchEvent touchEvent(1); Integration::Point point; @@ -209,8 +207,6 @@ int UtcDaliTapGestureDetectorNew(void) application.SendNotification(); application.Render(); - // For line coverage, Initialise default constructor - TouchEvent touchEvent2; END_TEST; } @@ -502,7 +498,7 @@ int UtcDaliTapGestureSignalReceptionChildHit(void) parent.Add(child); TouchEventFunctor touchFunctor; - child.TouchedSignal().Connect(&application, touchFunctor); + child.TouchSignal().Connect(&application, touchFunctor); // Render and notify application.SendNotification(); diff --git a/automated-tests/src/dali/utc-Dali-TapGestureRecognizer.cpp b/automated-tests/src/dali/utc-Dali-TapGestureRecognizer.cpp index 85d111d..13c3e77 100644 --- a/automated-tests/src/dali/utc-Dali-TapGestureRecognizer.cpp +++ b/automated-tests/src/dali/utc-Dali-TapGestureRecognizer.cpp @@ -22,7 +22,7 @@ #include #include #include -#include + using namespace Dali; diff --git a/automated-tests/src/dali/utc-Dali-TouchDataProcessing.cpp b/automated-tests/src/dali/utc-Dali-TouchDataProcessing.cpp index 95db95e..c6230fe 100644 --- a/automated-tests/src/dali/utc-Dali-TouchDataProcessing.cpp +++ b/automated-tests/src/dali/utc-Dali-TouchDataProcessing.cpp @@ -20,6 +20,7 @@ #include #include #include +#include #include #include #include @@ -260,26 +261,6 @@ struct OutOfBoundsFunctor bool returnValue; }; -struct TouchEventFunctor -{ - /** - * Constructor. - * @param[in] functorCalled Reference to a boolean which is set to true if the touch event functor is called. - */ - TouchEventFunctor( bool& functorCalled ) - : functorCalled( functorCalled ) - { - } - - bool operator()( Actor actor, const TouchEvent& touch ) - { - functorCalled = true; - return true; - } - - bool& functorCalled; -}; - Integration::TouchEvent GenerateSingleTouch( PointState::Type state, const Vector2& screenPosition ) { Integration::TouchEvent touchEvent; @@ -309,7 +290,7 @@ int UtcDaliTouchDataNormalProcessing01(void) application.SendNotification(); application.Render(); - // Connect to actor's touched signal + // Connect to actor's touch signal SignalData data; TouchDataFunctor functor( data ); actor.TouchSignal().Connect( &application, functor ); @@ -1914,7 +1895,7 @@ int UtcDaliTouchDataGetPressure(void) END_TEST; } -int UtcDaliTouchDataAndEventUsage(void) +int UtcDaliTouchDataUsage(void) { TestApplication application; @@ -1932,15 +1913,11 @@ int UtcDaliTouchDataAndEventUsage(void) TouchDataFunctor functor( data ); actor.TouchSignal().Connect( &application, functor ); - // Connect to actor's touched signal (OLD) - bool touchEventFunctorCalled = false; - TouchEventFunctor eventFunctor( touchEventFunctorCalled ); - actor.TouchedSignal().Connect( &application, eventFunctor ); // Emit a down signal with an angle application.ProcessEvent( GenerateSingleTouch( PointState::DOWN, Vector2( 10.0f, 10.0f ) ) ); DALI_TEST_EQUALS( true, data.functorCalled, TEST_LOCATION ); - DALI_TEST_EQUALS( true, touchEventFunctorCalled, TEST_LOCATION ); + END_TEST; } @@ -2088,3 +2065,18 @@ int UtcDaliTouchDataCapturePropertySet(void) END_TEST; } + +int UtcDaliTouchDataIntegNewTouchData(void) +{ + uint32_t timestamp = 92858u; + TouchPoint tp(1, TouchPoint::State::Started, 34.4f, 123.89f, 5.0f, 7.0f); + Dali::TouchData touchData = Integration::NewTouchData(timestamp, tp); + + DALI_TEST_EQUALS(touchData.GetPointCount(), 1u, TEST_LOCATION); + DALI_TEST_EQUALS(touchData.GetState(0), PointState::Type::STARTED, TEST_LOCATION ); + DALI_TEST_EQUALS(touchData.GetLocalPosition(0), Vector2(5.0f, 7.0f), TEST_LOCATION ); + DALI_TEST_EQUALS(touchData.GetScreenPosition(0), Vector2(34.4f, 123.89f), TEST_LOCATION ); + + + END_TEST; +} diff --git a/automated-tests/src/dali/utc-Dali-TouchProcessing.cpp b/automated-tests/src/dali/utc-Dali-TouchProcessing.cpp deleted file mode 100644 index 17bb058..0000000 --- a/automated-tests/src/dali/utc-Dali-TouchProcessing.cpp +++ /dev/null @@ -1,1632 +0,0 @@ -/* - * Copyright (c) 2020 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. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -#include - -#include -#include -#include -#include -#include -#include - -using namespace Dali; - -void utc_dali_touch_processing_startup(void) -{ - test_return_value = TET_UNDEF; -} - -void utc_dali_touch_processing_cleanup(void) -{ - test_return_value = TET_PASS; -} - -/////////////////////////////////////////////////////////////////////////////// - -namespace -{ - -// Stores data that is populated in the callback and will be read by the TET cases -struct SignalData -{ - SignalData() - : functorCalled( false ), - touchEvent(), - touchedActor() - { - } - - void Reset() - { - functorCalled = false; - - touchEvent.time = 0u; - touchEvent.points.clear(); - - touchedActor.Reset(); - } - - bool functorCalled; - TouchEvent touchEvent; - Actor touchedActor; -}; - -// Functor that sets the data when called -struct TouchEventFunctor -{ - /** - * Constructor. - * @param[in] data Reference to the data to store callback information. - * @param[in] returnValue What the functor should return. - */ - TouchEventFunctor( SignalData& data, bool returnValue = true ) - : signalData( data ), - returnValue( returnValue ) - { - } - - bool operator()( Actor actor, const TouchEvent& touchEvent ) - { - signalData.functorCalled = true; - signalData.touchedActor = actor; - signalData.touchEvent = touchEvent; - - return returnValue; - } - - SignalData& signalData; - bool returnValue; -}; - -// Functor that removes the actor when called. -struct RemoveActorFunctor : public TouchEventFunctor -{ - /** - * Constructor. - * @param[in] data Reference to the data to store callback information. - * @param[in] returnValue What the functor should return. - */ - RemoveActorFunctor( SignalData& data, bool returnValue = true ) - : TouchEventFunctor( data, returnValue ) - { - } - - bool operator()( Actor actor, const TouchEvent& touchEvent ) - { - Actor parent( actor.GetParent() ); - if ( parent ) - { - parent.Remove( actor ); - } - - return TouchEventFunctor::operator()( actor, touchEvent ); - } -}; - -Integration::TouchEvent GenerateSingleTouch( TouchPoint::State state, const Vector2& screenPosition ) -{ - Integration::TouchEvent touchEvent; - Integration::Point point; - point.SetState( static_cast< PointState::Type >( state ) ); - point.SetScreenPosition( screenPosition ); - touchEvent.points.push_back( point ); - return touchEvent; -} - -} // anon namespace - -/////////////////////////////////////////////////////////////////////////////// - -int UtcDaliTouchNormalProcessing(void) -{ - TestApplication application; - - Actor actor = Actor::New(); - actor.SetProperty( Actor::Property::SIZE, Vector2( 100.0f, 100.0f ) ); - actor.SetProperty( Actor::Property::ANCHOR_POINT,AnchorPoint::TOP_LEFT); - application.GetScene().Add(actor); - - // Render and notify - application.SendNotification(); - application.Render(); - - // Connect to actor's touched signal - SignalData data; - TouchEventFunctor functor( data ); - actor.TouchedSignal().Connect( &application, functor ); - - Vector2 screenCoordinates( 10.0f, 10.0f ); - Vector2 localCoordinates; - actor.ScreenToLocal( localCoordinates.x, localCoordinates.y, screenCoordinates.x, screenCoordinates.y ); - - // Emit a down signal - application.ProcessEvent( GenerateSingleTouch( TouchPoint::Down, screenCoordinates ) ); - const TouchPoint *point1 = &data.touchEvent.GetPoint(0); - DALI_TEST_EQUALS( true, data.functorCalled, TEST_LOCATION ); - DALI_TEST_EQUALS( 1u, data.touchEvent.GetPointCount(), TEST_LOCATION ); - DALI_TEST_EQUALS( TouchPoint::Down, point1->state, TEST_LOCATION ); - DALI_TEST_EQUALS( screenCoordinates, point1->screen, TEST_LOCATION ); - DALI_TEST_EQUALS( localCoordinates, point1->local, 0.1f, TEST_LOCATION ); - data.Reset(); - - // Emit a motion signal - screenCoordinates.x = screenCoordinates.y = 11.0f; - actor.ScreenToLocal( localCoordinates.x, localCoordinates.y, screenCoordinates.x, screenCoordinates.y ); - application.ProcessEvent( GenerateSingleTouch( TouchPoint::Motion, screenCoordinates ) ); - const TouchPoint *point2 = &data.touchEvent.GetPoint(0); - DALI_TEST_EQUALS( true, data.functorCalled, TEST_LOCATION ); - DALI_TEST_EQUALS( 1u, data.touchEvent.GetPointCount(), TEST_LOCATION ); - DALI_TEST_EQUALS( TouchPoint::Motion, point2->state, TEST_LOCATION ); - DALI_TEST_EQUALS( screenCoordinates, point2->screen, TEST_LOCATION ); - DALI_TEST_EQUALS( localCoordinates, point2->local, 0.1f, TEST_LOCATION ); - data.Reset(); - - // Emit an up signal - screenCoordinates.x = screenCoordinates.y = 12.0f; - actor.ScreenToLocal( localCoordinates.x, localCoordinates.y, screenCoordinates.x, screenCoordinates.y ); - application.ProcessEvent( GenerateSingleTouch( TouchPoint::Up, screenCoordinates ) ); - - const TouchPoint *point3ptr = &data.touchEvent.GetPoint(0); - TouchPoint point3( point3ptr->deviceId, point3ptr->state, point3ptr->screen.x, point3ptr->screen.y, point3ptr->local.x, point3ptr->local.y ); - - DALI_TEST_EQUALS( true, data.functorCalled, TEST_LOCATION ); - DALI_TEST_EQUALS( 1u, data.touchEvent.GetPointCount(), TEST_LOCATION ); - DALI_TEST_EQUALS( TouchPoint::Up, point3.state, TEST_LOCATION ); - DALI_TEST_EQUALS( screenCoordinates, point3.screen, TEST_LOCATION ); - DALI_TEST_EQUALS( localCoordinates, point3.local, 0.1f, TEST_LOCATION ); - data.Reset(); - - // Emit a down signal where the actor is not present - screenCoordinates.x = screenCoordinates.y = 200.0f; - application.ProcessEvent( GenerateSingleTouch( TouchPoint::Down, screenCoordinates ) ); - DALI_TEST_EQUALS( false, data.functorCalled, TEST_LOCATION ); - END_TEST; -} - -int UtcDaliTouchOutsideCameraNearFarPlanes(void) -{ - TestApplication application; - - Integration::Scene scene = application.GetScene(); - Vector2 sceneSize = scene.GetSize(); - - Actor actor = Actor::New(); - actor.SetProperty( Actor::Property::SIZE, Vector2( 100.0f, 100.0f ) ); - actor.SetProperty( Actor::Property::ANCHOR_POINT,AnchorPoint::CENTER); - actor.SetProperty( Actor::Property::PARENT_ORIGIN,ParentOrigin::CENTER); - scene.Add(actor); - - // Render and notify - application.SendNotification(); - application.Render(); - - // Get the camera's near and far planes - RenderTaskList taskList = scene.GetRenderTaskList(); - Dali::RenderTask task = taskList.GetTask(0); - CameraActor camera = task.GetCameraActor(); - float nearPlane = camera.GetNearClippingPlane(); - float farPlane = camera.GetFarClippingPlane(); - - // Calculate the current distance of the actor from the camera - float tanHalfFov = tanf(camera.GetFieldOfView() * 0.5f); - float distance = (sceneSize.y * 0.5f) / tanHalfFov; - - // Connect to actor's touched signal - SignalData data; - TouchEventFunctor functor( data ); - actor.TouchedSignal().Connect( &application, functor ); - - Vector2 screenCoordinates( sceneSize.x * 0.5f, sceneSize.y * 0.5f ); - - // Emit a down signal - application.ProcessEvent( GenerateSingleTouch( TouchPoint::Down, screenCoordinates ) ); - DALI_TEST_EQUALS( true, data.functorCalled, TEST_LOCATION ); - data.Reset(); - - // Emit a down signal where actor is just at the camera's near plane - actor.SetProperty( Actor::Property::POSITION_Z, distance - nearPlane); - - // Render and notify - application.SendNotification(); - application.Render(); - - application.ProcessEvent( GenerateSingleTouch( TouchPoint::Down, screenCoordinates ) ); - DALI_TEST_EQUALS( true, data.functorCalled, TEST_LOCATION ); - data.Reset(); - - // Emit a down signal where actor is closer than the camera's near plane - actor.SetProperty( Actor::Property::POSITION_Z, (distance - nearPlane) + 1.0f); - - // Render and notify - application.SendNotification(); - application.Render(); - - application.ProcessEvent( GenerateSingleTouch( TouchPoint::Down, screenCoordinates ) ); - DALI_TEST_EQUALS( false, data.functorCalled, TEST_LOCATION ); - data.Reset(); - - // Emit a down signal where actor is just at the camera's far plane - actor.SetProperty( Actor::Property::POSITION_Z, distance - farPlane); - - // Render and notify - application.SendNotification(); - application.Render(); - - application.ProcessEvent( GenerateSingleTouch( TouchPoint::Down, screenCoordinates ) ); - DALI_TEST_EQUALS( true, data.functorCalled, TEST_LOCATION ); - data.Reset(); - - // Emit a down signal where actor is further than the camera's far plane - actor.SetProperty( Actor::Property::POSITION_Z, (distance - farPlane) - 1.0f); - - // Render and notify - application.SendNotification(); - application.Render(); - - application.ProcessEvent( GenerateSingleTouch( TouchPoint::Down, screenCoordinates ) ); - DALI_TEST_EQUALS( false, data.functorCalled, TEST_LOCATION ); - data.Reset(); - END_TEST; -} - -int UtcDaliTouchEmitEmpty(void) -{ - TestApplication application; - - try - { - // Emit an empty TouchEvent - Integration::TouchEvent event; - application.ProcessEvent( event ); - tet_result( TET_FAIL ); - } - catch ( Dali::DaliException& e ) - { - DALI_TEST_ASSERT( e, "!event.points.empty()", TEST_LOCATION ); - } - END_TEST; -} - -int UtcDaliTouchInterrupted(void) -{ - TestApplication application; - - Actor actor = Actor::New(); - actor.SetProperty( Actor::Property::SIZE, Vector2( 100.0f, 100.0f ) ); - actor.SetProperty( Actor::Property::ANCHOR_POINT,AnchorPoint::TOP_LEFT); - application.GetScene().Add(actor); - - // 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 ); - DALI_TEST_EQUALS( TouchPoint::Down, data.touchEvent.points[0].state, TEST_LOCATION ); - data.Reset(); - - // Emit an interrupted signal, we should be signalled regardless of whether there is a hit or not. - application.ProcessEvent( GenerateSingleTouch( TouchPoint::Interrupted, Vector2( 200.0f, 200.0f /* Outside actor */ ) ) ); - DALI_TEST_EQUALS( true, data.functorCalled, TEST_LOCATION ); - DALI_TEST_EQUALS( TouchPoint::Interrupted, data.touchEvent.points[0].state, TEST_LOCATION ); - data.Reset(); - - // Emit another interrupted signal, our signal handler should not be called. - application.ProcessEvent( GenerateSingleTouch( TouchPoint::Interrupted, Vector2( 200.0f, 200.0f ) ) ); - DALI_TEST_EQUALS( false, data.functorCalled, TEST_LOCATION ); - END_TEST; -} - -int UtcDaliTouchParentConsumer(void) -{ - TestApplication application; - Actor rootActor( application.GetScene().GetRootLayer() ); - - Actor actor = Actor::New(); - actor.SetProperty( Actor::Property::SIZE, Vector2( 100.0f, 100.0f ) ); - actor.SetProperty( Actor::Property::ANCHOR_POINT,AnchorPoint::TOP_LEFT); - application.GetScene().Add(actor); - - // Render and notify - application.SendNotification(); - application.Render(); - - // Connect to actor's touched signal - SignalData data; - TouchEventFunctor functor( data, false ); - actor.TouchedSignal().Connect( &application, functor ); - - // Connect to root actor's touched signal - SignalData rootData; - TouchEventFunctor rootFunctor( rootData ); // Consumes signal - rootActor.TouchedSignal().Connect( &application, rootFunctor ); - - Vector2 screenCoordinates( 10.0f, 10.0f ); - Vector2 actorCoordinates, rootCoordinates; - actor.ScreenToLocal( actorCoordinates.x, actorCoordinates.y, screenCoordinates.x, screenCoordinates.y ); - rootActor.ScreenToLocal( rootCoordinates.x, rootCoordinates.y, screenCoordinates.x, screenCoordinates.y ); - - // Emit a down signal - application.ProcessEvent( GenerateSingleTouch( TouchPoint::Down, screenCoordinates ) ); - DALI_TEST_EQUALS( true, data.functorCalled, TEST_LOCATION ); - DALI_TEST_EQUALS( true, rootData.functorCalled, TEST_LOCATION ); - DALI_TEST_EQUALS( 1u, data.touchEvent.GetPointCount(), TEST_LOCATION ); - DALI_TEST_EQUALS( 1u, rootData.touchEvent.GetPointCount(), TEST_LOCATION ); - DALI_TEST_EQUALS( TouchPoint::Down, data.touchEvent.points[0].state, TEST_LOCATION ); - DALI_TEST_EQUALS( TouchPoint::Down, rootData.touchEvent.points[0].state, TEST_LOCATION ); - DALI_TEST_EQUALS( screenCoordinates, data.touchEvent.points[0].screen, TEST_LOCATION ); - DALI_TEST_EQUALS( screenCoordinates, rootData.touchEvent.points[0].screen, TEST_LOCATION ); - DALI_TEST_EQUALS( actorCoordinates, data.touchEvent.points[0].local, 0.1f, TEST_LOCATION ); - DALI_TEST_EQUALS( rootCoordinates, rootData.touchEvent.points[0].local, 0.1f, TEST_LOCATION ); - DALI_TEST_CHECK( actor == data.touchEvent.points[0].hitActor ); - DALI_TEST_CHECK( actor == rootData.touchEvent.points[0].hitActor ); - data.Reset(); - rootData.Reset(); - - // Emit a motion signal - screenCoordinates.x = screenCoordinates.y = 11.0f; - actor.ScreenToLocal( actorCoordinates.x, actorCoordinates.y, screenCoordinates.x, screenCoordinates.y ); - rootActor.ScreenToLocal( rootCoordinates.x, rootCoordinates.y, screenCoordinates.x, screenCoordinates.y ); - application.ProcessEvent( GenerateSingleTouch( TouchPoint::Motion, screenCoordinates ) ); - DALI_TEST_EQUALS( true, data.functorCalled, TEST_LOCATION ); - DALI_TEST_EQUALS( true, rootData.functorCalled, TEST_LOCATION ); - DALI_TEST_EQUALS( 1u, data.touchEvent.GetPointCount(), TEST_LOCATION ); - DALI_TEST_EQUALS( 1u, rootData.touchEvent.GetPointCount(), TEST_LOCATION ); - DALI_TEST_EQUALS( TouchPoint::Motion, data.touchEvent.points[0].state, TEST_LOCATION ); - DALI_TEST_EQUALS( TouchPoint::Motion, rootData.touchEvent.points[0].state, TEST_LOCATION ); - DALI_TEST_EQUALS( screenCoordinates, data.touchEvent.points[0].screen, TEST_LOCATION ); - DALI_TEST_EQUALS( screenCoordinates, rootData.touchEvent.points[0].screen, TEST_LOCATION ); - DALI_TEST_EQUALS( actorCoordinates, data.touchEvent.points[0].local, 0.1f, TEST_LOCATION ); - DALI_TEST_EQUALS( rootCoordinates, rootData.touchEvent.points[0].local, 0.1f, TEST_LOCATION ); - DALI_TEST_CHECK( actor == data.touchEvent.points[0].hitActor ); - DALI_TEST_CHECK( actor == rootData.touchEvent.points[0].hitActor ); - data.Reset(); - rootData.Reset(); - - // Emit an up signal - screenCoordinates.x = screenCoordinates.y = 12.0f; - actor.ScreenToLocal( actorCoordinates.x, actorCoordinates.y, screenCoordinates.x, screenCoordinates.y ); - rootActor.ScreenToLocal( rootCoordinates.x, rootCoordinates.y, screenCoordinates.x, screenCoordinates.y ); - application.ProcessEvent( GenerateSingleTouch( TouchPoint::Up, screenCoordinates ) ); - DALI_TEST_EQUALS( true, data.functorCalled, TEST_LOCATION ); - DALI_TEST_EQUALS( true, rootData.functorCalled, TEST_LOCATION ); - DALI_TEST_EQUALS( 1u, data.touchEvent.GetPointCount(), TEST_LOCATION ); - DALI_TEST_EQUALS( 1u, rootData.touchEvent.GetPointCount(), TEST_LOCATION ); - DALI_TEST_EQUALS( TouchPoint::Up, data.touchEvent.points[0].state, TEST_LOCATION ); - DALI_TEST_EQUALS( TouchPoint::Up, rootData.touchEvent.points[0].state, TEST_LOCATION ); - DALI_TEST_EQUALS( screenCoordinates, data.touchEvent.points[0].screen, TEST_LOCATION ); - DALI_TEST_EQUALS( screenCoordinates, rootData.touchEvent.points[0].screen, TEST_LOCATION ); - DALI_TEST_EQUALS( actorCoordinates, data.touchEvent.points[0].local, 0.1f, TEST_LOCATION ); - DALI_TEST_EQUALS( rootCoordinates, rootData.touchEvent.points[0].local, 0.1f, TEST_LOCATION ); - DALI_TEST_CHECK( actor == data.touchEvent.points[0].hitActor ); - DALI_TEST_CHECK( actor == rootData.touchEvent.points[0].hitActor ); - data.Reset(); - rootData.Reset(); - - // Emit a down signal where the actor is not present, will hit the root actor though - screenCoordinates.x = screenCoordinates.y = 200.0f; - rootActor.ScreenToLocal( rootCoordinates.x, rootCoordinates.y, screenCoordinates.x, screenCoordinates.y ); - application.ProcessEvent( GenerateSingleTouch( TouchPoint::Down, screenCoordinates ) ); - DALI_TEST_EQUALS( false, data.functorCalled, TEST_LOCATION ); - DALI_TEST_EQUALS( true, rootData.functorCalled, TEST_LOCATION ); - DALI_TEST_EQUALS( 1u, rootData.touchEvent.GetPointCount(), TEST_LOCATION ); - DALI_TEST_EQUALS( TouchPoint::Down, rootData.touchEvent.points[0].state, TEST_LOCATION ); - DALI_TEST_EQUALS( screenCoordinates, rootData.touchEvent.points[0].screen, TEST_LOCATION ); - DALI_TEST_EQUALS( rootCoordinates, rootData.touchEvent.points[0].local, 0.1f, TEST_LOCATION ); - DALI_TEST_CHECK( rootActor == rootData.touchEvent.points[0].hitActor ); - END_TEST; -} - -int UtcDaliTouchInterruptedParentConsumer(void) -{ - TestApplication application; - Actor rootActor( application.GetScene().GetRootLayer() ); - - Actor actor = Actor::New(); - actor.SetProperty( Actor::Property::SIZE, Vector2( 100.0f, 100.0f ) ); - actor.SetProperty( Actor::Property::ANCHOR_POINT,AnchorPoint::TOP_LEFT); - application.GetScene().Add(actor); - - // Render and notify - application.SendNotification(); - application.Render(); - - // Connect to actor's touched signal - SignalData data; - TouchEventFunctor functor( data, false ); - actor.TouchedSignal().Connect( &application, functor ); - - // Connect to root actor's touched signal - SignalData rootData; - TouchEventFunctor rootFunctor( rootData ); // Consumes signal - rootActor.TouchedSignal().Connect( &application, rootFunctor ); - - // Emit a down signal - application.ProcessEvent( GenerateSingleTouch( TouchPoint::Down, Vector2( 10.0f, 10.0f ) ) ); - DALI_TEST_EQUALS( true, data.functorCalled, TEST_LOCATION ); - DALI_TEST_EQUALS( true, rootData.functorCalled, TEST_LOCATION ); - DALI_TEST_EQUALS( TouchPoint::Down, data.touchEvent.points[0].state, TEST_LOCATION ); - DALI_TEST_EQUALS( TouchPoint::Down, rootData.touchEvent.points[0].state, TEST_LOCATION ); - DALI_TEST_CHECK( actor == data.touchEvent.points[0].hitActor ); - DALI_TEST_CHECK( actor == rootData.touchEvent.points[0].hitActor ); - data.Reset(); - rootData.Reset(); - - // Emit an interrupted signal - application.ProcessEvent( GenerateSingleTouch( TouchPoint::Interrupted, Vector2( 200.0f, 200.0f ) ) ); - DALI_TEST_EQUALS( true, data.functorCalled, TEST_LOCATION ); - DALI_TEST_EQUALS( true, rootData.functorCalled, TEST_LOCATION ); - DALI_TEST_EQUALS( TouchPoint::Interrupted, data.touchEvent.points[0].state, TEST_LOCATION ); - DALI_TEST_EQUALS( TouchPoint::Interrupted, rootData.touchEvent.points[0].state, TEST_LOCATION ); - DALI_TEST_CHECK( actor == data.touchEvent.points[0].hitActor ); - DALI_TEST_CHECK( actor == rootData.touchEvent.points[0].hitActor ); - data.Reset(); - rootData.Reset(); - - // Emit another down signal - application.ProcessEvent( GenerateSingleTouch( TouchPoint::Down, Vector2( 10.0f, 10.0f ) ) ); - DALI_TEST_EQUALS( true, data.functorCalled, TEST_LOCATION ); - DALI_TEST_EQUALS( true, rootData.functorCalled, TEST_LOCATION ); - DALI_TEST_EQUALS( TouchPoint::Down, data.touchEvent.points[0].state, TEST_LOCATION ); - DALI_TEST_EQUALS( TouchPoint::Down, rootData.touchEvent.points[0].state, TEST_LOCATION ); - data.Reset(); - rootData.Reset(); - - // Remove actor from scene - application.GetScene().Remove( actor ); - data.Reset(); - rootData.Reset(); - - // Render and notify - application.SendNotification(); - application.Render(); - - // Emit an interrupted signal, only root actor's signal should be called. - application.ProcessEvent( GenerateSingleTouch( TouchPoint::Interrupted, Vector2( 200.0f, 200.0f /* Outside actor */ ) ) ); - DALI_TEST_EQUALS( false, data.functorCalled, TEST_LOCATION ); - DALI_TEST_EQUALS( true, rootData.functorCalled, TEST_LOCATION ); - DALI_TEST_EQUALS( TouchPoint::Interrupted, rootData.touchEvent.points[0].state, TEST_LOCATION ); - DALI_TEST_CHECK( rootActor == rootData.touchEvent.points[0].hitActor ); - data.Reset(); - rootData.Reset(); - - // Emit another interrupted state, none of the signal's should be called. - application.ProcessEvent( GenerateSingleTouch( TouchPoint::Interrupted, Vector2( 200.0f, 200.0f ) ) ); - DALI_TEST_EQUALS( false, data.functorCalled, TEST_LOCATION ); - DALI_TEST_EQUALS( false, rootData.functorCalled, TEST_LOCATION ); - END_TEST; -} - -int UtcDaliTouchLeave(void) -{ - TestApplication application; - - Actor actor = Actor::New(); - actor.SetProperty( Actor::Property::SIZE, Vector2( 100.0f, 100.0f ) ); - actor.SetProperty( Actor::Property::ANCHOR_POINT,AnchorPoint::TOP_LEFT); - application.GetScene().Add(actor); - - // Render and notify - application.SendNotification(); - application.Render(); - - // Connect to actor's touched signal - SignalData data; - TouchEventFunctor functor( data ); - actor.TouchedSignal().Connect( &application, functor ); - - // Set actor to require leave events - actor.SetProperty( Actor::Property::LEAVE_REQUIRED, true ); - - // Emit a down signal - application.ProcessEvent( GenerateSingleTouch( TouchPoint::Down, Vector2( 10.0f, 10.0f ) ) ); - DALI_TEST_EQUALS( true, data.functorCalled, TEST_LOCATION ); - DALI_TEST_EQUALS( TouchPoint::Down, data.touchEvent.points[0].state, TEST_LOCATION ); - data.Reset(); - - // Emit a motion signal outside of actor, should be signalled with a Leave - application.ProcessEvent( GenerateSingleTouch( TouchPoint::Motion, Vector2 ( 200.0f, 200.0f )) ); - DALI_TEST_EQUALS( true, data.functorCalled, TEST_LOCATION ); - DALI_TEST_EQUALS( TouchPoint::Leave, data.touchEvent.points[0].state, TEST_LOCATION ); - data.Reset(); - - // Another motion outside of actor, no signalling - application.ProcessEvent( GenerateSingleTouch( TouchPoint::Motion, Vector2 ( 201.0f, 201.0f )) ); - DALI_TEST_EQUALS( false, data.functorCalled, TEST_LOCATION ); - data.Reset(); - - // Another motion event inside actor, signalled with motion - application.ProcessEvent( GenerateSingleTouch( TouchPoint::Motion, Vector2 ( 10.0f, 10.0f )) ); - DALI_TEST_EQUALS( true, data.functorCalled, TEST_LOCATION ); - DALI_TEST_EQUALS( TouchPoint::Motion, data.touchEvent.points[0].state, TEST_LOCATION ); - data.Reset(); - - // We do not want to listen to leave events anymore - actor.SetProperty( Actor::Property::LEAVE_REQUIRED, false ); - - // Another motion event outside of actor, no signalling - application.ProcessEvent( GenerateSingleTouch( TouchPoint::Motion, Vector2 ( 200.0f, 200.0f )) ); - DALI_TEST_EQUALS( false, data.functorCalled, TEST_LOCATION ); - data.Reset(); - END_TEST; -} - -int UtcDaliTouchLeaveParentConsumer(void) -{ - TestApplication application; - Actor rootActor( application.GetScene().GetRootLayer() ); - - Actor actor = Actor::New(); - actor.SetProperty( Actor::Property::SIZE, Vector2( 100.0f, 100.0f ) ); - actor.SetProperty( Actor::Property::ANCHOR_POINT,AnchorPoint::TOP_LEFT); - application.GetScene().Add(actor); - - // Render and notify - application.SendNotification(); - application.Render(); - - // Connect to actor's touched signal - SignalData data; - TouchEventFunctor functor( data, false ); - actor.TouchedSignal().Connect( &application, functor ); - - // Connect to root actor's touched signal - SignalData rootData; - TouchEventFunctor rootFunctor( rootData ); // Consumes signal - rootActor.TouchedSignal().Connect( &application, rootFunctor ); - - // Set actor to require leave events - actor.SetProperty( Actor::Property::LEAVE_REQUIRED, true ); - rootActor.SetProperty( Actor::Property::LEAVE_REQUIRED, true ); - - // Emit a down signal - application.ProcessEvent( GenerateSingleTouch( TouchPoint::Down, Vector2( 10.0f, 10.0f ) ) ); - DALI_TEST_EQUALS( true, data.functorCalled, TEST_LOCATION ); - DALI_TEST_EQUALS( true, rootData.functorCalled, TEST_LOCATION ); - DALI_TEST_EQUALS( TouchPoint::Down, data.touchEvent.points[0].state, TEST_LOCATION ); - DALI_TEST_EQUALS( TouchPoint::Down, rootData.touchEvent.points[0].state, TEST_LOCATION ); - DALI_TEST_CHECK( actor == data.touchEvent.points[0].hitActor ); - DALI_TEST_CHECK( actor == rootData.touchEvent.points[0].hitActor ); - data.Reset(); - rootData.Reset(); - - // Emit a motion signal outside of actor, should be signalled with a Leave - application.ProcessEvent( GenerateSingleTouch( TouchPoint::Motion, Vector2 ( 200.0f, 200.0f )) ); - DALI_TEST_EQUALS( true, data.functorCalled, TEST_LOCATION ); - DALI_TEST_EQUALS( true, rootData.functorCalled, TEST_LOCATION ); - DALI_TEST_EQUALS( TouchPoint::Leave, data.touchEvent.points[0].state, TEST_LOCATION ); - DALI_TEST_EQUALS( TouchPoint::Leave, rootData.touchEvent.points[0].state, TEST_LOCATION ); - DALI_TEST_CHECK( actor == data.touchEvent.points[0].hitActor ); - DALI_TEST_CHECK( actor == rootData.touchEvent.points[0].hitActor ); - data.Reset(); - rootData.Reset(); - - // Another motion outside of actor, only rootActor signalled - application.ProcessEvent( GenerateSingleTouch( TouchPoint::Motion, Vector2 ( 201.0f, 201.0f )) ); - DALI_TEST_EQUALS( false, data.functorCalled, TEST_LOCATION ); - DALI_TEST_EQUALS( true, rootData.functorCalled, TEST_LOCATION ); - DALI_TEST_EQUALS( TouchPoint::Motion, rootData.touchEvent.points[0].state, TEST_LOCATION ); - DALI_TEST_CHECK( rootActor == rootData.touchEvent.points[0].hitActor ); - data.Reset(); - rootData.Reset(); - - // Another motion event inside actor, signalled with motion - application.ProcessEvent( GenerateSingleTouch( TouchPoint::Motion, Vector2 ( 10.0f, 10.0f )) ); - DALI_TEST_EQUALS( true, data.functorCalled, TEST_LOCATION ); - DALI_TEST_EQUALS( true, rootData.functorCalled, TEST_LOCATION ); - DALI_TEST_EQUALS( TouchPoint::Motion, data.touchEvent.points[0].state, TEST_LOCATION ); - DALI_TEST_EQUALS( TouchPoint::Motion, rootData.touchEvent.points[0].state, TEST_LOCATION ); - DALI_TEST_CHECK( actor == data.touchEvent.points[0].hitActor ); - DALI_TEST_CHECK( actor == rootData.touchEvent.points[0].hitActor ); - data.Reset(); - rootData.Reset(); - - // We do not want to listen to leave events of actor anymore - actor.SetProperty( Actor::Property::LEAVE_REQUIRED, false ); - - // Another motion event outside of root actor, only root signalled - Vector2 sceneSize( application.GetScene().GetSize() ); - application.ProcessEvent( GenerateSingleTouch( TouchPoint::Motion, Vector2 ( sceneSize.width + 10.0f, sceneSize.height + 10.0f )) ); - DALI_TEST_EQUALS( false, data.functorCalled, TEST_LOCATION ); - DALI_TEST_EQUALS( true, rootData.functorCalled, TEST_LOCATION ); - DALI_TEST_EQUALS( TouchPoint::Leave, rootData.touchEvent.points[0].state, TEST_LOCATION ); - END_TEST; -} - -int UtcDaliTouchActorBecomesInsensitive(void) -{ - TestApplication application; - - Actor actor = Actor::New(); - actor.SetProperty( Actor::Property::SIZE, Vector2( 100.0f, 100.0f ) ); - actor.SetProperty( Actor::Property::ANCHOR_POINT,AnchorPoint::TOP_LEFT); - application.GetScene().Add(actor); - - // 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 ); - DALI_TEST_EQUALS( TouchPoint::Down, data.touchEvent.points[0].state, TEST_LOCATION ); - data.Reset(); - - // Change actor to insensitive - actor.SetProperty( Actor::Property::SENSITIVE, false ); - - // Emit a motion signal, signalled with an interrupted - application.ProcessEvent( GenerateSingleTouch( TouchPoint::Motion, Vector2 ( 200.0f, 200.0f )) ); - DALI_TEST_EQUALS( true, data.functorCalled, TEST_LOCATION ); - DALI_TEST_EQUALS( TouchPoint::Interrupted, data.touchEvent.points[0].state, TEST_LOCATION ); - data.Reset(); - END_TEST; -} - -int UtcDaliTouchActorBecomesInsensitiveParentConsumer(void) -{ - TestApplication application; - Actor rootActor( application.GetScene().GetRootLayer() ); - - Actor actor = Actor::New(); - actor.SetProperty( Actor::Property::SIZE, Vector2( 100.0f, 100.0f ) ); - actor.SetProperty( Actor::Property::ANCHOR_POINT,AnchorPoint::TOP_LEFT); - application.GetScene().Add(actor); - - // Render and notify - application.SendNotification(); - application.Render(); - - // Connect to actor's touched signal - SignalData data; - TouchEventFunctor functor( data, false ); - actor.TouchedSignal().Connect( &application, functor ); - - // Connect to root actor's touched signal - SignalData rootData; - TouchEventFunctor rootFunctor( rootData ); // Consumes signal - rootActor.TouchedSignal().Connect( &application, rootFunctor ); - - // Emit a down signal - application.ProcessEvent( GenerateSingleTouch( TouchPoint::Down, Vector2( 10.0f, 10.0f ) ) ); - DALI_TEST_EQUALS( true, data.functorCalled, TEST_LOCATION ); - DALI_TEST_EQUALS( true, rootData.functorCalled, TEST_LOCATION ); - DALI_TEST_EQUALS( TouchPoint::Down, data.touchEvent.points[0].state, TEST_LOCATION ); - DALI_TEST_EQUALS( TouchPoint::Down, rootData.touchEvent.points[0].state, TEST_LOCATION ); - DALI_TEST_CHECK( actor == data.touchEvent.points[0].hitActor ); - DALI_TEST_CHECK( actor == rootData.touchEvent.points[0].hitActor ); - data.Reset(); - rootData.Reset(); - - // Render and notify - application.SendNotification(); - application.Render(); - - // Make root actor insensitive - rootActor.SetProperty( Actor::Property::SENSITIVE, false ); - - // Emit a motion signal, signalled with an interrupted (should get interrupted even if within root actor) - application.ProcessEvent( GenerateSingleTouch( TouchPoint::Motion, Vector2 ( 200.0f, 200.0f )) ); - DALI_TEST_EQUALS( true, data.functorCalled, TEST_LOCATION ); - DALI_TEST_EQUALS( TouchPoint::Interrupted, data.touchEvent.points[0].state, TEST_LOCATION ); - DALI_TEST_EQUALS( true, rootData.functorCalled, TEST_LOCATION ); - DALI_TEST_EQUALS( TouchPoint::Interrupted, rootData.touchEvent.points[0].state, TEST_LOCATION ); - END_TEST; -} - -int UtcDaliTouchMultipleLayers(void) -{ - TestApplication application; - Actor rootActor( application.GetScene().GetRootLayer() ); - - // Connect to actor's touched signal - SignalData data; - TouchEventFunctor functor( data ); - - Layer layer1 ( Layer::New() ); - layer1.SetProperty( Actor::Property::SIZE, Vector2( 100.0f, 100.0f ) ); - layer1.SetProperty( Actor::Property::ANCHOR_POINT,AnchorPoint::TOP_LEFT); - application.GetScene().Add( layer1 ); - - Actor actor1 ( Actor::New() ); - actor1.SetProperty( Actor::Property::SIZE, Vector2( 100.0f, 100.0f ) ); - actor1.SetProperty( Actor::Property::ANCHOR_POINT,AnchorPoint::TOP_LEFT); - actor1.SetProperty( Actor::Property::POSITION_Z, 1.0f ); // Should hit actor1 in this layer - layer1.Add( actor1 ); - - // Render and notify - application.SendNotification(); - application.Render(); - - // Connect to layer1 and actor1 - layer1.TouchedSignal().Connect( &application, functor ); - actor1.TouchedSignal().Connect( &application, functor ); - - // Hit in hittable area, actor1 should be hit - application.ProcessEvent( GenerateSingleTouch( TouchPoint::Down, Vector2( 10.0f, 10.0f ) ) ); - DALI_TEST_EQUALS( true, data.functorCalled, TEST_LOCATION ); - DALI_TEST_CHECK( data.touchedActor == actor1 ); - data.Reset(); - - // Make layer1 insensitive, nothing should be hit - layer1.SetProperty( Actor::Property::SENSITIVE, false ); - application.ProcessEvent( GenerateSingleTouch( TouchPoint::Down, Vector2( 10.0f, 10.0f ) ) ); - DALI_TEST_EQUALS( false, data.functorCalled, TEST_LOCATION ); - data.Reset(); - - // Make layer1 sensitive again, again actor1 will be hit - layer1.SetProperty( Actor::Property::SENSITIVE, true ); - application.ProcessEvent( GenerateSingleTouch( TouchPoint::Down, Vector2( 10.0f, 10.0f ) ) ); - DALI_TEST_EQUALS( true, data.functorCalled, TEST_LOCATION ); - DALI_TEST_CHECK( data.touchedActor == actor1 ); - data.Reset(); - - // Make rootActor insensitive, nothing should be hit - rootActor.SetProperty( Actor::Property::SENSITIVE, false ); - application.ProcessEvent( GenerateSingleTouch( TouchPoint::Down, Vector2( 10.0f, 10.0f ) ) ); - DALI_TEST_EQUALS( false, data.functorCalled, TEST_LOCATION ); - data.Reset(); - - // Make rootActor sensitive - rootActor.SetProperty( Actor::Property::SENSITIVE, true ); - - // Add another layer - Layer layer2 ( Layer::New() ); - layer2.SetProperty( Actor::Property::SIZE, Vector2( 100.0f, 100.0f ) ); - layer2.SetProperty( Actor::Property::ANCHOR_POINT,AnchorPoint::TOP_LEFT); - layer2.SetProperty( Actor::Property::POSITION_Z, 10.0f ); // Should hit layer2 in this layer rather than actor2 - application.GetScene().Add( layer2 ); - - Actor actor2 ( Actor::New() ); - actor2.SetProperty( Actor::Property::SIZE, Vector2( 100.0f, 100.0f ) ); - actor2.SetProperty( Actor::Property::ANCHOR_POINT,AnchorPoint::TOP_LEFT); - layer2.Add( actor2 ); - - // Render and notify - application.SendNotification(); - application.Render(); - - // Connect to layer2 and actor2 - layer2.TouchedSignal().Connect( &application, functor ); - actor2.TouchedSignal().Connect( &application, functor ); - - // Emit an event, should hit layer2 - application.ProcessEvent( GenerateSingleTouch( TouchPoint::Down, Vector2( 10.0f, 10.0f ) ) ); - DALI_TEST_EQUALS( true, data.functorCalled, TEST_LOCATION ); - //DALI_TEST_CHECK( data.touchedActor == layer2 ); // TODO: Uncomment this after removing renderable hack! - data.Reset(); - - // Make layer2 insensitive, should hit actor1 - layer2.SetProperty( Actor::Property::SENSITIVE, false ); - application.ProcessEvent( GenerateSingleTouch( TouchPoint::Down, Vector2( 10.0f, 10.0f ) ) ); - DALI_TEST_EQUALS( true, data.functorCalled, TEST_LOCATION ); - DALI_TEST_CHECK( data.touchedActor == actor1 ); - data.Reset(); - - // Make layer2 sensitive again, should hit layer2 - layer2.SetProperty( Actor::Property::SENSITIVE, true ); - application.ProcessEvent( GenerateSingleTouch( TouchPoint::Down, Vector2( 10.0f, 10.0f ) ) ); - DALI_TEST_EQUALS( true, data.functorCalled, TEST_LOCATION ); - //DALI_TEST_CHECK( data.touchedActor == layer2 ); // TODO: Uncomment this after removing renderable hack! - data.Reset(); - - // Make layer2 invisible, render and notify - layer2.SetProperty( Actor::Property::VISIBLE, false ); - application.SendNotification(); - application.Render(); - - // Should hit actor1 - application.ProcessEvent( GenerateSingleTouch( TouchPoint::Down, Vector2( 10.0f, 10.0f ) ) ); - DALI_TEST_EQUALS( true, data.functorCalled, TEST_LOCATION ); - DALI_TEST_CHECK( data.touchedActor == actor1 ); - data.Reset(); - - // Make rootActor invisible, render and notify - rootActor.SetProperty( Actor::Property::VISIBLE, false ); - application.SendNotification(); - application.Render(); - - // Should not hit anything - application.ProcessEvent( GenerateSingleTouch( TouchPoint::Down, Vector2( 10.0f, 10.0f ) ) ); - DALI_TEST_EQUALS( false, data.functorCalled, TEST_LOCATION ); - data.Reset(); - END_TEST; -} - -int UtcDaliTouchMultipleRenderTasks(void) -{ - TestApplication application; - Integration::Scene scene ( application.GetScene() ); - Vector2 sceneSize ( scene.GetSize() ); - - Actor actor = Actor::New(); - actor.SetProperty( Actor::Property::SIZE, Vector2( 100.0f, 100.0f ) ); - actor.SetProperty( Actor::Property::ANCHOR_POINT,AnchorPoint::TOP_LEFT); - scene.Add(actor); - - // Create render task - Viewport viewport( sceneSize.width * 0.5f, sceneSize.height * 0.5f, sceneSize.width * 0.5f, sceneSize.height * 0.5f ); - RenderTask renderTask ( application.GetScene().GetRenderTaskList().CreateTask() ); - renderTask.SetViewport( viewport ); - renderTask.SetInputEnabled( 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(); - - // Ensure renderTask actor can be hit too. - application.ProcessEvent( GenerateSingleTouch( TouchPoint::Down, Vector2( viewport.x + 5.0f, viewport.y + 5.0f ) ) ); - DALI_TEST_EQUALS( true, data.functorCalled, TEST_LOCATION ); - data.Reset(); - - // Disable input on renderTask, should not be hittable - renderTask.SetInputEnabled( false ); - application.ProcessEvent( GenerateSingleTouch( TouchPoint::Down, Vector2( viewport.x + 5.0f, viewport.y + 5.0f ) ) ); - DALI_TEST_EQUALS( false, data.functorCalled, TEST_LOCATION ); - data.Reset(); - END_TEST; -} - -int UtcDaliTouchMultipleRenderTasksWithChildLayer(void) -{ - TestApplication application; - Integration::Scene scene ( application.GetScene() ); - Vector2 sceneSize ( scene.GetSize() ); - - Actor actor = Actor::New(); - actor.SetProperty( Actor::Property::SIZE, Vector2( 100.0f, 100.0f ) ); - actor.SetProperty( Actor::Property::ANCHOR_POINT,AnchorPoint::TOP_LEFT); - scene.Add(actor); - - Layer layer = Layer::New(); - layer.SetProperty( Actor::Property::SIZE, Vector2( 100.0f, 100.0f ) ); - layer.SetProperty( Actor::Property::ANCHOR_POINT,AnchorPoint::TOP_LEFT); - actor.Add(layer); - - // Create render task - Viewport viewport( sceneSize.width * 0.5f, sceneSize.height * 0.5f, sceneSize.width * 0.5f, sceneSize.height * 0.5f ); - RenderTask renderTask ( application.GetScene().GetRenderTaskList().CreateTask() ); - renderTask.SetViewport( viewport ); - renderTask.SetInputEnabled( true ); - renderTask.SetSourceActor( actor ); - - // Render and notify - application.SendNotification(); - application.Render(); - - // Connect to layer's touched signal - SignalData data; - TouchEventFunctor functor( data ); - actor.TouchedSignal().Connect( &application, functor ); - layer.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(); - - // Ensure renderTask actor can be hit too. - application.ProcessEvent( GenerateSingleTouch( TouchPoint::Down, Vector2( viewport.x + 5.0f, viewport.y + 5.0f ) ) ); - DALI_TEST_EQUALS( true, data.functorCalled, TEST_LOCATION ); - data.Reset(); - - // Disable input on renderTask, should not be hittable - renderTask.SetInputEnabled( false ); - application.ProcessEvent( GenerateSingleTouch( TouchPoint::Down, Vector2( viewport.x + 5.0f, viewport.y + 5.0f ) ) ); - DALI_TEST_EQUALS( false, data.functorCalled, TEST_LOCATION ); - data.Reset(); - END_TEST; -} - -int UtcDaliTouchOffscreenRenderTasks(void) -{ - TestApplication application; - Integration::Scene scene ( application.GetScene() ); - Vector2 sceneSize ( scene.GetSize() ); - - // FrameBuffer for offscreen RenderTask - FrameBuffer frameBuffer = FrameBuffer::New( sceneSize.width, sceneSize.height ); - - // Create a renderable actor to display the FrameBufferImage - Actor renderableActor = CreateRenderableActor(frameBuffer.GetColorTexture()); - renderableActor.SetProperty( Actor::Property::PARENT_ORIGIN,ParentOrigin::CENTER); - renderableActor.SetProperty( Actor::Property::SIZE, Vector2( sceneSize.x, sceneSize.y ) ); - renderableActor.ScaleBy( Vector3(1.0f, -1.0f, 1.0f) ); // FIXME - scene.Add( renderableActor ); - - Actor actor = Actor::New(); - actor.SetProperty( Actor::Property::SIZE, Vector2( 100.0f, 100.0f ) ); - actor.SetProperty( Actor::Property::ANCHOR_POINT,AnchorPoint::TOP_LEFT); - scene.Add( actor ); - application.GetGlAbstraction().SetCheckFramebufferStatusResult( GL_FRAMEBUFFER_COMPLETE ); // Ensure framebuffer connects - - scene.GetRenderTaskList().GetTask( 0u ).SetScreenToFrameBufferFunction( RenderTask::FULLSCREEN_FRAMEBUFFER_FUNCTION ); - - // Create a RenderTask - RenderTask renderTask = scene.GetRenderTaskList().CreateTask(); - renderTask.SetSourceActor( actor ); - renderTask.SetFrameBuffer( frameBuffer ); - renderTask.SetInputEnabled( true ); - - // Create another RenderTask - RenderTask renderTask2( scene.GetRenderTaskList().CreateTask() ); - renderTask2.SetInputEnabled( 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 UtcDaliTouchRenderTaskWithExclusiveActor(void) -{ - TestApplication application; - auto scene = application.GetScene(); - auto sceneSize( scene.GetSize() ); - - auto actor = CreateRenderableActor(); - actor.SetProperty( Actor::Property::SIZE, Vector2( sceneSize.x, sceneSize.y ) ); - scene.Add( actor ); - - auto renderTask = scene.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; - Integration::Scene scene ( application.GetScene() ); - Vector2 sceneSize ( scene.GetSize() ); - - Actor parent = CreateRenderableActor(); - parent.SetProperty( Actor::Property::SIZE, Vector2( 100.0f, 100.0f ) ); - parent.SetProperty( Actor::Property::ANCHOR_POINT,AnchorPoint::TOP_LEFT); - scene.Add(parent); - - Actor actor = CreateRenderableActor(); - actor.SetProperty( Actor::Property::SIZE, Vector2( 100.0f, 100.0f ) ); - actor.SetProperty( Actor::Property::ANCHOR_POINT,AnchorPoint::TOP_LEFT); - parent.Add(actor); - - // Render and notify - application.SendNotification(); - application.Render(); - - // Connect to layer's touched signal - SignalData data; - TouchEventFunctor functor( data ); - parent.TouchedSignal().Connect( &application, functor ); - 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 ); - DALI_TEST_CHECK( actor == data.touchedActor ); - END_TEST; -} - -int UtcDaliTouchActorRemovedInSignal(void) -{ - TestApplication application; - - Actor actor = Actor::New(); - actor.SetProperty( Actor::Property::SIZE, Vector2( 100.0f, 100.0f ) ); - actor.SetProperty( Actor::Property::ANCHOR_POINT,AnchorPoint::TOP_LEFT); - application.GetScene().Add(actor); - - // Render and notify - application.SendNotification(); - application.Render(); - - // Connect to actor's touched signal - SignalData data; - RemoveActorFunctor functor( data ); - actor.TouchedSignal().Connect( &application, functor ); - - // Register for leave events - actor.SetProperty( Actor::Property::LEAVE_REQUIRED, true ); - - // Emit a down signal - application.ProcessEvent( GenerateSingleTouch( TouchPoint::Down, Vector2( 10.0f, 10.0f ) ) ); - DALI_TEST_EQUALS( true, data.functorCalled, TEST_LOCATION ); - data.Reset(); - - // Re-add, render and notify - application.GetScene().Add(actor); - application.SendNotification(); - application.Render(); - - // Emit another signal outside of actor's area, should not get anything as the scene has changed. - application.ProcessEvent( GenerateSingleTouch( TouchPoint::Motion, Vector2( 210.0f, 210.0f ) ) ); - DALI_TEST_EQUALS( false, data.functorCalled, TEST_LOCATION ); - data.Reset(); - - // Emit a down signal - application.ProcessEvent( GenerateSingleTouch( TouchPoint::Down, Vector2( 10.0f, 10.0f ) ) ); - DALI_TEST_EQUALS( true, data.functorCalled, TEST_LOCATION ); - data.Reset(); - - // Render and notify - application.SendNotification(); - application.Render(); - - // Emit another signal outside of actor's area, should not get anything as the scene has changed. - application.ProcessEvent( GenerateSingleTouch( TouchPoint::Motion, Vector2( 210.0f, 210.0f ) ) ); - DALI_TEST_EQUALS( false, data.functorCalled, TEST_LOCATION ); - data.Reset(); - - // Re-add actor back to scene, render and notify - application.GetScene().Add(actor); - application.SendNotification(); - application.Render(); - - // Emit another down event - application.ProcessEvent( GenerateSingleTouch( TouchPoint::Down, Vector2( 10.0f, 10.0f ) ) ); - DALI_TEST_EQUALS( true, data.functorCalled, TEST_LOCATION ); - data.Reset(); - - // Completely delete the actor - actor.Reset(); - - // Emit event, should not crash and should not receive an event. - application.ProcessEvent( GenerateSingleTouch( TouchPoint::Motion, Vector2( 210.0f, 210.0f ) ) ); - DALI_TEST_EQUALS( false, data.functorCalled, TEST_LOCATION ); - END_TEST; -} - -int UtcDaliTouchActorSignalNotConsumed(void) -{ - TestApplication application; - - Actor actor = Actor::New(); - actor.SetProperty( Actor::Property::SIZE, Vector2( 100.0f, 100.0f ) ); - actor.SetProperty( Actor::Property::ANCHOR_POINT,AnchorPoint::TOP_LEFT); - application.GetScene().Add(actor); - - // Render and notify - application.SendNotification(); - application.Render(); - - // Connect to actor's touched signal - SignalData data; - TouchEventFunctor functor( data, false ); - 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 ); - END_TEST; -} - -int UtcDaliTouchActorRemovedFromScene(void) -{ - TestApplication application; - - Actor actor = Actor::New(); - actor.SetProperty( Actor::Property::SIZE, Vector2( 100.0f, 100.0f ) ); - actor.SetProperty( Actor::Property::ANCHOR_POINT,AnchorPoint::TOP_LEFT); - application.GetScene().Add(actor); - - // 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(); - - // Remove actor from scene - application.GetScene().Remove( actor ); - data.Reset(); - - // Render and notify - application.SendNotification(); - application.Render(); - - // Emit a move at the same point, we should not be signalled. - application.ProcessEvent( GenerateSingleTouch( TouchPoint::Motion, Vector2( 10.0f, 10.0f ) ) ); - DALI_TEST_EQUALS( false, data.functorCalled, TEST_LOCATION ); - data.Reset(); - END_TEST; -} - -int UtcDaliTouchLayerConsumesTouch(void) -{ - TestApplication application; - - Actor actor = Actor::New(); - actor.SetProperty( Actor::Property::SIZE, Vector2( 100.0f, 100.0f ) ); - actor.SetProperty( Actor::Property::ANCHOR_POINT,AnchorPoint::TOP_LEFT); - application.GetScene().Add(actor); - - // Render and notify - application.SendNotification(); - application.Render(); - - // Connect to actor's touched signal - SignalData data; - TouchEventFunctor functor( data ); - actor.TouchedSignal().Connect( &application, functor ); - - // Add a layer to overlap the actor - Layer layer = Layer::New(); - layer.SetProperty( Actor::Property::SIZE, Vector2( 100.0f, 100.0f ) ); - layer.SetProperty( Actor::Property::ANCHOR_POINT,AnchorPoint::TOP_LEFT); - application.GetScene().Add( layer ); - layer.RaiseToTop(); - - // Render and notify - application.SendNotification(); - application.Render(); - - // Emit a few touch signals - application.ProcessEvent( GenerateSingleTouch( TouchPoint::Down, Vector2( 10.0f, 10.0f ) ) ); - application.ProcessEvent( GenerateSingleTouch( TouchPoint::Up, Vector2( 10.0f, 10.0f ) ) ); - DALI_TEST_EQUALS( true, data.functorCalled, TEST_LOCATION ); - data.Reset(); - - // Set layer to consume all touch - layer.SetProperty( Layer::Property::CONSUMES_TOUCH, true ); - - // Render and notify - application.SendNotification(); - application.Render(); - - // Emit the same signals again, should not receive - application.ProcessEvent( GenerateSingleTouch( TouchPoint::Down, Vector2( 10.0f, 10.0f ) ) ); - application.ProcessEvent( GenerateSingleTouch( TouchPoint::Up, Vector2( 10.0f, 10.0f ) ) ); - DALI_TEST_EQUALS(false, data.functorCalled, TEST_LOCATION); - data.Reset(); - - END_TEST; -} - -int UtcDaliTouchLeaveActorReadded(void) -{ - TestApplication application; - Integration::Scene scene = application.GetScene(); - - Actor actor = Actor::New(); - actor.SetProperty( Actor::Property::SIZE, Vector2( 100.0f, 100.0f ) ); - actor.SetProperty( Actor::Property::ANCHOR_POINT,AnchorPoint::TOP_LEFT); - scene.Add(actor); - - // Set actor to receive touch-events - actor.SetProperty( Actor::Property::LEAVE_REQUIRED, 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 and motion - application.ProcessEvent( GenerateSingleTouch( TouchPoint::Down, Vector2( 10.0f, 10.0f ) ) ); - application.ProcessEvent( GenerateSingleTouch( TouchPoint::Motion, Vector2( 11.0f, 10.0f ) ) ); - DALI_TEST_EQUALS( true, data.functorCalled, TEST_LOCATION ); - data.Reset(); - - // Remove actor from scene and add again - scene.Remove( actor ); - scene.Add( actor ); - - // Emit a motion within the actor's bounds - application.ProcessEvent( GenerateSingleTouch( TouchPoint::Motion, Vector2( 12.0f, 10.0f ) ) ); - DALI_TEST_EQUALS( true, data.functorCalled, TEST_LOCATION ); - data.Reset(); - - // Emit a motion outside the actor's bounds - application.ProcessEvent( GenerateSingleTouch( TouchPoint::Motion, Vector2( 200.0f, 200.0f ) ) ); - DALI_TEST_EQUALS( true, data.functorCalled, TEST_LOCATION ); - DALI_TEST_EQUALS( TouchPoint::Leave, data.touchEvent.points[0].state, TEST_LOCATION ); - data.Reset(); - - END_TEST; -} - -int UtcDaliTouchClippingActor(void) -{ - TestApplication application; - Integration::Scene scene = application.GetScene(); - - Actor actor = Actor::New(); - actor.SetProperty( Actor::Property::SIZE, Vector2( 100.0f, 100.0f ) ); - actor.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT ); - scene.Add( actor ); - - Actor clippingActor = Actor::New(); - clippingActor.SetProperty( Actor::Property::SIZE, Vector2( 50.0f, 50.0f ) ); - clippingActor.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT ); - clippingActor.SetProperty( Actor::Property::CLIPPING_MODE, ClippingMode::CLIP_CHILDREN ); - scene.Add( clippingActor ); - - // Add a child to the clipped region. - Actor clippingChild = Actor::New(); - clippingChild.SetProperty( Actor::Property::SIZE, Vector2( 50.0f, 50.0f ) ); - clippingChild.SetProperty( Actor::Property::POSITION, Vector2( 25.0f, 25.0f )); - clippingChild.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT ); - clippingActor.Add( clippingChild ); - - // Render and notify. - application.SendNotification(); - application.Render(); - - // Connect to actor's touched signal. - SignalData data; - TouchEventFunctor functor( data ); - actor.TouchedSignal().Connect( &application, functor ); - - // Emit an event within clipped area - no hit. - application.ProcessEvent( GenerateSingleTouch( TouchPoint::Down, Vector2( 10.0f, 10.0f ) ) ); - DALI_TEST_EQUALS( false, data.functorCalled, TEST_LOCATION ); - data.Reset(); - - // Emit an event outside the clipped area but within the actor area, we should have a hit. - application.ProcessEvent( GenerateSingleTouch( TouchPoint::Down, Vector2( 60.0f, 60.0f ) ) ); - DALI_TEST_EQUALS( true, data.functorCalled, TEST_LOCATION ); - data.Reset(); - - clippingChild.TouchedSignal().Connect( &application, functor ); - - // Emit an event inside part of the child which is within the clipped area, we should have a hit. - application.ProcessEvent( GenerateSingleTouch( TouchPoint::Down, Vector2( 30.0f, 30.0f ) ) ); - DALI_TEST_EQUALS( true, data.functorCalled, TEST_LOCATION ); - data.Reset(); - - END_TEST; -} - -int UtcDaliTouchActorUnparented(void) -{ - TestApplication application; - - Actor actor = Actor::New(); - actor.SetProperty( Actor::Property::SIZE, Vector2( 100.0f, 100.0f ) ); - actor.SetProperty( Actor::Property::ANCHOR_POINT,AnchorPoint::TOP_LEFT); - application.GetScene().Add(actor); - - // 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 ); - DALI_TEST_EQUALS( TouchPoint::Down, data.touchEvent.points[0].state, TEST_LOCATION ); - DALI_TEST_CHECK( actor == data.touchEvent.points[0].hitActor ); - data.Reset(); - - // Render and notify - application.SendNotification(); - application.Render(); - - // Unparent the actor - actor.Unparent(); - - // Should receive an interrupted event - DALI_TEST_EQUALS( true, data.functorCalled, TEST_LOCATION ); - DALI_TEST_EQUALS( TouchPoint::Interrupted, data.touchEvent.points[0].state, TEST_LOCATION ); - END_TEST; -} - -int UtcDaliTouchParentRemovedFromScene(void) -{ - TestApplication application; - - Actor parent = Actor::New(); - parent.SetProperty( Actor::Property::SIZE, Vector2( 100.0f, 100.0f ) ); - parent.SetProperty( Actor::Property::ANCHOR_POINT,AnchorPoint::TOP_LEFT); - application.GetScene().Add(parent); - - Actor actor = Actor::New(); - actor.SetProperty( Actor::Property::SIZE, Vector2( 100.0f, 100.0f ) ); - actor.SetProperty( Actor::Property::ANCHOR_POINT,AnchorPoint::TOP_LEFT); - parent.Add(actor); - - // 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 ); - DALI_TEST_EQUALS( TouchPoint::Down, data.touchEvent.points[0].state, TEST_LOCATION ); - DALI_TEST_CHECK( actor == data.touchEvent.points[0].hitActor ); - data.Reset(); - - // Render and notify - application.SendNotification(); - application.Render(); - - // Unparent the parent of the touchable actor - parent.Unparent(); - - // Should receive an interrupted event - DALI_TEST_EQUALS( true, data.functorCalled, TEST_LOCATION ); - DALI_TEST_EQUALS( TouchPoint::Interrupted, data.touchEvent.points[0].state, TEST_LOCATION ); - END_TEST; -} - -int UtcDaliTouchActorRemovedFromSceneDifferentConsumer(void) -{ - TestApplication application; - - Actor parent = Actor::New(); - parent.SetProperty( Actor::Property::SIZE, Vector2( 100.0f, 100.0f ) ); - parent.SetProperty( Actor::Property::ANCHOR_POINT,AnchorPoint::TOP_LEFT); - application.GetScene().Add(parent); - - Actor actor = Actor::New(); - actor.SetProperty( Actor::Property::SIZE, Vector2( 100.0f, 100.0f ) ); - actor.SetProperty( Actor::Property::ANCHOR_POINT,AnchorPoint::TOP_LEFT); - parent.Add(actor); - - // Render and notify - application.SendNotification(); - application.Render(); - - // Connect to actor's touched signal - SignalData data; - TouchEventFunctor functor( data, false /* Do not consume */ ); - actor.TouchedSignal().Connect( &application, functor ); - - // Connect to parent's touched signal - SignalData parentData; - TouchEventFunctor parentFunctor( parentData ); - parent.TouchedSignal().Connect( &application, parentFunctor ); - - // Emit a down signal - application.ProcessEvent( GenerateSingleTouch( TouchPoint::Down, Vector2( 10.0f, 10.0f ) ) ); - DALI_TEST_EQUALS( true, data.functorCalled, TEST_LOCATION ); - DALI_TEST_EQUALS( TouchPoint::Down, data.touchEvent.points[0].state, TEST_LOCATION ); - DALI_TEST_CHECK( actor == data.touchEvent.points[0].hitActor ); - DALI_TEST_CHECK( actor == data.touchedActor ); - DALI_TEST_EQUALS( true, parentData.functorCalled, TEST_LOCATION ); - DALI_TEST_EQUALS( TouchPoint::Down, parentData.touchEvent.points[0].state, TEST_LOCATION ); - DALI_TEST_CHECK( actor == parentData.touchEvent.points[0].hitActor ); - DALI_TEST_CHECK( parent == parentData.touchedActor ); - data.Reset(); - parentData.Reset(); - - // Render and notify - application.SendNotification(); - application.Render(); - - // Unparent the actor - actor.Unparent(); - - // Should receive an interrupted event for both actor & parent - DALI_TEST_EQUALS( true, data.functorCalled, TEST_LOCATION ); - DALI_TEST_EQUALS( TouchPoint::Interrupted, data.touchEvent.points[0].state, TEST_LOCATION ); - DALI_TEST_EQUALS( true, parentData.functorCalled, TEST_LOCATION ); - DALI_TEST_EQUALS( TouchPoint::Interrupted, parentData.touchEvent.points[0].state, TEST_LOCATION ); - data.Reset(); - parentData.Reset(); - - // Readd actor to parent - parent.Add(actor); - - // Render and notify - application.SendNotification(); - application.Render(); - - // Emit a motion signal - application.ProcessEvent( GenerateSingleTouch( TouchPoint::Motion, Vector2( 10.0f, 10.0f ) ) ); - DALI_TEST_EQUALS( true, data.functorCalled, TEST_LOCATION ); - DALI_TEST_EQUALS( true, parentData.functorCalled, TEST_LOCATION ); - data.Reset(); - parentData.Reset(); - - // Parent is now consumer, connect again to the touched signal of the actor so that it becomes the consumer - SignalData secondData; - TouchEventFunctor secondFunctor( secondData /* Consume */ ); - actor.TouchedSignal().Connect( &application, secondFunctor ); - - // Unparent the actor - actor.Unparent(); - - // Should receive an interrupted event for both actor functors & the parent as well as it was last consumer - DALI_TEST_EQUALS( true, data.functorCalled, TEST_LOCATION ); - DALI_TEST_EQUALS( TouchPoint::Interrupted, data.touchEvent.points[0].state, TEST_LOCATION ); - DALI_TEST_EQUALS( true, parentData.functorCalled, TEST_LOCATION ); - DALI_TEST_EQUALS( TouchPoint::Interrupted, parentData.touchEvent.points[0].state, TEST_LOCATION ); - DALI_TEST_EQUALS( true, secondData.functorCalled, TEST_LOCATION ); - DALI_TEST_EQUALS( TouchPoint::Interrupted, secondData.touchEvent.points[0].state, TEST_LOCATION ); - data.Reset(); - parentData.Reset(); - secondData.Reset(); - - END_TEST; -} - -int UtcDaliTouchInterruptedDifferentConsumer(void) -{ - TestApplication application; - Actor rootActor( application.GetScene().GetRootLayer() ); - - Actor parent = Actor::New(); - parent.SetProperty( Actor::Property::SIZE, Vector2( 100.0f, 100.0f ) ); - parent.SetProperty( Actor::Property::ANCHOR_POINT,AnchorPoint::TOP_LEFT); - application.GetScene().Add(parent); - - Actor actor = Actor::New(); - actor.SetProperty( Actor::Property::SIZE, Vector2( 100.0f, 100.0f ) ); - actor.SetProperty( Actor::Property::ANCHOR_POINT,AnchorPoint::TOP_LEFT); - parent.Add(actor); - - // Render and notify - application.SendNotification(); - application.Render(); - - // Connect to actor's touched signal - SignalData data; - TouchEventFunctor functor( data, false /* Do not consume */ ); - actor.TouchedSignal().Connect( &application, functor ); - - // Connect to parent's touched signal - SignalData parentData; - TouchEventFunctor parentFunctor( parentData, false /* Do not consume */ ); - parent.TouchedSignal().Connect( &application, parentFunctor ); - - // Connect to root's touched signal and consume - SignalData rootData; - TouchEventFunctor rootFunctor( rootData ); - rootActor.TouchedSignal().Connect( &application, rootFunctor ); - - // Emit a down signal - application.ProcessEvent( GenerateSingleTouch( TouchPoint::Down, Vector2( 10.0f, 10.0f ) ) ); - DALI_TEST_EQUALS( true, data.functorCalled, TEST_LOCATION ); - DALI_TEST_EQUALS( TouchPoint::Down, data.touchEvent.points[0].state, TEST_LOCATION ); - DALI_TEST_CHECK( actor == data.touchEvent.points[0].hitActor ); - DALI_TEST_CHECK( actor == data.touchedActor ); - DALI_TEST_EQUALS( true, parentData.functorCalled, TEST_LOCATION ); - DALI_TEST_EQUALS( TouchPoint::Down, parentData.touchEvent.points[0].state, TEST_LOCATION ); - DALI_TEST_CHECK( actor == parentData.touchEvent.points[0].hitActor ); - DALI_TEST_CHECK( parent == parentData.touchedActor ); - DALI_TEST_EQUALS( true, rootData.functorCalled, TEST_LOCATION ); - DALI_TEST_EQUALS( TouchPoint::Down, rootData.touchEvent.points[0].state, TEST_LOCATION ); - DALI_TEST_CHECK( actor == rootData.touchEvent.points[0].hitActor ); - DALI_TEST_CHECK( rootActor == rootData.touchedActor ); - data.Reset(); - parentData.Reset(); - rootData.Reset(); - - // Root is now consumer, connect to the touched signal of the parent so that it becomes the consumer - SignalData secondData; - TouchEventFunctor secondFunctor( secondData /* Consume */ ); - parent.TouchedSignal().Connect( &application, secondFunctor ); - - // Emit an interrupted signal, all three should STILL be called - application.ProcessEvent( GenerateSingleTouch( TouchPoint::Interrupted, Vector2( 10.0f, 10.0f ) ) ); - DALI_TEST_EQUALS( true, data.functorCalled, TEST_LOCATION ); - DALI_TEST_EQUALS( TouchPoint::Interrupted, data.touchEvent.points[0].state, TEST_LOCATION ); - DALI_TEST_EQUALS( true, parentData.functorCalled, TEST_LOCATION ); - DALI_TEST_EQUALS( TouchPoint::Interrupted, parentData.touchEvent.points[0].state, TEST_LOCATION ); - DALI_TEST_EQUALS( true, rootData.functorCalled, TEST_LOCATION ); - DALI_TEST_EQUALS( TouchPoint::Interrupted, rootData.touchEvent.points[0].state, TEST_LOCATION ); - data.Reset(); - parentData.Reset(); - rootData.Reset(); - - END_TEST; -} - -int UtcDaliTouchDataConvert(void) -{ - TestApplication application; - - Actor actor = Actor::New(); - actor.SetProperty( Actor::Property::SIZE, Vector2( 100.0f, 100.0f ) ); - actor.SetProperty( Actor::Property::ANCHOR_POINT,AnchorPoint::TOP_LEFT); - application.GetScene().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; - -} diff --git a/automated-tests/src/dali/utc-Dali-TypeRegistry.cpp b/automated-tests/src/dali/utc-Dali-TypeRegistry.cpp index 6b3a29d..2820c48 100644 --- a/automated-tests/src/dali/utc-Dali-TypeRegistry.cpp +++ b/automated-tests/src/dali/utc-Dali-TypeRegistry.cpp @@ -155,10 +155,6 @@ struct MyTestCustomActor : public CustomActorImpl virtual void OnSizeAnimation(Animation& animation, const Vector3& targetSize) { } - virtual bool OnTouchEvent(const TouchEvent& event) - { - return true; - } virtual bool OnHoverEvent(const HoverEvent& event) { return true; @@ -2393,7 +2389,7 @@ int UtcDaliTypeInfoGetSignalNameP(void) std::string name = typeInfo.GetSignalName(0); - DALI_TEST_EQUALS( name, "touched", TEST_LOCATION ); + DALI_TEST_EQUALS( name, "hovered", TEST_LOCATION ); TypeInfo typeInfo2 = typeRegistry.GetTypeInfo( "MyTestCustomActor" ); @@ -2401,13 +2397,11 @@ int UtcDaliTypeInfoGetSignalNameP(void) bool foundSignal = false; for( std::size_t i = 0; i < typeInfo2.GetSignalCount(); i++ ) { - - std::string name = typeInfo2.GetSignalName( i ); - if( name == "touched") - { - foundSignal = true; - } - + std::string name = typeInfo2.GetSignalName( i ); + if( name == "hovered") + { + foundSignal = true; + } } DALI_TEST_EQUALS( foundSignal, true, TEST_LOCATION ); diff --git a/automated-tests/src/dali/utc-Dali-WeakHandle.cpp b/automated-tests/src/dali/utc-Dali-WeakHandle.cpp index e7f3b70..a30b03d 100644 --- a/automated-tests/src/dali/utc-Dali-WeakHandle.cpp +++ b/automated-tests/src/dali/utc-Dali-WeakHandle.cpp @@ -64,10 +64,6 @@ struct MyTestCustomActor : public CustomActorImpl virtual void OnSizeAnimation(Animation& animation, const Vector3& targetSize) { } - virtual bool OnTouchEvent(const TouchEvent& event) - { - return true; - } virtual bool OnHoverEvent(const HoverEvent& event) { return true; @@ -489,4 +485,3 @@ int UtcDaliWeakHandleMoveAssignment(void) END_TEST; } - diff --git a/dali/devel-api/common/stage.cpp b/dali/devel-api/common/stage.cpp index 267ca21..b07b63f 100644 --- a/dali/devel-api/common/stage.cpp +++ b/dali/devel-api/common/stage.cpp @@ -144,13 +144,6 @@ Stage::EventProcessingFinishedSignalType& Stage::EventProcessingFinishedSignal() return GetImplementation(*this).EventProcessingFinishedSignal(); } -Stage::TouchedSignalType& Stage::TouchedSignal() -{ - DALI_LOG_WARNING_NOFN("DEPRECATION WARNING: TouchedSignal() is deprecated and will be removed from next release. Use TouchSignal() instead.\n" ); - - return GetImplementation(*this).TouchedSignal(); -} - Stage::TouchSignalType& Stage::TouchSignal() { return GetImplementation( *this ).TouchSignal(); diff --git a/dali/devel-api/common/stage.h b/dali/devel-api/common/stage.h index fe5c064..ea99ee1 100644 --- a/dali/devel-api/common/stage.h +++ b/dali/devel-api/common/stage.h @@ -46,7 +46,6 @@ struct Vector2; struct Vector3; struct Vector4; struct KeyEvent; -struct TouchEvent; struct WheelEvent; /** @@ -77,7 +76,7 @@ struct WheelEvent; * |-------------------------|--------------------------------------| * | keyEvent | @ref KeyEventSignal() | * | eventProcessingFinished | @ref EventProcessingFinishedSignal() | - * | touched | @ref TouchedSignal() | + * | touch | @ref TouchSignal() | * | wheelEvent | @ref WheelEventSignal() | * | contextLost | @ref ContextLostSignal() | * | contextRegained | @ref ContextRegainedSignal() | @@ -90,9 +89,8 @@ public: typedef Signal< void (const KeyEvent&) > KeyEventSignalType; ///< Key event signal type @SINCE_1_0.0 typedef Signal< void () > EventProcessingFinishedSignalType; ///< Event Processing finished signal type @SINCE_1_0.0 - typedef Signal< void (const TouchEvent&) > TouchedSignalType; ///< @DEPRECATED_1_1.37 @brief Touched signal type @SINCE_1_0.0 - typedef Signal< void (const TouchData&) > TouchSignalType; ///< Touch signal type @SINCE_1_1.37 - typedef Signal< void (const WheelEvent&) > WheelEventSignalType; ///< Touched signal type @SINCE_1_0.0 + typedef Signal< void (const TouchData&) > TouchSignalType; ///< Touch signal type @SINCE_1_1.37 + typedef Signal< void (const WheelEvent&) > WheelEventSignalType; ///< Wheel signal type @SINCE_1_0.0 typedef Signal< void () > ContextStatusSignal; ///< Context status signal type @SINCE_1_0.0 typedef Signal< void () > SceneCreatedSignalType; ///< Scene created signal type @SINCE_1_0.0 @@ -272,24 +270,6 @@ public: EventProcessingFinishedSignalType& EventProcessingFinishedSignal(); /** - * @DEPRECATED_1_1.37 Use TouchSignal() instead. - * @brief This signal is emitted when the screen is touched and when the touch ends - * (i.e. the down & up touch events only). - * - * If there are multiple touch points, then this will be emitted when the first touch occurs and - * then when the last finger is lifted. - * An interrupted event will also be emitted (if it occurs). - * A callback of the following type may be connected: - * @code - * void YourCallbackName(const TouchEvent& event); - * @endcode - * - * @return The touch signal to connect to - * @note Motion events are not emitted. - */ - TouchedSignalType& TouchedSignal() DALI_DEPRECATED_API; - - /** * @brief This signal is emitted when the screen is touched and when the touch ends * (i.e. the down & up touch events only). * diff --git a/dali/devel-api/events/touch-data-devel.h b/dali/devel-api/events/touch-data-devel.h deleted file mode 100755 index c63dc2d..0000000 --- a/dali/devel-api/events/touch-data-devel.h +++ /dev/null @@ -1,45 +0,0 @@ -#ifndef DALI_TOUCH_DATA_DEVEL_H -#define DALI_TOUCH_DATA_DEVEL_H - -/* - * 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. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -namespace Dali -{ - -class TouchData; -struct TouchEvent; - -namespace DevelTouchData -{ - -/** - * @brief Convert TouchEvent to TouchData. - * - * @return The TouchData convert from Dali::TouchEvent - * - * @note Use this API with caution. -*/ -DALI_CORE_API TouchData Convert( const TouchEvent& touchEvent ); - -} // namespace DevelTouchData - -} // namespace Dali - - - -#endif // DALI_TOUCH_DATA_DEVEL_H diff --git a/dali/devel-api/file.list b/dali/devel-api/file.list index 8c908b8..e87a103 100644 --- a/dali/devel-api/file.list +++ b/dali/devel-api/file.list @@ -17,7 +17,6 @@ SET( devel_api_src_files ${devel_api_src_dir}/events/long-press-gesture-detector-devel.cpp ${devel_api_src_dir}/events/rotation-gesture.cpp ${devel_api_src_dir}/events/rotation-gesture-detector.cpp - ${devel_api_src_dir}/events/touch-data-devel.cpp ${devel_api_src_dir}/events/key-event-devel.cpp ${devel_api_src_dir}/images/distance-field.cpp ${devel_api_src_dir}/images/pixel-data-devel.cpp @@ -76,7 +75,6 @@ SET( devel_api_core_events_header_files ${devel_api_src_dir}/events/long-press-gesture-detector-devel.h ${devel_api_src_dir}/events/rotation-gesture.h ${devel_api_src_dir}/events/rotation-gesture-detector.h - ${devel_api_src_dir}/events/touch-data-devel.h ${devel_api_src_dir}/events/key-event-devel.h ) diff --git a/dali/devel-api/events/touch-data-devel.cpp b/dali/integration-api/events/touch-data-integ.cpp old mode 100755 new mode 100644 similarity index 58% rename from dali/devel-api/events/touch-data-devel.cpp rename to dali/integration-api/events/touch-data-integ.cpp index e9a953d..572f6db --- a/dali/devel-api/events/touch-data-devel.cpp +++ b/dali/integration-api/events/touch-data-integ.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2019 Samsung Electronics Co., Ltd. + * Copyright (c) 2020 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. @@ -12,33 +12,24 @@ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * */ -// INTERNAL INCLUDES -#include -#include -#include +#include #include namespace Dali { - -namespace DevelTouchData +namespace Integration { -TouchData Convert( const TouchEvent& touchEvent ) +Dali::TouchData NewTouchData(uint32_t timestamp, const TouchPoint& point) { - Internal::TouchDataPtr touchDataImpl( new Internal::TouchData(touchEvent.time ) ); - - for( auto&& touchEventPoint : touchEvent.points ) - { - touchDataImpl->AddPoint( Integration::Point( touchEventPoint ) ); - } - - return TouchData( touchDataImpl.Get() ); + Internal::TouchDataPtr touchDataImpl( new Internal::TouchData(timestamp) ); + touchDataImpl->AddPoint(Integration::Point(point)); + Dali::TouchData handle(touchDataImpl.Get()); + return handle; } -} // namespace DevelTouchData +} // namespace Integration } // namespace Dali diff --git a/dali/integration-api/events/touch-data-integ.h b/dali/integration-api/events/touch-data-integ.h new file mode 100644 index 0000000..1478210 --- /dev/null +++ b/dali/integration-api/events/touch-data-integ.h @@ -0,0 +1,42 @@ +#ifndef DALI_INTEGRATION_TOUCH_DATA_INTEG_H +#define DALI_INTEGRATION_TOUCH_DATA_INTEG_H + +/* + * Copyright (c) 2020 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. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include +#include + +namespace Dali +{ + +namespace Integration +{ + +/** + * Create a new touch data handle from timestamp and touch point. + * + * @param[in] timestamp The timestamp of the touch event. + * @param[in] point The point on screen where the touch occurred. + * @return A new touch data handle. + */ +DALI_CORE_API Dali::TouchData NewTouchData(uint32_t timestamp, const TouchPoint& point); + +} // namespace Integration + +} // namespace Dali + +#endif //DALI_INTEGRATION_TOUCH_DATA_INTEG_H diff --git a/dali/integration-api/events/touch-event-integ.h b/dali/integration-api/events/touch-event-integ.h index 2d8bcd3..0c3a933 100644 --- a/dali/integration-api/events/touch-event-integ.h +++ b/dali/integration-api/events/touch-event-integ.h @@ -2,7 +2,7 @@ #define DALI_INTEGRATION_TOUCH_EVENT_H /* - * Copyright (c) 2019 Samsung Electronics Co., Ltd. + * Copyright (c) 2020 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. @@ -19,7 +19,6 @@ */ // INTERNAL INCLUDES -#include #include namespace Dali diff --git a/dali/integration-api/file.list b/dali/integration-api/file.list index f5ffa3c..27597e9 100644 --- a/dali/integration-api/file.list +++ b/dali/integration-api/file.list @@ -19,6 +19,7 @@ SET( platform_abstraction_src_files ${platform_abstraction_src_dir}/events/wheel-event-integ.cpp ${platform_abstraction_src_dir}/events/multi-point-event-integ.cpp ${platform_abstraction_src_dir}/events/point.cpp + ${platform_abstraction_src_dir}/events/touch-data-integ.cpp ${platform_abstraction_src_dir}/events/touch-event-combiner.cpp ${platform_abstraction_src_dir}/events/touch-event-integ.cpp ) @@ -58,6 +59,7 @@ SET( platform_abstraction_events_header_files ${platform_abstraction_src_dir}/events/point.h ${platform_abstraction_src_dir}/events/touch-event-combiner.h ${platform_abstraction_src_dir}/events/touch-event-integ.h + ${platform_abstraction_src_dir}/events/touch-data-integ.h ) diff --git a/dali/internal/event/actors/actor-impl.cpp b/dali/internal/event/actors/actor-impl.cpp index 6c63b25..1aef095 100755 --- a/dali/internal/event/actors/actor-impl.cpp +++ b/dali/internal/event/actors/actor-impl.cpp @@ -225,7 +225,6 @@ DALI_PROPERTY_TABLE_END( DEFAULT_ACTOR_PROPERTY_START_INDEX, ActorDefaultPropert // Signals -const char* const SIGNAL_TOUCHED = "touched"; const char* const SIGNAL_HOVERED = "hovered"; const char* const SIGNAL_WHEEL_EVENT = "wheelEvent"; const char* const SIGNAL_ON_SCENE = "onScene"; @@ -249,7 +248,6 @@ BaseHandle CreateActor() TypeRegistration mType( typeid(Dali::Actor), typeid(Dali::Handle), CreateActor, ActorDefaultProperties ); -SignalConnectorType signalConnector1( mType, SIGNAL_TOUCHED, &Actor::DoConnectSignal ); SignalConnectorType signalConnector2( mType, SIGNAL_HOVERED, &Actor::DoConnectSignal ); SignalConnectorType signalConnector3( mType, SIGNAL_WHEEL_EVENT, &Actor::DoConnectSignal ); SignalConnectorType signalConnector4( mType, SIGNAL_ON_SCENE, &Actor::DoConnectSignal ); @@ -1790,7 +1788,7 @@ bool Actor::IsKeyboardFocusable() const bool Actor::GetTouchRequired() const { - return !mTouchedSignal.Empty() || !mTouchSignal.Empty() || mDerivedRequiresTouch; + return !mTouchSignal.Empty() || mDerivedRequiresTouch; } bool Actor::GetHoverRequired() const @@ -1824,7 +1822,7 @@ bool Actor::IsGestureRequred( DevelGesture::Type type ) const return mGestureData && mGestureData->IsGestureRequred( type ); } -bool Actor::EmitTouchEventSignal( const TouchEvent& event, const Dali::TouchData& touch ) +bool Actor::EmitTouchEventSignal( const Dali::TouchData& touch ) { bool consumed = false; @@ -1834,18 +1832,6 @@ bool Actor::EmitTouchEventSignal( const TouchEvent& event, const Dali::TouchData consumed = mTouchSignal.Emit( handle, touch ); } - if( !mTouchedSignal.Empty() ) - { - Dali::Actor handle( this ); - consumed |= mTouchedSignal.Emit( handle, event ); - } - - if( !consumed ) - { - // Notification for derived classes - consumed = OnTouchEvent( event ); // TODO - } - return consumed; } @@ -1923,11 +1909,6 @@ void Actor::EmitChildRemovedSignal( Actor& child ) } } -Dali::Actor::TouchSignalType& Actor::TouchedSignal() -{ - return mTouchedSignal; -} - Dali::Actor::TouchDataSignalType& Actor::TouchSignal() { return mTouchSignal; @@ -1988,11 +1969,7 @@ bool Actor::DoConnectSignal( BaseObject* object, ConnectionTrackerInterface* tra bool connected( true ); Actor* actor = static_cast< Actor* >( object ); // TypeRegistry guarantees that this is the correct type. - if( 0 == signalName.compare( SIGNAL_TOUCHED ) ) - { - actor->TouchedSignal().Connect( tracker, functor ); - } - else if( 0 == signalName.compare( SIGNAL_HOVERED ) ) + if( 0 == signalName.compare( SIGNAL_HOVERED ) ) { actor->HoveredSignal().Connect( tracker, functor ); } @@ -2051,7 +2028,6 @@ Actor::Actor( DerivedType derivedType, const SceneGraph::Node& node ) mAnchorPoint( NULL ), mRelayoutData( NULL ), mGestureData( NULL ), - mTouchedSignal(), mTouchSignal(), mHoveredSignal(), mWheelEventSignal(), diff --git a/dali/internal/event/actors/actor-impl.h b/dali/internal/event/actors/actor-impl.h index 230fa62..4182710 100644 --- a/dali/internal/event/actors/actor-impl.h +++ b/dali/internal/event/actors/actor-impl.h @@ -1406,11 +1406,10 @@ public: /** * Used by the EventProcessor to emit touch event signals. - * @param[in] event The touch event (Old API). * @param[in] touch The touch data. * @return True if the event was consumed. */ - bool EmitTouchEventSignal( const TouchEvent& event, const Dali::TouchData& touch ); + bool EmitTouchEventSignal( const Dali::TouchData& touch ); /** * Used by the EventProcessor to emit hover event signals. @@ -1452,11 +1451,6 @@ public: void EmitChildRemovedSignal( Actor& child ); /** - * @copydoc Dali::Actor::TouchedSignal() - */ - Dali::Actor::TouchSignalType& TouchedSignal(); - - /** * @copydoc Dali::Actor::TouchEventSignal() */ Dali::Actor::TouchDataSignalType& TouchSignal(); @@ -1838,17 +1832,6 @@ private: /** * For use in derived classes. - * This is only called if mDerivedRequiresTouch is true, and the touch-signal was not consumed. - * @param[in] event The touch event. - * @return True if the event should be consumed. - */ - virtual bool OnTouchEvent( const TouchEvent& event ) - { - return false; - } - - /** - * For use in derived classes. * This is only called if mDerivedRequiresHover is true, and the hover-signal was not consumed. * @param[in] event The hover event. * @return True if the event should be consumed. @@ -1984,7 +1967,6 @@ protected: ActorGestureData* mGestureData; ///< Optional Gesture data. Only created when actor requires gestures // Signals - Dali::Actor::TouchSignalType mTouchedSignal; Dali::Actor::TouchDataSignalType mTouchSignal; Dali::Actor::HoverSignalType mHoveredSignal; Dali::Actor::WheelEventSignalType mWheelEventSignal; diff --git a/dali/internal/event/actors/custom-actor-internal.h b/dali/internal/event/actors/custom-actor-internal.h index b70c0b9..c2a42be 100644 --- a/dali/internal/event/actors/custom-actor-internal.h +++ b/dali/internal/event/actors/custom-actor-internal.h @@ -134,14 +134,6 @@ private: } /** - * @copydoc Internal::Actor::OnTouchEvent - */ - virtual bool OnTouchEvent(const TouchEvent& event) - { - return mImpl->OnTouchEvent(event); - } - - /** * @copydoc Internal::Actor::OnHoverEvent */ virtual bool OnHoverEvent(const HoverEvent& event) diff --git a/dali/internal/event/common/scene-impl.cpp b/dali/internal/event/common/scene-impl.cpp index acb362d..53d60d5 100644 --- a/dali/internal/event/common/scene-impl.cpp +++ b/dali/internal/event/common/scene-impl.cpp @@ -315,13 +315,9 @@ void Scene::EmitEventProcessingFinishedSignal() } } -void Scene::EmitTouchedSignal( const TouchEvent& touchEvent, const Dali::TouchData& touch ) +void Scene::EmitTouchedSignal( const Dali::TouchData& touch ) { Dali::Integration::Scene handle( this ); - if ( !mTouchedSignal.Empty() ) - { - mTouchedSignal.Emit( touchEvent ); - } if ( !mTouchSignal.Empty() ) { mTouchSignal.Emit( touch ); @@ -374,11 +370,6 @@ Integration::Scene::EventProcessingFinishedSignalType& Scene::EventProcessingFin return mEventProcessingFinishedSignal; } -Scene::TouchedSignalType& Scene::TouchedSignal() -{ - return mTouchedSignal; -} - Integration::Scene::TouchSignalType& Scene::TouchSignal() { return mTouchSignal; diff --git a/dali/internal/event/common/scene-impl.h b/dali/internal/event/common/scene-impl.h index fbf22b2..9b95c2a 100644 --- a/dali/internal/event/common/scene-impl.h +++ b/dali/internal/event/common/scene-impl.h @@ -205,10 +205,9 @@ public: /** * Emits the touched signal. - * @param[in] touchEvent The touch event details (Old API). * @param[in] touch The touch event details. */ - void EmitTouchedSignal( const TouchEvent& touchEvent, const Dali::TouchData& touch ); + void EmitTouchedSignal( const Dali::TouchData& touch ); /** * Used by the EventProcessor to emit wheel event signals. @@ -251,14 +250,6 @@ public: */ Integration::Scene::EventProcessingFinishedSignalType& EventProcessingFinishedSignal(); - // The touched signal, to support Stage touched signal, will be removed when deprecated in public Stage API - using TouchedSignalType = Signal< void (const TouchEvent&) >; - - /** - * Touched signal to support deprecated stage touched signal. - */ - TouchedSignalType& TouchedSignal(); - /** * @copydoc Integration::Scene::TouchSignal() */ @@ -334,9 +325,6 @@ private: // The touch signal Integration::Scene::TouchSignalType mTouchSignal; - // The touched signal - TouchedSignalType mTouchedSignal; - // The wheel event signal Integration::Scene::WheelEventSignalType mWheelEventSignal; }; diff --git a/dali/internal/event/common/stage-impl.cpp b/dali/internal/event/common/stage-impl.cpp index 69b0584..f306823 100644 --- a/dali/internal/event/common/stage-impl.cpp +++ b/dali/internal/event/common/stage-impl.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2019 Samsung Electronics Co., Ltd. + * Copyright (c) 2020 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. @@ -36,7 +36,6 @@ #include #include #include -#include #include #include #include @@ -65,7 +64,6 @@ namespace const char* const SIGNAL_KEY_EVENT = "keyEvent"; const char* const SIGNAL_KEY_EVENT_GENERATED = "keyEventGenerated"; const char* const SIGNAL_EVENT_PROCESSING_FINISHED = "eventProcessingFinished"; -const char* const SIGNAL_TOUCHED = "touched"; const char* const SIGNAL_TOUCH = "touch"; const char* const SIGNAL_WHEEL_EVENT = "wheelEvent"; const char* const SIGNAL_CONTEXT_LOST = "contextLost"; @@ -76,7 +74,6 @@ TypeRegistration mType( typeid(Dali::Stage), typeid(Dali::BaseHandle), NULL ); SignalConnectorType signalConnector1( mType, SIGNAL_KEY_EVENT, &Stage::DoConnectSignal ); SignalConnectorType signalConnector2( mType, SIGNAL_EVENT_PROCESSING_FINISHED, &Stage::DoConnectSignal ); -SignalConnectorType signalConnector3( mType, SIGNAL_TOUCHED, &Stage::DoConnectSignal ); SignalConnectorType signalConnector4( mType, SIGNAL_WHEEL_EVENT, &Stage::DoConnectSignal ); SignalConnectorType signalConnector5( mType, SIGNAL_CONTEXT_LOST, &Stage::DoConnectSignal ); SignalConnectorType signalConnector6( mType, SIGNAL_CONTEXT_REGAINED, &Stage::DoConnectSignal ); @@ -97,7 +94,6 @@ void Stage::Initialize( Scene& scene ) mScene->SetBackgroundColor( Dali::Stage::DEFAULT_BACKGROUND_COLOR ); mScene->EventProcessingFinishedSignal().Connect( this, &Stage::OnEventProcessingFinished ); mScene->KeyEventSignal().Connect( this, &Stage::OnKeyEvent ); - mScene->TouchedSignal().Connect( this, &Stage::OnTouchedEvent ); mScene->TouchSignal().Connect( this, &Stage::OnTouchEvent ); mScene->WheelEventSignal().Connect( this, &Stage::OnWheelEvent ); } @@ -234,10 +230,6 @@ bool Stage::DoConnectSignal( BaseObject* object, ConnectionTrackerInterface* tra { stage->EventProcessingFinishedSignal().Connect( tracker, functor ); } - else if( 0 == strcmp( signalName.c_str(), SIGNAL_TOUCHED ) ) - { - stage->TouchedSignal().Connect( tracker, functor ); - } else if( 0 == strcmp( signalName.c_str(), SIGNAL_TOUCH ) ) { stage->TouchSignal().Connect( tracker, functor ); @@ -281,11 +273,6 @@ void Stage::OnKeyEvent( const Dali::KeyEvent& event ) } } -void Stage::OnTouchedEvent( const Dali::TouchEvent& touchEvent ) -{ - mTouchedSignal.Emit( touchEvent ); -} - void Stage::OnTouchEvent( const Dali::TouchData& touch ) { mTouchSignal.Emit( touch ); @@ -315,9 +302,8 @@ void Stage::EmitEventProcessingFinishedSignal() mEventProcessingFinishedSignal.Emit(); } -void Stage::EmitTouchedSignal( const TouchEvent& touchEvent, const Dali::TouchData& touch ) +void Stage::EmitTouchedSignal( const Dali::TouchData& touch ) { - mTouchedSignal.Emit( touchEvent ); mTouchSignal.Emit( touch ); } @@ -364,12 +350,6 @@ Dali::Stage::EventProcessingFinishedSignalType& Stage::EventProcessingFinishedSi return mEventProcessingFinishedSignal; } -Dali::Stage::TouchedSignalType& Stage::TouchedSignal() -{ - DALI_LOG_WARNING( "Deprecated. Use TouchSignal() instead.\n" ); - return mTouchedSignal; -} - Dali::Stage::TouchSignalType& Stage::TouchSignal() { return mTouchSignal; @@ -410,7 +390,6 @@ Stage::Stage( SceneGraph::UpdateManager& updateManager ) mKeyEventSignal(), mKeyEventGeneratedSignal(), mEventProcessingFinishedSignal(), - mTouchedSignal(), mTouchSignal(), mWheelEventSignal(), mContextLostSignal(), diff --git a/dali/internal/event/common/stage-impl.h b/dali/internal/event/common/stage-impl.h index a6eaf39..a64e964 100644 --- a/dali/internal/event/common/stage-impl.h +++ b/dali/internal/event/common/stage-impl.h @@ -206,11 +206,6 @@ public: void OnKeyEvent( const Dali::KeyEvent& event ); /** - * Callback for Internal::Scene TouchedEventSignal signal - */ - void OnTouchedEvent( const Dali::TouchEvent& touch ); - - /** * Callback for Internal::Scene TouchSignal signal */ void OnTouchEvent( const Dali::TouchData& touch ); @@ -242,10 +237,9 @@ public: /** * Emits the touched signal. - * @param[in] touchEvent The touch event details (Old API). * @param[in] touch The touch event details. */ - void EmitTouchedSignal( const TouchEvent& touchEvent, const Dali::TouchData& touch ); + void EmitTouchedSignal( const Dali::TouchData& touch ); /** * Used by the EventProcessor to emit wheel event signals. @@ -269,11 +263,6 @@ public: Dali::Stage::EventProcessingFinishedSignalType& EventProcessingFinishedSignal(); /** - * @copydoc Dali::Stage::TouchedSignal() - */ - Dali::Stage::TouchedSignalType& TouchedSignal(); - - /** * @copydoc Dali::Stage::TouchSignal() */ Dali::Stage::TouchSignalType& TouchSignal(); @@ -361,8 +350,7 @@ private: // The event processing finished signal Dali::Stage::EventProcessingFinishedSignalType mEventProcessingFinishedSignal; - // The touched signals - Dali::Stage::TouchedSignalType mTouchedSignal; + // The touched signal Dali::Stage::TouchSignalType mTouchSignal; // The wheel event signal diff --git a/dali/internal/event/events/touch-data-impl.h b/dali/internal/event/events/touch-data-impl.h index 5135e83..f016c10 100755 --- a/dali/internal/event/events/touch-data-impl.h +++ b/dali/internal/event/events/touch-data-impl.h @@ -2,7 +2,7 @@ #define DALI_INTERNAL_TOUCH_DATA_H /* - * Copyright (c) 2019 Samsung Electronics Co., Ltd. + * Copyright (c) 2020 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. @@ -62,7 +62,7 @@ public: * * Required because base class copy constructor is not implemented. * @param[in] other The TouchData to clone from. - * @return A new TouchData object which is has the same touch point data. + * @return A new TouchData object which has the same touch point data. */ static TouchDataPtr Clone( const TouchData& other ); diff --git a/dali/internal/event/events/touch-event-processor.cpp b/dali/internal/event/events/touch-event-processor.cpp index 1d63633..cafdeef 100644 --- a/dali/internal/event/events/touch-event-processor.cpp +++ b/dali/internal/event/events/touch-event-processor.cpp @@ -64,7 +64,7 @@ const char * TOUCH_POINT_STATE[ 6 ] = /** * Recursively deliver events to the actor and its parents, until the event is consumed or the stage is reached. */ -Dali::Actor EmitTouchSignals( Dali::Actor actor, const TouchEvent& event, const Dali::TouchData& touchData ) +Dali::Actor EmitTouchSignals( Dali::Actor actor, const Dali::TouchData& touchData ) { Dali::Actor consumedActor; @@ -79,7 +79,7 @@ Dali::Actor EmitTouchSignals( Dali::Actor actor, const TouchEvent& event, const // Only emit the signal if the actor's touch signal has connections (or derived actor implementation requires touch). if ( actorImpl.GetTouchRequired() ) { - consumed = actorImpl.EmitTouchEventSignal( event, touchData ); + consumed = actorImpl.EmitTouchEventSignal( touchData ); } if ( consumed ) @@ -96,7 +96,7 @@ Dali::Actor EmitTouchSignals( Dali::Actor actor, const TouchEvent& event, const (parent == oldParent) ) { // One of the actor's parents may consumed the event and they should be set as the consumed actor. - consumedActor = EmitTouchSignals( parent, event, touchData ); + consumedActor = EmitTouchSignals( parent, touchData ); } } } @@ -106,21 +106,19 @@ Dali::Actor EmitTouchSignals( Dali::Actor actor, const TouchEvent& event, const Dali::Actor AllocAndEmitTouchSignals( unsigned long time, Dali::Actor actor, const Integration::Point& point ) { - TouchEvent touchEvent( time ); TouchDataPtr touchData( new TouchData( time ) ); Dali::TouchData touchDataHandle( touchData.Get() ); - touchEvent.points.push_back( point.GetTouchPoint() ); touchData->AddPoint( point ); - return EmitTouchSignals( actor, touchEvent, touchDataHandle ); + return EmitTouchSignals( actor, touchDataHandle ); } /** * Changes the state of the primary point to leave and emits the touch signals */ -Dali::Actor EmitTouchSignals( Actor* actor, RenderTask& renderTask, const TouchEvent& originalEvent, const TouchDataPtr& originalTouchData, PointState::Type state ) +Dali::Actor EmitTouchSignals( Actor* actor, RenderTask& renderTask, const TouchDataPtr& originalTouchData, PointState::Type state ) { Dali::Actor consumingActor; @@ -138,10 +136,7 @@ Dali::Actor EmitTouchSignals( Actor* actor, RenderTask& renderTask, const TouchE primaryPoint.SetHitActor( Dali::Actor( actor ) ); primaryPoint.SetState( state ); - TouchEvent touchEvent( originalEvent ); - touchEvent.points[0] = primaryPoint.GetTouchPoint(); - - consumingActor = EmitTouchSignals( Dali::Actor(actor), touchEvent, Dali::TouchData( touchData.Get() ) ); + consumingActor = EmitTouchSignals( Dali::Actor(actor), Dali::TouchData( touchData.Get() ) ); } return consumingActor; @@ -263,19 +258,16 @@ bool TouchEventProcessor::ProcessTouchEvent( const Integration::TouchEvent& even currentPoint.SetHitActor( Dali::Actor() ); - TouchEvent touchEvent( event.time ); TouchDataPtr touchData( new TouchData( event.time ) ); Dali::TouchData touchDataHandle( touchData.Get() ); - touchEvent.points.push_back( currentPoint.GetTouchPoint() ); touchData->AddPoint( currentPoint ); - mScene.EmitTouchedSignal( touchEvent, touchDataHandle ); + mScene.EmitTouchedSignal( touchDataHandle ); return false; // No need for hit testing & already an interrupted event so just return false } // 2) Hit Testing. - TouchEvent touchEvent( event.time ); TouchDataPtr touchData( new TouchData( event.time ) ); Dali::TouchData touchDataHandle( touchData.Get() ); @@ -305,7 +297,6 @@ bool TouchEventProcessor::ProcessTouchEvent( const Integration::TouchEvent& even newPoint.SetHitActor( hitTestResults.actor ); newPoint.SetLocalPosition( hitTestResults.actorCoordinates ); - touchEvent.points.push_back( newPoint.GetTouchPoint() ); touchData->AddPoint( newPoint ); DALI_LOG_INFO( gLogFilter, Debug::General, " State(%s), Screen(%.0f, %.0f), HitActor(%p, %s), Local(%.2f, %.2f)\n", @@ -324,7 +315,7 @@ bool TouchEventProcessor::ProcessTouchEvent( const Integration::TouchEvent& even Dali::Actor consumedActor; if ( currentRenderTask ) { - consumedActor = EmitTouchSignals( touchData->GetPoint( 0 ).GetHitActor(), touchEvent, touchDataHandle ); + consumedActor = EmitTouchSignals( touchData->GetPoint( 0 ).GetHitActor(), touchDataHandle ); consumed = consumedActor ? true : false; } @@ -336,7 +327,7 @@ bool TouchEventProcessor::ProcessTouchEvent( const Integration::TouchEvent& even DALI_LOG_INFO( gLogFilter, Debug::Concise, "ConsumedActor: (%p) %s\n", consumedActor ? reinterpret_cast< void* >( &consumedActor.GetBaseObject() ) : NULL, consumedActor ? consumedActor.GetProperty< std::string >( Dali::Actor::Property::NAME ).c_str() : "" ); if ( ( primaryPointState == PointState::DOWN ) && - ( touchEvent.GetPointCount() == 1 ) && + ( touchData->GetPointCount() == 1 ) && ( consumedActor && consumedActor.GetProperty< bool >( Dali::Actor::Property::CONNECTED_TO_SCENE ) ) ) { mTouchDownConsumedActor.SetActor( &GetImplementation( consumedActor ) ); @@ -363,7 +354,7 @@ bool TouchEventProcessor::ProcessTouchEvent( const Integration::TouchEvent& even if ( lastPrimaryHitActor->GetLeaveRequired() ) { DALI_LOG_INFO( gLogFilter, Debug::Concise, "LeaveActor(Hit): (%p) %s\n", reinterpret_cast< void* >( lastPrimaryHitActor ), lastPrimaryHitActor->GetName().c_str() ); - leaveEventConsumer = EmitTouchSignals( mLastPrimaryHitActor.GetActor(), lastRenderTaskImpl, touchEvent, touchData, PointState::LEAVE ); + leaveEventConsumer = EmitTouchSignals( mLastPrimaryHitActor.GetActor(), lastRenderTaskImpl, touchData, PointState::LEAVE ); } } else @@ -371,7 +362,7 @@ bool TouchEventProcessor::ProcessTouchEvent( const Integration::TouchEvent& even // At this point mLastPrimaryHitActor was touchable and sensitive in the previous touch event process but is not in the current one. // An interrupted event is send to allow some actors to go back to their original state (i.e. Button controls) DALI_LOG_INFO( gLogFilter, Debug::Concise, "InterruptedActor(Hit): (%p) %s\n", reinterpret_cast< void* >( lastPrimaryHitActor ), lastPrimaryHitActor->GetName().c_str() ); - leaveEventConsumer = EmitTouchSignals( mLastPrimaryHitActor.GetActor(), lastRenderTaskImpl, touchEvent, touchData, PointState::INTERRUPTED ); + leaveEventConsumer = EmitTouchSignals( mLastPrimaryHitActor.GetActor(), lastRenderTaskImpl, touchData, PointState::INTERRUPTED ); } } @@ -391,7 +382,7 @@ bool TouchEventProcessor::ProcessTouchEvent( const Integration::TouchEvent& even if( lastConsumedActor->GetLeaveRequired() ) { DALI_LOG_INFO( gLogFilter, Debug::Concise, "LeaveActor(Consume): (%p) %s\n", reinterpret_cast< void* >( lastConsumedActor ), lastConsumedActor->GetName().c_str() ); - EmitTouchSignals( lastConsumedActor, lastRenderTaskImpl, touchEvent, touchData, PointState::LEAVE ); + EmitTouchSignals( lastConsumedActor, lastRenderTaskImpl, touchData, PointState::LEAVE ); } } else @@ -399,7 +390,7 @@ bool TouchEventProcessor::ProcessTouchEvent( const Integration::TouchEvent& even // At this point mLastConsumedActor was touchable and sensitive in the previous touch event process but is not in the current one. // An interrupted event is send to allow some actors to go back to their original state (i.e. Button controls) DALI_LOG_INFO( gLogFilter, Debug::Concise, "InterruptedActor(Consume): (%p) %s\n", reinterpret_cast< void* >( lastConsumedActor ), lastConsumedActor->GetName().c_str() ); - EmitTouchSignals( mLastConsumedActor.GetActor(), lastRenderTaskImpl, touchEvent, touchData, PointState::INTERRUPTED ); + EmitTouchSignals( mLastConsumedActor.GetActor(), lastRenderTaskImpl, touchData, PointState::INTERRUPTED ); } } } @@ -446,7 +437,7 @@ bool TouchEventProcessor::ProcessTouchEvent( const Integration::TouchEvent& even // 6) Emit an interrupted event to the touch-down actor if it hasn't consumed the up and // emit the stage touched event if required. - if ( touchEvent.GetPointCount() == 1 ) // Only want the first touch and the last release + if ( touchData->GetPointCount() == 1 ) // Only want the first touch and the last release { switch ( primaryPointState ) { @@ -474,7 +465,7 @@ bool TouchEventProcessor::ProcessTouchEvent( const Integration::TouchEvent& even case PointState::DOWN: { - mScene.EmitTouchedSignal( touchEvent, touchDataHandle ); + mScene.EmitTouchedSignal( touchDataHandle ); break; } @@ -506,14 +497,11 @@ void TouchEventProcessor::OnObservedActorDisconnected( Actor* actor ) touchData->AddPoint( point ); Dali::TouchData touchDataHandle( touchData.Get() ); - TouchEvent touchEvent( 0 ); - touchEvent.points.push_back( point.GetTouchPoint() ); - - Dali::Actor eventConsumer = EmitTouchSignals( handle, touchEvent, touchDataHandle ); + Dali::Actor eventConsumer = EmitTouchSignals( handle, touchDataHandle ); if ( mLastConsumedActor.GetActor() != eventConsumer ) { - EmitTouchSignals( Dali::Actor( mLastConsumedActor.GetActor() ), touchEvent, touchDataHandle ); + EmitTouchSignals( Dali::Actor( mLastConsumedActor.GetActor() ), touchDataHandle ); } // Do not set mLastPrimaryHitActor to NULL we may be iterating through its observers diff --git a/dali/public-api/actors/actor.cpp b/dali/public-api/actors/actor.cpp index a999efa..3c314fc 100644 --- a/dali/public-api/actors/actor.cpp +++ b/dali/public-api/actors/actor.cpp @@ -202,13 +202,6 @@ float Actor::GetRelayoutSize( Dimension::Type dimension ) const return GetImplementation(*this).GetRelayoutSize( dimension ); } -Actor::TouchSignalType& Actor::TouchedSignal() -{ - DALI_LOG_WARNING_NOFN("DEPRECATION WARNING: TouchedSignal() is deprecated and will be removed from next release. Use TouchSignal() instead.\n" ); - - return GetImplementation(*this).TouchedSignal(); -} - Actor::TouchDataSignalType& Actor::TouchSignal() { return GetImplementation( *this ).TouchSignal(); diff --git a/dali/public-api/actors/actor.h b/dali/public-api/actors/actor.h index 2f12cdf..ac5564f 100644 --- a/dali/public-api/actors/actor.h +++ b/dali/public-api/actors/actor.h @@ -50,7 +50,6 @@ struct Degree; class Quaternion; class Layer; class TouchData; -struct TouchEvent; struct HoverEvent; struct WheelEvent; struct Vector2; @@ -66,7 +65,7 @@ typedef Rect Padding; ///< Padding definition @SINCE_1_0.0 * *

Multi-Touch Events:

* - * Touch or hover events are received via signals; see Actor::TouchedSignal() and Actor::HoveredSignal() for more details. + * Touch or hover events are received via signals; see Actor::TouchSignal() and Actor::HoveredSignal() for more details. * * Hit Testing Rules Summary: * @@ -221,7 +220,7 @@ typedef Rect Padding; ///< Padding definition @SINCE_1_0.0 * Signals * | %Signal Name | Method | * |-------------------|------------------------------| - * | touched | @ref TouchedSignal() | + * | touch | @ref TouchSignal() | * | hovered | @ref HoveredSignal() | * | wheelEvent | @ref WheelEventSignal() | * | onScene | @ref OnSceneSignal() | @@ -731,7 +730,6 @@ public: // Typedefs - typedef Signal< bool (Actor, const TouchEvent&) > TouchSignalType; ///< @DEPRECATED_1_1.37 @brief Touch signal type @SINCE_1_0.0 typedef Signal< bool (Actor, const TouchData&) > TouchDataSignalType; ///< Touch signal type @SINCE_1_1.37 typedef Signal< bool (Actor, const HoverEvent&) > HoverSignalType; ///< Hover signal type @SINCE_1_0.0 typedef Signal< bool (Actor, const WheelEvent&) > WheelEventSignalType; ///< Wheel signal type @SINCE_1_0.0 @@ -1163,22 +1161,6 @@ public: // Renderer public: // Signals /** - * @DEPRECATED_1_1.37 Use TouchSignal() instead. - * @brief This signal is emitted when touch input is received. - * - * A callback of the following type may be connected: - * @code - * bool YourCallbackName(Actor actor, const TouchEvent& event); - * @endcode - * The return value of True, indicates that the touch event should be consumed. - * Otherwise the signal will be emitted on the next sensitive parent of the actor. - * @SINCE_1_0.0 - * @return The signal to connect to - * @pre The Actor has been initialized. - */ - TouchSignalType& TouchedSignal() DALI_DEPRECATED_API; - - /** * @brief This signal is emitted when touch input is received. * * A callback of the following type may be connected: diff --git a/dali/public-api/actors/custom-actor-impl.h b/dali/public-api/actors/custom-actor-impl.h index df35bf7..12b8828 100644 --- a/dali/public-api/actors/custom-actor-impl.h +++ b/dali/public-api/actors/custom-actor-impl.h @@ -45,7 +45,6 @@ class CustomActor; class CustomActorImpl; class RelayoutContainer; struct KeyEvent; -struct TouchEvent; struct HoverEvent; struct WheelEvent; struct Vector2; @@ -176,18 +175,6 @@ public: virtual void OnSizeAnimation(Animation& animation, const Vector3& targetSize) = 0; /** - * @DEPRECATED_1_1.37 Connect to TouchSignal() instead. - * - * @brief Called after a touch-event is received by the owning actor. - * - * @SINCE_1_0.0 - * @param[in] event The touch event - * @return True if the event should be consumed - * @note CustomActorImpl::REQUIRES_TOUCH_EVENTS must be enabled during construction. See CustomActorImpl::CustomActorImpl( ActorFlags flags ). - */ - virtual bool OnTouchEvent(const TouchEvent& event) DALI_DEPRECATED_API = 0; - - /** * @brief Called after a hover-event is received by the owning actor. * * @SINCE_1_0.0 diff --git a/dali/public-api/dali-core.h b/dali/public-api/dali-core.h index 39fc2f1..86f339f 100644 --- a/dali/public-api/dali-core.h +++ b/dali/public-api/dali-core.h @@ -59,7 +59,6 @@ #include #include #include -#include #include #include diff --git a/dali/public-api/events/touch-event.cpp b/dali/public-api/events/touch-event.cpp deleted file mode 100644 index 9a3a821..0000000 --- a/dali/public-api/events/touch-event.cpp +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Copyright (c) 2018 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. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -// CLASS HEADER -#include - -// EXTERNAL INCLUDES -#include - -// INTERNAL INCLUDES -#include - -namespace Dali -{ - -TouchEvent::TouchEvent() -: time(0) -{ -} - -TouchEvent::TouchEvent(unsigned long time) -: time(time) -{ -} - -TouchEvent::~TouchEvent() -{ -} - -uint32_t TouchEvent::GetPointCount() const -{ - return static_cast( points.size() ); -} - -const TouchPoint& TouchEvent::GetPoint( uint32_t point ) const -{ - DALI_ASSERT_ALWAYS( point < points.size() && "No point at index" ); - return points[point]; -} - -} // namespace Dali diff --git a/dali/public-api/events/touch-event.h b/dali/public-api/events/touch-event.h deleted file mode 100644 index 83c03d1..0000000 --- a/dali/public-api/events/touch-event.h +++ /dev/null @@ -1,115 +0,0 @@ -#ifndef DALI_TOUCH_EVENT_H -#define DALI_TOUCH_EVENT_H - -/* - * 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. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -// INTERNAL INCLUDES -#include -#include - -namespace Dali -{ -/** - * @addtogroup dali_core_events - * @{ - */ - -/** - * @DEPRECATED_1_1.37 Use TouchData instead - * - * @brief Touch events are a collection of touch points at a specific moment in time. - * - * When a multi-touch event occurs, each touch point represents the points that are currently being - * touched or the points where a touch has stopped. - * @SINCE_1_0.0 - */ -struct DALI_CORE_API TouchEvent -{ - // Construction & Destruction - - /** - * @DEPRECATED_1_1.37 - * @brief Default constructor. - * @SINCE_1_0.0 - */ - TouchEvent() DALI_DEPRECATED_API; - - /** - * @DEPRECATED_1_1.37 - * @brief Constructor. - * @SINCE_1_0.0 - * @param[in] time The time the event occurred - */ - TouchEvent(unsigned long time) DALI_DEPRECATED_API; - - /** - * @DEPRECATED_1_1.37 - * @brief Destructor. - * @SINCE_1_0.0 - */ - ~TouchEvent() DALI_DEPRECATED_API; - - // Data - - /** - * @DEPRECATED_1_1.37 - * @brief This is a container of points for this touch event. - * - * The first point in the set is always the - * primary touch point (i.e. the first point touched in a multi-touch event). - */ - TouchPointContainer points; - - /** - * @DEPRECATED_1_1.37 - * @brief The time (in ms) that the touch event occurred. - */ - unsigned long time; - - // Convenience Methods - - /** - * @DEPRECATED_1_1.37 - * @brief Returns the total number of points in this TouchEvent. - * - * @SINCE_1_0.0 - * @return Total number of Points - */ - uint32_t GetPointCount() const DALI_DEPRECATED_API; - - /** - * @DEPRECATED_1_1.37 - * @brief Returns a touch point at the index requested. - * - * The first point in the set is always the primary - * touch point (i.e. the first point touched in a multi-touch event). - * @SINCE_1_0.0 - * @param[in] point The index of the required Point - * @return Point requested - * @note "point" should be less than the value returned by GetPointCount(). - * If out of range, then program asserts. - */ - const TouchPoint& GetPoint( uint32_t point ) const DALI_DEPRECATED_API; -}; - -/** - * @} - */ -} // namespace Dali - -#endif // DALI_TOUCH_EVENT_H diff --git a/dali/public-api/file.list b/dali/public-api/file.list index e40a700..e4d7486 100644 --- a/dali/public-api/file.list +++ b/dali/public-api/file.list @@ -34,7 +34,6 @@ SET( public_api_src_files ${public_api_src_dir}/events/tap-gesture.cpp ${public_api_src_dir}/events/tap-gesture-detector.cpp ${public_api_src_dir}/events/touch-point.cpp - ${public_api_src_dir}/events/touch-event.cpp ${public_api_src_dir}/events/touch-data.cpp ${public_api_src_dir}/images/pixel.cpp ${public_api_src_dir}/images/pixel-data.cpp @@ -145,7 +144,6 @@ SET( public_api_core_events_header_files ${public_api_src_dir}/events/tap-gesture.h ${public_api_src_dir}/events/tap-gesture-detector.h ${public_api_src_dir}/events/touch-point.h - ${public_api_src_dir}/events/touch-event.h ${public_api_src_dir}/events/touch-data.h ${public_api_src_dir}/events/mouse-button.h ) diff --git a/dali/public-api/signals/dali-signal.h b/dali/public-api/signals/dali-signal.h index 4812ca9..b31b1b6 100644 --- a/dali/public-api/signals/dali-signal.h +++ b/dali/public-api/signals/dali-signal.h @@ -31,7 +31,7 @@ * class MyClass : public ConnectionTracker * { * - * void Callback( Actor actor, const TouchEvent& event ) + * void Callback( Actor actor, const TouchData& event ) * { * ... * } @@ -40,7 +40,7 @@ * { * Actor actor = Actor::New(); * - * actor.TouchedSignal().Connect( this, &MyClass::Callback ); + * actor.TouchSignal().Connect( this, &MyClass::Callback ); * } * * ~MyClass() -- 2.7.4