// EXTERNAL INCLUDES
#include <dali/public-api/object/base-object.h>
-
namespace Dali
{
{
/**
- * Implementation of the Clip Board
+ * Implementation of the Clipboard
*/
class Clipboard : public Dali::BaseObject
virtual ~Clipboard();
/**
- * @copydoc Dali::Clipboard::SetItem()
+ * @copydoc Dali::Clipboard::IsAvailable()
+ */
+ static bool IsAvailable();
+
+ /**
+ * @copydoc Dali::Clipboard::DataSentSignal()
+ */
+ Dali::Clipboard::DataSentSignalType& DataSentSignal();
+
+ /**
+ * @copydoc Dali::Clipboard::DataReceivedSignal()
+ */
+ Dali::Clipboard::DataReceivedSignalType& DataReceivedSignal();
+
+ /**
+ * @copydoc Dali::Clipboard::HasType()
+ */
+ bool HasType(const std::string& mimeType);
+
+ /**
+ * @copydoc Dali::Clipboard::SetData()
*/
- bool SetItem(const std::string &itemData);
+ bool SetData(const Dali::Clipboard::ClipData& clipData);
/**
- * @copydoc Dali::Clipboard::GetItem()
+ * @copydoc Dali::Clipboard::GetData()
*/
- std::string GetItem( unsigned int index );
+ uint32_t GetData(const std::string &mimeType);
/**
* @copydoc Dali::Clipboard::NumberOfClipboardItems()
*/
- unsigned int NumberOfItems();
+ size_t NumberOfItems();
/**
* @copydoc Dali::Clipboard::ShowClipboard()
*/
void HideClipboard();
+ /**
+ * @copydoc Dali::Clipboard::IsVisible()
+ */
+ bool IsVisible() const;
private:
Clipboard( const Clipboard& );
Clipboard& operator=( Clipboard& );
static Dali::Clipboard mToolkitClipboard;
+
+ 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
Dali::Clipboard Dali::Internal::Adaptor::Clipboard::mToolkitClipboard;
-Clipboard::Clipboard( /*Ecore_X_Window ecoreXwin*/)
+Clipboard::Clipboard()
{
+ mVisible = false;
+ 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;
}
-bool Clipboard::SetItem(const std::string &itemData )
+bool Clipboard::IsAvailable()
+{
+ if(mToolkitClipboard)
+ {
+ return true;
+ }
+ return false;
+}
+
+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)
{
+ mMimeType = clipData.GetMimeType();
+ mData = clipData.GetData();
+ mCount = 1u;
+
+ if(mData.empty())
+ {
+ return false;
+ }
+
+ mDataSentSignal.Emit(mMimeType.c_str(), mData.c_str());
+
return true;
}
-std::string Clipboard::GetItem( unsigned int index )
+uint32_t Clipboard::GetData(const std::string &mimeType)
{
- return "";
+ if(!mMimeType.compare(mimeType.c_str()))
+ {
+ mDataId++;
+ mDataReceivedSignal.Emit(mDataId, mMimeType.c_str(), mData.c_str());
+ return mDataId;
+ }
+ return 0u;
}
-unsigned int Clipboard::NumberOfItems()
+size_t Clipboard::NumberOfItems()
{
- return 0;
+ return mCount;
}
void Clipboard::ShowClipboard()
{
+ mVisible = true;
}
void Clipboard::HideClipboard()
{
+ mVisible = false;
}
+bool Clipboard::IsVisible() const
+{
+ return mVisible;
+}
} // namespace Adaptor
{
return Internal::Adaptor::Clipboard::Get();
}
-bool Clipboard::SetItem( const std::string &itemData)
-{
- return GetImplementation(*this).SetItem( itemData );
-}
-std::string Clipboard::GetItem( unsigned int index )
-{
- return GetImplementation(*this).GetItem( index );
-}
-
-unsigned int Clipboard::NumberOfItems()
+size_t Clipboard::NumberOfItems()
{
return GetImplementation(*this).NumberOfItems();
}
GetImplementation(*this).HideClipboard();
}
+bool Clipboard::IsVisible() const
+{
+ return GetImplementation(*this).IsVisible();
+}
+
} // namespace Dali