DragAndDrop : Add Window AddListener
[platform/core/uifw/dali-adaptor.git] / dali / internal / drag-and-drop / tizen-wayland / drag-and-drop-impl-ecore-wl2.h
index 18a0f7b..acb1699 100644 (file)
@@ -38,6 +38,14 @@ struct DropTarget
   int                                    parentWindowId;
 };
 
+struct DropWindowTarget
+{
+  Dali::Window                            target;
+  Dali::DragAndDrop::DragAndDropFunction  callback;
+  bool                                    inside;
+  int                                     windowId;
+};
+
 /**
  * DragAndDrop Implementation
  */
@@ -66,11 +74,21 @@ public:
   bool AddListener(Dali::Actor target, Dali::DragAndDrop::DragAndDropFunction callback) override;
 
   /**
+   * @copydoc Dali::DragAndDrop::AddListener()
+   */
+  bool AddListener(Dali::Window target, Dali::DragAndDrop::DragAndDropFunction callback) override;
+
+  /**
    * @copydoc Dali::DragAndDrop::RemoveListener()
    */
   bool RemoveListener(Dali::Actor target) override;
 
   /**
+   * @copydoc Dali::DragAndDrop::RemoveListener()
+   */
+  bool RemoveListener(Dali::Window target) override;
+
+  /**
    * @copydoc Dali::DragAndDrop::SendData()
    */
   void SendData(void* event) override;
@@ -135,12 +153,15 @@ private:
   Ecore_Event_Handler*              mEnterHandler{nullptr};
   Ecore_Event_Handler*              mLeaveHandler{nullptr};
   int                               mTargetIndex{0};
+  int                               mWindowTargetIndex{0};
   std::string                       mMimeType;
   std::string                       mData;
   int                               mDataSize{0};
   Dali::Vector2                     mPosition;
+  Dali::Vector2                     mWindowPosition;
   Dali::DragAndDrop::SourceFunction mSourceCallback{nullptr};
   std::vector<DropTarget>           mDropTargets;
+  std::vector<DropWindowTarget>     mDropWindowTargets;
 }; // class DragAndDropEcoreWl
 
 } // namespace Adaptor