Update common test util
[platform/core/uifw/dali-toolkit.git] / automated-tests / src / dali-toolkit / dali-toolkit-test-utils / toolkit-clipboard-event-notifier.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 #include "toolkit-clipboard-event-notifier.h"
19
20 #include <dali/public-api/common/dali-common.h>
21 #include <dali/public-api/object/base-object.h>
22 #include <dali/public-api/signals/dali-signal.h>
23
24 namespace Dali
25 {
26
27 namespace Internal
28 {
29
30 namespace Adaptor
31 {
32
33 class ClipboardEventNotifier : public Dali::BaseObject
34 {
35 public:
36
37   typedef Dali::ClipboardEventNotifier::ClipboardEventSignalType ClipboardEventSignalType;
38
39   // Creation
40   static Dali::ClipboardEventNotifier New();
41   static Dali::ClipboardEventNotifier Get();
42
43   // Public API
44   const std::string& GetContent() const;
45   void SetContent( const std::string& content );
46   void ClearContent();
47   void EmitContentSelectedSignal();
48
49   // Signals
50   ClipboardEventSignalType& ContentSelectedSignal()
51   {
52     return mContentSelectedSignal;
53   }
54
55 private:
56   // Construction & Destruction
57   ClipboardEventNotifier();
58   virtual ~ClipboardEventNotifier();
59
60   // Undefined
61   ClipboardEventNotifier( const ClipboardEventNotifier& );
62   ClipboardEventNotifier& operator=( ClipboardEventNotifier& );
63
64 private:
65
66   std::string mContent;    ///< The current selected content.
67   ClipboardEventSignalType mContentSelectedSignal;
68
69   static Dali::ClipboardEventNotifier mToolkitClipboardEventNotifier;
70
71 public:
72
73   // Helpers for public-api forwarding methods
74
75   inline static Internal::Adaptor::ClipboardEventNotifier& GetImplementation(Dali::ClipboardEventNotifier& detector)
76   {
77     DALI_ASSERT_ALWAYS( detector && "ClipboardEventNotifier handle is empty" );
78
79     BaseObject& handle = detector.GetBaseObject();
80
81     return static_cast<Internal::Adaptor::ClipboardEventNotifier&>(handle);
82   }
83
84   inline static const Internal::Adaptor::ClipboardEventNotifier& GetImplementation(const Dali::ClipboardEventNotifier& detector)
85   {
86     DALI_ASSERT_ALWAYS( detector && "ClipboardEventNotifier handle is empty" );
87
88     const BaseObject& handle = detector.GetBaseObject();
89
90     return static_cast<const Internal::Adaptor::ClipboardEventNotifier&>(handle);
91   }
92
93 };
94
95 Dali::ClipboardEventNotifier ClipboardEventNotifier::mToolkitClipboardEventNotifier;
96
97 Dali::ClipboardEventNotifier ClipboardEventNotifier::New()
98 {
99   return Get();
100 }
101
102 Dali::ClipboardEventNotifier ClipboardEventNotifier::Get()
103 {
104   if ( !mToolkitClipboardEventNotifier )
105   {
106     mToolkitClipboardEventNotifier = Dali::ClipboardEventNotifier( new ClipboardEventNotifier );
107   }
108   return mToolkitClipboardEventNotifier;
109 }
110
111 const std::string& ClipboardEventNotifier::GetContent() const
112 {
113   return mContent;
114 }
115
116 void ClipboardEventNotifier::SetContent( const std::string& content )
117 {
118   mContent = content;
119 }
120
121 void ClipboardEventNotifier::ClearContent()
122 {
123   mContent.clear();
124 }
125
126 void ClipboardEventNotifier::EmitContentSelectedSignal()
127 {
128   if ( !mContentSelectedSignal.Empty() )
129   {
130     Dali::ClipboardEventNotifier handle( this );
131     mContentSelectedSignal.Emit( handle );
132   }
133 }
134
135 ClipboardEventNotifier::ClipboardEventNotifier()
136 : mContent()
137 {
138 }
139
140 ClipboardEventNotifier::~ClipboardEventNotifier()
141 {
142 }
143
144 } // namespace Adaptor
145 } // namespace Internal
146
147 ////////////////////////////////////////////////////////////////////////////////////////////////////
148
149 ClipboardEventNotifier::ClipboardEventNotifier()
150 {
151 }
152
153 ClipboardEventNotifier ClipboardEventNotifier::Get()
154 {
155   return Internal::Adaptor::ClipboardEventNotifier::Get();
156 }
157
158 ClipboardEventNotifier::~ClipboardEventNotifier()
159 {
160 }
161
162 const std::string& ClipboardEventNotifier::GetContent() const
163 {
164   return Internal::Adaptor::ClipboardEventNotifier::GetImplementation(*this).GetContent();
165 }
166
167 void ClipboardEventNotifier::SetContent( const std::string& content )
168 {
169   Internal::Adaptor::ClipboardEventNotifier::GetImplementation(*this).SetContent(content);
170 }
171
172 void ClipboardEventNotifier::ClearContent()
173 {
174   Internal::Adaptor::ClipboardEventNotifier::GetImplementation(*this).ClearContent();
175 }
176
177 void ClipboardEventNotifier::EmitContentSelectedSignal()
178 {
179   Internal::Adaptor::ClipboardEventNotifier::GetImplementation(*this).EmitContentSelectedSignal();
180 }
181
182 ClipboardEventNotifier::ClipboardEventSignalType& ClipboardEventNotifier::ContentSelectedSignal()
183 {
184   return Internal::Adaptor::ClipboardEventNotifier::GetImplementation(*this).ContentSelectedSignal();
185 }
186
187 ClipboardEventNotifier::ClipboardEventNotifier( Internal::Adaptor::ClipboardEventNotifier* notifier )
188 : BaseHandle( notifier )
189 {
190 }
191
192 } // namespace Dali