License conversion from Flora to Apache 2.0
[platform/core/uifw/dali-core.git] / dali / internal / event / events / pinch-gesture-detector-impl.cpp
1 /*
2  * Copyright (c) 2014 Samsung Electronics Co., Ltd.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  *
16  */
17
18 // CLASS HEADER
19 #include <dali/internal/event/events/pinch-gesture-detector-impl.h>
20
21 // INTERNAL INCLUDES
22 #include <dali/public-api/events/pinch-gesture.h>
23 #include <dali/public-api/object/type-registry.h>
24 #include <dali/internal/event/events/gesture-event-processor.h>
25 #include <dali/integration-api/debug.h>
26
27 namespace Dali
28 {
29
30 namespace Internal
31 {
32
33 namespace
34 {
35 BaseHandle Create()
36 {
37   return Dali::PinchGestureDetector::New();
38 }
39
40 TypeRegistration mType( typeid(Dali::PinchGestureDetector), typeid(Dali::GestureDetector), Create );
41
42 SignalConnectorType signalConnector1( mType, Dali::PinchGestureDetector::SIGNAL_PINCH_DETECTED, &PinchGestureDetector::DoConnectSignal );
43
44 }
45
46
47 PinchGestureDetectorPtr PinchGestureDetector::New()
48 {
49   return new PinchGestureDetector;
50 }
51
52 PinchGestureDetector::PinchGestureDetector()
53 : GestureDetector(Gesture::Pinch)
54 {
55 }
56
57 PinchGestureDetector::~PinchGestureDetector()
58 {
59 }
60
61 void PinchGestureDetector::EmitPinchGestureSignal(Dali::Actor actor, const PinchGesture& pinch)
62 {
63   // Guard against destruction during signal emission
64   Dali::PinchGestureDetector handle( this );
65
66   mDetectedSignalV2.Emit( actor, pinch );
67 }
68
69 bool PinchGestureDetector::DoConnectSignal( BaseObject* object, ConnectionTrackerInterface* tracker, const std::string& signalName, FunctorDelegate* functor )
70 {
71   bool connected( true );
72   PinchGestureDetector* gesture = dynamic_cast<PinchGestureDetector*>(object);
73
74   if ( Dali::PinchGestureDetector::SIGNAL_PINCH_DETECTED == signalName )
75   {
76     gesture->DetectedSignal().Connect( tracker, functor );
77   }
78   else
79   {
80     // signalName does not match any signal
81     connected = false;
82   }
83
84   return connected;
85 }
86
87 void PinchGestureDetector::OnActorAttach(Actor& actor)
88 {
89   // Do nothing
90 }
91
92 void PinchGestureDetector::OnActorDetach(Actor& actor)
93 {
94   // Do nothing
95 }
96
97 void PinchGestureDetector::OnActorDestroyed(Object& object)
98 {
99   // Do nothing
100 }
101
102 } // namespace Internal
103
104 } // namespace Dali