[dali_2.3.24] Merge branch 'devel/master'
[platform/core/uifw/dali-toolkit.git] / automated-tests / src / dali-toolkit / dali-toolkit-test-utils / toolkit-clipboard.cpp
index 956da8d..b8e1a03 100644 (file)
@@ -20,7 +20,6 @@
 // EXTERNAL INCLUDES
 #include <dali/public-api/object/base-object.h>
 
-
 namespace Dali
 {
 
@@ -31,7 +30,7 @@ namespace Adaptor
 {
 
 /**
- * Implementation of the Clip Board
+ * Implementation of the Clipboard
  */
 
 class Clipboard :  public Dali::BaseObject
@@ -51,19 +50,39 @@ public:
   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()
@@ -75,20 +94,35 @@ public:
    */
   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()
@@ -97,36 +131,83 @@ 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
 
@@ -165,17 +246,8 @@ Clipboard Clipboard::Get()
 {
   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();
 }
@@ -190,4 +262,9 @@ void Clipboard::HideClipboard()
   GetImplementation(*this).HideClipboard();
 }
 
+bool Clipboard::IsVisible() const
+{
+  return GetImplementation(*this).IsVisible();
+}
+
 } // namespace Dali