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