[dali_2.3.19] Merge branch 'devel/master'
[platform/core/uifw/dali-toolkit.git] / automated-tests / src / dali-toolkit / dali-toolkit-test-utils / test-touch-utils.h
1 #ifndef TEST_TOUCH_UTILS_H
2 #define TEST_TOUCH_UTILS_H
3
4 /*
5  * Copyright (c) 2019 Samsung Electronics Co., Ltd.
6  *
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  *
11  * http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  *
19  */
20
21 #include <dali/public-api/actors/actor.h>
22
23 namespace Dali
24 {
25
26 // Data for touch events
27 struct TouchEventData
28 {
29   TouchEventData()
30   : functorCalled(false),
31     receivedTouch(),
32     touchActor()
33   {
34   }
35
36   void Reset()
37   {
38     functorCalled = false;
39
40     receivedTouch.points.clear();
41     receivedTouch.time = 0;
42
43     touchActor.Reset();
44   }
45
46   bool functorCalled;
47   TouchEvent receivedTouch;
48   Actor touchActor;
49 };
50
51 // Functor that sets the data when called
52 struct TouchEventDataFunctor
53 {
54   TouchEventDataFunctor(TouchEventData& data) : touchEventData(data) { }
55
56   bool operator()(Actor actor, const TouchEvent& touch)
57   {
58     touchEventData.functorCalled = true;
59     touchEventData.touchActor = actor;
60     touchEventData.receivedTouch = touch;
61     return false;
62   }
63
64   // Generate a touch-event
65   Integration::TouchEvent GenerateSingleTouch( PointState::Type state, const Vector2& screenPosition ) const
66   {
67     Integration::TouchEvent touchEvent;
68     Integration::Point point;
69     point.SetState( state );
70     point.SetScreenPosition( screenPosition );
71     touchEvent.points.push_back( point );
72     return touchEvent;
73   }
74
75   TouchEventData& touchEventData;
76 };
77
78
79 } // namespace Dali
80
81 #endif // TEST_TOUCH_UTILS_H