From f48a272d90a7dbaa86f148d4d43edc55c714dc85 Mon Sep 17 00:00:00 2001 From: Taehyub Kim Date: Fri, 15 Sep 2023 12:01:59 +0900 Subject: [PATCH] Binding for DragAndDrop Window APIs Change-Id: I3bbe5ad11ca5dd98a8ae4fe305fc025a400928dd --- .../dali-adaptor/drag-and-drop-wrap.cpp | 56 ++++++++++++++++++++++ 1 file changed, 56 insertions(+) diff --git a/dali-csharp-binder/dali-adaptor/drag-and-drop-wrap.cpp b/dali-csharp-binder/dali-adaptor/drag-and-drop-wrap.cpp index 4589ada..f3f2f33 100644 --- a/dali-csharp-binder/dali-adaptor/drag-and-drop-wrap.cpp +++ b/dali-csharp-binder/dali-adaptor/drag-and-drop-wrap.cpp @@ -153,6 +153,62 @@ SWIGEXPORT bool SWIGSTDCALL CSharp_Dali_DragAndDrop_RemoveListener(void * argDnD return result; } +SWIGEXPORT bool SWIGSTDCALL CSharp_Dali_DragAndDrop_Window_AddListener(void * argDnD, void * argTarget, void * argCallback) { + Dali::DragAndDrop *dnd = (Dali::DragAndDrop *)argDnD; + if (!dnd) { + SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, nullExceptMsg, 0); + return false; + } + + Dali::Window *pTarget; + Dali::Window target; + + pTarget = (Dali::Window *)argTarget; + if (!pTarget) { + SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, nullExceptMsg, 0); + return false; + } + + target = *pTarget; + bool result = false; + { + try { + dndCallback = (DnDCallback)argCallback; + result = dnd->AddListener(target, dndCallback); + } + CALL_CATCH_EXCEPTION(0); + } + return result; +} + +SWIGEXPORT bool SWIGSTDCALL CSharp_Dali_DragAndDrop_Window_RemoveListener(void * argDnD, void * argTarget, void * argCallback) { + Dali::DragAndDrop *dnd = (Dali::DragAndDrop *)argDnD; + if (!dnd) { + SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, nullExceptMsg, 0); + return false; + } + + Dali::Window *pTarget; + Dali::Window target; + + pTarget = (Dali::Window *)argTarget; + if (!pTarget) { + SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, nullExceptMsg, 0); + return false; + } + + target = *pTarget; + bool result = false; + { + try { + //TODO: use argCallback to remove target listener + result = dnd->RemoveListener(target); + } + CALL_CATCH_EXCEPTION(0); + } + return result; +} + SWIGEXPORT int SWIGSTDCALL CSharp_Dali_DragEvent_GetAction(void * jarg) { int jresult; Dali::DragAndDrop::DragEvent *dragEvent = (Dali::DragAndDrop::DragEvent *)jarg; -- 2.7.4