[NUI] Change all CallingConvention to `Cdecl`
[platform/core/csapi/tizenfx.git] / src / Tizen.NUI / src / internal / Utility / PageTurnView.cs
1 /*
2  * Copyright(c) 2017 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 using System;
18 using System.Runtime.InteropServices;
19 using Tizen.NUI.BaseComponents;
20
21 namespace Tizen.NUI
22 {
23     internal class PageTurnView : View
24     {
25
26         internal PageTurnView(global::System.IntPtr cPtr, bool cMemoryOwn) : base(cPtr, cMemoryOwn)
27         {
28         }
29
30         protected override void ReleaseSwigCPtr(System.Runtime.InteropServices.HandleRef swigCPtr)
31         {
32             Interop.PageTurnView.DeletePageTurnView(swigCPtr);
33         }
34
35         public class PagePanStartedEventArgs : EventArgs
36         {
37             private PageTurnView pageTurnView;
38
39             public PageTurnView PageTurnView
40             {
41                 get
42                 {
43                     return pageTurnView;
44                 }
45                 set
46                 {
47                     pageTurnView = value;
48                 }
49             }
50         }
51
52         public class PagePanFinishedEventArgs : EventArgs
53         {
54             private PageTurnView pageTurnView;
55
56             public PageTurnView PageTurnView
57             {
58                 get
59                 {
60                     return pageTurnView;
61                 }
62                 set
63                 {
64                     pageTurnView = value;
65                 }
66             }
67         }
68
69         public class PageTurnStartedEventArgs : EventArgs
70         {
71             private PageTurnView pageTurnView;
72             private uint pageIndex;
73             private bool isTurningForward;
74
75             public PageTurnView PageTurnView
76             {
77                 get
78                 {
79                     return pageTurnView;
80                 }
81                 set
82                 {
83                     pageTurnView = value;
84                 }
85             }
86
87             public uint PageIndex
88             {
89                 get
90                 {
91                     return pageIndex;
92                 }
93                 set
94                 {
95                     pageIndex = value;
96                 }
97             }
98
99             public bool IsTurningForward
100             {
101                 get
102                 {
103                     return isTurningForward;
104                 }
105                 set
106                 {
107                     isTurningForward = value;
108                 }
109             }
110
111         }
112
113         public class PageTurnFinishedEventArgs : EventArgs
114         {
115             private PageTurnView pageTurnView;
116             private uint pageIndex;
117             private bool isTurningForward;
118
119             public PageTurnView PageTurnView
120             {
121                 get
122                 {
123                     return pageTurnView;
124                 }
125                 set
126                 {
127                     pageTurnView = value;
128                 }
129             }
130
131             public uint PageIndex
132             {
133                 get
134                 {
135                     return pageIndex;
136                 }
137                 set
138                 {
139                     pageIndex = value;
140                 }
141             }
142
143             public bool IsTurningForward
144             {
145                 get
146                 {
147                     return isTurningForward;
148                 }
149                 set
150                 {
151                     isTurningForward = value;
152                 }
153             }
154
155         }
156
157         [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
158         private delegate void PagePanStartedCallbackDelegate(IntPtr page);
159         private DaliEventHandler<object, PagePanStartedEventArgs> pageTurnViewPagePanStartedEventHandler;
160         private PagePanStartedCallbackDelegate pageTurnViewPagePanStartedCallbackDelegate;
161
162         [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
163         private delegate void PagePanFinishedCallbackDelegate(IntPtr page);
164         private DaliEventHandler<object, PagePanFinishedEventArgs> pageTurnViewPagePanFinishedEventHandler;
165         private PagePanFinishedCallbackDelegate pageTurnViewPagePanFinishedCallbackDelegate;
166
167         [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
168         private delegate void PageTurnStartedCallbackDelegate(IntPtr page, uint pageIndex, bool isTurningForward);
169         private DaliEventHandler<object, PageTurnStartedEventArgs> pageTurnViewPageTurnStartedEventHandler;
170         private PageTurnStartedCallbackDelegate pageTurnViewPageTurnStartedCallbackDelegate;
171
172         [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
173         private delegate void PageTurnFinishedCallbackDelegate(IntPtr page, uint pageIndex, bool isTurningForward);
174         private DaliEventHandler<object, PageTurnFinishedEventArgs> pageTurnViewPageTurnFinishedEventHandler;
175         private PageTurnFinishedCallbackDelegate pageTurnViewPageTurnFinishedCallbackDelegate;
176
177         public event DaliEventHandler<object, PagePanStartedEventArgs> PagePanStarted
178         {
179             add
180             {
181                 // Restricted to only one listener
182                 if (pageTurnViewPagePanStartedEventHandler == null)
183                 {
184                     pageTurnViewPagePanStartedEventHandler += value;
185
186                     pageTurnViewPagePanStartedCallbackDelegate = new PagePanStartedCallbackDelegate(OnPagePanStarted);
187                     this.PagePanStartedSignal().Connect(pageTurnViewPagePanStartedCallbackDelegate);
188                 }
189             }
190
191             remove
192             {
193                 if (pageTurnViewPagePanStartedEventHandler != null)
194                 {
195                     this.PagePanStartedSignal().Disconnect(pageTurnViewPagePanStartedCallbackDelegate);
196                 }
197
198                 pageTurnViewPagePanStartedEventHandler -= value;
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                 // Restricted to only one listener
222                 if (pageTurnViewPagePanFinishedEventHandler == null)
223                 {
224                     pageTurnViewPagePanFinishedEventHandler += value;
225
226                     pageTurnViewPagePanFinishedCallbackDelegate = new PagePanFinishedCallbackDelegate(OnPagePanFinished);
227                     this.PagePanFinishedSignal().Connect(pageTurnViewPagePanFinishedCallbackDelegate);
228                 }
229             }
230
231             remove
232             {
233                 if (pageTurnViewPagePanFinishedEventHandler != null)
234                 {
235                     this.PagePanFinishedSignal().Disconnect(pageTurnViewPagePanFinishedCallbackDelegate);
236                 }
237
238                 pageTurnViewPagePanFinishedEventHandler -= value;
239             }
240         }
241
242         // Callback for PageTurnView PagePanFinished signal
243         private void OnPagePanFinished(IntPtr page)
244         {
245             PagePanFinishedEventArgs e = new PagePanFinishedEventArgs();
246
247             // Populate all members of "e" (PagePanFinishedEventArgs) with real page
248             e.PageTurnView = PageTurnView.GetPageTurnViewFromPtr(page);
249
250             if (pageTurnViewPagePanFinishedEventHandler != null)
251             {
252                 //here we send all page to user event handlers
253                 pageTurnViewPagePanFinishedEventHandler(this, e);
254             }
255         }
256
257
258         public event DaliEventHandler<object, PageTurnStartedEventArgs> PageTurnStarted
259         {
260             add
261             {
262                 // Restricted to only one listener
263                 if (pageTurnViewPageTurnStartedEventHandler == null)
264                 {
265                     pageTurnViewPageTurnStartedEventHandler += value;
266
267                     pageTurnViewPageTurnStartedCallbackDelegate = new PageTurnStartedCallbackDelegate(OnPageTurnStarted);
268                     this.PageTurnStartedSignal().Connect(pageTurnViewPageTurnStartedCallbackDelegate);
269                 }
270             }
271
272             remove
273             {
274                 if (pageTurnViewPageTurnStartedEventHandler != null)
275                 {
276                     this.PageTurnStartedSignal().Disconnect(pageTurnViewPageTurnStartedCallbackDelegate);
277                 }
278
279                 pageTurnViewPageTurnStartedEventHandler -= value;
280             }
281         }
282
283         // Callback for PageTurnView PageTurnStarted signal
284         private void OnPageTurnStarted(IntPtr page, uint pageIndex, bool isTurningForward)
285         {
286             PageTurnStartedEventArgs e = new PageTurnStartedEventArgs();
287
288             // Populate all members of "e" (PageTurnStartedEventArgs) with real page
289             e.PageTurnView = PageTurnView.GetPageTurnViewFromPtr(page);
290             e.PageIndex = pageIndex;
291             e.IsTurningForward = isTurningForward;
292
293
294             if (pageTurnViewPageTurnStartedEventHandler != null)
295             {
296                 //here we send all page to user event handlers
297                 pageTurnViewPageTurnStartedEventHandler(this, e);
298             }
299         }
300
301
302         public event DaliEventHandler<object, PageTurnFinishedEventArgs> PageTurnFinished
303         {
304             add
305             {
306                 // Restricted to only one listener
307                 if (pageTurnViewPageTurnFinishedEventHandler == null)
308                 {
309                     pageTurnViewPageTurnFinishedEventHandler += value;
310
311                     pageTurnViewPageTurnFinishedCallbackDelegate = new PageTurnFinishedCallbackDelegate(OnPageTurnFinished);
312                     this.PageTurnFinishedSignal().Connect(pageTurnViewPageTurnFinishedCallbackDelegate);
313                 }
314             }
315
316             remove
317             {
318                 if (pageTurnViewPageTurnFinishedEventHandler != null)
319                 {
320                     this.PageTurnFinishedSignal().Disconnect(pageTurnViewPageTurnFinishedCallbackDelegate);
321                 }
322
323                 pageTurnViewPageTurnFinishedEventHandler -= value;
324             }
325         }
326
327         // Callback for PageTurnView PageTurnFinished signal
328         private void OnPageTurnFinished(IntPtr page, uint pageIndex, bool isTurningForward)
329         {
330             PageTurnFinishedEventArgs e = new PageTurnFinishedEventArgs();
331
332             // Populate all members of "e" (PageTurnFinishedEventArgs) with real page
333             e.PageTurnView = PageTurnView.GetPageTurnViewFromPtr(page);
334             e.PageIndex = pageIndex;
335             e.IsTurningForward = isTurningForward;
336
337
338             if (pageTurnViewPageTurnFinishedEventHandler != null)
339             {
340                 //here we send all page to user event handlers
341                 pageTurnViewPageTurnFinishedEventHandler(this, e);
342             }
343         }
344
345         public static PageTurnView GetPageTurnViewFromPtr(global::System.IntPtr cPtr)
346         {
347             PageTurnView ret = new PageTurnView(cPtr, false);
348             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
349             return ret;
350         }
351
352         internal new class Property
353         {
354             internal static readonly int ViewPageSize = Interop.PageTurnView.ViewPageSizeGet();
355             internal static readonly int CurrentPageId = Interop.PageTurnView.CurrentPageIdGet();
356             internal static readonly int SpineShadow = Interop.PageTurnView.SpineShadowGet();
357         }
358
359         public PageTurnView() : this(Interop.PageTurnView.NewPageTurnView(), true)
360         {
361             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
362         }
363
364         public PageTurnView(PageTurnView handle) : this(Interop.PageTurnView.NewPageTurnView(PageTurnView.getCPtr(handle)), true)
365         {
366             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
367         }
368
369         public PageTurnView Assign(PageTurnView handle)
370         {
371             PageTurnView ret = new PageTurnView(Interop.PageTurnView.Assign(SwigCPtr, PageTurnView.getCPtr(handle)), false);
372             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
373             return ret;
374         }
375
376         public static PageTurnView DownCast(BaseHandle handle)
377         {
378             PageTurnView ret = Registry.GetManagedBaseHandleFromNativePtr(handle) as PageTurnView;
379             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
380             return ret;
381         }
382
383         public PageTurnSignal PageTurnStartedSignal()
384         {
385             PageTurnSignal ret = new PageTurnSignal(Interop.PageTurnView.PageTurnStartedSignal(SwigCPtr), false);
386             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
387             return ret;
388         }
389
390         public PageTurnSignal PageTurnFinishedSignal()
391         {
392             PageTurnSignal ret = new PageTurnSignal(Interop.PageTurnView.PageTurnFinishedSignal(SwigCPtr), false);
393             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
394             return ret;
395         }
396
397         public PagePanSignal PagePanStartedSignal()
398         {
399             PagePanSignal ret = new PagePanSignal(Interop.PageTurnView.PagePanStartedSignal(SwigCPtr), false);
400             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
401             return ret;
402         }
403
404         public PagePanSignal PagePanFinishedSignal()
405         {
406             PagePanSignal ret = new PagePanSignal(Interop.PageTurnView.PagePanFinishedSignal(SwigCPtr), false);
407             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
408             return ret;
409         }
410
411
412         public Vector2 PageSize
413         {
414             get
415             {
416                 Vector2 temp = new Vector2(0.0f, 0.0f);
417                 GetProperty(PageTurnView.Property.ViewPageSize).Get(temp);
418                 return temp;
419             }
420             set
421             {
422                 SetProperty(PageTurnView.Property.ViewPageSize, new Tizen.NUI.PropertyValue(value));
423             }
424         }
425         public int CurrentPageId
426         {
427             get
428             {
429                 int temp = 0;
430                 GetProperty(PageTurnView.Property.CurrentPageId).Get(out temp);
431                 return temp;
432             }
433             set
434             {
435                 SetProperty(PageTurnView.Property.CurrentPageId, new Tizen.NUI.PropertyValue(value));
436             }
437         }
438         public Vector2 SpineShadow
439         {
440             get
441             {
442                 Vector2 temp = new Vector2(0.0f, 0.0f);
443                 GetProperty(PageTurnView.Property.SpineShadow).Get(temp);
444                 return temp;
445             }
446             set
447             {
448                 SetProperty(PageTurnView.Property.SpineShadow, new Tizen.NUI.PropertyValue(value));
449             }
450         }
451     }
452 }