2 * Copyright (c) 2016 Samsung Electronics Co., Ltd.
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
18 %define RenderTask_EVENTHANDLER_TYPEMAP_EVENTARG(NameSpace, ClassName)
19 %typemap(csimports) NameSpace::ClassName %{
21 using System.Runtime.InteropServices;
27 %define RenderTask_EVENTHANDLER_TYPEMAP_HELPER(NameSpace, ClassName)
28 %typemap(cscode) NameSpace::ClassName %{
31 public class FinishedEventArgs : EventArgs
33 private RenderTask _renderTask;
35 public RenderTask RenderTask
48 [UnmanagedFunctionPointer(CallingConvention.StdCall)]
49 public delegate void RenderTaskEventHandler(object source, FinishedEventArgs e);
51 [UnmanagedFunctionPointer(CallingConvention.StdCall)]
52 private delegate void RenderTaskCallbackDelegate(IntPtr renderTask);
53 private RenderTaskEventHandler _renderTaskEventHandler;
54 private RenderTaskCallbackDelegate _renderTaskCallbackDelegate;
57 public event RenderTaskEventHandler Finished
63 // Restricted to only one listener
64 if (_renderTaskEventHandler == null)
66 _renderTaskEventHandler += value;
68 _renderTaskCallbackDelegate = new RenderTaskCallbackDelegate(OnFinished);
69 this.FinishedSignal().Connect(_renderTaskCallbackDelegate);
78 if (_renderTaskEventHandler != null)
80 this.FinishedSignal().Disconnect(_renderTaskCallbackDelegate);
83 _renderTaskEventHandler -= value;
88 private void OnFinished(IntPtr actor, IntPtr renderTask)
90 FinishedEventArgs e = new FinishedEventArgs();
92 // Populate all members of "e" (FinishedEventArgs) with real data
93 e.RenderTask = Dali.RenderTask.GetRenderTaskFromPtr(renderTask);
95 if (_renderTaskEventHandler != null)
97 //here we send all data to user event handlers
98 _renderTaskEventHandler(this, e);
104 public static ClassName Get ## ClassName ## FromPtr(global::System.IntPtr cPtr) {
105 ClassName ret = new ClassName(cPtr, false);
106 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
114 %define DALI_renderTask_EVENTHANDLER_PARAM( NameSpace, ClassName)
116 RenderTask_EVENTHANDLER_TYPEMAP_EVENTARG( NameSpace, ClassName);
117 RenderTask_EVENTHANDLER_TYPEMAP_HELPER( NameSpace, ClassName);
123 DALI_renderTask_EVENTHANDLER_PARAM( Dali, RenderTask);