cf2d96548a6c82702f2ee99ac11f9bea3f9362a1
[platform/core/uifw/dali-toolkit.git] / automated-tests / src / dali-toolkit / dali-toolkit-test-utils / dummy-control.h
1 #ifndef __DALI_TOOLKIT_TEST_DUMMY_CONTROL_H__
2 #define __DALI_TOOLKIT_TEST_DUMMY_CONTROL_H__
3
4 //
5 // Copyright (c) 2014 Samsung Electronics Co., Ltd.
6 //
7 // Licensed under the Flora License, Version 1.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://floralicense.org/license/
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 // INTERNAL INCLUDES
21 #include <dali-toolkit/dali-toolkit.h>
22
23 namespace Dali
24 {
25
26 namespace Toolkit
27 {
28
29 class DummyControlImpl;
30
31 /**
32  * Control does not have a New method so use this dummy class for the handle.
33  */
34 class DummyControl : public Control
35 {
36 public:
37
38   DummyControl();
39   DummyControl(const DummyControl& control);
40   virtual ~DummyControl();
41
42   static DummyControl New( bool override = false );
43
44   static DummyControl DownCast( BaseHandle handle );
45
46
47   DummyControl& operator=(const DummyControl& control);
48
49   // Used to test signal connections
50   void CustomSlot1( Actor actor, const Vector3& value );
51
52 public:
53
54   bool mCustomSlot1Called;
55   Vector3 mCustomSlot1Value;
56
57 public: // Not intended for application developers
58
59   DummyControl( DummyControlImpl& implementation );
60   DummyControl( Dali::Internal::CustomActor* internal );
61 };
62
63 /**
64  * Cannot create an instance of ControlImpl, so use this dummy class for the implementation.
65  * This class does not override any of ControlImpl's behaviour.
66  */
67 class DummyControlImpl : public ControlImpl
68 {
69 public:
70
71   static DummyControl New();
72
73 public:
74   inline void EnableGestureDetection(Gesture::Type type) { ControlImpl::EnableGestureDetection(type); }
75   inline void DisableGestureDetection(Gesture::Type type) { ControlImpl::DisableGestureDetection(type); }
76   inline PinchGestureDetector GetPinchGestureDetector() const { return ControlImpl::GetPinchGestureDetector(); }
77   inline PanGestureDetector GetPanGestureDetector() const { return ControlImpl::GetPanGestureDetector(); }
78   inline TapGestureDetector GetTapGestureDetector() const { return ControlImpl::GetTapGestureDetector(); }
79   inline LongPressGestureDetector GetLongPressGestureDetector() const { return ControlImpl::GetLongPressGestureDetector(); }
80
81 protected:
82
83   DummyControlImpl();
84
85   virtual ~DummyControlImpl();
86 };
87
88 /**
89  * Cannot create an instance of ControlImpl, so use this dummy class for the implementation.
90  * This class DOES override ControlImpl's behaviour.
91  */
92 class DummyControlImplOverride : public DummyControlImpl
93 {
94 public:
95
96   static DummyControl New();
97
98 private:
99
100   DummyControlImplOverride();
101
102   virtual ~DummyControlImplOverride();
103
104 private: // From ControlImpl
105
106   virtual void OnInitialize();
107   virtual void OnStyleChange(StyleChange change);
108   virtual void OnPinch(PinchGesture pinch);
109   virtual void OnPan(PanGesture pan);
110   virtual void OnTap(TapGesture tap);
111   virtual void OnLongPress(LongPressGesture longPress);
112
113 private: // From CustomActorImpl
114
115   virtual void OnStageConnection();
116   virtual void OnStageDisconnection();
117   virtual void OnChildAdd(Actor& child);
118   virtual void OnChildRemove(Actor& child);
119   virtual void OnSizeSet(const Vector3& targetSize);
120   virtual void OnSizeAnimation(Animation& animation, const Vector3& targetSize);
121   virtual bool OnTouchEvent(const TouchEvent& event);
122   virtual bool OnMouseWheelEvent(const MouseWheelEvent& event);
123   virtual bool OnKeyEvent(const KeyEvent& event);
124   virtual void OnKeyInputFocusGained();
125   virtual void OnKeyInputFocusLost();
126
127 public:
128
129   bool initializeCalled;
130   bool styleChangeCalled;
131   bool pinchCalled;
132   bool panCalled;
133   bool tapCalled;
134   bool longPressCalled;
135   bool stageConnectionCalled;
136   bool stageDisconnectionCalled;
137   bool childAddCalled;
138   bool childRemoveCalled;
139   bool sizeSetCalled;
140   bool sizeAnimationCalled;
141   bool touchEventCalled;
142   bool mouseWheelEventCalled;
143   bool keyEventCalled;
144   bool keyInputFocusGained;
145   bool keyInputFocusLost;
146 };
147
148 } // namespace Toolkit
149
150 } // namespace Dali
151
152 #endif // __DALI_TOOLKIT_TEST_DUMMY_CONTROL_H__