From 7e6b25ee5a1c802e1bb37fc0c2f77cba1365bf73 Mon Sep 17 00:00:00 2001 From: Umar Date: Thu, 30 Mar 2017 18:48:07 +0100 Subject: [PATCH] Added Dispose Queue bindings for missing C# classes Change-Id: I2cf0de4f1efeb467e0511add78a7aabb523d59f2 --- plugins/dali-swig/SWIG/dali-gc.i | 49 ++++++---------------- plugins/dali-swig/manual/csharp/ViewWrapperImpl.cs | 8 +++- 2 files changed, 19 insertions(+), 38 deletions(-) diff --git a/plugins/dali-swig/SWIG/dali-gc.i b/plugins/dali-swig/SWIG/dali-gc.i index 3ef430c..059fdc1 100644 --- a/plugins/dali-swig/SWIG/dali-gc.i +++ b/plugins/dali-swig/SWIG/dali-gc.i @@ -175,35 +175,6 @@ %} %enddef -%define DALI_CREATE_CUSTOM_DESTRUCTOR_FUNCTION_TIMERSIGNALTYPE( NameSpace, ClassName ) -%typemap(csfinalize) NameSpace::ClassName %{ - ~TimerSignalType() { - DisposeQueue.Instance.Add(this); - } -%} -%enddef - -%define DALI_CREATE_CUSTOM_DISPOSE_FUNCTION_TIMERSIGNALTYPE( NameSpace, ClassName ) -%typemap(csdestruct, methodname="Dispose", methodmodifiers="public") NameSpace::ClassName %{{ - if (!Stage.IsInstalled()) { - DisposeQueue.Instance.Add(this); - return; - } - - lock(this) { - if (swigCPtr.Handle != global::System.IntPtr.Zero) { - if (swigCMemOwn) { - swigCMemOwn = false; - NDalicPINVOKE.delete_TimerSignalType(swigCPtr); - } - swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero); - } - global::System.GC.SuppressFinalize(this); - } - } -%} -%enddef - DALI_CREATE_CUSTOM_DESTRUCTOR_FUNCTION( Dali, Any ); DALI_CREATE_CUSTOM_DISPOSE_FUNCTION( Dali, Any ); DALI_CREATE_CUSTOM_DESTRUCTOR_FUNCTION( Dali, Actor ); @@ -387,13 +358,13 @@ DALI_CREATE_CUSTOM_DESTRUCTOR_FUNCTION( Dali::Toolkit, PushButton ); DALI_CREATE_CUSTOM_DISPOSE_DERIVED_FUNCTION( Dali::Toolkit, PushButton ); DALI_CREATE_CUSTOM_DESTRUCTOR_FUNCTION( Dali::Toolkit, RadioButton ); DALI_CREATE_CUSTOM_DISPOSE_DERIVED_FUNCTION( Dali::Toolkit, RadioButton ); +DALI_CREATE_CUSTOM_DESTRUCTOR_FUNCTION( Dali::Toolkit, ToggleButton ); +DALI_CREATE_CUSTOM_DISPOSE_DERIVED_FUNCTION( Dali::Toolkit, ToggleButton ); DALI_CREATE_CUSTOM_DESTRUCTOR_FUNCTION( Dali::Toolkit, Builder ); DALI_CREATE_CUSTOM_DISPOSE_DERIVED_FUNCTION( Dali::Toolkit, Builder ); -//DALI_CREATE_CUSTOM_DESTRUCTOR_FUNCTION( Dali::Toolkit, View ); -//DALI_CREATE_CUSTOM_DISPOSE_DERIVED_FUNCTION( Dali::Toolkit, View ); -//DALI_CREATE_CUSTOM_DESTRUCTOR_FUNCTION( Dali::Toolkit, ViewImpl ); -//DALI_CREATE_CUSTOM_DISPOSE_DERIVED_FUNCTION( Dali::Toolkit, ViewImpl ); +DALI_CREATE_CUSTOM_DESTRUCTOR_FUNCTION( Dali::Toolkit::DevelKeyboardFocusManager, CustomAlgorithmInterface ); +DALI_CREATE_CUSTOM_DISPOSE_FUNCTION( Dali::Toolkit::DevelKeyboardFocusManager, CustomAlgorithmInterface ); DALI_CREATE_CUSTOM_DESTRUCTOR_FUNCTION( Dali::Toolkit, FlexContainer ); DALI_CREATE_CUSTOM_DISPOSE_DERIVED_FUNCTION( Dali::Toolkit, FlexContainer ); @@ -453,10 +424,13 @@ DALI_CREATE_CUSTOM_DISPOSE_DERIVED_FUNCTION( Dali::Toolkit, TextLabel ); DALI_CREATE_CUSTOM_DESTRUCTOR_FUNCTION( Dali::Toolkit, VideoView ); DALI_CREATE_CUSTOM_DISPOSE_DERIVED_FUNCTION( Dali::Toolkit, VideoView ); -//DALI_CREATE_CUSTOM_DESTRUCTOR_FUNCTION( Dali::Toolkit, VisualBase ); -//DALI_CREATE_CUSTOM_DISPOSE_DERIVED_FUNCTION( Dali::Toolkit, VisualBase); +DALI_CREATE_CUSTOM_DESTRUCTOR_FUNCTION_RENAME( Dali::Toolkit::Visual, Base, VisualBase ); +DALI_CREATE_CUSTOM_DISPOSE_DERIVED_FUNCTION_RENAME( Dali::Toolkit::Visual, Base, VisualBase); + DALI_CREATE_CUSTOM_DESTRUCTOR_FUNCTION( Dali::Toolkit, VisualFactory ); DALI_CREATE_CUSTOM_DISPOSE_DERIVED_FUNCTION( Dali::Toolkit, VisualFactory ); +DALI_CREATE_CUSTOM_DESTRUCTOR_FUNCTION( Dali::Toolkit, TransitionData ); +DALI_CREATE_CUSTOM_DISPOSE_DERIVED_FUNCTION( Dali::Toolkit, TransitionData ); DALI_CREATE_CUSTOM_DISPOSE_FUNCTION_RENAME( Dali, Signal, ApplicationSignal); DALI_CREATE_CUSTOM_DESTRUCTOR_FUNCTION_RENAME( Dali, Signal, ApplicationSignal); @@ -497,8 +471,9 @@ DALI_CREATE_CUSTOM_DISPOSE_FUNCTION_RENAME( Dali, Signal); //DALI_CREATE_CUSTOM_DESTRUCTOR_FUNCTION_BOOLSIGNAL( Dali, Signal); //DALI_CREATE_CUSTOM_DISPOSE_FUNCTION_BOOLSIGNAL( Dali, Signal); -//DALI_CREATE_CUSTOM_DESTRUCTOR_FUNCTION_TIMERSIGNALTYPE( Dali, Signal); -//DALI_CREATE_CUSTOM_DISPOSE_FUNCTION_TIMERSIGNALTYPE( Dali, Signal); + +DALI_CREATE_CUSTOM_DESTRUCTOR_FUNCTION_RENAME( Dali, Signal, TimerSignalType); +DALI_CREATE_CUSTOM_DISPOSE_FUNCTION_RENAME( Dali, Signal, TimerSignalType); DALI_CREATE_CUSTOM_DESTRUCTOR_FUNCTION_RENAME( Dali, Signal, ActorSignal); DALI_CREATE_CUSTOM_DISPOSE_FUNCTION_RENAME( Dali, Signal, ActorSignal); diff --git a/plugins/dali-swig/manual/csharp/ViewWrapperImpl.cs b/plugins/dali-swig/manual/csharp/ViewWrapperImpl.cs index 982c304..358a6bb 100644 --- a/plugins/dali-swig/manual/csharp/ViewWrapperImpl.cs +++ b/plugins/dali-swig/manual/csharp/ViewWrapperImpl.cs @@ -110,11 +110,17 @@ namespace Dali ~ViewWrapperImpl() { - Dispose(); + DisposeQueue.Instance.Add(this); } public override void Dispose() { + if (!Stage.IsInstalled()) + { + DisposeQueue.Instance.Add(this); + return; + } + lock(this) { if (swigCPtr.Handle != global::System.IntPtr.Zero) -- 2.7.4