1 #ifndef DALI_INTERNAL_DRAG_AND_DROP_ECORE_WL2_H
2 #define DALI_INTERNAL_DRAG_AND_DROP_ECORE_WL2_H
5 * Copyright (c) 2022 Samsung Electronics Co., Ltd.
7 * Licensed under the Apache License, Version 2.0 (the "License");
8 * you may not use this file except in compliance with the License.
9 * You may obtain a copy of the License at
11 * http://www.apache.org/licenses/LICENSE-2.0
13 * Unless required by applicable law or agreed to in writing, software
14 * distributed under the License is distributed on an "AS IS" BASIS,
15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 * See the License for the specific language governing permissions and
17 * limitations under the License.
22 #include <dali/internal/drag-and-drop/common/drag-and-drop-impl.h>
23 #include <dali/internal/system/linux/dali-ecore.h>
36 Dali::DragAndDrop::DragAndDropFunction callback;
41 * DragAndDrop Implementation
43 class DragAndDropEcoreWl : public Dali::Internal::Adaptor::DragAndDrop
54 ~DragAndDropEcoreWl() override;
57 * @copydoc Dali::DragAndDrop::StartDragAndDrop()
59 bool StartDragAndDrop(Dali::Actor source, Dali::Window shadowWindow, const Dali::DragAndDrop::DragData& data, Dali::DragAndDrop::SourceFunction callback) override;
62 * @copydoc Dali::DragAndDrop::AddListener()
64 bool AddListener(Dali::Actor target, Dali::DragAndDrop::DragAndDropFunction callback) override;
67 * @copydoc Dali::DragAndDrop::RemoveListener()
69 bool RemoveListener(Dali::Actor target) override;
72 * @copydoc Dali::DragAndDrop::SendData()
74 void SendData(void* event) override;
77 * @copydoc Dali::DragAndDrop::ReceiveData()
79 void ReceiveData(void* event) override;
82 * @copydoc Dali::DragAndDrop::CalculateDragEvent()
84 bool CalculateDragEvent(void* event) override;
87 * @copydoc Dali::DragAndDrop::CalculateViewRegion()
89 bool CalculateViewRegion(void* event) override;
92 * @brief Call drag source events.
94 void CallSourceEvent(Dali::DragAndDrop::SourceEventType type);
97 * @brief Reset drop targets.
99 void ResetDropTargets();
102 DragAndDropEcoreWl(const DragAndDropEcoreWl&) = delete;
103 DragAndDropEcoreWl& operator=(DragAndDropEcoreWl&) = delete;
104 DragAndDropEcoreWl(DragAndDropEcoreWl&&) = delete;
105 DragAndDropEcoreWl& operator=(DragAndDropEcoreWl&&) = delete;
108 Dali::Window mDragWindow;
109 uint32_t mSerial{0u};
110 Ecore_Event_Handler* mSendHandler{nullptr};
111 Ecore_Event_Handler* mSourceEndHandler{nullptr};
112 Ecore_Event_Handler* mSourceDropHandler{nullptr};
113 Ecore_Event_Handler* mReceiveHandler{nullptr};
114 Ecore_Event_Handler* mMotionHandler{nullptr};
115 Ecore_Event_Handler* mDropHandler{nullptr};
116 Ecore_Event_Handler* mEnterHandler{nullptr};
117 Ecore_Event_Handler* mLeaveHandler{nullptr};
119 std::string mMimeType;
122 Dali::Vector2 mPosition;
123 Dali::DragAndDrop::SourceFunction mSourceCallback{nullptr};
124 std::vector<DropTarget> mDropTargets;
125 }; // class DragAndDropEcoreWl
127 } // namespace Adaptor
129 } // namespace Internal
133 #endif // DALI_INTERNAL_DRAG_AND_DROP_ECORE_WL2_H