2 * Copyright(c) 2017 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.
22 using System.Runtime.InteropServices;
23 using Tizen.NUI.BaseComponents;
25 internal class PageTurnView : View
27 private global::System.Runtime.InteropServices.HandleRef swigCPtr;
29 internal PageTurnView(global::System.IntPtr cPtr, bool cMemoryOwn) : base(NDalicPINVOKE.PageTurnView_SWIGUpcast(cPtr), cMemoryOwn)
31 swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
34 internal static global::System.Runtime.InteropServices.HandleRef getCPtr(PageTurnView obj)
36 return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
39 protected override void Dispose(DisposeTypes type)
46 if (type == DisposeTypes.Explicit)
49 //Release your own managed resources here.
50 //You should release all of your own disposable objects here.
54 //Release your own unmanaged resources here.
55 //You should not access any managed member here except static instance.
56 //because the execution order of Finalizes is non-deterministic.
58 if (swigCPtr.Handle != global::System.IntPtr.Zero)
63 NDalicPINVOKE.delete_PageTurnView(swigCPtr);
65 swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
74 public class PagePanStartedEventArgs : EventArgs
76 private PageTurnView _pageTurnView;
78 public PageTurnView PageTurnView
86 _pageTurnView = value;
91 public class PagePanFinishedEventArgs : EventArgs
93 private PageTurnView _pageTurnView;
95 public PageTurnView PageTurnView
103 _pageTurnView = value;
108 public class PageTurnStartedEventArgs : EventArgs
110 private PageTurnView _pageTurnView;
111 private uint _pageIndex;
112 private bool _isTurningForward;
114 public PageTurnView PageTurnView
118 return _pageTurnView;
122 _pageTurnView = value;
126 public uint PageIndex
138 public bool IsTurningForward
142 return _isTurningForward;
146 _isTurningForward = value;
152 public class PageTurnFinishedEventArgs : EventArgs
154 private PageTurnView _pageTurnView;
155 private uint _pageIndex;
156 private bool _isTurningForward;
158 public PageTurnView PageTurnView
162 return _pageTurnView;
166 _pageTurnView = value;
170 public uint PageIndex
182 public bool IsTurningForward
186 return _isTurningForward;
190 _isTurningForward = value;
196 [UnmanagedFunctionPointer(CallingConvention.StdCall)]
197 private delegate void PagePanStartedCallbackDelegate(IntPtr page);
198 private DaliEventHandler<object, PagePanStartedEventArgs> _pageTurnViewPagePanStartedEventHandler;
199 private PagePanStartedCallbackDelegate _pageTurnViewPagePanStartedCallbackDelegate;
201 [UnmanagedFunctionPointer(CallingConvention.StdCall)]
202 private delegate void PagePanFinishedCallbackDelegate(IntPtr page);
203 private DaliEventHandler<object, PagePanFinishedEventArgs> _pageTurnViewPagePanFinishedEventHandler;
204 private PagePanFinishedCallbackDelegate _pageTurnViewPagePanFinishedCallbackDelegate;
206 [UnmanagedFunctionPointer(CallingConvention.StdCall)]
207 private delegate void PageTurnStartedCallbackDelegate(IntPtr page, uint pageIndex, bool isTurningForward);
208 private DaliEventHandler<object, PageTurnStartedEventArgs> _pageTurnViewPageTurnStartedEventHandler;
209 private PageTurnStartedCallbackDelegate _pageTurnViewPageTurnStartedCallbackDelegate;
211 [UnmanagedFunctionPointer(CallingConvention.StdCall)]
212 private delegate void PageTurnFinishedCallbackDelegate(IntPtr page, uint pageIndex, bool isTurningForward);
213 private DaliEventHandler<object, PageTurnFinishedEventArgs> _pageTurnViewPageTurnFinishedEventHandler;
214 private PageTurnFinishedCallbackDelegate _pageTurnViewPageTurnFinishedCallbackDelegate;
216 public event DaliEventHandler<object, PagePanStartedEventArgs> PagePanStarted
222 // Restricted to only one listener
223 if (_pageTurnViewPagePanStartedEventHandler == null)
225 _pageTurnViewPagePanStartedEventHandler += value;
227 _pageTurnViewPagePanStartedCallbackDelegate = new PagePanStartedCallbackDelegate(OnPagePanStarted);
228 this.PagePanStartedSignal().Connect(_pageTurnViewPagePanStartedCallbackDelegate);
237 if (_pageTurnViewPagePanStartedEventHandler != null)
239 this.PagePanStartedSignal().Disconnect(_pageTurnViewPagePanStartedCallbackDelegate);
242 _pageTurnViewPagePanStartedEventHandler -= value;
247 // Callback for PageTurnView PagePanStarted signal
248 private void OnPagePanStarted(IntPtr page)
250 PagePanStartedEventArgs e = new PagePanStartedEventArgs();
252 // Populate all members of "e" (PagePanStartedEventArgs) with real page
253 e.PageTurnView = PageTurnView.GetPageTurnViewFromPtr(page);
255 if (_pageTurnViewPagePanStartedEventHandler != null)
257 //here we send all page to user event handlers
258 _pageTurnViewPagePanStartedEventHandler(this, e);
262 public event DaliEventHandler<object, PagePanFinishedEventArgs> PagePanFinished
268 // Restricted to only one listener
269 if (_pageTurnViewPagePanFinishedEventHandler == null)
271 _pageTurnViewPagePanFinishedEventHandler += value;
273 _pageTurnViewPagePanFinishedCallbackDelegate = new PagePanFinishedCallbackDelegate(OnPagePanFinished);
274 this.PagePanFinishedSignal().Connect(_pageTurnViewPagePanFinishedCallbackDelegate);
283 if (_pageTurnViewPagePanFinishedEventHandler != null)
285 this.PagePanFinishedSignal().Disconnect(_pageTurnViewPagePanFinishedCallbackDelegate);
288 _pageTurnViewPagePanFinishedEventHandler -= value;
293 // Callback for PageTurnView PagePanFinished signal
294 private void OnPagePanFinished(IntPtr page)
296 PagePanFinishedEventArgs e = new PagePanFinishedEventArgs();
298 // Populate all members of "e" (PagePanFinishedEventArgs) with real page
299 e.PageTurnView = PageTurnView.GetPageTurnViewFromPtr(page);
301 if (_pageTurnViewPagePanFinishedEventHandler != null)
303 //here we send all page to user event handlers
304 _pageTurnViewPagePanFinishedEventHandler(this, e);
309 public event DaliEventHandler<object, PageTurnStartedEventArgs> PageTurnStarted
315 // Restricted to only one listener
316 if (_pageTurnViewPageTurnStartedEventHandler == null)
318 _pageTurnViewPageTurnStartedEventHandler += value;
320 _pageTurnViewPageTurnStartedCallbackDelegate = new PageTurnStartedCallbackDelegate(OnPageTurnStarted);
321 this.PageTurnStartedSignal().Connect(_pageTurnViewPageTurnStartedCallbackDelegate);
330 if (_pageTurnViewPageTurnStartedEventHandler != null)
332 this.PageTurnStartedSignal().Disconnect(_pageTurnViewPageTurnStartedCallbackDelegate);
335 _pageTurnViewPageTurnStartedEventHandler -= value;
340 // Callback for PageTurnView PageTurnStarted signal
341 private void OnPageTurnStarted(IntPtr page, uint pageIndex, bool isTurningForward)
343 PageTurnStartedEventArgs e = new PageTurnStartedEventArgs();
345 // Populate all members of "e" (PageTurnStartedEventArgs) with real page
346 e.PageTurnView = PageTurnView.GetPageTurnViewFromPtr(page);
347 e.PageIndex = pageIndex;
348 e.IsTurningForward = isTurningForward;
351 if (_pageTurnViewPageTurnStartedEventHandler != null)
353 //here we send all page to user event handlers
354 _pageTurnViewPageTurnStartedEventHandler(this, e);
359 public event DaliEventHandler<object, PageTurnFinishedEventArgs> PageTurnFinished
365 // Restricted to only one listener
366 if (_pageTurnViewPageTurnFinishedEventHandler == null)
368 _pageTurnViewPageTurnFinishedEventHandler += value;
370 _pageTurnViewPageTurnFinishedCallbackDelegate = new PageTurnFinishedCallbackDelegate(OnPageTurnFinished);
371 this.PageTurnFinishedSignal().Connect(_pageTurnViewPageTurnFinishedCallbackDelegate);
380 if (_pageTurnViewPageTurnFinishedEventHandler != null)
382 this.PageTurnFinishedSignal().Disconnect(_pageTurnViewPageTurnFinishedCallbackDelegate);
385 _pageTurnViewPageTurnFinishedEventHandler -= value;
390 // Callback for PageTurnView PageTurnFinished signal
391 private void OnPageTurnFinished(IntPtr page, uint pageIndex, bool isTurningForward)
393 PageTurnFinishedEventArgs e = new PageTurnFinishedEventArgs();
395 // Populate all members of "e" (PageTurnFinishedEventArgs) with real page
396 e.PageTurnView = PageTurnView.GetPageTurnViewFromPtr(page);
397 e.PageIndex = pageIndex;
398 e.IsTurningForward = isTurningForward;
401 if (_pageTurnViewPageTurnFinishedEventHandler != null)
403 //here we send all page to user event handlers
404 _pageTurnViewPageTurnFinishedEventHandler(this, e);
408 public static PageTurnView GetPageTurnViewFromPtr(global::System.IntPtr cPtr)
410 PageTurnView ret = new PageTurnView(cPtr, false);
411 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
416 public new class Property : global::System.IDisposable
418 private global::System.Runtime.InteropServices.HandleRef swigCPtr;
419 protected bool swigCMemOwn;
421 internal Property(global::System.IntPtr cPtr, bool cMemoryOwn)
423 swigCMemOwn = cMemoryOwn;
424 swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
427 internal static global::System.Runtime.InteropServices.HandleRef getCPtr(Property obj)
429 return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
432 //A Flag to check who called Dispose(). (By User or DisposeQueue)
433 private bool isDisposeQueued = false;
434 //A Flat to check if it is already disposed.
435 protected bool disposed = false;
440 if (!isDisposeQueued)
442 isDisposeQueued = true;
443 DisposeQueue.Instance.Add(this);
447 public void Dispose()
449 //Throw excpetion if Dispose() is called in separate thread.
450 if (!Window.IsInstalled())
452 throw new System.InvalidOperationException("This API called from separate thread. This API must be called from MainThread.");
457 Dispose(DisposeTypes.Implicit);
461 Dispose(DisposeTypes.Explicit);
462 System.GC.SuppressFinalize(this);
466 protected virtual void Dispose(DisposeTypes type)
473 if (type == DisposeTypes.Explicit)
476 //Release your own managed resources here.
477 //You should release all of your own disposable objects here.
481 //Release your own unmanaged resources here.
482 //You should not access any managed member here except static instance.
483 //because the execution order of Finalizes is non-deterministic.
485 if (swigCPtr.Handle != global::System.IntPtr.Zero)
490 NDalicPINVOKE.delete_PageTurnView_Property(swigCPtr);
492 swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
498 public Property() : this(NDalicPINVOKE.new_PageTurnView_Property(), true)
500 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
503 public static readonly int PAGE_SIZE = NDalicPINVOKE.PageTurnView_Property_PAGE_SIZE_get();
504 public static readonly int CURRENT_PAGE_ID = NDalicPINVOKE.PageTurnView_Property_CURRENT_PAGE_ID_get();
505 public static readonly int SPINE_SHADOW = NDalicPINVOKE.PageTurnView_Property_SPINE_SHADOW_get();
509 public PageTurnView() : this(NDalicPINVOKE.new_PageTurnView__SWIG_0(), true)
511 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
514 public PageTurnView(PageTurnView handle) : this(NDalicPINVOKE.new_PageTurnView__SWIG_1(PageTurnView.getCPtr(handle)), true)
516 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
519 public PageTurnView Assign(PageTurnView handle)
521 PageTurnView ret = new PageTurnView(NDalicPINVOKE.PageTurnView_Assign(swigCPtr, PageTurnView.getCPtr(handle)), false);
522 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
526 public new static PageTurnView DownCast(BaseHandle handle)
528 PageTurnView ret = Registry.GetManagedBaseHandleFromNativePtr(handle) as PageTurnView;
529 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
533 public PageTurnSignal PageTurnStartedSignal()
535 PageTurnSignal ret = new PageTurnSignal(NDalicPINVOKE.PageTurnView_PageTurnStartedSignal(swigCPtr), false);
536 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
540 public PageTurnSignal PageTurnFinishedSignal()
542 PageTurnSignal ret = new PageTurnSignal(NDalicPINVOKE.PageTurnView_PageTurnFinishedSignal(swigCPtr), false);
543 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
547 public PagePanSignal PagePanStartedSignal()
549 PagePanSignal ret = new PagePanSignal(NDalicPINVOKE.PageTurnView_PagePanStartedSignal(swigCPtr), false);
550 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
554 public PagePanSignal PagePanFinishedSignal()
556 PagePanSignal ret = new PagePanSignal(NDalicPINVOKE.PageTurnView_PagePanFinishedSignal(swigCPtr), false);
557 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
562 public Vector2 PageSize
566 Vector2 temp = new Vector2(0.0f, 0.0f);
567 GetProperty(PageTurnView.Property.PAGE_SIZE).Get(temp);
572 SetProperty(PageTurnView.Property.PAGE_SIZE, new Tizen.NUI.PropertyValue(value));
575 public int CurrentPageId
580 GetProperty(PageTurnView.Property.CURRENT_PAGE_ID).Get(out temp);
585 SetProperty(PageTurnView.Property.CURRENT_PAGE_ID, new Tizen.NUI.PropertyValue(value));
588 public Vector2 SpineShadow
592 Vector2 temp = new Vector2(0.0f, 0.0f);
593 GetProperty(PageTurnView.Property.SPINE_SHADOW).Get(temp);
598 SetProperty(PageTurnView.Property.SPINE_SHADOW, new Tizen.NUI.PropertyValue(value));