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