Merge "DALi C# binding - Generic Delegates support for EventHandlers" into devel...
[platform/core/uifw/dali-toolkit.git] / plugins / dali-swig / SWIG / events / pageturnview-event.i
1 /*
2  * Copyright (c) 2016 Samsung Electronics Co., Ltd.
3  *
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
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
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.
15  *
16  */
17
18 %define PAGETURNVIEW_EVENTHANDLER_TYPEMAP_EVENTARG(NameSpace, ClassName)
19 %typemap(csimports) NameSpace::ClassName %{
20 using System;
21 using System.Runtime.InteropServices;
22
23 %}
24 %enddef
25
26 %define PAGETURNVIEW_EVENTHANDLER_TYPEMAP_HELPER(NameSpace, ClassName)
27 %typemap(cscode) NameSpace::ClassName %{
28
29 public class PagePanStartedEventArgs : EventArgs
30 {
31    private PageTurnView _pageTurnView;
32
33    public PageTurnView PageTurnView
34    {
35       get
36       {
37          return _pageTurnView;
38       }
39       set
40       {
41          _pageTurnView = value;
42       }
43    }
44 }
45
46 public class PagePanFinishedEventArgs : EventArgs
47 {
48    private PageTurnView _pageTurnView;
49
50    public PageTurnView PageTurnView
51    {
52       get
53       {
54          return _pageTurnView;
55       }
56       set
57       {
58          _pageTurnView = value;
59       }
60    }
61 }
62
63 public class PageTurnStartedEventArgs : EventArgs
64 {
65    private PageTurnView _pageTurnView;
66    private uint _pageIndex;
67    private bool _isTurningForward;
68
69    public PageTurnView PageTurnView
70    {
71       get
72       {
73          return _pageTurnView;
74       }
75       set
76       {
77          _pageTurnView = value;
78       }
79    }
80
81    public uint PageIndex
82    {
83       get
84       {
85          return _pageIndex;
86       }
87       set
88       {
89          _pageIndex = value;
90       }
91    }
92
93    public bool IsTurningForward
94    {
95       get
96       {
97          return _isTurningForward;
98       }
99       set
100       {
101          _isTurningForward = value;
102       }
103    }
104
105 }
106
107 public class PageTurnFinishedEventArgs : EventArgs
108 {
109    private PageTurnView _pageTurnView;
110    private uint _pageIndex;
111    private bool _isTurningForward;
112
113    public PageTurnView PageTurnView
114    {
115       get
116       {
117          return _pageTurnView;
118       }
119       set
120       {
121          _pageTurnView = value;
122       }
123    }
124
125    public uint PageIndex
126    {
127       get
128       {
129          return _pageIndex;
130       }
131       set
132       {
133          _pageIndex = value;
134       }
135    }
136
137    public bool IsTurningForward
138    {
139       get
140       {
141          return _isTurningForward;
142       }
143       set
144       {
145          _isTurningForward = value;
146       }
147    }
148
149 }
150
151   [UnmanagedFunctionPointer(CallingConvention.StdCall)]
152   private delegate void PagePanStartedCallbackDelegate(IntPtr page);
153   private DaliEventHandler<object,PagePanStartedEventArgs> _pageTurnViewPagePanStartedEventHandler;
154   private PagePanStartedCallbackDelegate _pageTurnViewPagePanStartedCallbackDelegate;
155
156   [UnmanagedFunctionPointer(CallingConvention.StdCall)]
157   private delegate void PagePanFinishedCallbackDelegate(IntPtr page);
158   private DaliEventHandler<object,PagePanFinishedEventArgs> _pageTurnViewPagePanFinishedEventHandler;
159   private PagePanFinishedCallbackDelegate _pageTurnViewPagePanFinishedCallbackDelegate;
160
161   [UnmanagedFunctionPointer(CallingConvention.StdCall)]
162   private delegate void PageTurnStartedCallbackDelegate(IntPtr page, uint pageIndex, bool isTurningForward);
163   private DaliEventHandler<object,PageTurnStartedEventArgs> _pageTurnViewPageTurnStartedEventHandler;
164   private PageTurnStartedCallbackDelegate _pageTurnViewPageTurnStartedCallbackDelegate;
165
166   [UnmanagedFunctionPointer(CallingConvention.StdCall)]
167   private delegate void PageTurnFinishedCallbackDelegate(IntPtr page, uint pageIndex, bool isTurningForward);
168   private DaliEventHandler<object,PageTurnFinishedEventArgs> _pageTurnViewPageTurnFinishedEventHandler;
169   private PageTurnFinishedCallbackDelegate _pageTurnViewPageTurnFinishedCallbackDelegate;
170
171   public event DaliEventHandler<object,PagePanStartedEventArgs> PagePanStarted
172   {
173      add
174      {
175         lock(this)
176         {
177            // Restricted to only one listener
178            if (_pageTurnViewPagePanStartedEventHandler == null)
179            {
180               _pageTurnViewPagePanStartedEventHandler += value;
181
182               _pageTurnViewPagePanStartedCallbackDelegate = new PagePanStartedCallbackDelegate(OnPagePanStarted);
183               this.PagePanStartedSignal().Connect(_pageTurnViewPagePanStartedCallbackDelegate);
184            }
185         }
186      }
187
188      remove
189      {
190         lock(this)
191         {
192            if (_pageTurnViewPagePanStartedEventHandler != null)
193            {
194               this.PagePanStartedSignal().Disconnect(_pageTurnViewPagePanStartedCallbackDelegate);
195            }
196
197            _pageTurnViewPagePanStartedEventHandler -= value;
198         }
199      }
200   }
201
202   // Callback for PageTurnView PagePanStarted signal
203   private void OnPagePanStarted(IntPtr page)
204   {
205      PagePanStartedEventArgs e = new PagePanStartedEventArgs();
206
207      // Populate all members of "e" (PagePanStartedEventArgs) with real page
208      e.PageTurnView = PageTurnView.GetPageTurnViewFromPtr( page );
209
210      if (_pageTurnViewPagePanStartedEventHandler != null)
211      {
212         //here we send all page to user event handlers
213        _pageTurnViewPagePanStartedEventHandler(this, e);
214      }
215   }
216
217   public event DaliEventHandler<object,PagePanFinishedEventArgs> PagePanFinished
218   {
219      add
220      {
221         lock(this)
222         {
223            // Restricted to only one listener
224            if (_pageTurnViewPagePanFinishedEventHandler == null)
225            {
226               _pageTurnViewPagePanFinishedEventHandler += value;
227
228               _pageTurnViewPagePanFinishedCallbackDelegate = new PagePanFinishedCallbackDelegate(OnPagePanFinished);
229               this.PagePanFinishedSignal().Connect(_pageTurnViewPagePanFinishedCallbackDelegate);
230            }
231         }
232      }
233
234      remove
235      {
236         lock(this)
237         {
238            if (_pageTurnViewPagePanFinishedEventHandler != null)
239            {
240               this.PagePanFinishedSignal().Disconnect(_pageTurnViewPagePanFinishedCallbackDelegate);
241            }
242
243            _pageTurnViewPagePanFinishedEventHandler -= value;
244         }
245      }
246   }
247
248   // Callback for PageTurnView PagePanFinished signal
249   private void OnPagePanFinished(IntPtr page)
250   {
251      PagePanFinishedEventArgs e = new PagePanFinishedEventArgs();
252
253      // Populate all members of "e" (PagePanFinishedEventArgs) with real page
254      e.PageTurnView = PageTurnView.GetPageTurnViewFromPtr( page );
255
256      if (_pageTurnViewPagePanFinishedEventHandler != null)
257      {
258         //here we send all page to user event handlers
259        _pageTurnViewPagePanFinishedEventHandler(this, e);
260      }
261   }
262
263
264   public event DaliEventHandler<object,PageTurnStartedEventArgs> PageTurnStarted
265   {
266      add
267      {
268         lock(this)
269         {
270            // Restricted to only one listener
271            if (_pageTurnViewPageTurnStartedEventHandler == null)
272            {
273               _pageTurnViewPageTurnStartedEventHandler += value;
274
275               _pageTurnViewPageTurnStartedCallbackDelegate = new PageTurnStartedCallbackDelegate(OnPageTurnStarted);
276               this.PageTurnStartedSignal().Connect(_pageTurnViewPageTurnStartedCallbackDelegate);
277            }
278         }
279      }
280
281      remove
282      {
283         lock(this)
284         {
285            if (_pageTurnViewPageTurnStartedEventHandler != null)
286            {
287               this.PageTurnStartedSignal().Disconnect(_pageTurnViewPageTurnStartedCallbackDelegate);
288            }
289
290            _pageTurnViewPageTurnStartedEventHandler -= value;
291         }
292      }
293   }
294
295   // Callback for PageTurnView PageTurnStarted signal
296   private void OnPageTurnStarted(IntPtr page, uint pageIndex, bool isTurningForward)
297   {
298      PageTurnStartedEventArgs e = new PageTurnStartedEventArgs();
299
300      // Populate all members of "e" (PageTurnStartedEventArgs) with real page
301      e.PageTurnView = PageTurnView.GetPageTurnViewFromPtr( page );
302      e.PageIndex = pageIndex;
303      e.IsTurningForward = isTurningForward;
304
305
306      if (_pageTurnViewPageTurnStartedEventHandler != null)
307      {
308         //here we send all page to user event handlers
309        _pageTurnViewPageTurnStartedEventHandler(this, e);
310      }
311   }
312
313
314   public event DaliEventHandler<object,PageTurnFinishedEventArgs> PageTurnFinished
315   {
316      add
317      {
318         lock(this)
319         {
320            // Restricted to only one listener
321            if (_pageTurnViewPageTurnFinishedEventHandler == null)
322            {
323               _pageTurnViewPageTurnFinishedEventHandler += value;
324
325               _pageTurnViewPageTurnFinishedCallbackDelegate = new PageTurnFinishedCallbackDelegate(OnPageTurnFinished);
326               this.PageTurnFinishedSignal().Connect(_pageTurnViewPageTurnFinishedCallbackDelegate);
327            }
328         }
329      }
330
331      remove
332      {
333         lock(this)
334         {
335            if (_pageTurnViewPageTurnFinishedEventHandler != null)
336            {
337               this.PageTurnFinishedSignal().Disconnect(_pageTurnViewPageTurnFinishedCallbackDelegate);
338            }
339
340            _pageTurnViewPageTurnFinishedEventHandler -= value;
341         }
342      }
343   }
344
345   // Callback for PageTurnView PageTurnFinished signal
346   private void OnPageTurnFinished(IntPtr page, uint pageIndex, bool isTurningForward)
347   {
348      PageTurnFinishedEventArgs e = new PageTurnFinishedEventArgs();
349
350      // Populate all members of "e" (PageTurnFinishedEventArgs) with real page
351      e.PageTurnView = PageTurnView.GetPageTurnViewFromPtr( page );
352      e.PageIndex = pageIndex;
353      e.IsTurningForward = isTurningForward;
354
355
356      if (_pageTurnViewPageTurnFinishedEventHandler != null)
357      {
358         //here we send all page to user event handlers
359        _pageTurnViewPageTurnFinishedEventHandler(this, e);
360      }
361   }
362
363   public static ClassName Get ## ClassName ## FromPtr(global::System.IntPtr cPtr) {
364     ClassName ret = new ClassName(cPtr, false);
365    if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
366     return ret;
367   }
368
369 %}
370
371 %enddef
372
373
374 %define DALI_PAGETURNVIEW_EVENTHANDLER_PARAM( NameSpace, ClassName)
375
376   PAGETURNVIEW_EVENTHANDLER_TYPEMAP_EVENTARG( NameSpace, ClassName);
377   PAGETURNVIEW_EVENTHANDLER_TYPEMAP_HELPER( NameSpace, ClassName);
378
379 %enddef
380
381 namespace Dali
382 {
383   DALI_PAGETURNVIEW_EVENTHANDLER_PARAM( Dali::Toolkit, PageTurnView);
384 }