2 * Copyright (c) 2014 Samsung Electronics Co., Ltd.
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
8 * http://www.apache.org/licenses/LICENSE-2.0
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.
18 #include "toolkit-clipboard.h"
21 #include <dali/public-api/object/base-object.h>
22 #include <dali/devel-api/adaptor-framework/clipboard-event-notifier.h>
34 * Implementation of the Clip Board
37 class Clipboard : public Dali::BaseObject
42 * @copydoc Dali::ClipboardEventNotifier::Get()
44 static Dali::Clipboard Get();
48 * @param[in] ecoreXwin, The window is created by application.
50 Clipboard(/*Ecore_X_Window ecoreXwin*/);
54 * @copydoc Dali::Clipboard::IsAvailable()
56 static bool IsAvailable();
59 * @copydoc Dali::Clipboard::SetItem()
61 bool SetItem(const std::string &itemData);
64 * @copydoc Dali::Clipboard::RequestItem()
69 * @copydoc Dali::Clipboard::NumberOfClipboardItems()
71 unsigned int NumberOfItems();
74 * @copydoc Dali::Clipboard::ShowClipboard()
79 * @copydoc Dali::Clipboard::HideClipboard()
84 * @copydoc Dali::Clipboard::IsVisible()
86 bool IsVisible() const;
89 Clipboard( const Clipboard& );
90 Clipboard& operator=( Clipboard& );
92 static Dali::Clipboard mToolkitClipboard;
99 Dali::Clipboard Dali::Internal::Adaptor::Clipboard::mToolkitClipboard;
102 Clipboard::Clipboard()
108 Clipboard::~Clipboard()
112 Dali::Clipboard Clipboard::Get()
114 if( ! mToolkitClipboard )
116 mToolkitClipboard = Dali::Clipboard( new Dali::Internal::Adaptor::Clipboard() );
118 return mToolkitClipboard;
121 bool Clipboard::IsAvailable()
123 if(mToolkitClipboard)
130 bool Clipboard::SetItem(const std::string &itemData )
137 void Clipboard::RequestItem()
139 Dali::ClipboardEventNotifier clipboardEventNotifier(Dali::ClipboardEventNotifier::Get());
140 if ( clipboardEventNotifier )
142 clipboardEventNotifier.SetContent( mItem );
143 clipboardEventNotifier.EmitContentSelectedSignal();
147 unsigned int Clipboard::NumberOfItems()
152 void Clipboard::ShowClipboard()
157 void Clipboard::HideClipboard()
162 bool Clipboard::IsVisible() const
167 } // namespace Adaptor
169 } // namespace Internal
172 inline static Internal::Adaptor::Clipboard& GetImplementation(Dali::Clipboard& clipboard)
174 // Bypass any passed in clipboard handle - it probably won't be initialized
175 Dali::Clipboard theClipboard = Dali::Clipboard::Get();
176 BaseObject& object = theClipboard.GetBaseObject();
177 return static_cast<Internal::Adaptor::Clipboard&>(object);
180 inline static const Internal::Adaptor::Clipboard& GetImplementation(const Dali::Clipboard& clipboard)
182 // Bypass any passed in clipboard handle - it probably won't be initialized
183 Dali::Clipboard theClipboard = Dali::Clipboard::Get();
184 const BaseObject& object = theClipboard.GetBaseObject();
185 return static_cast<const Internal::Adaptor::Clipboard&>(object);
189 Clipboard::Clipboard()
192 Clipboard::~Clipboard()
195 Clipboard::Clipboard(Internal::Adaptor::Clipboard *impl)
200 Clipboard Clipboard::Get()
202 return Internal::Adaptor::Clipboard::Get();
204 bool Clipboard::SetItem( const std::string &itemData)
206 return GetImplementation(*this).SetItem( itemData );
209 void Clipboard::RequestItem()
211 GetImplementation(*this).RequestItem();
214 unsigned int Clipboard::NumberOfItems()
216 return GetImplementation(*this).NumberOfItems();
219 void Clipboard::ShowClipboard()
221 GetImplementation(*this).ShowClipboard();
224 void Clipboard::HideClipboard()
226 GetImplementation(*this).HideClipboard();
229 bool Clipboard::IsVisible() const
231 return GetImplementation(*this).IsVisible();