// EXTERNAL INCLUDES
#include <dali/public-api/object/base-object.h>
-#include <dali/devel-api/adaptor-framework/clipboard-event-notifier.h>
namespace Dali
{
{
/**
- * Implementation of the Clip Board
+ * Implementation of the Clipboard
*/
class Clipboard : public Dali::BaseObject
static bool IsAvailable();
/**
- * @copydoc Dali::Clipboard::SetItem()
+ * @copydoc Dali::Clipboard::DataSentSignal()
*/
- bool SetItem(const std::string &itemData);
+ Dali::Clipboard::DataSentSignalType& DataSentSignal();
/**
- * @copydoc Dali::Clipboard::RequestItem()
+ * @copydoc Dali::Clipboard::DataReceivedSignal()
*/
- void RequestItem();
+ Dali::Clipboard::DataReceivedSignalType& DataReceivedSignal();
+
+ /**
+ * @copydoc Dali::Clipboard::HasType()
+ */
+ bool HasType(const std::string& mimeType);
+
+ /**
+ * @copydoc Dali::Clipboard::SetData()
+ */
+ bool SetData(const Dali::Clipboard::ClipData& clipData);
+
+ /**
+ * @copydoc Dali::Clipboard::GetData()
+ */
+ uint32_t GetData(const std::string &mimeType);
/**
* @copydoc Dali::Clipboard::NumberOfClipboardItems()
*/
- unsigned int NumberOfItems();
+ size_t NumberOfItems();
/**
* @copydoc Dali::Clipboard::ShowClipboard()
Clipboard& operator=( Clipboard& );
static Dali::Clipboard mToolkitClipboard;
- bool mVisible;
- std::string mItem;
- int mCount;
+
+ bool mVisible;
+ std::string mMimeType;
+ std::string mData;
+ uint32_t mDataId{0};
+ size_t mCount;
+
+ Dali::Clipboard::DataSentSignalType mDataSentSignal;
+ Dali::Clipboard::DataReceivedSignalType mDataReceivedSignal;
}; // class clipboard
Clipboard::Clipboard()
{
mVisible = false;
- mCount = 0;
+ mCount = 0u;
}
Clipboard::~Clipboard()
Dali::Clipboard Clipboard::Get()
{
- if( ! mToolkitClipboard )
+ if(!mToolkitClipboard)
{
- mToolkitClipboard = Dali::Clipboard( new Dali::Internal::Adaptor::Clipboard() );
+ mToolkitClipboard = Dali::Clipboard(new Dali::Internal::Adaptor::Clipboard());
}
return mToolkitClipboard;
}
return false;
}
-bool Clipboard::SetItem(const std::string &itemData )
+Dali::Clipboard::DataSentSignalType& Clipboard::DataSentSignal()
+{
+ return mDataSentSignal;
+}
+
+Dali::Clipboard::DataReceivedSignalType& Clipboard::DataReceivedSignal()
+{
+ return mDataReceivedSignal;
+}
+
+bool Clipboard::HasType(const std::string& mimeType)
+{
+ return mMimeType == mimeType ? true : false;
+}
+
+bool Clipboard::SetData(const Dali::Clipboard::ClipData& clipData)
{
- mItem = itemData;
- mCount = 1;
+ mMimeType = clipData.GetMimeType();
+ mData = clipData.GetData();
+ mCount = 1u;
+
+ if(mData.empty())
+ {
+ return false;
+ }
+
+ mDataSentSignal.Emit(mMimeType.c_str(), mData.c_str());
+
return true;
}
-void Clipboard::RequestItem()
+uint32_t Clipboard::GetData(const std::string &mimeType)
{
- Dali::ClipboardEventNotifier clipboardEventNotifier(Dali::ClipboardEventNotifier::Get());
- if ( clipboardEventNotifier )
+ if(!mMimeType.compare(mimeType.c_str()))
{
- clipboardEventNotifier.SetContent( mItem );
- clipboardEventNotifier.EmitContentSelectedSignal();
+ mDataId++;
+ mDataReceivedSignal.Emit(mDataId, mMimeType.c_str(), mData.c_str());
+ return mDataId;
}
+ return 0u;
}
-unsigned int Clipboard::NumberOfItems()
+size_t Clipboard::NumberOfItems()
{
return mCount;
}
{
return Internal::Adaptor::Clipboard::Get();
}
-bool Clipboard::SetItem( const std::string &itemData)
-{
- return GetImplementation(*this).SetItem( itemData );
-}
-
-void Clipboard::RequestItem()
-{
- GetImplementation(*this).RequestItem();
-}
-unsigned int Clipboard::NumberOfItems()
+size_t Clipboard::NumberOfItems()
{
return GetImplementation(*this).NumberOfItems();
}