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;
42 * DragAndDrop Implementation
44 class DragAndDropEcoreWl : public Dali::Internal::Adaptor::DragAndDrop
55 ~DragAndDropEcoreWl() override;
58 * @copydoc Dali::DragAndDrop::StartDragAndDrop()
60 bool StartDragAndDrop(Dali::Actor source, Dali::Window shadowWindow, const Dali::DragAndDrop::DragData& data, Dali::DragAndDrop::SourceFunction callback) override;
63 * @copydoc Dali::DragAndDrop::AddListener()
65 bool AddListener(Dali::Actor target, Dali::DragAndDrop::DragAndDropFunction callback) override;
68 * @copydoc Dali::DragAndDrop::RemoveListener()
70 bool RemoveListener(Dali::Actor target) override;
73 * @copydoc Dali::DragAndDrop::SendData()
75 void SendData(void* event) override;
78 * @copydoc Dali::DragAndDrop::ReceiveData()
80 void ReceiveData(void* event) override;
83 * @copydoc Dali::DragAndDrop::CalculateDragEvent()
85 bool CalculateDragEvent(void* event) override;
88 * @copydoc Dali::DragAndDrop::CalculateViewRegion()
90 bool CalculateViewRegion(void* event) override;
93 * @brief Call drag source events.
95 void CallSourceEvent(Dali::DragAndDrop::SourceEventType type);
98 * @brief Reset drop targets.
100 void ResetDropTargets();
103 DragAndDropEcoreWl(const DragAndDropEcoreWl&) = delete;
104 DragAndDropEcoreWl& operator=(DragAndDropEcoreWl&) = delete;
105 DragAndDropEcoreWl(DragAndDropEcoreWl&&) = delete;
106 DragAndDropEcoreWl& operator=(DragAndDropEcoreWl&&) = delete;
109 Dali::Window mDragWindow;
110 uint32_t mSerial{0u};
111 Ecore_Event_Handler* mSendHandler{nullptr};
112 Ecore_Event_Handler* mSourceEndHandler{nullptr};
113 Ecore_Event_Handler* mSourceDropHandler{nullptr};
114 Ecore_Event_Handler* mReceiveHandler{nullptr};
115 Ecore_Event_Handler* mMotionHandler{nullptr};
116 Ecore_Event_Handler* mDropHandler{nullptr};
117 Ecore_Event_Handler* mEnterHandler{nullptr};
118 Ecore_Event_Handler* mLeaveHandler{nullptr};
120 std::string mMimeType;
123 Dali::Vector2 mPosition;
124 Dali::DragAndDrop::SourceFunction mSourceCallback{nullptr};
125 std::vector<DropTarget> mDropTargets;
126 }; // class DragAndDropEcoreWl
128 } // namespace Adaptor
130 } // namespace Internal
134 #endif // DALI_INTERNAL_DRAG_AND_DROP_ECORE_WL2_H