[NUI] Apply sibling patch (#79)
[platform/core/csapi/tizenfx.git] / src / Tizen.NUI / src / public / BaseComponents / View.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.ComponentModel;
19 using System.Runtime.InteropServices;
20
21 namespace Tizen.NUI.BaseComponents
22 {
23     /// <summary>
24     /// View is the base class for all views.
25     /// </summary>
26     /// <since_tizen> 3 </since_tizen>
27     public class View : Container
28     {
29         private global::System.Runtime.InteropServices.HandleRef swigCPtr;
30
31
32         internal View(global::System.IntPtr cPtr, bool cMemoryOwn) : base(NDalicPINVOKE.View_SWIGUpcast(cPtr), cMemoryOwn)
33         {
34             swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
35             PositionUsesPivotPoint = false;
36         }
37
38         internal static global::System.Runtime.InteropServices.HandleRef getCPtr(View obj)
39         {
40             return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
41         }
42
43         // From Container Base class
44
45         /// <summary>
46         /// Adds a child view to this view.
47         /// </summary>
48         /// <seealso cref="Container.Add" />
49         /// <since_tizen> 4 </since_tizen>
50         public override void Add(View child)
51         {
52             Container oldParent = child.Parent;
53             if(oldParent != this)
54             {
55                 if (oldParent != null)
56                 {
57                     oldParent.Remove(child);
58                 }
59                 NDalicPINVOKE.Actor_Add(swigCPtr, View.getCPtr(child));
60                 if (NDalicPINVOKE.SWIGPendingException.Pending)
61                     throw NDalicPINVOKE.SWIGPendingException.Retrieve();
62                 Children.Add(child);
63             }
64         }
65
66         /// <summary>
67         /// Removes a child view from this View. If the view was not a child of this view, this is a no-op.
68         /// </summary>
69         /// <seealso cref="Container.Remove" />
70         /// <since_tizen> 4 </since_tizen>
71         public override void Remove(View child)
72         {
73             NDalicPINVOKE.Actor_Remove(swigCPtr, View.getCPtr(child));
74             if (NDalicPINVOKE.SWIGPendingException.Pending)
75                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
76
77             Children.Remove(child);
78         }
79
80         /// <summary>
81         /// Retrieves a child view by index.
82         /// </summary>
83         /// <seealso cref="Container.GetChildAt" />
84         /// <since_tizen> 4 </since_tizen>
85         public override View GetChildAt(uint index)
86         {
87             if (index < Children.Count)
88             {
89                 return Children[Convert.ToInt32(index)];
90             }
91             else
92             {
93                 return null;
94             }
95         }
96
97         /// <summary>
98         /// Retrieves the number of children held by the view.
99         /// </summary>
100         /// <seealso cref="Container.GetChildCount" />
101         /// <since_tizen> 4 </since_tizen>
102         public override uint GetChildCount()
103         {
104             return Convert.ToUInt32(Children.Count);
105         }
106
107         /// <summary>
108         /// Gets the views parent.
109         /// </summary>
110         /// <seealso cref="Container.GetParent()" />
111         /// <since_tizen> 4 </since_tizen>
112         public override Container GetParent()
113         {
114             IntPtr cPtr = NDalicPINVOKE.Actor_GetParent(swigCPtr);
115             HandleRef CPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
116             BaseHandle basehandle = Registry.GetManagedBaseHandleFromNativePtr(CPtr.Handle);
117             NDalicPINVOKE.delete_BaseHandle(CPtr);
118             CPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
119
120             if (NDalicPINVOKE.SWIGPendingException.Pending)
121                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
122
123             return basehandle as Container;
124         }
125
126         internal bool IsTopLevelView()
127         {
128             if(GetParent() is Layer)
129             {
130                 return true;
131             }
132             return false;
133         }
134
135         /// <summary>
136         /// you can override it to clean-up your own resources.
137         /// </summary>
138         /// <param name="type">DisposeTypes</param>
139         /// <since_tizen> 3 </since_tizen>
140         protected override void Dispose(DisposeTypes type)
141         {
142             if(disposed)
143             {
144                 return;
145             }
146
147             if(type == DisposeTypes.Explicit)
148             {
149                 //Called by User
150                 //Release your own managed resources here.
151                 //You should release all of your own disposable objects here.
152             }
153
154             //Release your own unmanaged resources here.
155             //You should not access any managed member here except static instance.
156             //because the execution order of Finalizes is non-deterministic.
157             if (this != null)
158             {
159                 DisConnectFromSignals();
160             }
161
162             if (swigCPtr.Handle != global::System.IntPtr.Zero)
163             {
164                 if (swigCMemOwn)
165                 {
166                     swigCMemOwn = false;
167                     NDalicPINVOKE.delete_View(swigCPtr);
168                 }
169                 swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
170             }
171
172             base.Dispose(type);
173
174         }
175
176         private void DisConnectFromSignals()
177         {
178             // Save current CPtr.
179             global::System.Runtime.InteropServices.HandleRef currentCPtr = swigCPtr;
180
181             // Use BaseHandle CPtr as current might have been deleted already in derived classes.
182             swigCPtr = GetBaseHandleCPtrHandleRef;
183
184             if (_onRelayoutEventCallback != null)
185             {
186                 this.OnRelayoutSignal().Disconnect(_onRelayoutEventCallback);
187             }
188
189             if (_offWindowEventCallback != null)
190             {
191                 this.OffWindowSignal().Disconnect(_offWindowEventCallback);
192             }
193
194             if (_onWindowEventCallback != null)
195             {
196                 this.OnWindowSignal().Disconnect(_onWindowEventCallback);
197             }
198
199             if (_wheelEventCallback != null)
200             {
201                 this.WheelEventSignal().Disconnect(_wheelEventCallback);
202             }
203
204             if (_hoverEventCallback != null)
205             {
206                 this.HoveredSignal().Disconnect(_hoverEventCallback);
207             }
208
209             if (_touchDataCallback != null)
210             {
211                 this.TouchSignal().Disconnect(_touchDataCallback);
212             }
213
214             if (_ResourcesLoadedCallback != null)
215             {
216                 this.ResourcesLoadedSignal().Disconnect(_ResourcesLoadedCallback);
217             }
218
219             if (_offWindowEventCallback != null)
220             {
221                 this.OffWindowSignal().Disconnect(_offWindowEventCallback);
222             }
223
224             if (_onWindowEventCallback != null)
225             {
226                 this.OnWindowSignal().Disconnect(_onWindowEventCallback);
227             }
228
229             if (_wheelEventCallback != null)
230             {
231                 this.WheelEventSignal().Disconnect(_wheelEventCallback);
232             }
233
234             if (_hoverEventCallback != null)
235             {
236                 this.HoveredSignal().Disconnect(_hoverEventCallback);
237             }
238
239             if (_touchDataCallback != null)
240             {
241                 this.TouchSignal().Disconnect(_touchDataCallback);
242             }
243
244             if (_onRelayoutEventCallback != null)
245             {
246                 this.OnRelayoutSignal().Disconnect(_onRelayoutEventCallback);
247             }
248
249             if (_keyCallback != null)
250             {
251                 this.KeyEventSignal().Disconnect(_keyCallback);
252             }
253
254             if (_keyInputFocusLostCallback != null)
255             {
256                 this.KeyInputFocusLostSignal().Disconnect(_keyInputFocusLostCallback);
257             }
258
259             if (_keyInputFocusGainedCallback != null)
260             {
261                 this.KeyInputFocusGainedSignal().Disconnect(_keyInputFocusGainedCallback);
262             }
263
264             // BaseHandle CPtr is used in Registry and there is danger of deletion if we keep using it here.
265             // Restore current CPtr.
266             swigCPtr = currentCPtr;
267         }
268
269         private EventHandler _keyInputFocusGainedEventHandler;
270         [UnmanagedFunctionPointer(CallingConvention.StdCall)]
271         private delegate void KeyInputFocusGainedCallbackType(IntPtr control);
272         private KeyInputFocusGainedCallbackType _keyInputFocusGainedCallback;
273
274         /// <summary>
275         /// An event for the KeyInputFocusGained signal which can be used to subscribe or unsubscribe the event handler provided by the user.<br />
276         /// The KeyInputFocusGained signal is emitted when the control gets the key input focus.<br />
277         /// </summary>
278         /// <since_tizen> 3 </since_tizen>
279         public event EventHandler FocusGained
280         {
281             add
282             {
283                 if (_keyInputFocusGainedEventHandler == null)
284                 {
285                     _keyInputFocusGainedCallback = OnKeyInputFocusGained;
286                     this.KeyInputFocusGainedSignal().Connect(_keyInputFocusGainedCallback);
287                 }
288
289                 _keyInputFocusGainedEventHandler += value;
290             }
291
292             remove
293             {
294                 _keyInputFocusGainedEventHandler -= value;
295
296                 if (_keyInputFocusGainedEventHandler == null && KeyInputFocusGainedSignal().Empty() == false)
297                 {
298                     this.KeyInputFocusGainedSignal().Disconnect(_keyInputFocusGainedCallback);
299                 }
300             }
301         }
302
303         private void OnKeyInputFocusGained(IntPtr view)
304         {
305             if (_keyInputFocusGainedEventHandler != null)
306             {
307                 _keyInputFocusGainedEventHandler(this, null);
308             }
309         }
310
311
312         private EventHandler _keyInputFocusLostEventHandler;
313         [UnmanagedFunctionPointer(CallingConvention.StdCall)]
314         private delegate void KeyInputFocusLostCallbackType(IntPtr control);
315         private KeyInputFocusLostCallbackType _keyInputFocusLostCallback;
316
317         /// <summary>
318         /// An event for the KeyInputFocusLost signal which can be used to subscribe or unsubscribe the event handler provided by the user.<br />
319         /// The KeyInputFocusLost signal is emitted when the control loses the key input focus.<br />
320         /// </summary>
321         /// <since_tizen> 3 </since_tizen>
322         public event EventHandler FocusLost
323         {
324             add
325             {
326                 if (_keyInputFocusLostEventHandler == null)
327                 {
328                     _keyInputFocusLostCallback = OnKeyInputFocusLost;
329                     this.KeyInputFocusLostSignal().Connect(_keyInputFocusLostCallback);
330                 }
331
332                 _keyInputFocusLostEventHandler += value;
333             }
334
335             remove
336             {
337                 _keyInputFocusLostEventHandler -= value;
338
339                 if (_keyInputFocusLostEventHandler == null && KeyInputFocusLostSignal().Empty() == false)
340                 {
341                     this.KeyInputFocusLostSignal().Disconnect(_keyInputFocusLostCallback);
342                 }
343             }
344         }
345
346         private void OnKeyInputFocusLost(IntPtr view)
347         {
348             if (_keyInputFocusLostEventHandler != null)
349             {
350                 _keyInputFocusLostEventHandler(this, null);
351             }
352         }
353
354         /// <summary>
355         /// Event arguments that passed via the KeyEvent signal.
356         /// </summary>
357         /// <since_tizen> 3 </since_tizen>
358         public class KeyEventArgs : EventArgs
359         {
360             private Key _key;
361
362             /// <summary>
363             /// Key - is the key sent to the view.
364             /// </summary>
365             /// <since_tizen> 3 </since_tizen>
366             public Key Key
367             {
368                 get
369                 {
370                     return _key;
371                 }
372                 set
373                 {
374                     _key = value;
375                 }
376             }
377         }
378
379         private EventHandlerWithReturnType<object, KeyEventArgs, bool> _keyEventHandler;
380         [UnmanagedFunctionPointer(CallingConvention.StdCall)]
381         private delegate bool KeyCallbackType(IntPtr control, IntPtr keyEvent);
382         private KeyCallbackType _keyCallback;
383
384         /// <summary>
385         /// An event for the KeyPressed signal which can be used to subscribe or unsubscribe the event handler provided by the user.<br />
386         /// The KeyPressed signal is emitted when the key event is received.<br />
387         /// </summary>
388         /// <since_tizen> 3 </since_tizen>
389         public event EventHandlerWithReturnType<object, KeyEventArgs, bool> KeyEvent
390         {
391             add
392             {
393                 if (_keyEventHandler == null)
394                 {
395                     _keyCallback = OnKeyEvent;
396                     this.KeyEventSignal().Connect(_keyCallback);
397                 }
398
399                 _keyEventHandler += value;
400             }
401
402             remove
403             {
404                 _keyEventHandler -= value;
405
406                 if (_keyEventHandler == null && KeyEventSignal().Empty() == false)
407                 {
408                     this.KeyEventSignal().Disconnect(_keyCallback);
409                 }
410             }
411         }
412
413         private bool OnKeyEvent(IntPtr view, IntPtr keyEvent)
414         {
415             if (keyEvent == global::System.IntPtr.Zero)
416             {
417                 NUILog.Error("keyEvent should not be null!");
418                 return true;
419             }
420
421             KeyEventArgs e = new KeyEventArgs();
422
423             bool result = false;
424
425             e.Key = Tizen.NUI.Key.GetKeyFromPtr(keyEvent);
426
427             if (_keyEventHandler != null)
428             {
429                 Delegate[] delegateList = _keyEventHandler.GetInvocationList();
430
431                 // Oring the result of each callback.
432                 foreach ( EventHandlerWithReturnType<object, KeyEventArgs, bool> del in delegateList )
433                 {
434                     result |= del( this, e );
435                 }
436             }
437
438             return result;
439         }
440
441         private EventHandler _onRelayoutEventHandler;
442         [UnmanagedFunctionPointer(CallingConvention.StdCall)]
443         private delegate void OnRelayoutEventCallbackType(IntPtr control);
444         private OnRelayoutEventCallbackType _onRelayoutEventCallback;
445
446         /// <summary>
447         /// An event for the OnRelayout signal which can be used to subscribe or unsubscribe the event handler.<br />
448         /// The OnRelayout signal is emitted after the size has been set on the view during relayout.<br />
449         /// </summary>
450         /// <since_tizen> 3 </since_tizen>
451         public event EventHandler Relayout
452         {
453             add
454             {
455                 if (_onRelayoutEventHandler == null)
456                 {
457                     _onRelayoutEventCallback = OnRelayout;
458                     this.OnRelayoutSignal().Connect(_onRelayoutEventCallback);
459                 }
460
461                 _onRelayoutEventHandler += value;
462             }
463
464             remove
465             {
466                 _onRelayoutEventHandler -= value;
467
468                 if (_onRelayoutEventHandler == null && OnRelayoutSignal().Empty() == false)
469                 {
470                     this.OnRelayoutSignal().Disconnect(_onRelayoutEventCallback);
471                 }
472
473             }
474         }
475
476         // Callback for View OnRelayout signal
477         private void OnRelayout(IntPtr data)
478         {
479             if (_onRelayoutEventHandler != null)
480             {
481                 _onRelayoutEventHandler(this, null);
482             }
483         }
484
485         /// <summary>
486         /// Event arguments that passed via the touch signal.
487         /// </summary>
488         /// <since_tizen> 3 </since_tizen>
489         public class TouchEventArgs : EventArgs
490         {
491             private Touch _touch;
492
493             /// <summary>
494             /// Touch - contains the information of touch points.
495             /// </summary>
496             /// <since_tizen> 3 </since_tizen>
497             public Touch Touch
498             {
499                 get
500                 {
501                     return _touch;
502                 }
503                 set
504                 {
505                     _touch = value;
506                 }
507             }
508         }
509
510         private EventHandlerWithReturnType<object, TouchEventArgs, bool> _touchDataEventHandler;
511         [UnmanagedFunctionPointer(CallingConvention.StdCall)]
512         private delegate bool TouchDataCallbackType(IntPtr view, IntPtr touchData);
513         private TouchDataCallbackType _touchDataCallback;
514
515         /// <summary>
516         /// An event for the touched signal which can be used to subscribe or unsubscribe the event handler provided by the user.<br />
517         /// The touched signal is emitted when the touch input is received.<br />
518         /// </summary>
519         /// <since_tizen> 3 </since_tizen>
520         public event EventHandlerWithReturnType<object, TouchEventArgs, bool> TouchEvent
521         {
522             add
523             {
524                 if (_touchDataEventHandler == null)
525                 {
526                     _touchDataCallback = OnTouch;
527                     this.TouchSignal().Connect(_touchDataCallback);
528                 }
529
530                 _touchDataEventHandler += value;
531             }
532
533             remove
534             {
535                 _touchDataEventHandler -= value;
536
537                 if (_touchDataEventHandler == null && TouchSignal().Empty() == false)
538                 {
539                     this.TouchSignal().Disconnect(_touchDataCallback);
540                 }
541
542             }
543         }
544
545         // Callback for View TouchSignal
546         private bool OnTouch(IntPtr view, IntPtr touchData)
547         {
548             if (touchData == global::System.IntPtr.Zero)
549             {
550                 NUILog.Error("touchData should not be null!");
551                 return true;
552             }
553
554             TouchEventArgs e = new TouchEventArgs();
555
556             e.Touch = Tizen.NUI.Touch.GetTouchFromPtr(touchData);
557
558             if (_touchDataEventHandler != null)
559             {
560                 return _touchDataEventHandler(this, e);
561             }
562             return false;
563         }
564
565
566         /// <summary>
567         /// Event arguments that passed via the hover signal.
568         /// </summary>
569         /// <since_tizen> 3 </since_tizen>
570         public class HoverEventArgs : EventArgs
571         {
572             private Hover _hover;
573
574             /// <summary>
575             /// Hover - contains touch points that represent the points that are currently being hovered or the points where a hover has stopped.
576             /// </summary>
577             /// <since_tizen> 3 </since_tizen>
578             public Hover Hover
579             {
580                 get
581                 {
582                     return _hover;
583                 }
584                 set
585                 {
586                     _hover = value;
587                 }
588             }
589         }
590
591         private EventHandlerWithReturnType<object, HoverEventArgs, bool> _hoverEventHandler;
592         [UnmanagedFunctionPointer(CallingConvention.StdCall)]
593         private delegate bool HoverEventCallbackType(IntPtr view, IntPtr hoverEvent);
594         private HoverEventCallbackType _hoverEventCallback;
595
596         /// <summary>
597         /// An event for the hovered signal which can be used to subscribe or unsubscribe the event handler provided by the user.<br />
598         /// The hovered signal is emitted when the hover input is received.<br />
599         /// </summary>
600         /// <since_tizen> 3 </since_tizen>
601         public event EventHandlerWithReturnType<object, HoverEventArgs, bool> HoverEvent
602         {
603             add
604             {
605                 if (_hoverEventHandler == null)
606                 {
607                     _hoverEventCallback = OnHoverEvent;
608                     this.HoveredSignal().Connect(_hoverEventCallback);
609                 }
610
611                 _hoverEventHandler += value;
612             }
613
614             remove
615             {
616                 _hoverEventHandler -= value;
617
618                 if (_hoverEventHandler == null && HoveredSignal().Empty() == false)
619                 {
620                     this.HoveredSignal().Disconnect(_hoverEventCallback);
621                 }
622
623             }
624         }
625
626         // Callback for View Hover signal
627         private bool OnHoverEvent(IntPtr view, IntPtr hoverEvent)
628         {
629             if (hoverEvent == global::System.IntPtr.Zero)
630             {
631                 NUILog.Error("hoverEvent should not be null!");
632                 return true;
633             }
634
635             HoverEventArgs e = new HoverEventArgs();
636
637             e.Hover = Tizen.NUI.Hover.GetHoverFromPtr(hoverEvent);
638
639             if (_hoverEventHandler != null)
640             {
641                 return _hoverEventHandler(this, e);
642             }
643             return false;
644         }
645
646
647         /// <summary>
648         /// Event arguments that passed via the wheel signal.
649         /// </summary>
650         /// <since_tizen> 3 </since_tizen>
651         public class WheelEventArgs : EventArgs
652         {
653             private Wheel _wheel;
654
655             /// <summary>
656             /// WheelEvent - store a wheel rolling type: MOUSE_WHEEL or CUSTOM_WHEEL.
657             /// </summary>
658             /// <since_tizen> 3 </since_tizen>
659             public Wheel Wheel
660             {
661                 get
662                 {
663                     return _wheel;
664                 }
665                 set
666                 {
667                     _wheel = value;
668                 }
669             }
670         }
671
672         private EventHandlerWithReturnType<object, WheelEventArgs, bool> _wheelEventHandler;
673         [UnmanagedFunctionPointer(CallingConvention.StdCall)]
674         private delegate bool WheelEventCallbackType(IntPtr view, IntPtr wheelEvent);
675         private WheelEventCallbackType _wheelEventCallback;
676
677         /// <summary>
678         /// An event for the WheelMoved signal which can be used to subscribe or unsubscribe the event handler provided by the user.<br />
679         /// The WheelMoved signal is emitted when the wheel event is received.<br />
680         /// </summary>
681         /// <since_tizen> 3 </since_tizen>
682         public event EventHandlerWithReturnType<object, WheelEventArgs, bool> WheelEvent
683         {
684             add
685             {
686                 if (_wheelEventHandler == null)
687                 {
688                     _wheelEventCallback = OnWheelEvent;
689                     this.WheelEventSignal().Connect(_wheelEventCallback);
690                 }
691
692                 _wheelEventHandler += value;
693             }
694
695             remove
696             {
697                 _wheelEventHandler -= value;
698
699                 if (_wheelEventHandler == null && WheelEventSignal().Empty() == false)
700                 {
701                     this.WheelEventSignal().Disconnect(_wheelEventCallback);
702                 }
703
704             }
705         }
706
707         // Callback for View Wheel signal
708         private bool OnWheelEvent(IntPtr view, IntPtr wheelEvent)
709         {
710             if (wheelEvent == global::System.IntPtr.Zero)
711             {
712                 NUILog.Error("wheelEvent should not be null!");
713                 return true;
714             }
715
716             WheelEventArgs e = new WheelEventArgs();
717
718             e.Wheel = Tizen.NUI.Wheel.GetWheelFromPtr(wheelEvent);
719
720             if (_wheelEventHandler != null)
721             {
722                 return _wheelEventHandler(this, e);
723             }
724             return false;
725         }
726
727
728         private EventHandler _onWindowEventHandler;
729         [UnmanagedFunctionPointer(CallingConvention.StdCall)]
730         private delegate void OnWindowEventCallbackType(IntPtr control);
731         private OnWindowEventCallbackType _onWindowEventCallback;
732
733         /// <summary>
734         /// An event for the OnWindow signal which can be used to subscribe or unsubscribe the event handler.<br />
735         /// The OnWindow signal is emitted after the view has been connected to the window.<br />
736         /// </summary>
737         /// <since_tizen> 3 </since_tizen>
738         public event EventHandler AddedToWindow
739         {
740             add
741             {
742                 if (_onWindowEventHandler == null)
743                 {
744                     _onWindowEventCallback = OnWindow;
745                     this.OnWindowSignal().Connect(_onWindowEventCallback);
746                 }
747
748                 _onWindowEventHandler += value;
749             }
750
751             remove
752             {
753                 _onWindowEventHandler -= value;
754
755                 if (_onWindowEventHandler == null && OnWindowSignal().Empty() == false)
756                 {
757                     this.OnWindowSignal().Disconnect(_onWindowEventCallback);
758                 }
759             }
760         }
761
762         // Callback for View OnWindow signal
763         private void OnWindow(IntPtr data)
764         {
765             if (_onWindowEventHandler != null)
766             {
767                 _onWindowEventHandler(this, null);
768             }
769         }
770
771
772         private EventHandler _offWindowEventHandler;
773         [UnmanagedFunctionPointer(CallingConvention.StdCall)]
774         private delegate void OffWindowEventCallbackType(IntPtr control);
775         private OffWindowEventCallbackType _offWindowEventCallback;
776
777         /// <summary>
778         /// An event for the OffWindow signal, which can be used to subscribe or unsubscribe the event handler.<br />
779         /// OffWindow signal is emitted after the view has been disconnected from the window.<br />
780         /// </summary>
781         /// <since_tizen> 3 </since_tizen>
782         public event EventHandler RemovedFromWindow
783         {
784             add
785             {
786                 if (_offWindowEventHandler == null)
787                 {
788                     _offWindowEventCallback = OffWindow;
789                     this.OffWindowSignal().Connect(_offWindowEventCallback);
790                 }
791
792                 _offWindowEventHandler += value;
793             }
794
795             remove
796             {
797                 _offWindowEventHandler -= value;
798
799                 if (_offWindowEventHandler == null && OffWindowSignal().Empty() == false)
800                 {
801                     this.OffWindowSignal().Disconnect(_offWindowEventCallback);
802                 }
803             }
804         }
805
806         // Callback for View OffWindow signal
807         private void OffWindow(IntPtr data)
808         {
809             if (_offWindowEventHandler != null)
810             {
811                 _offWindowEventHandler(this, null);
812             }
813         }
814
815         /// <summary>
816         /// Event arguments of visibility changed.
817         /// </summary>
818         /// <since_tizen> 3 </since_tizen>
819         public class VisibilityChangedEventArgs : EventArgs
820         {
821             private View _view;
822             private bool _visibility;
823             private VisibilityChangeType _type;
824
825             /// <summary>
826             /// The view, or child of view, whose visibility has changed.
827             /// </summary>
828             /// <since_tizen> 3 </since_tizen>
829             public View View
830             {
831                 get
832                 {
833                     return _view;
834                 }
835                 set
836                 {
837                     _view = value;
838                 }
839             }
840
841             /// <summary>
842             /// Whether the view is now visible or not.
843             /// </summary>
844             /// <since_tizen> 3 </since_tizen>
845             public bool Visibility
846             {
847                 get
848                 {
849                     return _visibility;
850                 }
851                 set
852                 {
853                     _visibility = value;
854                 }
855             }
856
857             /// <summary>
858             /// Whether the view's visible property has changed or a parent's.
859             /// </summary>
860             /// <since_tizen> 3 </since_tizen>
861             public VisibilityChangeType Type
862             {
863                 get
864                 {
865                     return _type;
866                 }
867                 set
868                 {
869                     _type = value;
870                 }
871             }
872         }
873
874         private EventHandler<VisibilityChangedEventArgs> _visibilityChangedEventHandler;
875         [UnmanagedFunctionPointer(CallingConvention.StdCall)]
876         private delegate void VisibilityChangedEventCallbackType(IntPtr data, bool visibility, VisibilityChangeType type);
877         private VisibilityChangedEventCallbackType _visibilityChangedEventCallback;
878
879         /// <summary>
880         /// An event for visibility change which can be used to subscribe or unsubscribe the event handler.<br />
881         /// This signal is emitted when the visible property of this or a parent view is changed.<br />
882         /// </summary>
883         /// <since_tizen> 3 </since_tizen>
884         public event EventHandler<VisibilityChangedEventArgs> VisibilityChanged
885         {
886             add
887             {
888                 if (_visibilityChangedEventHandler == null)
889                 {
890                     _visibilityChangedEventCallback = OnVisibilityChanged;
891                     VisibilityChangedSignal(this).Connect(_visibilityChangedEventCallback);
892                 }
893
894                 _visibilityChangedEventHandler += value;
895             }
896
897             remove
898             {
899                 _visibilityChangedEventHandler -= value;
900
901                 if (_visibilityChangedEventHandler == null && VisibilityChangedSignal(this).Empty() == false)
902                 {
903                     VisibilityChangedSignal(this).Disconnect(_visibilityChangedEventCallback);
904                 }
905             }
906         }
907
908         // Callback for View visibility change signal
909         private void OnVisibilityChanged(IntPtr data, bool visibility, VisibilityChangeType type)
910         {
911             VisibilityChangedEventArgs e = new VisibilityChangedEventArgs();
912             if (data != null)
913             {
914                 e.View = Registry.GetManagedBaseHandleFromNativePtr(data) as View;
915             }
916             e.Visibility = visibility;
917             e.Type = type;
918
919             if (_visibilityChangedEventHandler != null)
920             {
921                 _visibilityChangedEventHandler(this, e);
922             }
923         }
924
925
926         /// <summary>
927         /// Event arguments of layout direction changed.
928         /// </summary>
929         /// <since_tizen> 4 </since_tizen>
930         public class LayoutDirectionChangedEventArgs : EventArgs
931         {
932             private View _view;
933             private ViewLayoutDirectionType _type;
934
935             /// <summary>
936             /// The view, or child of view, whose layout direction has changed.
937             /// </summary>
938             /// <since_tizen> 4 </since_tizen>
939             public View View
940             {
941                 get
942                 {
943                     return _view;
944                 }
945                 set
946                 {
947                     _view = value;
948                 }
949             }
950
951             /// <summary>
952             /// Whether the view's layout direction property has changed or a parent's.
953             /// </summary>
954             /// <since_tizen> 4 </since_tizen>
955             public ViewLayoutDirectionType Type
956             {
957                 get
958                 {
959                     return _type;
960                 }
961                 set
962                 {
963                     _type = value;
964                 }
965             }
966         }
967
968         private EventHandler<LayoutDirectionChangedEventArgs> _layoutDirectionChangedEventHandler;
969         [UnmanagedFunctionPointer(CallingConvention.StdCall)]
970         private delegate void LayoutDirectionChangedEventCallbackType(IntPtr data, ViewLayoutDirectionType type);
971         private LayoutDirectionChangedEventCallbackType _layoutDirectionChangedEventCallback;
972
973         /// <summary>
974         /// Event for layout direction change which can be used to subscribe/unsubscribe the event handler.<br />
975         /// This signal is emitted when the layout direction property of this or a parent view is changed.<br />
976         /// </summary>
977         /// <since_tizen> 4 </since_tizen>
978         public event EventHandler<LayoutDirectionChangedEventArgs> LayoutDirectionChanged
979         {
980             add
981             {
982                 if (_layoutDirectionChangedEventHandler == null)
983                 {
984                     _layoutDirectionChangedEventCallback = OnLayoutDirectionChanged;
985                     LayoutDirectionChangedSignal(this).Connect(_layoutDirectionChangedEventCallback);
986                 }
987
988                 _layoutDirectionChangedEventHandler += value;
989             }
990
991             remove
992             {
993                 _layoutDirectionChangedEventHandler -= value;
994
995                 if (_layoutDirectionChangedEventHandler == null && LayoutDirectionChangedSignal(this).Empty() == false)
996                 {
997                     LayoutDirectionChangedSignal(this).Disconnect(_layoutDirectionChangedEventCallback);
998                 }
999             }
1000         }
1001
1002         // Callback for View layout direction change signal
1003         private void OnLayoutDirectionChanged(IntPtr data, ViewLayoutDirectionType type)
1004         {
1005             LayoutDirectionChangedEventArgs e = new LayoutDirectionChangedEventArgs();
1006             if (data != null)
1007             {
1008                 e.View = Registry.GetManagedBaseHandleFromNativePtr(data) as View;
1009             }
1010             e.Type = type;
1011
1012             if (_layoutDirectionChangedEventHandler != null)
1013             {
1014                 _layoutDirectionChangedEventHandler(this, e);
1015             }
1016         }
1017
1018
1019
1020
1021
1022
1023
1024         // Resource Ready Signal
1025
1026         private EventHandler _resourcesLoadedEventHandler;
1027         [UnmanagedFunctionPointer(CallingConvention.StdCall)]
1028         private delegate void ResourcesLoadedCallbackType(IntPtr control);
1029         private ResourcesLoadedCallbackType _ResourcesLoadedCallback;
1030
1031         /// <summary>
1032         /// An event for the ResourcesLoadedSignal signal which can be used to subscribe or unsubscribe the event handler provided by the user.<br />
1033         /// This signal is emitted after all resources required by a view are loaded and ready.<br />
1034         /// </summary>
1035         /// <since_tizen> 3 </since_tizen>
1036         public event EventHandler ResourcesLoaded
1037         {
1038             add
1039             {
1040                 if (_resourcesLoadedEventHandler == null)
1041                 {
1042                     _ResourcesLoadedCallback = OnResourcesLoaded;
1043                     this.ResourcesLoadedSignal().Connect(_ResourcesLoadedCallback);
1044                 }
1045
1046                 _resourcesLoadedEventHandler += value;
1047             }
1048
1049             remove
1050             {
1051                 _resourcesLoadedEventHandler -= value;
1052
1053                 if (_resourcesLoadedEventHandler == null && ResourcesLoadedSignal().Empty() == false)
1054                 {
1055                     this.ResourcesLoadedSignal().Disconnect(_ResourcesLoadedCallback);
1056                 }
1057             }
1058         }
1059
1060         private void OnResourcesLoaded(IntPtr view)
1061         {
1062             if (_resourcesLoadedEventHandler != null)
1063             {
1064                 _resourcesLoadedEventHandler(this, null);
1065             }
1066         }
1067
1068         internal IntPtr GetPtrfromView()
1069         {
1070             return (IntPtr)swigCPtr;
1071         }
1072
1073         internal class Property
1074         {
1075             internal static readonly int TOOLTIP = NDalicManualPINVOKE.View_Property_TOOLTIP_get();
1076             internal static readonly int STATE = NDalicManualPINVOKE.View_Property_STATE_get();
1077             internal static readonly int SUB_STATE = NDalicManualPINVOKE.View_Property_SUB_STATE_get();
1078             internal static readonly int LEFT_FOCUSABLE_VIEW_ID = NDalicManualPINVOKE.View_Property_LEFT_FOCUSABLE_ACTOR_ID_get();
1079             internal static readonly int RIGHT_FOCUSABLE_VIEW_ID = NDalicManualPINVOKE.View_Property_RIGHT_FOCUSABLE_ACTOR_ID_get();
1080             internal static readonly int UP_FOCUSABLE_VIEW_ID = NDalicManualPINVOKE.View_Property_UP_FOCUSABLE_ACTOR_ID_get();
1081             internal static readonly int DOWN_FOCUSABLE_VIEW_ID = NDalicManualPINVOKE.View_Property_DOWN_FOCUSABLE_ACTOR_ID_get();
1082             internal static readonly int STYLE_NAME = NDalicPINVOKE.View_Property_STYLE_NAME_get();
1083             internal static readonly int BACKGROUND = NDalicPINVOKE.View_Property_BACKGROUND_get();
1084             internal static readonly int SIBLING_ORDER = NDalicManualPINVOKE.Actor_Property_SIBLING_ORDER_get();
1085             internal static readonly int OPACITY = NDalicManualPINVOKE.Actor_Property_OPACITY_get();
1086             internal static readonly int SCREEN_POSITION = NDalicManualPINVOKE.Actor_Property_SCREEN_POSITION_get();
1087             internal static readonly int POSITION_USES_ANCHOR_POINT = NDalicManualPINVOKE.Actor_Property_POSITION_USES_ANCHOR_POINT_get();
1088             internal static readonly int PARENT_ORIGIN = NDalicPINVOKE.Actor_Property_PARENT_ORIGIN_get();
1089             internal static readonly int PARENT_ORIGIN_X = NDalicPINVOKE.Actor_Property_PARENT_ORIGIN_X_get();
1090             internal static readonly int PARENT_ORIGIN_Y = NDalicPINVOKE.Actor_Property_PARENT_ORIGIN_Y_get();
1091             internal static readonly int PARENT_ORIGIN_Z = NDalicPINVOKE.Actor_Property_PARENT_ORIGIN_Z_get();
1092             internal static readonly int ANCHOR_POINT = NDalicPINVOKE.Actor_Property_ANCHOR_POINT_get();
1093             internal static readonly int ANCHOR_POINT_X = NDalicPINVOKE.Actor_Property_ANCHOR_POINT_X_get();
1094             internal static readonly int ANCHOR_POINT_Y = NDalicPINVOKE.Actor_Property_ANCHOR_POINT_Y_get();
1095             internal static readonly int ANCHOR_POINT_Z = NDalicPINVOKE.Actor_Property_ANCHOR_POINT_Z_get();
1096             internal static readonly int SIZE = NDalicPINVOKE.Actor_Property_SIZE_get();
1097             internal static readonly int SIZE_WIDTH = NDalicPINVOKE.Actor_Property_SIZE_WIDTH_get();
1098             internal static readonly int SIZE_HEIGHT = NDalicPINVOKE.Actor_Property_SIZE_HEIGHT_get();
1099             internal static readonly int SIZE_DEPTH = NDalicPINVOKE.Actor_Property_SIZE_DEPTH_get();
1100             internal static readonly int POSITION = NDalicPINVOKE.Actor_Property_POSITION_get();
1101             internal static readonly int POSITION_X = NDalicPINVOKE.Actor_Property_POSITION_X_get();
1102             internal static readonly int POSITION_Y = NDalicPINVOKE.Actor_Property_POSITION_Y_get();
1103             internal static readonly int POSITION_Z = NDalicPINVOKE.Actor_Property_POSITION_Z_get();
1104             internal static readonly int WORLD_POSITION = NDalicPINVOKE.Actor_Property_WORLD_POSITION_get();
1105             internal static readonly int WORLD_POSITION_X = NDalicPINVOKE.Actor_Property_WORLD_POSITION_X_get();
1106             internal static readonly int WORLD_POSITION_Y = NDalicPINVOKE.Actor_Property_WORLD_POSITION_Y_get();
1107             internal static readonly int WORLD_POSITION_Z = NDalicPINVOKE.Actor_Property_WORLD_POSITION_Z_get();
1108             internal static readonly int ORIENTATION = NDalicPINVOKE.Actor_Property_ORIENTATION_get();
1109             internal static readonly int WORLD_ORIENTATION = NDalicPINVOKE.Actor_Property_WORLD_ORIENTATION_get();
1110             internal static readonly int SCALE = NDalicPINVOKE.Actor_Property_SCALE_get();
1111             internal static readonly int SCALE_X = NDalicPINVOKE.Actor_Property_SCALE_X_get();
1112             internal static readonly int SCALE_Y = NDalicPINVOKE.Actor_Property_SCALE_Y_get();
1113             internal static readonly int SCALE_Z = NDalicPINVOKE.Actor_Property_SCALE_Z_get();
1114             internal static readonly int WORLD_SCALE = NDalicPINVOKE.Actor_Property_WORLD_SCALE_get();
1115             internal static readonly int VISIBLE = NDalicPINVOKE.Actor_Property_VISIBLE_get();
1116             internal static readonly int WORLD_COLOR = NDalicPINVOKE.Actor_Property_WORLD_COLOR_get();
1117             internal static readonly int WORLD_MATRIX = NDalicPINVOKE.Actor_Property_WORLD_MATRIX_get();
1118             internal static readonly int NAME = NDalicPINVOKE.Actor_Property_NAME_get();
1119             internal static readonly int SENSITIVE = NDalicPINVOKE.Actor_Property_SENSITIVE_get();
1120             internal static readonly int LEAVE_REQUIRED = NDalicPINVOKE.Actor_Property_LEAVE_REQUIRED_get();
1121             internal static readonly int INHERIT_ORIENTATION = NDalicPINVOKE.Actor_Property_INHERIT_ORIENTATION_get();
1122             internal static readonly int INHERIT_SCALE = NDalicPINVOKE.Actor_Property_INHERIT_SCALE_get();
1123             internal static readonly int DRAW_MODE = NDalicPINVOKE.Actor_Property_DRAW_MODE_get();
1124             internal static readonly int SIZE_MODE_FACTOR = NDalicPINVOKE.Actor_Property_SIZE_MODE_FACTOR_get();
1125             internal static readonly int WIDTH_RESIZE_POLICY = NDalicPINVOKE.Actor_Property_WIDTH_RESIZE_POLICY_get();
1126             internal static readonly int HEIGHT_RESIZE_POLICY = NDalicPINVOKE.Actor_Property_HEIGHT_RESIZE_POLICY_get();
1127             internal static readonly int SIZE_SCALE_POLICY = NDalicPINVOKE.Actor_Property_SIZE_SCALE_POLICY_get();
1128             internal static readonly int WIDTH_FOR_HEIGHT = NDalicPINVOKE.Actor_Property_WIDTH_FOR_HEIGHT_get();
1129             internal static readonly int HEIGHT_FOR_WIDTH = NDalicPINVOKE.Actor_Property_HEIGHT_FOR_WIDTH_get();
1130             internal static readonly int MINIMUM_SIZE = NDalicPINVOKE.Actor_Property_MINIMUM_SIZE_get();
1131             internal static readonly int MAXIMUM_SIZE = NDalicPINVOKE.Actor_Property_MAXIMUM_SIZE_get();
1132             internal static readonly int INHERIT_POSITION = NDalicPINVOKE.Actor_Property_INHERIT_POSITION_get();
1133             internal static readonly int CLIPPING_MODE = NDalicPINVOKE.Actor_Property_CLIPPING_MODE_get();
1134             internal static readonly int INHERIT_LAYOUT_DIRECTION = NDalicManualPINVOKE.Actor_Property_INHERIT_LAYOUT_DIRECTION_get();
1135             internal static readonly int LAYOUT_DIRECTION = NDalicManualPINVOKE.Actor_Property_LAYOUT_DIRECTION_get();
1136             internal static readonly int MARGIN = NDalicPINVOKE.View_Property_MARGIN_get();
1137             internal static readonly int PADDING = NDalicPINVOKE.View_Property_PADDING_get();
1138         }
1139
1140         /// <summary>
1141         /// Describes the direction to move the focus towards.
1142         /// </summary>
1143         /// <since_tizen> 3 </since_tizen>
1144         public enum FocusDirection
1145         {
1146             /// <summary>
1147             /// Move keyboard focus towards the left direction.
1148             /// </summary>
1149             /// <since_tizen> 3 </since_tizen>
1150             Left,
1151             /// <summary>
1152             /// Move keyboard focus towards the right direction.
1153             /// </summary>
1154             /// <since_tizen> 3 </since_tizen>
1155             Right,
1156             /// <summary>
1157             /// Move keyboard focus towards the up direction.
1158             /// </summary>
1159             /// <since_tizen> 3 </since_tizen>
1160             Up,
1161             /// <summary>
1162             /// Move keyboard focus towards the down direction.
1163             /// </summary>
1164             /// <since_tizen> 3 </since_tizen>
1165             Down,
1166             /// <summary>
1167             /// Move keyboard focus towards the previous page direction.
1168             /// </summary>
1169             /// <since_tizen> 3 </since_tizen>
1170             PageUp,
1171             /// <summary>
1172             /// Move keyboard focus towards the next page direction.
1173             /// </summary>
1174             /// <since_tizen> 3 </since_tizen>
1175             PageDown
1176         }
1177
1178         /// <summary>
1179         /// Creates a new instance of a view.
1180         /// </summary>
1181         /// <since_tizen> 3 </since_tizen>
1182         public View() : this(NDalicPINVOKE.View_New(), true)
1183         {
1184             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
1185
1186         }
1187         internal View(View uiControl) : this(NDalicPINVOKE.new_View__SWIG_1(View.getCPtr(uiControl)), true)
1188         {
1189             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
1190         }
1191
1192         private View ConvertIdToView(uint id)
1193         {
1194             View view = null;
1195
1196             if (Parent is View)
1197             {
1198                 View parentView = Parent as View;
1199                 view = parentView.FindChildById(id);
1200             }
1201
1202             if (!view)
1203             {
1204                 view = Window.Instance.GetRootLayer().FindChildById(id);
1205             }
1206
1207             return view;
1208         }
1209
1210         internal void SetKeyInputFocus()
1211         {
1212             NDalicPINVOKE.View_SetKeyInputFocus(swigCPtr);
1213             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
1214         }
1215
1216         /// <summary>
1217         /// Queries whether the view has a focus.
1218         /// </summary>
1219         /// <returns>True if this view has a focus.</returns>
1220         /// <since_tizen> 3 </since_tizen>
1221         public bool HasFocus()
1222         {
1223             bool ret = NDalicPINVOKE.View_HasKeyInputFocus(swigCPtr);
1224             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
1225             return ret;
1226         }
1227
1228         internal void ClearKeyInputFocus()
1229         {
1230             NDalicPINVOKE.View_ClearKeyInputFocus(swigCPtr);
1231             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
1232         }
1233
1234         internal PinchGestureDetector GetPinchGestureDetector()
1235         {
1236             PinchGestureDetector ret = new PinchGestureDetector(NDalicPINVOKE.View_GetPinchGestureDetector(swigCPtr), true);
1237             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
1238             return ret;
1239         }
1240
1241         internal PanGestureDetector GetPanGestureDetector()
1242         {
1243             PanGestureDetector ret = new PanGestureDetector(NDalicPINVOKE.View_GetPanGestureDetector(swigCPtr), true);
1244             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
1245             return ret;
1246         }
1247
1248         internal TapGestureDetector GetTapGestureDetector()
1249         {
1250             TapGestureDetector ret = new TapGestureDetector(NDalicPINVOKE.View_GetTapGestureDetector(swigCPtr), true);
1251             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
1252             return ret;
1253         }
1254
1255         internal LongPressGestureDetector GetLongPressGestureDetector()
1256         {
1257             LongPressGestureDetector ret = new LongPressGestureDetector(NDalicPINVOKE.View_GetLongPressGestureDetector(swigCPtr), true);
1258             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
1259             return ret;
1260         }
1261
1262         /// <summary>
1263         /// Sets the name of the style to be applied to the view.
1264         /// </summary>
1265         /// <param name="styleName">A string matching a style described in a stylesheet.</param>
1266         /// <since_tizen> 3 </since_tizen>
1267         public void SetStyleName(string styleName)
1268         {
1269             NDalicPINVOKE.View_SetStyleName(swigCPtr, styleName);
1270             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
1271         }
1272
1273         /// <summary>
1274         /// Retrieves the name of the style to be applied to the view (if any).
1275         /// </summary>
1276         /// <returns>A string matching a style, or an empty string.</returns>
1277         /// <since_tizen> 3 </since_tizen>
1278         public string GetStyleName()
1279         {
1280             string ret = NDalicPINVOKE.View_GetStyleName(swigCPtr);
1281             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
1282             return ret;
1283         }
1284
1285         internal void SetBackgroundColor(Vector4 color)
1286         {
1287             NDalicPINVOKE.View_SetBackgroundColor(swigCPtr, Vector4.getCPtr(color));
1288             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
1289         }
1290
1291         internal Vector4 GetBackgroundColor()
1292         {
1293             Vector4 ret = new Vector4(NDalicPINVOKE.View_GetBackgroundColor(swigCPtr), true);
1294             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
1295             return ret;
1296         }
1297
1298         internal void SetBackgroundImage(Image image)
1299         {
1300             NDalicPINVOKE.View_SetBackgroundImage(swigCPtr, Image.getCPtr(image));
1301             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
1302         }
1303
1304         /// <summary>
1305         /// Clears the background.
1306         /// </summary>
1307         /// <since_tizen> 3 </since_tizen>
1308         public void ClearBackground()
1309         {
1310             NDalicPINVOKE.View_ClearBackground(swigCPtr);
1311             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
1312         }
1313
1314         internal ControlKeySignal KeyEventSignal()
1315         {
1316             ControlKeySignal ret = new ControlKeySignal(NDalicPINVOKE.View_KeyEventSignal(swigCPtr), false);
1317             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
1318             return ret;
1319         }
1320
1321         internal KeyInputFocusSignal KeyInputFocusGainedSignal()
1322         {
1323             KeyInputFocusSignal ret = new KeyInputFocusSignal(NDalicPINVOKE.View_KeyInputFocusGainedSignal(swigCPtr), false);
1324             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
1325             return ret;
1326         }
1327
1328         internal KeyInputFocusSignal KeyInputFocusLostSignal()
1329         {
1330             KeyInputFocusSignal ret = new KeyInputFocusSignal(NDalicPINVOKE.View_KeyInputFocusLostSignal(swigCPtr), false);
1331             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
1332             return ret;
1333         }
1334
1335         internal View(ViewImpl implementation) : this(NDalicPINVOKE.new_View__SWIG_2(ViewImpl.getCPtr(implementation)), true)
1336         {
1337             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
1338         }
1339
1340         internal enum PropertyRange
1341         {
1342             PROPERTY_START_INDEX = PropertyRanges.PROPERTY_REGISTRATION_START_INDEX,
1343             CONTROL_PROPERTY_START_INDEX = PROPERTY_START_INDEX,
1344             CONTROL_PROPERTY_END_INDEX = CONTROL_PROPERTY_START_INDEX + 1000
1345         }
1346
1347         /// <summary>
1348         /// The StyleName, type string.
1349         /// </summary>
1350         /// <since_tizen> 3 </since_tizen>
1351         public string StyleName
1352         {
1353             get
1354             {
1355                 string temp;
1356                 GetProperty(View.Property.STYLE_NAME).Get(out temp);
1357                 return temp;
1358             }
1359             set
1360             {
1361                 SetProperty(View.Property.STYLE_NAME, new Tizen.NUI.PropertyValue(value));
1362             }
1363         }
1364
1365         /// <summary>
1366         /// The mutually exclusive with BACKGROUND_IMAGE and BACKGROUND type Vector4.
1367         /// </summary>
1368         /// <since_tizen> 3 </since_tizen>
1369         public Color BackgroundColor
1370         {
1371             get
1372             {
1373                 Color backgroundColor = new Color(0.0f, 0.0f, 0.0f, 0.0f);
1374
1375                 Tizen.NUI.PropertyMap background = Background;
1376                 int visualType = 0;
1377                 background.Find(Visual.Property.Type)?.Get(out visualType);
1378                 if (visualType == (int)Visual.Type.Color)
1379                 {
1380                     background.Find(ColorVisualProperty.MixColor)?.Get(backgroundColor);
1381                 }
1382
1383                 return backgroundColor;
1384             }
1385             set
1386             {
1387                 SetProperty(View.Property.BACKGROUND, new Tizen.NUI.PropertyValue(value));
1388             }
1389         }
1390
1391         /// <summary>
1392         /// Creates an animation to animate the background color visual. If there is no
1393         /// background visual, creates one with transparent black as it's mixColor.
1394         /// </summary>
1395         /// <since_tizen> 3 </since_tizen>
1396         public Animation AnimateBackgroundColor( object destinationValue,
1397                                                  int startTime,
1398                                                  int endTime,
1399                                                  AlphaFunction.BuiltinFunctions? alphaFunction = null,
1400                                                  object initialValue = null)
1401         {
1402             Tizen.NUI.PropertyMap background = Background;
1403
1404             if( background.Empty() )
1405             {
1406                 // If there is no background yet, ensure there is a transparent
1407                 // color visual
1408                 BackgroundColor = new Color(0.0f, 0.0f, 0.0f, 0.0f);
1409                 background = Background;
1410             }
1411             return AnimateColor( "background", destinationValue, startTime, endTime, alphaFunction, initialValue );
1412         }
1413
1414         /// <summary>
1415         /// Creates an animation to animate the mixColor of the named visual.
1416         /// </summary>
1417         /// <since_tizen> 3 </since_tizen>
1418         public Animation AnimateColor( string targetVisual, object destinationColor, int startTime, int endTime, AlphaFunction.BuiltinFunctions? alphaFunction = null, object initialColor = null )
1419         {
1420             Animation animation = null;
1421             {
1422                 PropertyMap _animator = new PropertyMap();
1423                 if( alphaFunction != null )
1424                 {
1425                     _animator.Add("alphaFunction", new PropertyValue( AlphaFunction.BuiltinToPropertyKey(alphaFunction) ) );
1426                 }
1427
1428                 PropertyMap _timePeriod = new PropertyMap();
1429                 _timePeriod.Add( "duration", new PropertyValue((endTime-startTime)/1000.0f) );
1430                 _timePeriod.Add( "delay", new PropertyValue( startTime/1000.0f ) );
1431                 _animator.Add( "timePeriod", new PropertyValue( _timePeriod ) );
1432
1433                 PropertyMap _transition = new PropertyMap();
1434                 _transition.Add( "animator", new PropertyValue( _animator ) );
1435                 _transition.Add( "target", new PropertyValue( targetVisual ) );
1436                 _transition.Add( "property", new PropertyValue( "mixColor" ) );
1437
1438                 if( initialColor != null )
1439                 {
1440                     PropertyValue initValue = PropertyValue.CreateFromObject( initialColor );
1441                     _transition.Add( "initialValue", initValue );
1442                 }
1443
1444                 PropertyValue destValue = PropertyValue.CreateFromObject( destinationColor );
1445                 _transition.Add( "targetValue", destValue );
1446                 TransitionData _transitionData = new TransitionData( _transition );
1447
1448                 animation = new Animation( NDalicManualPINVOKE.View_CreateTransition(swigCPtr, TransitionData.getCPtr(_transitionData)), true );
1449                 if (NDalicPINVOKE.SWIGPendingException.Pending)
1450                     throw NDalicPINVOKE.SWIGPendingException.Retrieve();
1451             }
1452             return animation;
1453         }
1454
1455         /// <summary>
1456         /// The mutually exclusive with BACKGROUND_COLOR and BACKGROUND type Map.
1457         /// </summary>
1458         /// <since_tizen> 3 </since_tizen>
1459         public string BackgroundImage
1460         {
1461             get
1462             {
1463                 string backgroundImage = "";
1464
1465                 Tizen.NUI.PropertyMap background = Background;
1466                 int visualType = 0;
1467                 background.Find(Visual.Property.Type)?.Get(out visualType);
1468                 if (visualType == (int)Visual.Type.Image)
1469                 {
1470                     background.Find(ImageVisualProperty.URL)?.Get(out backgroundImage);
1471                 }
1472
1473                 return backgroundImage;
1474             }
1475             set
1476             {
1477                 SetProperty(View.Property.BACKGROUND, new Tizen.NUI.PropertyValue(value));
1478             }
1479         }
1480
1481         /// <summary>
1482         /// The background of view.
1483         /// </summary>
1484         /// <since_tizen> 3 </since_tizen>
1485         public Tizen.NUI.PropertyMap Background
1486         {
1487             get
1488             {
1489                 Tizen.NUI.PropertyMap temp = new Tizen.NUI.PropertyMap();
1490                 GetProperty( View.Property.BACKGROUND ).Get(temp);
1491                 return temp;
1492             }
1493             set
1494             {
1495                 SetProperty(View.Property.BACKGROUND, new Tizen.NUI.PropertyValue(value));
1496             }
1497         }
1498
1499
1500         /// <summary>
1501         /// The current state of the view.
1502         /// </summary>
1503         /// <since_tizen> 3 </since_tizen>
1504         public States State
1505         {
1506             get
1507             {
1508                 int temp = 0;
1509                 if (GetProperty(View.Property.STATE).Get(out temp) == false)
1510                 {
1511                     NUILog.Error("State get error!");
1512                 }
1513                 switch (temp)
1514                 {
1515                     case 0:
1516                     {
1517                         return States.Normal;
1518                     }
1519                     case 1:
1520                     {
1521                         return States.Focused;
1522                     }
1523                     case 2:
1524                     {
1525                         return States.Disabled;
1526                     }
1527                     default:
1528                     {
1529                         return States.Normal;
1530                     }
1531                 }
1532             }
1533             set
1534             {
1535                 SetProperty(View.Property.STATE, new Tizen.NUI.PropertyValue((int)value));
1536             }
1537         }
1538
1539         /// <summary>
1540         /// The current sub state of the view.
1541         /// </summary>
1542         /// <since_tizen> 3 </since_tizen>
1543         public States SubState
1544         {
1545             get
1546             {
1547                 string temp;
1548                 if (GetProperty(View.Property.SUB_STATE).Get(out temp) == false)
1549                 {
1550                     NUILog.Error("subState get error!");
1551                 }
1552                 switch (temp)
1553                 {
1554                     case "NORMAL":
1555                         return States.Normal;
1556                     case "FOCUSED":
1557                         return States.Focused;
1558                     case "DISABLED":
1559                         return States.Disabled;
1560                     default:
1561                         return States.Normal;
1562                 }
1563             }
1564             set
1565             {
1566                 string valueToString = "";
1567                 switch (value)
1568                 {
1569                     case States.Normal:
1570                     {
1571                         valueToString = "NORMAL";
1572                         break;
1573                     }
1574                     case States.Focused:
1575                     {
1576                         valueToString = "FOCUSED";
1577                         break;
1578                     }
1579                     case States.Disabled:
1580                     {
1581                         valueToString = "DISABLED";
1582                         break;
1583                     }
1584                     default:
1585                     {
1586                         valueToString = "NORMAL";
1587                         break;
1588                     }
1589                 }
1590                 SetProperty(View.Property.SUB_STATE, new Tizen.NUI.PropertyValue(valueToString));
1591             }
1592         }
1593
1594         /// <summary>
1595         /// Displays a tooltip
1596         /// </summary>
1597         /// <since_tizen> 3 </since_tizen>
1598         public Tizen.NUI.PropertyMap Tooltip
1599         {
1600             get
1601             {
1602                 Tizen.NUI.PropertyMap temp = new Tizen.NUI.PropertyMap();
1603                 GetProperty(View.Property.TOOLTIP).Get(temp);
1604                 return temp;
1605             }
1606             set
1607             {
1608                 SetProperty(View.Property.TOOLTIP, new Tizen.NUI.PropertyValue(value));
1609             }
1610         }
1611
1612         /// <summary>
1613         /// Displays a tooltip as a text.
1614         /// </summary>
1615         /// <since_tizen> 3 </since_tizen>
1616         public string TooltipText
1617         {
1618             set
1619             {
1620                 SetProperty(View.Property.TOOLTIP, new Tizen.NUI.PropertyValue(value));
1621             }
1622         }
1623
1624         private int LeftFocusableViewId
1625         {
1626             get
1627             {
1628                 int temp = 0;
1629                 GetProperty(View.Property.LEFT_FOCUSABLE_VIEW_ID).Get(out temp);
1630                 return temp;
1631             }
1632             set
1633             {
1634                 SetProperty(View.Property.LEFT_FOCUSABLE_VIEW_ID, new Tizen.NUI.PropertyValue(value));
1635             }
1636         }
1637
1638         private int RightFocusableViewId
1639         {
1640             get
1641             {
1642                 int temp = 0;
1643                 GetProperty(View.Property.RIGHT_FOCUSABLE_VIEW_ID).Get(out temp);
1644                 return temp;
1645             }
1646             set
1647             {
1648                 SetProperty(View.Property.RIGHT_FOCUSABLE_VIEW_ID, new Tizen.NUI.PropertyValue(value));
1649             }
1650         }
1651
1652         private int UpFocusableViewId
1653         {
1654             get
1655             {
1656                 int temp = 0;
1657                 GetProperty(View.Property.UP_FOCUSABLE_VIEW_ID).Get(out temp);
1658                 return temp;
1659             }
1660             set
1661             {
1662                 SetProperty(View.Property.UP_FOCUSABLE_VIEW_ID, new Tizen.NUI.PropertyValue(value));
1663             }
1664         }
1665
1666         private int DownFocusableViewId
1667         {
1668             get
1669             {
1670                 int temp = 0;
1671                 GetProperty(View.Property.DOWN_FOCUSABLE_VIEW_ID).Get(out temp);
1672                 return temp;
1673             }
1674             set
1675             {
1676                 SetProperty(View.Property.DOWN_FOCUSABLE_VIEW_ID, new Tizen.NUI.PropertyValue(value));
1677             }
1678         }
1679
1680         /// <summary>
1681         /// The Child property of FlexContainer.<br />
1682         /// The proportion of the free space in the container, the flex item will receive.<br />
1683         /// If all items in the container set this property, their sizes will be proportional to the specified flex factor.<br />
1684         /// </summary>
1685         /// <since_tizen> 3 </since_tizen>
1686         public float Flex
1687         {
1688             get
1689             {
1690                 float temp = 0.0f;
1691                 GetProperty(FlexContainer.ChildProperty.FLEX).Get(out temp);
1692                 return temp;
1693             }
1694             set
1695             {
1696                 SetProperty(FlexContainer.ChildProperty.FLEX, new Tizen.NUI.PropertyValue(value));
1697             }
1698         }
1699
1700         /// <summary>
1701         /// The Child property of FlexContainer.<br />
1702         /// The alignment of the flex item along the cross axis, which, if set, overides the default alignment for all items in the container.<br />
1703         /// </summary>
1704         /// <since_tizen> 3 </since_tizen>
1705         public int AlignSelf
1706         {
1707             get
1708             {
1709                 int temp = 0;
1710                 GetProperty(FlexContainer.ChildProperty.ALIGN_SELF).Get(out temp);
1711                 return temp;
1712             }
1713             set
1714             {
1715                 SetProperty(FlexContainer.ChildProperty.ALIGN_SELF, new Tizen.NUI.PropertyValue(value));
1716             }
1717         }
1718
1719         /// <summary>
1720         /// The Child property of FlexContainer.<br />
1721         /// The space around the flex item.<br />
1722         /// </summary>
1723         /// <since_tizen> 3 </since_tizen>
1724         public Vector4 FlexMargin
1725         {
1726             get
1727             {
1728                 Vector4 temp = new Vector4(0.0f, 0.0f, 0.0f, 0.0f);
1729                 GetProperty(FlexContainer.ChildProperty.FLEX_MARGIN).Get(temp);
1730                 return temp;
1731             }
1732             set
1733             {
1734                 SetProperty(FlexContainer.ChildProperty.FLEX_MARGIN, new Tizen.NUI.PropertyValue(value));
1735             }
1736         }
1737
1738         /// <summary>
1739         /// The top-left cell this child occupies, if not set, the first available cell is used.
1740         /// </summary>
1741         /// <since_tizen> 3 </since_tizen>
1742         public Vector2 CellIndex
1743         {
1744             get
1745             {
1746                 Vector2 temp = new Vector2(0.0f, 0.0f);
1747                 GetProperty(TableView.ChildProperty.CELL_INDEX).Get(temp);
1748                 return temp;
1749             }
1750             set
1751             {
1752                 SetProperty(TableView.ChildProperty.CELL_INDEX, new Tizen.NUI.PropertyValue(value));
1753             }
1754         }
1755
1756         /// <summary>
1757         /// The number of rows this child occupies, if not set, the default value is 1.
1758         /// </summary>
1759         /// <since_tizen> 3 </since_tizen>
1760         public float RowSpan
1761         {
1762             get
1763             {
1764                 float temp = 0.0f;
1765                 GetProperty(TableView.ChildProperty.ROW_SPAN).Get(out temp);
1766                 return temp;
1767             }
1768             set
1769             {
1770                 SetProperty(TableView.ChildProperty.ROW_SPAN, new Tizen.NUI.PropertyValue(value));
1771             }
1772         }
1773
1774         /// <summary>
1775         /// The number of columns this child occupies, if not set, the default value is 1.
1776         /// </summary>
1777         /// <since_tizen> 3 </since_tizen>
1778         public float ColumnSpan
1779         {
1780             get
1781             {
1782                 float temp = 0.0f;
1783                 GetProperty(TableView.ChildProperty.COLUMN_SPAN).Get(out temp);
1784                 return temp;
1785             }
1786             set
1787             {
1788                 SetProperty(TableView.ChildProperty.COLUMN_SPAN, new Tizen.NUI.PropertyValue(value));
1789             }
1790         }
1791
1792         /// <summary>
1793         /// The horizontal alignment of this child inside the cells, if not set, the default value is 'left'.
1794         /// </summary>
1795         /// <since_tizen> 3 </since_tizen>
1796         public Tizen.NUI.HorizontalAlignmentType CellHorizontalAlignment
1797         {
1798             get
1799             {
1800                 string temp;
1801                 if (GetProperty(TableView.ChildProperty.CELL_HORIZONTAL_ALIGNMENT).Get(out temp) == false)
1802                 {
1803                     NUILog.Error("CellHorizontalAlignment get error!");
1804                 }
1805
1806                 switch (temp)
1807                 {
1808                     case "left":
1809                         return Tizen.NUI.HorizontalAlignmentType.Left;
1810                     case "center":
1811                         return Tizen.NUI.HorizontalAlignmentType.Center;
1812                     case "right":
1813                         return Tizen.NUI.HorizontalAlignmentType.Right;
1814                     default:
1815                         return Tizen.NUI.HorizontalAlignmentType.Left;
1816                 }
1817             }
1818             set
1819             {
1820                 string valueToString = "";
1821                 switch (value)
1822                 {
1823                     case Tizen.NUI.HorizontalAlignmentType.Left:
1824                     {
1825                         valueToString = "left";
1826                         break;
1827                     }
1828                     case Tizen.NUI.HorizontalAlignmentType.Center:
1829                     {
1830                         valueToString = "center";
1831                         break;
1832                     }
1833                     case Tizen.NUI.HorizontalAlignmentType.Right:
1834                     {
1835                         valueToString = "right";
1836                         break;
1837                     }
1838                     default:
1839                     {
1840                         valueToString = "left";
1841                         break;
1842                     }
1843                 }
1844                 SetProperty(TableView.ChildProperty.CELL_HORIZONTAL_ALIGNMENT, new Tizen.NUI.PropertyValue(valueToString));
1845             }
1846         }
1847
1848         /// <summary>
1849         /// The vertical alignment of this child inside the cells, if not set, the default value is 'top'.
1850         /// </summary>
1851         /// <since_tizen> 3 </since_tizen>
1852         public Tizen.NUI.VerticalAlignmentType CellVerticalAlignment
1853         {
1854             get
1855             {
1856                 string temp;
1857                 GetProperty(TableView.ChildProperty.CELL_VERTICAL_ALIGNMENT).Get(out temp);
1858                 {
1859                     NUILog.Error("CellVerticalAlignment get error!");
1860                 }
1861
1862                 switch (temp)
1863                 {
1864                     case "top":
1865                         return Tizen.NUI.VerticalAlignmentType.Top;
1866                     case "center":
1867                         return Tizen.NUI.VerticalAlignmentType.Center;
1868                     case "bottom":
1869                         return Tizen.NUI.VerticalAlignmentType.Bottom;
1870                     default:
1871                         return Tizen.NUI.VerticalAlignmentType.Top;
1872                 }
1873             }
1874             set
1875             {
1876                 string valueToString = "";
1877                 switch (value)
1878                 {
1879                     case Tizen.NUI.VerticalAlignmentType.Top:
1880                     {
1881                         valueToString = "top";
1882                         break;
1883                     }
1884                     case Tizen.NUI.VerticalAlignmentType.Center:
1885                     {
1886                         valueToString = "center";
1887                         break;
1888                     }
1889                     case Tizen.NUI.VerticalAlignmentType.Bottom:
1890                     {
1891                         valueToString = "bottom";
1892                         break;
1893                     }
1894                     default:
1895                     {
1896                         valueToString = "top";
1897                         break;
1898                     }
1899                 }
1900                 SetProperty(TableView.ChildProperty.CELL_VERTICAL_ALIGNMENT, new Tizen.NUI.PropertyValue(valueToString));
1901             }
1902         }
1903
1904         /// <summary>
1905         /// The left focusable view.<br />
1906         /// This will return null if not set.<br />
1907         /// This will also return null if the specified left focusable view is not on a window.<br />
1908         /// </summary>
1909         /// <since_tizen> 3 </since_tizen>
1910         public View LeftFocusableView
1911         {
1912             // As native side will be only storing IDs so need a logic to convert View to ID and vice-versa.
1913             get
1914             {
1915                 if (LeftFocusableViewId >= 0)
1916                 {
1917                     return ConvertIdToView((uint)LeftFocusableViewId);
1918                 }
1919                 return null;
1920             }
1921             set
1922             {
1923                 if(value)
1924                 {
1925                     LeftFocusableViewId = (int)value.GetId();
1926                 }
1927                 else
1928                 {
1929                     LeftFocusableViewId = -1;
1930                 }
1931             }
1932         }
1933
1934         /// <summary>
1935         /// The right focusable view.<br />
1936         /// This will return null if not set.<br />
1937         /// This will also return null if the specified right focusable view is not on a window.<br />
1938         /// </summary>
1939         /// <since_tizen> 3 </since_tizen>
1940         public View RightFocusableView
1941         {
1942             // As native side will be only storing IDs so need a logic to convert View to ID and vice-versa.
1943             get
1944             {
1945                 if (RightFocusableViewId >= 0)
1946                 {
1947                     return ConvertIdToView((uint)RightFocusableViewId);
1948                 }
1949                 return null;
1950             }
1951             set
1952             {
1953                 if(value)
1954                 {
1955                     RightFocusableViewId = (int)value.GetId();
1956                 }
1957                 else
1958                 {
1959                     RightFocusableViewId = -1;
1960                 }
1961             }
1962         }
1963
1964         /// <summary>
1965         /// The up focusable view.<br />
1966         /// This will return null if not set.<br />
1967         /// This will also return null if the specified up focusable view is not on a window.<br />
1968         /// </summary>
1969         /// <since_tizen> 3 </since_tizen>
1970         public View UpFocusableView
1971         {
1972             // As native side will be only storing IDs so need a logic to convert View to ID and vice-versa.
1973             get
1974             {
1975                 if (UpFocusableViewId >= 0)
1976                 {
1977                     return ConvertIdToView((uint)UpFocusableViewId);
1978                 }
1979                 return null;
1980             }
1981             set
1982             {
1983                 if(value)
1984                 {
1985                     UpFocusableViewId = (int)value.GetId();
1986                 }
1987                 else
1988                 {
1989                     UpFocusableViewId = -1;
1990                 }
1991             }
1992         }
1993
1994         /// <summary>
1995         /// The down focusable view.<br />
1996         /// This will return null if not set.<br />
1997         /// This will also return null if the specified down focusable view is not on a window.<br />
1998         /// </summary>
1999         /// <since_tizen> 3 </since_tizen>
2000         public View DownFocusableView
2001         {
2002             // As native side will be only storing IDs so need a logic to convert View to ID and vice-versa.
2003             get
2004             {
2005                 if (DownFocusableViewId >= 0)
2006                 {
2007                     return ConvertIdToView((uint)DownFocusableViewId);
2008                 }
2009                 return null;
2010             }
2011             set
2012             {
2013                 if(value)
2014                 {
2015                     DownFocusableViewId = (int)value.GetId();
2016                 }
2017                 else
2018                 {
2019                     DownFocusableViewId = -1;
2020                 }
2021             }
2022         }
2023
2024         /// <summary>
2025         /// Whether the view should be focusable by keyboard navigation.
2026         /// </summary>
2027         /// <since_tizen> 3 </since_tizen>
2028         public bool Focusable
2029         {
2030             set
2031             {
2032                 SetKeyboardFocusable(value);
2033             }
2034             get
2035             {
2036                 return IsKeyboardFocusable();
2037             }
2038         }
2039
2040         /// <summary>
2041         /// Enumeration for describing the states of the view.
2042         /// </summary>
2043         /// <since_tizen> 3 </since_tizen>
2044         public enum States
2045         {
2046             /// <summary>
2047             /// The normal state.
2048             /// </summary>
2049             Normal,
2050             /// <summary>
2051             /// The focused state.
2052             /// </summary>
2053             Focused,
2054             /// <summary>
2055             /// The disabled state.
2056             /// </summary>
2057             Disabled
2058         }
2059
2060         /// <summary>
2061         ///  Retrieves the position of the view.<br />
2062         ///  The coordinates are relative to the view's parent.<br />
2063         /// </summary>
2064         /// <since_tizen> 3 </since_tizen>
2065         public Position CurrentPosition
2066         {
2067             get
2068             {
2069                 return GetCurrentPosition();
2070             }
2071         }
2072
2073         /// <summary>
2074         /// Sets the size of a view for the width and the height.<br />
2075         /// Geometry can be scaled to fit within this area.<br />
2076         /// This does not interfere with the view's scale factor.<br />
2077         /// The views default depth is the minimum of width and height.<br />
2078         /// </summary>
2079         /// <since_tizen> 3 </since_tizen>
2080         public Size2D Size2D
2081         {
2082             get
2083             {
2084                 Size temp = new Size(0.0f, 0.0f, 0.0f);
2085                 GetProperty(View.Property.SIZE).Get(temp);
2086                 Size2D size = new Size2D((int)temp.Width, (int)temp.Height);
2087                 return size;
2088             }
2089             set
2090             {
2091                 SetProperty(View.Property.SIZE, new Tizen.NUI.PropertyValue(new Size(value)));
2092             }
2093         }
2094
2095         /// <summary>
2096         ///  Retrieves the size of the view.<br />
2097         ///  The coordinates are relative to the view's parent.<br />
2098         /// </summary>
2099         /// <since_tizen> 3 </since_tizen>
2100         public Size2D CurrentSize
2101         {
2102             get
2103             {
2104                 return GetCurrentSize();
2105             }
2106         }
2107
2108         /// <summary>
2109         /// Retrieves and sets the view's opacity.<br />
2110         /// </summary>
2111         /// <since_tizen> 3 </since_tizen>
2112         public float Opacity
2113         {
2114             get
2115             {
2116                 float temp = 0.0f;
2117                 GetProperty(View.Property.OPACITY).Get(out temp);
2118                 return temp;
2119             }
2120             set
2121             {
2122                 SetProperty(View.Property.OPACITY, new Tizen.NUI.PropertyValue(value));
2123             }
2124         }
2125
2126         /// <summary>
2127         /// Sets the position of the view for X and Y.<br />
2128         /// By default, sets the position vector between the parent origin and the pivot point (default).<br />
2129         /// If the position inheritance is disabled, sets the world position.<br />
2130         /// </summary>
2131         /// <since_tizen> 3 </since_tizen>
2132         public Position2D Position2D
2133         {
2134             get
2135             {
2136                 Position temp = new Position(0.0f, 0.0f, 0.0f);
2137                 GetProperty(View.Property.POSITION).Get(temp);
2138                 return new Position2D(temp);
2139             }
2140             set
2141             {
2142                 SetProperty(View.Property.POSITION, new Tizen.NUI.PropertyValue(new Position(value)));
2143             }
2144         }
2145
2146         /// <summary>
2147         /// Retrieves the screen postion of the view.<br />
2148         /// </summary>
2149         /// <since_tizen> 3 </since_tizen>
2150         public Vector2 ScreenPosition
2151         {
2152             get
2153             {
2154                 Vector2 temp = new Vector2(0.0f, 0.0f);
2155                 GetProperty(View.Property.SCREEN_POSITION).Get(temp);
2156                 return temp;
2157             }
2158         }
2159
2160         /// <summary>
2161         /// Determines whether the pivot point should be used to determine the position of the view.
2162         /// This is true by default.
2163         /// </summary>
2164         /// <remarks>If false, then the top-left of the view is used for the position.
2165         /// Setting this to false will allow scaling or rotation around the anchor-point without affecting the view's position.
2166         /// </remarks>
2167         /// <since_tizen> 3 </since_tizen>
2168         public bool PositionUsesPivotPoint
2169         {
2170             get
2171             {
2172                 bool temp = false;
2173                 GetProperty(View.Property.POSITION_USES_ANCHOR_POINT).Get(out temp);
2174                 return temp;
2175             }
2176             set
2177             {
2178                 SetProperty(View.Property.POSITION_USES_ANCHOR_POINT, new Tizen.NUI.PropertyValue(value));
2179             }
2180         }
2181
2182         /// <summary>
2183         /// Please do not use! this will be deprecated.
2184         /// </summary>
2185         /// Please do not use! this will be deprecated!
2186         /// Instead please use PositionUsesPivotPoint.
2187         /// <since_tizen> 3 </since_tizen>
2188         [Obsolete("Please do not use! This will be deprecated! Please use PositionUsesPivotPoint instead! " +
2189             "Like: " +
2190             "View view = new View(); " +
2191             "view.PivotPoint = PivotPoint.Center; " +
2192             "view.PositionUsesPivotPoint = true;")]
2193         [EditorBrowsable(EditorBrowsableState.Never)]
2194         public bool PositionUsesAnchorPoint
2195         {
2196             get
2197             {
2198                 bool temp = false;
2199                 GetProperty(View.Property.POSITION_USES_ANCHOR_POINT).Get(out temp);
2200                 return temp;
2201             }
2202             set
2203             {
2204                 SetProperty(View.Property.POSITION_USES_ANCHOR_POINT, new Tizen.NUI.PropertyValue(value));
2205             }
2206         }
2207
2208         internal bool FocusState
2209         {
2210             get
2211             {
2212                 return IsKeyboardFocusable();
2213             }
2214             set
2215             {
2216                 SetKeyboardFocusable(value);
2217             }
2218         }
2219
2220         /// <summary>
2221         /// Queries whether the view is connected to the stage.<br />
2222         /// When a view is connected, it will be directly or indirectly parented to the root view.<br />
2223         /// </summary>
2224         /// <since_tizen> 3 </since_tizen>
2225         public bool IsOnWindow
2226         {
2227             get
2228             {
2229                 return OnWindow();
2230             }
2231         }
2232
2233         /// <summary>
2234         /// Gets the depth in the hierarchy for the view.
2235         /// </summary>
2236         /// <since_tizen> 3 </since_tizen>
2237         public int HierarchyDepth
2238         {
2239             get
2240             {
2241                 return GetHierarchyDepth();
2242             }
2243         }
2244
2245         /// <summary>
2246         /// Sets the sibling order of the view so the depth position can be defined within the same parent.
2247         /// </summary>
2248         /// <remarks>
2249         /// Note the initial value is 0.
2250         /// Raise, Lower, RaiseToTop, LowerToBottom, RaiseAbove, and LowerBelow will override the sibling order.
2251         /// The values set by this property will likely change.
2252         /// </remarks>
2253         /// <since_tizen> 3 </since_tizen>
2254         public int SiblingOrder
2255         {
2256             get
2257             {
2258                 var parentChildren = Parent?.Children;
2259                 int currentOrder = 0;
2260                 if (parentChildren != null)
2261                 {
2262                     currentOrder = parentChildren.IndexOf(this);
2263
2264                     if (currentOrder < 0)
2265                     {
2266                         return 0;
2267                     }
2268                     else if (currentOrder < parentChildren.Count)
2269                     {
2270                         return currentOrder;
2271                     }
2272                 }
2273
2274                 return 0;
2275             }
2276             set
2277             {
2278                 var siblings = Parent?.Children;
2279                 if (siblings != null)
2280                 {
2281                     int currentOrder = siblings.IndexOf(this);
2282
2283                     if (value != currentOrder)
2284                     {
2285                         if (value == 0)
2286                         {
2287                             LowerToBottom();
2288                         }
2289                         else if (value < siblings.Count - 1)
2290                         {
2291                             if (value > currentOrder)
2292                             {
2293                                 RaiseAbove(siblings[value]);
2294                             }
2295                             else
2296                             {
2297                                 LowerBelow(siblings[value]);
2298                             }
2299                         }
2300                         else
2301                         {
2302                             RaiseToTop();
2303                         }
2304                     }
2305                 }
2306             }
2307         }
2308
2309         /// <summary>
2310         /// Returns the natural size of the view.
2311         /// </summary>
2312         /// <remarks>
2313         /// Deriving classes stipulate the natural size and by default a view has a zero natural size.
2314         /// </remarks>
2315         /// /// Please do not use! this will be deprecated!
2316         /// Instead please use NaturalSize2D.
2317         /// <since_tizen> 3 </since_tizen>
2318         [Obsolete("Please do not use! This will be deprecated! Please use NaturalSize2D instead! " +
2319             "Like: " +
2320             "TextLabel label = new TextLabel(\"Hello World!\"); " +
2321             "Size2D size = label.NaturalSize2D;")]
2322         [EditorBrowsable(EditorBrowsableState.Never)]
2323         public Vector3 NaturalSize
2324         {
2325             get
2326             {
2327                 Vector3 ret = new Vector3(NDalicPINVOKE.Actor_GetNaturalSize(swigCPtr), true);
2328                 if (NDalicPINVOKE.SWIGPendingException.Pending)
2329                     throw NDalicPINVOKE.SWIGPendingException.Retrieve();
2330                 return ret;
2331             }
2332         }
2333
2334         /// <summary>
2335         /// Returns the natural size (Size2D) of the view.
2336         /// </summary>
2337         /// <remarks>
2338         /// Deriving classes stipulate the natural size and by default a view has a zero natural size.
2339         /// </remarks>
2340         /// <since_tizen> 4 </since_tizen>
2341         public Size2D NaturalSize2D
2342         {
2343             get
2344             {
2345                 Vector3 temp = new Vector3(NDalicPINVOKE.Actor_GetNaturalSize(swigCPtr), true);
2346                 if (NDalicPINVOKE.SWIGPendingException.Pending)
2347                     throw NDalicPINVOKE.SWIGPendingException.Retrieve();
2348
2349                 return new Size2D((int)temp.Width, (int)temp.Height);
2350             }
2351         }
2352
2353         /// <summary>
2354         /// Shows the view.
2355         /// </summary>
2356         /// <remarks>
2357         /// This is an asynchronous method.
2358         /// </remarks>
2359         /// <since_tizen> 3 </since_tizen>
2360         public void Show()
2361         {
2362             SetVisible(true);
2363         }
2364
2365         /// <summary>
2366         /// Hides the view.
2367         /// </summary>
2368         /// <remarks>
2369         /// This is an asynchronous method.
2370         /// If the view is hidden, then the view and its children will not be rendered.
2371         /// This is regardless of the individual visibility of the children, i.e., the view will only be rendered if all of its parents are shown.
2372         /// </remarks>
2373         /// <since_tizen> 3 </since_tizen>
2374         public void Hide()
2375         {
2376             SetVisible(false);
2377         }
2378
2379         internal void Raise()
2380         {
2381             var parentChildren = Parent?.Children;
2382
2383             if (parentChildren != null)
2384             {
2385                 int currentIndex = parentChildren.IndexOf(this);
2386
2387                 // If the view is not already the last item in the list.
2388                 if (currentIndex != parentChildren.Count -1)
2389                 {
2390                     View temp = parentChildren[currentIndex + 1];
2391                     parentChildren[currentIndex + 1] = this;
2392                     parentChildren[currentIndex] = temp;
2393                 }
2394             }
2395
2396             NDalicPINVOKE.Raise(swigCPtr);
2397             if (NDalicPINVOKE.SWIGPendingException.Pending)
2398                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
2399         }
2400
2401         internal void Lower()
2402         {
2403             var parentChildren = Parent?.Children;
2404
2405             if (parentChildren != null)
2406             {
2407                 int currentIndex = parentChildren.IndexOf(this);
2408
2409                 // If the view is not already the first item in the list.
2410                 if (currentIndex > 0)
2411                 {
2412                     View temp = parentChildren[currentIndex - 1];
2413                     parentChildren[currentIndex - 1] = this;
2414                     parentChildren[currentIndex] = temp;
2415                 }
2416             }
2417
2418             NDalicPINVOKE.Lower(swigCPtr);
2419             if (NDalicPINVOKE.SWIGPendingException.Pending)
2420                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
2421         }
2422
2423         /// <summary>
2424         /// Raises the view above all other views.
2425         /// </summary>
2426         /// <remarks>
2427         /// Sibling order of views within the parent will be updated automatically.
2428         /// Once a raise or lower API is used, that view will then have an exclusive sibling order independent of insertion.
2429         /// </remarks>
2430         /// <since_tizen> 3 </since_tizen>
2431         public void RaiseToTop()
2432         {
2433             var parentChildren = Parent?.Children;
2434
2435             if (parentChildren != null)
2436             {
2437                 parentChildren.Remove(this);
2438                 parentChildren.Add(this);
2439             }
2440
2441             NDalicPINVOKE.RaiseToTop(swigCPtr);
2442             if (NDalicPINVOKE.SWIGPendingException.Pending)
2443                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
2444         }
2445
2446         /// <summary>
2447         /// Lowers the view to the bottom of all views.
2448         /// </summary>
2449         /// <remarks>
2450         /// The sibling order of views within the parent will be updated automatically.
2451         /// Once a raise or lower API is used that view will then have an exclusive sibling order independent of insertion.
2452         /// </remarks>
2453         /// <since_tizen> 3 </since_tizen>
2454         public void LowerToBottom()
2455         {
2456             var parentChildren = Parent?.Children;
2457
2458             if (parentChildren != null)
2459             {
2460                 parentChildren.Remove(this);
2461                 parentChildren.Insert(0, this);
2462             }
2463
2464             NDalicPINVOKE.LowerToBottom(swigCPtr);
2465             if (NDalicPINVOKE.SWIGPendingException.Pending)
2466                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
2467         }
2468
2469         /// <summary>
2470         /// Queries if all resources required by a view are loaded and ready.
2471         /// </summary>
2472         /// <remarks>Most resources are only loaded when the control is placed on the stage.
2473         /// </remarks>
2474         /// <since_tizen> 3 </since_tizen>
2475         public bool IsResourceReady()
2476         {
2477             bool ret = NDalicPINVOKE.IsResourceReady(swigCPtr);
2478             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
2479             return ret;
2480         }
2481
2482         /// <summary>
2483         /// Raises the view to above the target view.
2484         /// </summary>
2485         /// <remarks>The sibling order of views within the parent will be updated automatically.
2486         /// Views on the level above the target view will still be shown above this view.
2487         /// Raising this view above views with the same sibling order as each other will raise this view above them.
2488         /// Once a raise or lower API is used that view will then have an exclusive sibling order independent of insertion.
2489         /// </remarks>
2490         /// <param name="target">Will be raised above this view.</param>
2491         internal void RaiseAbove(View target)
2492         {
2493             var parentChildren = Parent?.Children;
2494
2495             if (parentChildren != null)
2496             {
2497                 int currentIndex = parentChildren.IndexOf(this);
2498                 int targetIndex = parentChildren.IndexOf(target);
2499
2500                 // If the currentIndex is less than the target index and the target has the same parent.
2501                 if (currentIndex < targetIndex)
2502                 {
2503                     parentChildren.Remove(this);
2504                     parentChildren.Insert(targetIndex, this);
2505                 }
2506             }
2507
2508             NDalicPINVOKE.RaiseAbove(swigCPtr, View.getCPtr(target));
2509             if (NDalicPINVOKE.SWIGPendingException.Pending)
2510                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
2511         }
2512
2513         /// <summary>
2514         /// Lowers the view to below the target view.
2515         /// </summary>
2516         /// <remarks>The sibling order of views within the parent will be updated automatically.
2517         /// Lowering this view below views with the same sibling order as each other will lower this view above them.
2518         /// Once a raise or lower API is used that view will then have an exclusive sibling order independent of insertion.
2519         /// </remarks>
2520         /// <param name="target">Will be lowered below this view.</param>
2521         internal void LowerBelow(View target)
2522         {
2523             var parentChildren = Parent?.Children;
2524
2525             if (parentChildren != null)
2526             {
2527                 int currentIndex = parentChildren.IndexOf(this);
2528                 int targetIndex = parentChildren.IndexOf(target);
2529
2530                 // If the currentIndex is not already the 0th index and the target has the same parent.
2531                 if ((currentIndex != 0) && (targetIndex != -1) &&
2532                     (currentIndex > targetIndex))
2533                 {
2534                     parentChildren.Remove(this);
2535                     parentChildren.Insert(targetIndex, this);
2536                 }
2537             }
2538
2539             NDalicPINVOKE.LowerBelow(swigCPtr, View.getCPtr(target));
2540             if (NDalicPINVOKE.SWIGPendingException.Pending)
2541                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
2542         }
2543
2544         internal string GetName()
2545         {
2546             string ret = NDalicPINVOKE.Actor_GetName(swigCPtr);
2547             if (NDalicPINVOKE.SWIGPendingException.Pending)
2548                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
2549             return ret;
2550         }
2551
2552         internal void SetName(string name)
2553         {
2554             NDalicPINVOKE.Actor_SetName(swigCPtr, name);
2555             if (NDalicPINVOKE.SWIGPendingException.Pending)
2556                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
2557         }
2558
2559         internal uint GetId()
2560         {
2561             uint ret = NDalicPINVOKE.Actor_GetId(swigCPtr);
2562             if (NDalicPINVOKE.SWIGPendingException.Pending)
2563                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
2564             return ret;
2565         }
2566
2567         internal bool IsRoot()
2568         {
2569             bool ret = NDalicPINVOKE.Actor_IsRoot(swigCPtr);
2570             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
2571             return ret;
2572         }
2573
2574         internal bool OnWindow()
2575         {
2576             bool ret = NDalicPINVOKE.Actor_OnStage(swigCPtr);
2577             if (NDalicPINVOKE.SWIGPendingException.Pending)
2578                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
2579             return ret;
2580         }
2581
2582         /// <summary>
2583         /// Gets the parent layer of this view.If a view has no parent, this method does nothing.
2584         /// </summary>
2585         /// <pre>The view has been initialized. </pre>
2586         /// <returns>the parent layer of view </returns>
2587         /// <since_tizen> 5 </since_tizen>
2588         /// This will be released at Tizen.NET API Level 5, so currently this would be used as inhouse API.
2589         [EditorBrowsable(EditorBrowsableState.Never)]
2590         public Layer GetLayer()
2591         {
2592             IntPtr cPtr = NDalicPINVOKE.Actor_GetLayer(swigCPtr);
2593             Layer ret = Registry.GetManagedBaseHandleFromNativePtr(cPtr) as Layer;
2594
2595             if (NDalicPINVOKE.SWIGPendingException.Pending)
2596                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
2597             return ret;
2598         }
2599
2600         /// <summary>
2601         /// Removes a view from its parent view or layer. If a view has no parent, this method does nothing.
2602         /// </summary>
2603         /// <pre>The (child) view has been initialized. </pre>
2604         /// <since_tizen> 4 </since_tizen>
2605         public void Unparent()
2606         {
2607             GetParent()?.Remove(this);
2608         }
2609
2610         /// <summary>
2611         /// Search through this view's hierarchy for a view with the given name.
2612         /// The view itself is also considered in the search.
2613         /// </summary>
2614         /// <pre>The view has been initialized.</pre>
2615         /// <param name="viewName">The name of the view to find.</param>
2616         /// <returns>A handle to the view if found, or an empty handle if not.</returns>
2617         /// <since_tizen> 3 </since_tizen>
2618         public View FindChildByName(string viewName)
2619         {
2620             IntPtr cPtr = NDalicPINVOKE.Actor_FindChildByName(swigCPtr, viewName);
2621             HandleRef CPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
2622             View ret = Registry.GetManagedBaseHandleFromNativePtr(CPtr.Handle) as View;
2623             NDalicPINVOKE.delete_BaseHandle(CPtr);
2624             CPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
2625
2626             if (NDalicPINVOKE.SWIGPendingException.Pending)
2627                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
2628             return ret;
2629         }
2630
2631         internal View FindChildById(uint id)
2632         {
2633             IntPtr cPtr = NDalicPINVOKE.Actor_FindChildById(swigCPtr, id);
2634             HandleRef CPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
2635             View ret = Registry.GetManagedBaseHandleFromNativePtr(CPtr.Handle) as View;
2636             NDalicPINVOKE.delete_BaseHandle(CPtr);
2637             CPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
2638
2639             if (NDalicPINVOKE.SWIGPendingException.Pending)
2640                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
2641             return ret;
2642         }
2643
2644         internal void SetParentOrigin(Vector3 origin)
2645         {
2646             NDalicPINVOKE.Actor_SetParentOrigin(swigCPtr, Vector3.getCPtr(origin));
2647             if (NDalicPINVOKE.SWIGPendingException.Pending)
2648                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
2649         }
2650
2651         internal Vector3 GetCurrentParentOrigin()
2652         {
2653             Vector3 ret = new Vector3(NDalicPINVOKE.Actor_GetCurrentParentOrigin(swigCPtr), true);
2654             if (NDalicPINVOKE.SWIGPendingException.Pending)
2655                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
2656             return ret;
2657         }
2658
2659         internal void SetAnchorPoint(Vector3 anchorPoint)
2660         {
2661             NDalicPINVOKE.Actor_SetAnchorPoint(swigCPtr, Vector3.getCPtr(anchorPoint));
2662             if (NDalicPINVOKE.SWIGPendingException.Pending)
2663                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
2664         }
2665
2666         internal Vector3 GetCurrentAnchorPoint()
2667         {
2668             Vector3 ret = new Vector3(NDalicPINVOKE.Actor_GetCurrentAnchorPoint(swigCPtr), true);
2669             if (NDalicPINVOKE.SWIGPendingException.Pending)
2670                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
2671             return ret;
2672         }
2673
2674         internal void SetSize(float width, float height)
2675         {
2676             NDalicPINVOKE.Actor_SetSize__SWIG_0(swigCPtr, width, height);
2677             if (NDalicPINVOKE.SWIGPendingException.Pending)
2678                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
2679         }
2680
2681         internal void SetSize(float width, float height, float depth)
2682         {
2683             NDalicPINVOKE.Actor_SetSize__SWIG_1(swigCPtr, width, height, depth);
2684             if (NDalicPINVOKE.SWIGPendingException.Pending)
2685                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
2686         }
2687
2688         internal void SetSize(Vector2 size)
2689         {
2690             NDalicPINVOKE.Actor_SetSize__SWIG_2(swigCPtr, Vector2.getCPtr(size));
2691             if (NDalicPINVOKE.SWIGPendingException.Pending)
2692                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
2693         }
2694
2695         internal void SetSize(Vector3 size)
2696         {
2697             NDalicPINVOKE.Actor_SetSize__SWIG_3(swigCPtr, Vector3.getCPtr(size));
2698             if (NDalicPINVOKE.SWIGPendingException.Pending)
2699                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
2700         }
2701
2702         internal Vector3 GetTargetSize()
2703         {
2704             Vector3 ret = new Vector3(NDalicPINVOKE.Actor_GetTargetSize(swigCPtr), true);
2705             if (NDalicPINVOKE.SWIGPendingException.Pending)
2706                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
2707             return ret;
2708         }
2709
2710         internal Size2D GetCurrentSize()
2711         {
2712             Size ret = new Size(NDalicPINVOKE.Actor_GetCurrentSize(swigCPtr), true);
2713             if (NDalicPINVOKE.SWIGPendingException.Pending)
2714                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
2715             Size2D size = new Size2D((int)ret.Width, (int)ret.Height);
2716             return size;
2717         }
2718
2719         internal Vector3 GetNaturalSize()
2720         {
2721             Vector3 ret = new Vector3(NDalicPINVOKE.Actor_GetNaturalSize(swigCPtr), true);
2722             if (NDalicPINVOKE.SWIGPendingException.Pending)
2723                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
2724             return ret;
2725         }
2726
2727         internal void SetPosition(float x, float y)
2728         {
2729             NDalicPINVOKE.Actor_SetPosition__SWIG_0(swigCPtr, x, y);
2730             if (NDalicPINVOKE.SWIGPendingException.Pending)
2731                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
2732         }
2733
2734         internal void SetPosition(float x, float y, float z)
2735         {
2736             NDalicPINVOKE.Actor_SetPosition__SWIG_1(swigCPtr, x, y, z);
2737             if (NDalicPINVOKE.SWIGPendingException.Pending)
2738                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
2739         }
2740
2741         internal void SetPosition(Vector3 position)
2742         {
2743             NDalicPINVOKE.Actor_SetPosition__SWIG_2(swigCPtr, Vector3.getCPtr(position));
2744             if (NDalicPINVOKE.SWIGPendingException.Pending)
2745                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
2746         }
2747
2748         internal void SetX(float x)
2749         {
2750             NDalicPINVOKE.Actor_SetX(swigCPtr, x);
2751             if (NDalicPINVOKE.SWIGPendingException.Pending)
2752                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
2753         }
2754
2755         internal void SetY(float y)
2756         {
2757             NDalicPINVOKE.Actor_SetY(swigCPtr, y);
2758             if (NDalicPINVOKE.SWIGPendingException.Pending)
2759                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
2760         }
2761
2762         internal void SetZ(float z)
2763         {
2764             NDalicPINVOKE.Actor_SetZ(swigCPtr, z);
2765             if (NDalicPINVOKE.SWIGPendingException.Pending)
2766                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
2767         }
2768
2769         internal void TranslateBy(Vector3 distance)
2770         {
2771             NDalicPINVOKE.Actor_TranslateBy(swigCPtr, Vector3.getCPtr(distance));
2772             if (NDalicPINVOKE.SWIGPendingException.Pending)
2773                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
2774         }
2775
2776         internal Position GetCurrentPosition()
2777         {
2778             Position ret = new Position(NDalicPINVOKE.Actor_GetCurrentPosition(swigCPtr), true);
2779             if (NDalicPINVOKE.SWIGPendingException.Pending)
2780                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
2781             return ret;
2782         }
2783
2784         internal Vector3 GetCurrentWorldPosition()
2785         {
2786             Vector3 ret = new Vector3(NDalicPINVOKE.Actor_GetCurrentWorldPosition(swigCPtr), true);
2787             if (NDalicPINVOKE.SWIGPendingException.Pending)
2788                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
2789             return ret;
2790         }
2791
2792         internal void SetInheritPosition(bool inherit)
2793         {
2794             NDalicPINVOKE.Actor_SetInheritPosition(swigCPtr, inherit);
2795             if (NDalicPINVOKE.SWIGPendingException.Pending)
2796                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
2797         }
2798
2799         internal bool IsPositionInherited()
2800         {
2801             bool ret = NDalicPINVOKE.Actor_IsPositionInherited(swigCPtr);
2802             if (NDalicPINVOKE.SWIGPendingException.Pending)
2803                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
2804             return ret;
2805         }
2806
2807         internal void SetOrientation(Degree angle, Vector3 axis)
2808         {
2809             NDalicPINVOKE.Actor_SetOrientation__SWIG_0(swigCPtr, Degree.getCPtr(angle), Vector3.getCPtr(axis));
2810             if (NDalicPINVOKE.SWIGPendingException.Pending)
2811                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
2812         }
2813
2814         internal void SetOrientation(Radian angle, Vector3 axis)
2815         {
2816             NDalicPINVOKE.Actor_SetOrientation__SWIG_1(swigCPtr, Radian.getCPtr(angle), Vector3.getCPtr(axis));
2817             if (NDalicPINVOKE.SWIGPendingException.Pending)
2818                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
2819         }
2820
2821         internal void SetOrientation(Rotation orientation)
2822         {
2823             NDalicPINVOKE.Actor_SetOrientation__SWIG_2(swigCPtr, Rotation.getCPtr(orientation));
2824             if (NDalicPINVOKE.SWIGPendingException.Pending)
2825                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
2826         }
2827
2828         internal void RotateBy(Degree angle, Vector3 axis)
2829         {
2830             NDalicPINVOKE.Actor_RotateBy__SWIG_0(swigCPtr, Degree.getCPtr(angle), Vector3.getCPtr(axis));
2831             if (NDalicPINVOKE.SWIGPendingException.Pending)
2832                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
2833         }
2834
2835         internal void RotateBy(Radian angle, Vector3 axis)
2836         {
2837             NDalicPINVOKE.Actor_RotateBy__SWIG_1(swigCPtr, Radian.getCPtr(angle), Vector3.getCPtr(axis));
2838             if (NDalicPINVOKE.SWIGPendingException.Pending)
2839                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
2840         }
2841
2842         internal void RotateBy(Rotation relativeRotation)
2843         {
2844             NDalicPINVOKE.Actor_RotateBy__SWIG_2(swigCPtr, Rotation.getCPtr(relativeRotation));
2845             if (NDalicPINVOKE.SWIGPendingException.Pending)
2846                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
2847         }
2848
2849         internal Rotation GetCurrentOrientation()
2850         {
2851             Rotation ret = new Rotation(NDalicPINVOKE.Actor_GetCurrentOrientation(swigCPtr), true);
2852             if (NDalicPINVOKE.SWIGPendingException.Pending)
2853                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
2854             return ret;
2855         }
2856
2857         internal void SetInheritOrientation(bool inherit)
2858         {
2859             NDalicPINVOKE.Actor_SetInheritOrientation(swigCPtr, inherit);
2860             if (NDalicPINVOKE.SWIGPendingException.Pending)
2861                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
2862         }
2863
2864         internal bool IsOrientationInherited()
2865         {
2866             bool ret = NDalicPINVOKE.Actor_IsOrientationInherited(swigCPtr);
2867             if (NDalicPINVOKE.SWIGPendingException.Pending)
2868                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
2869             return ret;
2870         }
2871
2872         internal Rotation GetCurrentWorldOrientation()
2873         {
2874             Rotation ret = new Rotation(NDalicPINVOKE.Actor_GetCurrentWorldOrientation(swigCPtr), true);
2875             if (NDalicPINVOKE.SWIGPendingException.Pending)
2876                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
2877             return ret;
2878         }
2879
2880         internal void SetScale(float scale)
2881         {
2882             NDalicPINVOKE.Actor_SetScale__SWIG_0(swigCPtr, scale);
2883             if (NDalicPINVOKE.SWIGPendingException.Pending)
2884                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
2885         }
2886
2887         internal void SetScale(float scaleX, float scaleY, float scaleZ)
2888         {
2889             NDalicPINVOKE.Actor_SetScale__SWIG_1(swigCPtr, scaleX, scaleY, scaleZ);
2890             if (NDalicPINVOKE.SWIGPendingException.Pending)
2891                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
2892         }
2893
2894         internal void SetScale(Vector3 scale)
2895         {
2896             NDalicPINVOKE.Actor_SetScale__SWIG_2(swigCPtr, Vector3.getCPtr(scale));
2897             if (NDalicPINVOKE.SWIGPendingException.Pending)
2898                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
2899         }
2900
2901         internal void ScaleBy(Vector3 relativeScale)
2902         {
2903             NDalicPINVOKE.Actor_ScaleBy(swigCPtr, Vector3.getCPtr(relativeScale));
2904             if (NDalicPINVOKE.SWIGPendingException.Pending)
2905                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
2906         }
2907
2908         internal Vector3 GetCurrentScale()
2909         {
2910             Vector3 ret = new Vector3(NDalicPINVOKE.Actor_GetCurrentScale(swigCPtr), true);
2911             if (NDalicPINVOKE.SWIGPendingException.Pending)
2912                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
2913             return ret;
2914         }
2915
2916         internal Vector3 GetCurrentWorldScale()
2917         {
2918             Vector3 ret = new Vector3(NDalicPINVOKE.Actor_GetCurrentWorldScale(swigCPtr), true);
2919             if (NDalicPINVOKE.SWIGPendingException.Pending)
2920                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
2921             return ret;
2922         }
2923
2924         internal void SetInheritScale(bool inherit)
2925         {
2926             NDalicPINVOKE.Actor_SetInheritScale(swigCPtr, inherit);
2927             if (NDalicPINVOKE.SWIGPendingException.Pending)
2928                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
2929         }
2930
2931         internal bool IsScaleInherited()
2932         {
2933             bool ret = NDalicPINVOKE.Actor_IsScaleInherited(swigCPtr);
2934             if (NDalicPINVOKE.SWIGPendingException.Pending)
2935                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
2936             return ret;
2937         }
2938
2939         internal Matrix GetCurrentWorldMatrix()
2940         {
2941             Matrix ret = new Matrix(NDalicPINVOKE.Actor_GetCurrentWorldMatrix(swigCPtr), true);
2942             if (NDalicPINVOKE.SWIGPendingException.Pending)
2943                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
2944             return ret;
2945         }
2946
2947         internal void SetVisible(bool visible)
2948         {
2949             NDalicPINVOKE.Actor_SetVisible(swigCPtr, visible);
2950             if (NDalicPINVOKE.SWIGPendingException.Pending)
2951                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
2952         }
2953
2954         internal bool IsVisible()
2955         {
2956             bool ret = NDalicPINVOKE.Actor_IsVisible(swigCPtr);
2957             if (NDalicPINVOKE.SWIGPendingException.Pending)
2958                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
2959             return ret;
2960         }
2961
2962         internal void SetOpacity(float opacity)
2963         {
2964             NDalicPINVOKE.Actor_SetOpacity(swigCPtr, opacity);
2965             if (NDalicPINVOKE.SWIGPendingException.Pending)
2966                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
2967         }
2968
2969         internal float GetCurrentOpacity()
2970         {
2971             float ret = NDalicPINVOKE.Actor_GetCurrentOpacity(swigCPtr);
2972             if (NDalicPINVOKE.SWIGPendingException.Pending)
2973                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
2974             return ret;
2975         }
2976
2977         internal void SetColor(Vector4 color)
2978         {
2979             NDalicPINVOKE.Actor_SetColor(swigCPtr, Vector4.getCPtr(color));
2980             if (NDalicPINVOKE.SWIGPendingException.Pending)
2981                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
2982         }
2983
2984         internal Vector4 GetCurrentColor()
2985         {
2986             Vector4 ret = new Vector4(NDalicPINVOKE.Actor_GetCurrentColor(swigCPtr), true);
2987             if (NDalicPINVOKE.SWIGPendingException.Pending)
2988                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
2989             return ret;
2990         }
2991
2992         internal void SetColorMode(ColorMode colorMode)
2993         {
2994             NDalicPINVOKE.Actor_SetColorMode(swigCPtr, (int)colorMode);
2995             if (NDalicPINVOKE.SWIGPendingException.Pending)
2996                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
2997         }
2998
2999         internal ColorMode GetColorMode()
3000         {
3001             ColorMode ret = (ColorMode)NDalicPINVOKE.Actor_GetColorMode(swigCPtr);
3002             if (NDalicPINVOKE.SWIGPendingException.Pending)
3003                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
3004             return ret;
3005         }
3006
3007         internal Vector4 GetCurrentWorldColor()
3008         {
3009             Vector4 ret = new Vector4(NDalicPINVOKE.Actor_GetCurrentWorldColor(swigCPtr), true);
3010             if (NDalicPINVOKE.SWIGPendingException.Pending)
3011                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
3012             return ret;
3013         }
3014
3015         internal void SetDrawMode(DrawModeType drawMode)
3016         {
3017             NDalicPINVOKE.Actor_SetDrawMode(swigCPtr, (int)drawMode);
3018             if (NDalicPINVOKE.SWIGPendingException.Pending)
3019                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
3020         }
3021
3022         internal DrawModeType GetDrawMode()
3023         {
3024             DrawModeType ret = (DrawModeType)NDalicPINVOKE.Actor_GetDrawMode(swigCPtr);
3025             if (NDalicPINVOKE.SWIGPendingException.Pending)
3026                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
3027             return ret;
3028         }
3029
3030         /// <summary>
3031         /// Converts screen coordinates into the view's coordinate system using the default camera.
3032         /// </summary>
3033         /// <pre>The view has been initialized.</pre>
3034         /// <remarks>The view coordinates are relative to the top-left(0.0, 0.0, 0.5).</remarks>
3035         /// <param name="localX">On return, the X-coordinate relative to the view.</param>
3036         /// <param name="localY">On return, the Y-coordinate relative to the view.</param>
3037         /// <param name="screenX">The screen X-coordinate.</param>
3038         /// <param name="screenY">The screen Y-coordinate.</param>
3039         /// <returns>True if the conversion succeeded.</returns>
3040         /// <since_tizen> 3 </since_tizen>
3041         public bool ScreenToLocal(out float localX, out float localY, float screenX, float screenY)
3042         {
3043             bool ret = NDalicPINVOKE.Actor_ScreenToLocal(swigCPtr, out localX, out localY, screenX, screenY);
3044             if (NDalicPINVOKE.SWIGPendingException.Pending)
3045                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
3046             return ret;
3047         }
3048
3049         internal void SetKeyboardFocusable(bool focusable)
3050         {
3051             NDalicPINVOKE.Actor_SetKeyboardFocusable(swigCPtr, focusable);
3052             if (NDalicPINVOKE.SWIGPendingException.Pending)
3053                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
3054         }
3055
3056         internal bool IsKeyboardFocusable()
3057         {
3058             bool ret = NDalicPINVOKE.Actor_IsKeyboardFocusable(swigCPtr);
3059             if (NDalicPINVOKE.SWIGPendingException.Pending)
3060                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
3061             return ret;
3062         }
3063
3064         internal void SetResizePolicy(ResizePolicyType policy, DimensionType dimension)
3065         {
3066             NDalicPINVOKE.Actor_SetResizePolicy(swigCPtr, (int)policy, (int)dimension);
3067             if (NDalicPINVOKE.SWIGPendingException.Pending)
3068                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
3069         }
3070
3071         internal ResizePolicyType GetResizePolicy(DimensionType dimension)
3072         {
3073             ResizePolicyType ret = (ResizePolicyType)NDalicPINVOKE.Actor_GetResizePolicy(swigCPtr, (int)dimension);
3074             if (NDalicPINVOKE.SWIGPendingException.Pending)
3075                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
3076             return ret;
3077         }
3078
3079         /// <summary>
3080         /// Sets the relative to parent size factor of the view.<br />
3081         /// This factor is only used when ResizePolicy is set to either:
3082         /// ResizePolicy::SIZE_RELATIVE_TO_PARENT or ResizePolicy::SIZE_FIXED_OFFSET_FROM_PARENT.<br />
3083         /// This view's size is set to the view's size multiplied by or added to this factor, depending on ResizePolicy.<br />
3084         /// </summary>
3085         /// <pre>The view has been initialized.</pre>
3086         /// <param name="factor">A Vector3 representing the relative factor to be applied to each axis.</param>
3087         /// <since_tizen> 3 </since_tizen>
3088         public void SetSizeModeFactor(Vector3 factor)
3089         {
3090             NDalicPINVOKE.Actor_SetSizeModeFactor(swigCPtr, Vector3.getCPtr(factor));
3091             if (NDalicPINVOKE.SWIGPendingException.Pending)
3092                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
3093         }
3094
3095         internal Vector3 GetSizeModeFactor()
3096         {
3097             Vector3 ret = new Vector3(NDalicPINVOKE.Actor_GetSizeModeFactor(swigCPtr), true);
3098             if (NDalicPINVOKE.SWIGPendingException.Pending)
3099                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
3100             return ret;
3101         }
3102
3103         /// <summary>
3104         /// Calculates the height of the view given a width.<br />
3105         /// The natural size is used for default calculation.<br />
3106         /// Size 0 is treated as aspect ratio 1:1.<br />
3107         /// </summary>
3108         /// <param name="width">The width to use.</param>
3109         /// <returns>The height based on the width.</returns>
3110         /// <since_tizen> 3 </since_tizen>
3111         public float GetHeightForWidth(float width)
3112         {
3113             float ret = NDalicPINVOKE.Actor_GetHeightForWidth(swigCPtr, width);
3114             if (NDalicPINVOKE.SWIGPendingException.Pending)
3115                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
3116             return ret;
3117         }
3118
3119         /// <summary>
3120         /// Calculates the width of the view given a height.<br />
3121         /// The natural size is used for default calculation.<br />
3122         /// Size 0 is treated as aspect ratio 1:1.<br />
3123         /// </summary>
3124         /// <param name="height">The height to use.</param>
3125         /// <returns>The width based on the height.</returns>
3126         /// <since_tizen> 3 </since_tizen>
3127         public float GetWidthForHeight(float height)
3128         {
3129             float ret = NDalicPINVOKE.Actor_GetWidthForHeight(swigCPtr, height);
3130             if (NDalicPINVOKE.SWIGPendingException.Pending)
3131                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
3132             return ret;
3133         }
3134
3135         /// <summary>
3136         /// Return the amount of size allocated for relayout.
3137         /// </summary>
3138         /// <param name="dimension">The dimension to retrieve.</param>
3139         /// <returns>Return the size.</returns>
3140         /// <since_tizen> 3 </since_tizen>
3141         public float GetRelayoutSize(DimensionType dimension)
3142         {
3143             float ret = NDalicPINVOKE.Actor_GetRelayoutSize(swigCPtr, (int)dimension);
3144             if (NDalicPINVOKE.SWIGPendingException.Pending)
3145                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
3146             return ret;
3147         }
3148
3149         /// <summary>
3150         /// Set the padding for the view.
3151         /// </summary>
3152         /// <param name="padding">Padding for the view.</param>
3153         /// <since_tizen> 3 </since_tizen>
3154         public void SetPadding(PaddingType padding)
3155         {
3156             NDalicPINVOKE.Actor_SetPadding(swigCPtr, PaddingType.getCPtr(padding));
3157             if (NDalicPINVOKE.SWIGPendingException.Pending)
3158                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
3159         }
3160
3161         /// <summary>
3162         /// Return the value of padding for the view.
3163         /// </summary>
3164         /// <param name="paddingOut">the value of padding for the view</param>
3165         /// <since_tizen> 3 </since_tizen>
3166         public void GetPadding(PaddingType paddingOut)
3167         {
3168             NDalicPINVOKE.Actor_GetPadding(swigCPtr, PaddingType.getCPtr(paddingOut));
3169             if (NDalicPINVOKE.SWIGPendingException.Pending)
3170                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
3171         }
3172
3173         internal void SetMinimumSize(Vector2 size)
3174         {
3175             NDalicPINVOKE.Actor_SetMinimumSize(swigCPtr, Vector2.getCPtr(size));
3176             if (NDalicPINVOKE.SWIGPendingException.Pending)
3177                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
3178         }
3179
3180         internal Vector2 GetMinimumSize()
3181         {
3182             Vector2 ret = new Vector2(NDalicPINVOKE.Actor_GetMinimumSize(swigCPtr), true);
3183             if (NDalicPINVOKE.SWIGPendingException.Pending)
3184                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
3185             return ret;
3186         }
3187
3188         internal void SetMaximumSize(Vector2 size)
3189         {
3190             NDalicPINVOKE.Actor_SetMaximumSize(swigCPtr, Vector2.getCPtr(size));
3191             if (NDalicPINVOKE.SWIGPendingException.Pending)
3192                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
3193         }
3194
3195         internal Vector2 GetMaximumSize()
3196         {
3197             Vector2 ret = new Vector2(NDalicPINVOKE.Actor_GetMaximumSize(swigCPtr), true);
3198             if (NDalicPINVOKE.SWIGPendingException.Pending)
3199                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
3200             return ret;
3201         }
3202
3203         internal int GetHierarchyDepth()
3204         {
3205             int ret = NDalicPINVOKE.Actor_GetHierarchyDepth(swigCPtr);
3206             if (NDalicPINVOKE.SWIGPendingException.Pending)
3207                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
3208             return ret;
3209         }
3210
3211         /// <since_tizen> 3 </since_tizen>
3212         public uint AddRenderer(Renderer renderer)
3213         {
3214             uint ret = NDalicPINVOKE.Actor_AddRenderer(swigCPtr, Renderer.getCPtr(renderer));
3215             if (NDalicPINVOKE.SWIGPendingException.Pending)
3216                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
3217             return ret;
3218         }
3219
3220         internal uint GetRendererCount()
3221         {
3222             uint ret = NDalicPINVOKE.Actor_GetRendererCount(swigCPtr);
3223             if (NDalicPINVOKE.SWIGPendingException.Pending)
3224                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
3225             return ret;
3226         }
3227
3228         /// <since_tizen> 3 </since_tizen>
3229         public Renderer GetRendererAt(uint index)
3230         {
3231             IntPtr cPtr = NDalicPINVOKE.Actor_GetRendererAt(swigCPtr, index);
3232             Renderer ret = Registry.GetManagedBaseHandleFromNativePtr(cPtr) as Renderer;
3233
3234             if (NDalicPINVOKE.SWIGPendingException.Pending)
3235                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
3236             return ret;
3237         }
3238
3239         /// <since_tizen> 3 </since_tizen>
3240         public void RemoveRenderer(Renderer renderer)
3241         {
3242             NDalicPINVOKE.Actor_RemoveRenderer__SWIG_0(swigCPtr, Renderer.getCPtr(renderer));
3243             if (NDalicPINVOKE.SWIGPendingException.Pending)
3244                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
3245         }
3246
3247         /// <since_tizen> 3 </since_tizen>
3248         public void RemoveRenderer(uint index)
3249         {
3250             NDalicPINVOKE.Actor_RemoveRenderer__SWIG_1(swigCPtr, index);
3251             if (NDalicPINVOKE.SWIGPendingException.Pending)
3252                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
3253         }
3254
3255         internal TouchDataSignal TouchSignal()
3256         {
3257             TouchDataSignal ret = new TouchDataSignal(NDalicPINVOKE.Actor_TouchSignal(swigCPtr), false);
3258             if (NDalicPINVOKE.SWIGPendingException.Pending)
3259                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
3260             return ret;
3261         }
3262
3263         internal HoverSignal HoveredSignal()
3264         {
3265             HoverSignal ret = new HoverSignal(NDalicPINVOKE.Actor_HoveredSignal(swigCPtr), false);
3266             if (NDalicPINVOKE.SWIGPendingException.Pending)
3267                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
3268             return ret;
3269         }
3270
3271         internal WheelSignal WheelEventSignal()
3272         {
3273             WheelSignal ret = new WheelSignal(NDalicPINVOKE.Actor_WheelEventSignal(swigCPtr), false);
3274             if (NDalicPINVOKE.SWIGPendingException.Pending)
3275                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
3276             return ret;
3277         }
3278
3279         internal ViewSignal OnWindowSignal()
3280         {
3281             ViewSignal ret = new ViewSignal(NDalicPINVOKE.Actor_OnStageSignal(swigCPtr), false);
3282             if (NDalicPINVOKE.SWIGPendingException.Pending)
3283                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
3284             return ret;
3285         }
3286
3287         internal ViewSignal OffWindowSignal()
3288         {
3289             ViewSignal ret = new ViewSignal(NDalicPINVOKE.Actor_OffStageSignal(swigCPtr), false);
3290             if (NDalicPINVOKE.SWIGPendingException.Pending)
3291                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
3292             return ret;
3293         }
3294
3295         internal ViewSignal OnRelayoutSignal()
3296         {
3297             ViewSignal ret = new ViewSignal(NDalicPINVOKE.Actor_OnRelayoutSignal(swigCPtr), false);
3298             if (NDalicPINVOKE.SWIGPendingException.Pending)
3299                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
3300             return ret;
3301         }
3302
3303         internal ViewVisibilityChangedSignal VisibilityChangedSignal(View view)
3304         {
3305             ViewVisibilityChangedSignal ret = new ViewVisibilityChangedSignal(NDalicPINVOKE.VisibilityChangedSignal(View.getCPtr(view)), false);
3306             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
3307             return ret;
3308         }
3309
3310
3311         internal ViewLayoutDirectionChangedSignal LayoutDirectionChangedSignal(View view)
3312         {
3313             ViewLayoutDirectionChangedSignal ret = new ViewLayoutDirectionChangedSignal(NDalicManualPINVOKE.LayoutDirectionChangedSignal(View.getCPtr(view)), false);
3314             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
3315             return ret;
3316         }
3317
3318
3319         internal ViewSignal ResourcesLoadedSignal()
3320         {
3321             ViewSignal ret = new ViewSignal(NDalicPINVOKE.ResourceReadySignal(swigCPtr), false);
3322             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
3323             return ret;
3324         }
3325
3326         /// <summary>
3327         /// Gets or sets the origin of a view within its parent's area.<br />
3328         /// This is expressed in unit coordinates, such that (0.0, 0.0, 0.5) is the top-left corner of the parent, and (1.0, 1.0, 0.5) is the bottom-right corner.<br />
3329         /// The default parent-origin is ParentOrigin.TopLeft (0.0, 0.0, 0.5).<br />
3330         /// A view's position is the distance between this origin and the view's anchor-point.<br />
3331         /// </summary>
3332         /// <pre>The view has been initialized.</pre>
3333         /// <since_tizen> 3 </since_tizen>
3334         public Position ParentOrigin
3335         {
3336             get
3337             {
3338                 Position temp = new Position(0.0f, 0.0f, 0.0f);
3339                 GetProperty(View.Property.PARENT_ORIGIN).Get(temp);
3340                 return temp;
3341             }
3342             set
3343             {
3344                 SetProperty(View.Property.PARENT_ORIGIN, new Tizen.NUI.PropertyValue(value));
3345             }
3346         }
3347
3348         internal float ParentOriginX
3349         {
3350             get
3351             {
3352                 float temp = 0.0f;
3353                 GetProperty(View.Property.PARENT_ORIGIN_X).Get(out temp);
3354                 return temp;
3355             }
3356             set
3357             {
3358                 SetProperty(View.Property.PARENT_ORIGIN_X, new Tizen.NUI.PropertyValue(value));
3359             }
3360         }
3361
3362         internal float ParentOriginY
3363         {
3364             get
3365             {
3366                 float temp = 0.0f;
3367                 GetProperty(View.Property.PARENT_ORIGIN_Y).Get(out temp);
3368                 return temp;
3369             }
3370             set
3371             {
3372                 SetProperty(View.Property.PARENT_ORIGIN_Y, new Tizen.NUI.PropertyValue(value));
3373             }
3374         }
3375
3376         internal float ParentOriginZ
3377         {
3378             get
3379             {
3380                 float temp = 0.0f;
3381                 GetProperty(View.Property.PARENT_ORIGIN_Z).Get(out temp);
3382                 return temp;
3383             }
3384             set
3385             {
3386                 SetProperty(View.Property.PARENT_ORIGIN_Z, new Tizen.NUI.PropertyValue(value));
3387             }
3388         }
3389
3390         /// <summary>
3391         /// Gets or sets the anchor-point of a view.<br />
3392         /// This is expressed in unit coordinates, such that (0.0, 0.0, 0.5) is the top-left corner of the view, and (1.0, 1.0, 0.5) is the bottom-right corner.<br />
3393         /// The default pivot point is PivotPoint.Center (0.5, 0.5, 0.5).<br />
3394         /// A view position is the distance between its parent-origin and this anchor-point.<br />
3395         /// A view's orientation is the rotation from its default orientation, the rotation is centered around its anchor-point.<br />
3396         /// <pre>The view has been initialized.</pre>
3397         /// </summary>
3398         /// <since_tizen> 3 </since_tizen>
3399         public Position PivotPoint
3400         {
3401             get
3402             {
3403                 Position temp = new Position(0.0f, 0.0f, 0.0f);
3404                 GetProperty(View.Property.ANCHOR_POINT).Get(temp);
3405                 return temp;
3406             }
3407             set
3408             {
3409                 SetProperty(View.Property.ANCHOR_POINT, new Tizen.NUI.PropertyValue(value));
3410             }
3411         }
3412
3413         internal float PivotPointX
3414         {
3415             get
3416             {
3417                 float temp = 0.0f;
3418                 GetProperty(View.Property.ANCHOR_POINT_X).Get(out temp);
3419                 return temp;
3420             }
3421             set
3422             {
3423                 SetProperty(View.Property.ANCHOR_POINT_X, new Tizen.NUI.PropertyValue(value));
3424             }
3425         }
3426
3427         internal float PivotPointY
3428         {
3429             get
3430             {
3431                 float temp = 0.0f;
3432                 GetProperty(View.Property.ANCHOR_POINT_Y).Get(out temp);
3433                 return temp;
3434             }
3435             set
3436             {
3437                 SetProperty(View.Property.ANCHOR_POINT_Y, new Tizen.NUI.PropertyValue(value));
3438             }
3439         }
3440
3441         internal float PivotPointZ
3442         {
3443             get
3444             {
3445                 float temp = 0.0f;
3446                 GetProperty(View.Property.ANCHOR_POINT_Z).Get(out temp);
3447                 return temp;
3448             }
3449             set
3450             {
3451                 SetProperty(View.Property.ANCHOR_POINT_Z, new Tizen.NUI.PropertyValue(value));
3452             }
3453         }
3454
3455         /// <summary>
3456         /// Gets or sets the size width of the view.
3457         /// </summary>
3458         /// <since_tizen> 3 </since_tizen>
3459         public float SizeWidth
3460         {
3461             get
3462             {
3463                 float temp = 0.0f;
3464                 GetProperty(View.Property.SIZE_WIDTH).Get(out temp);
3465                 return temp;
3466             }
3467             set
3468             {
3469                 SetProperty(View.Property.SIZE_WIDTH, new Tizen.NUI.PropertyValue(value));
3470             }
3471         }
3472
3473         /// <summary>
3474         /// Gets or sets the size height of the view.
3475         /// </summary>
3476         /// <since_tizen> 3 </since_tizen>
3477         public float SizeHeight
3478         {
3479             get
3480             {
3481                 float temp = 0.0f;
3482                 GetProperty(View.Property.SIZE_HEIGHT).Get(out temp);
3483                 return temp;
3484             }
3485             set
3486             {
3487                 SetProperty(View.Property.SIZE_HEIGHT, new Tizen.NUI.PropertyValue(value));
3488             }
3489         }
3490
3491         /// <summary>
3492         /// Gets or sets the position of the view.<br />
3493         /// By default, sets the position vector between the parent origin and pivot point (default).<br />
3494         /// If the position inheritance is disabled, sets the world position.<br />
3495         /// </summary>
3496         /// <since_tizen> 3 </since_tizen>
3497         public Position Position
3498         {
3499             get
3500             {
3501                 Vector3 temp = new Vector3(0.0f, 0.0f, 0.0f);
3502                 GetProperty(View.Property.POSITION).Get(temp);
3503                 return temp;
3504             }
3505             set
3506             {
3507                 SetProperty(View.Property.POSITION, new Tizen.NUI.PropertyValue(value));
3508             }
3509         }
3510
3511         /// <summary>
3512         /// Gets or sets the position X of the view.
3513         /// </summary>
3514         /// <since_tizen> 3 </since_tizen>
3515         public float PositionX
3516         {
3517             get
3518             {
3519                 float temp = 0.0f;
3520                 GetProperty(View.Property.POSITION_X).Get(out temp);
3521                 return temp;
3522             }
3523             set
3524             {
3525                 SetProperty(View.Property.POSITION_X, new Tizen.NUI.PropertyValue(value));
3526             }
3527         }
3528
3529         /// <summary>
3530         /// Gets or sets the position Y of the view.
3531         /// </summary>
3532         /// <since_tizen> 3 </since_tizen>
3533         public float PositionY
3534         {
3535             get
3536             {
3537                 float temp = 0.0f;
3538                 GetProperty(View.Property.POSITION_Y).Get(out temp);
3539                 return temp;
3540             }
3541             set
3542             {
3543                 SetProperty(View.Property.POSITION_Y, new Tizen.NUI.PropertyValue(value));
3544             }
3545         }
3546
3547         /// <summary>
3548         /// Gets or sets the position Z of the view.
3549         /// </summary>
3550         /// <since_tizen> 3 </since_tizen>
3551         public float PositionZ
3552         {
3553             get
3554             {
3555                 float temp = 0.0f;
3556                 GetProperty(View.Property.POSITION_Z).Get(out temp);
3557                 return temp;
3558             }
3559             set
3560             {
3561                 SetProperty(View.Property.POSITION_Z, new Tizen.NUI.PropertyValue(value));
3562             }
3563         }
3564
3565         /// <summary>
3566         /// Gets or sets the world position of the view.
3567         /// </summary>
3568         /// <since_tizen> 3 </since_tizen>
3569         public Vector3 WorldPosition
3570         {
3571             get
3572             {
3573                 Vector3 temp = new Vector3(0.0f, 0.0f, 0.0f);
3574                 GetProperty(View.Property.WORLD_POSITION).Get(temp);
3575                 return temp;
3576             }
3577         }
3578
3579         internal float WorldPositionX
3580         {
3581             get
3582             {
3583                 float temp = 0.0f;
3584                 GetProperty(View.Property.WORLD_POSITION_X).Get(out temp);
3585                 return temp;
3586             }
3587         }
3588
3589         internal float WorldPositionY
3590         {
3591             get
3592             {
3593                 float temp = 0.0f;
3594                 GetProperty(View.Property.WORLD_POSITION_Y).Get(out temp);
3595                 return temp;
3596             }
3597         }
3598
3599         internal float WorldPositionZ
3600         {
3601             get
3602             {
3603                 float temp = 0.0f;
3604                 GetProperty(View.Property.WORLD_POSITION_Z).Get(out temp);
3605                 return temp;
3606             }
3607         }
3608
3609         /// <summary>
3610         /// Gets or sets the orientation of the view.<br />
3611         /// The view's orientation is the rotation from its default orientation, and the rotation is centered around its anchor-point.<br />
3612         /// </summary>
3613         /// <remarks>This is an asynchronous method.</remarks>
3614         /// <since_tizen> 3 </since_tizen>
3615         public Rotation Orientation
3616         {
3617             get
3618             {
3619                 Rotation temp = new Rotation();
3620                 GetProperty(View.Property.ORIENTATION).Get(temp);
3621                 return temp;
3622             }
3623             set
3624             {
3625                 SetProperty(View.Property.ORIENTATION, new Tizen.NUI.PropertyValue(value));
3626             }
3627         }
3628
3629         /// <summary>
3630         /// Gets or sets the world orientation of the view.<br />
3631         /// </summary>
3632         /// <since_tizen> 3 </since_tizen>
3633         public Rotation WorldOrientation
3634         {
3635             get
3636             {
3637                 Rotation temp = new Rotation();
3638                 GetProperty(View.Property.WORLD_ORIENTATION).Get(temp);
3639                 return temp;
3640             }
3641         }
3642
3643         /// <summary>
3644         /// Gets or sets the scale factor applied to the view.<br />
3645         /// </summary>
3646         /// <since_tizen> 3 </since_tizen>
3647         public Vector3 Scale
3648         {
3649             get
3650             {
3651                 Vector3 temp = new Vector3(0.0f, 0.0f, 0.0f);
3652                 GetProperty(View.Property.SCALE).Get(temp);
3653                 return temp;
3654             }
3655             set
3656             {
3657                 SetProperty(View.Property.SCALE, new Tizen.NUI.PropertyValue(value));
3658             }
3659         }
3660
3661         /// <summary>
3662         /// Gets or sets the scale X factor applied to the view.
3663         /// </summary>
3664         /// <since_tizen> 3 </since_tizen>
3665         public float ScaleX
3666         {
3667             get
3668             {
3669                 float temp = 0.0f;
3670                 GetProperty(View.Property.SCALE_X).Get(out temp);
3671                 return temp;
3672             }
3673             set
3674             {
3675                 SetProperty(View.Property.SCALE_X, new Tizen.NUI.PropertyValue(value));
3676             }
3677         }
3678
3679         /// <summary>
3680         /// Gets or sets the scale Y factor applied to the view.
3681         /// </summary>
3682         /// <since_tizen> 3 </since_tizen>
3683         public float ScaleY
3684         {
3685             get
3686             {
3687                 float temp = 0.0f;
3688                 GetProperty(View.Property.SCALE_Y).Get(out temp);
3689                 return temp;
3690             }
3691             set
3692             {
3693                 SetProperty(View.Property.SCALE_Y, new Tizen.NUI.PropertyValue(value));
3694             }
3695         }
3696
3697         /// <summary>
3698         /// Gets or sets the scale Z factor applied to the view.
3699         /// </summary>
3700         /// <since_tizen> 3 </since_tizen>
3701         public float ScaleZ
3702         {
3703             get
3704             {
3705                 float temp = 0.0f;
3706                 GetProperty(View.Property.SCALE_Z).Get(out temp);
3707                 return temp;
3708             }
3709             set
3710             {
3711                 SetProperty(View.Property.SCALE_Z, new Tizen.NUI.PropertyValue(value));
3712             }
3713         }
3714
3715         /// <summary>
3716         /// Gets the world scale of the view.
3717         /// </summary>
3718         /// <since_tizen> 3 </since_tizen>
3719         public Vector3 WorldScale
3720         {
3721             get
3722             {
3723                 Vector3 temp = new Vector3(0.0f, 0.0f, 0.0f);
3724                 GetProperty(View.Property.WORLD_SCALE).Get(temp);
3725                 return temp;
3726             }
3727         }
3728
3729         /// <summary>
3730         /// Retrieves the visibility flag of the view.
3731         /// </summary>
3732         /// <remarks>
3733         /// If the view is not visible, then the view and its children will not be rendered.
3734         /// This is regardless of the individual visibility values of the children, i.e., the view will only be rendered if all of its parents have visibility set to true.
3735         /// </remarks>
3736         /// <since_tizen> 3 </since_tizen>
3737         public bool Visibility
3738         {
3739             get
3740             {
3741                 bool temp = false;
3742                 GetProperty(View.Property.VISIBLE).Get(out temp);
3743                 return temp;
3744             }
3745         }
3746
3747
3748         /// <summary>
3749         /// [Obsolete("Please do not use! this will be deprecated. Please use Visibility instead.")]
3750         /// </summary>
3751         /// <since_tizen> 3 </since_tizen>
3752         [Obsolete("Please do not use! This will be deprecated! Please use Visibility instead!")]
3753         [EditorBrowsable(EditorBrowsableState.Never)]
3754         public bool Visible
3755         {
3756             get
3757             {
3758                 return IsVisible();
3759             }
3760         }
3761
3762
3763         /// <summary>
3764         /// Gets the view's world color.
3765         /// </summary>
3766         /// <since_tizen> 3 </since_tizen>
3767         public Vector4 WorldColor
3768         {
3769             get
3770             {
3771                 Vector4 temp = new Vector4(0.0f, 0.0f, 0.0f, 0.0f);
3772                 GetProperty(View.Property.WORLD_COLOR).Get(temp);
3773                 return temp;
3774             }
3775         }
3776
3777         internal Matrix WorldMatrix
3778         {
3779             get
3780             {
3781                 Matrix temp = new Matrix();
3782                 GetProperty(View.Property.WORLD_MATRIX).Get(temp);
3783                 return temp;
3784             }
3785         }
3786
3787         /// <summary>
3788         /// Gets or sets the view's name.
3789         /// </summary>
3790         /// <since_tizen> 3 </since_tizen>
3791         public string Name
3792         {
3793             get
3794             {
3795                 string temp;
3796                 GetProperty(View.Property.NAME).Get(out temp);
3797                 return temp;
3798             }
3799             set
3800             {
3801                 SetProperty(View.Property.NAME, new Tizen.NUI.PropertyValue(value));
3802             }
3803         }
3804
3805         /// <summary>
3806         /// Get the number of children held by the view.
3807         /// </summary>
3808         /// <since_tizen> 3 </since_tizen>
3809         public new uint ChildCount
3810         {
3811             get
3812             {
3813                 return GetChildCount();
3814             }
3815         }
3816
3817         /// <summary>
3818         /// Gets the view's ID.
3819         /// Readonly
3820         /// </summary>
3821         /// <since_tizen> 3 </since_tizen>
3822         public uint ID
3823         {
3824             get
3825             {
3826                 return GetId();
3827             }
3828         }
3829
3830         /// <summary>
3831         /// Gets or sets the status of whether the view should emit touch or hover signals.
3832         /// </summary>
3833         /// <since_tizen> 3 </since_tizen>
3834         public bool Sensitive
3835         {
3836             get
3837             {
3838                 bool temp = false;
3839                 GetProperty(View.Property.SENSITIVE).Get(out temp);
3840                 return temp;
3841             }
3842             set
3843             {
3844                 SetProperty(View.Property.SENSITIVE, new Tizen.NUI.PropertyValue(value));
3845             }
3846         }
3847
3848         /// <summary>
3849         /// Gets or sets the status of whether the view should receive a notification when touch or hover motion events leave the boundary of the view.
3850         /// </summary>
3851         /// <since_tizen> 3 </since_tizen>
3852         public bool LeaveRequired
3853         {
3854             get
3855             {
3856                 bool temp = false;
3857                 GetProperty(View.Property.LEAVE_REQUIRED).Get(out temp);
3858                 return temp;
3859             }
3860             set
3861             {
3862                 SetProperty(View.Property.LEAVE_REQUIRED, new Tizen.NUI.PropertyValue(value));
3863             }
3864         }
3865
3866         /// <summary>
3867         /// Gets or sets the status of whether a child view inherits it's parent's orientation.
3868         /// </summary>
3869         /// <since_tizen> 3 </since_tizen>
3870         public bool InheritOrientation
3871         {
3872             get
3873             {
3874                 bool temp = false;
3875                 GetProperty(View.Property.INHERIT_ORIENTATION).Get(out temp);
3876                 return temp;
3877             }
3878             set
3879             {
3880                 SetProperty(View.Property.INHERIT_ORIENTATION, new Tizen.NUI.PropertyValue(value));
3881             }
3882         }
3883
3884         /// <summary>
3885         /// Gets or sets the status of whether a child view inherits it's parent's scale.
3886         /// </summary>
3887         /// <since_tizen> 3 </since_tizen>
3888         public bool InheritScale
3889         {
3890             get
3891             {
3892                 bool temp = false;
3893                 GetProperty(View.Property.INHERIT_SCALE).Get(out temp);
3894                 return temp;
3895             }
3896             set
3897             {
3898                 SetProperty(View.Property.INHERIT_SCALE, new Tizen.NUI.PropertyValue(value));
3899             }
3900         }
3901
3902         /// <summary>
3903         /// Gets or sets the status of how the view and its children should be drawn.<br />
3904         /// Not all views are renderable, but DrawMode can be inherited from any view.<br />
3905         /// If an object is in a 3D layer, it will be depth-tested against other objects in the world, i.e., it may be obscured if other objects are in front.<br />
3906         /// If DrawMode.Overlay2D is used, the view and its children will be drawn as a 2D overlay.<br />
3907         /// Overlay views are drawn in a separate pass, after all non-overlay views within the layer.<br />
3908         /// For overlay views, the drawing order is with respect to tree levels of views, and depth-testing will not be used.<br />
3909         /// </summary>
3910         /// <since_tizen> 3 </since_tizen>
3911         public DrawModeType DrawMode
3912         {
3913             get
3914             {
3915                 string temp;
3916                 if (GetProperty(View.Property.DRAW_MODE).Get(out temp) == false)
3917                 {
3918                     NUILog.Error("DrawMode get error!");
3919                 }
3920                 switch (temp)
3921                 {
3922                     case "NORMAL":
3923                     return DrawModeType.Normal;
3924                     case "OVERLAY_2D":
3925                     return DrawModeType.Overlay2D;
3926                     case "STENCIL":
3927                     return DrawModeType.Stencil;
3928                     default:
3929                     return DrawModeType.Normal;
3930                 }
3931             }
3932             set
3933             {
3934                 SetProperty(View.Property.DRAW_MODE, new Tizen.NUI.PropertyValue((int)value));
3935             }
3936         }
3937
3938         /// <summary>
3939         /// Gets or sets the relative to parent size factor of the view.<br />
3940         /// This factor is only used when ResizePolicyType is set to either: ResizePolicyType.SizeRelativeToParent or ResizePolicyType.SizeFixedOffsetFromParent.<br />
3941         /// This view's size is set to the view's size multiplied by or added to this factor, depending on ResizePolicyType.<br />
3942         /// </summary>
3943         /// <since_tizen> 3 </since_tizen>
3944         public Vector3 SizeModeFactor
3945         {
3946             get
3947             {
3948                 Vector3 temp = new Vector3(0.0f, 0.0f, 0.0f);
3949                 GetProperty(View.Property.SIZE_MODE_FACTOR).Get(temp);
3950                 return temp;
3951             }
3952             set
3953             {
3954                 SetProperty(View.Property.SIZE_MODE_FACTOR, new Tizen.NUI.PropertyValue(value));
3955             }
3956         }
3957
3958         /// <summary>
3959         /// Gets or sets the width resize policy to be used.
3960         /// </summary>
3961         /// <since_tizen> 3 </since_tizen>
3962         public ResizePolicyType WidthResizePolicy
3963         {
3964             get
3965             {
3966                 string temp;
3967                 if (GetProperty(View.Property.WIDTH_RESIZE_POLICY).Get(out temp) == false)
3968                 {
3969                     NUILog.Error("WidthResizePolicy get error!");
3970                 }
3971                 switch (temp)
3972                 {
3973                     case "FIXED":
3974                         return ResizePolicyType.Fixed;
3975                     case "USE_NATURAL_SIZE":
3976                         return ResizePolicyType.UseNaturalSize;
3977                     case "FILL_TO_PARENT":
3978                         return ResizePolicyType.FillToParent;
3979                     case "SIZE_RELATIVE_TO_PARENT":
3980                         return ResizePolicyType.SizeRelativeToParent;
3981                     case "SIZE_FIXED_OFFSET_FROM_PARENT":
3982                         return ResizePolicyType.SizeFixedOffsetFromParent;
3983                     case "FIT_TO_CHILDREN":
3984                         return ResizePolicyType.FitToChildren;
3985                     case "DIMENSION_DEPENDENCY":
3986                         return ResizePolicyType.DimensionDependency;
3987                     case "USE_ASSIGNED_SIZE":
3988                         return ResizePolicyType.UseAssignedSize;
3989                     default:
3990                         return ResizePolicyType.Fixed;
3991                 }
3992             }
3993             set
3994             {
3995                 SetProperty(View.Property.WIDTH_RESIZE_POLICY, new Tizen.NUI.PropertyValue((int)value));
3996             }
3997         }
3998
3999         /// <summary>
4000         /// Gets or sets the height resize policy to be used.
4001         /// </summary>
4002         /// <since_tizen> 3 </since_tizen>
4003         public ResizePolicyType HeightResizePolicy
4004         {
4005             get
4006             {
4007                 string temp;
4008                 if (GetProperty(View.Property.HEIGHT_RESIZE_POLICY).Get(out temp) == false)
4009                 {
4010                     NUILog.Error("HeightResizePolicy get error!");
4011                 }
4012                 switch (temp)
4013                 {
4014                     case "FIXED":
4015                         return ResizePolicyType.Fixed;
4016                     case "USE_NATURAL_SIZE":
4017                         return ResizePolicyType.UseNaturalSize;
4018                     case "FILL_TO_PARENT":
4019                         return ResizePolicyType.FillToParent;
4020                     case "SIZE_RELATIVE_TO_PARENT":
4021                         return ResizePolicyType.SizeRelativeToParent;
4022                     case "SIZE_FIXED_OFFSET_FROM_PARENT":
4023                         return ResizePolicyType.SizeFixedOffsetFromParent;
4024                     case "FIT_TO_CHILDREN":
4025                         return ResizePolicyType.FitToChildren;
4026                     case "DIMENSION_DEPENDENCY":
4027                         return ResizePolicyType.DimensionDependency;
4028                     case "USE_ASSIGNED_SIZE":
4029                         return ResizePolicyType.UseAssignedSize;
4030                     default:
4031                         return ResizePolicyType.Fixed;
4032                 }
4033             }
4034             set
4035             {
4036                 SetProperty(View.Property.HEIGHT_RESIZE_POLICY, new Tizen.NUI.PropertyValue((int)value));
4037             }
4038         }
4039
4040         /// <summary>
4041         /// Gets or sets the policy to use when setting size with size negotiation.<br />
4042         /// Defaults to SizeScalePolicyType.UseSizeSet.<br />
4043         /// </summary>
4044         /// <since_tizen> 3 </since_tizen>
4045         public SizeScalePolicyType SizeScalePolicy
4046         {
4047             get
4048             {
4049                 string temp;
4050                 if (GetProperty(View.Property.SIZE_SCALE_POLICY).Get(out temp) == false)
4051                 {
4052                     NUILog.Error("SizeScalePolicy get error!");
4053                 }
4054                 switch (temp)
4055                 {
4056                     case "USE_SIZE_SET":
4057                         return SizeScalePolicyType.UseSizeSet;
4058                     case "FIT_WITH_ASPECT_RATIO":
4059                         return SizeScalePolicyType.FitWithAspectRatio;
4060                     case "FILL_WITH_ASPECT_RATIO":
4061                         return SizeScalePolicyType.FillWithAspectRatio;
4062                     default:
4063                         return SizeScalePolicyType.UseSizeSet;
4064                 }
4065             }
4066             set
4067             {
4068                 string valueToString = "";
4069                 switch (value)
4070                 {
4071                     case SizeScalePolicyType.UseSizeSet:
4072                         {
4073                             valueToString = "USE_SIZE_SET";
4074                             break;
4075                         }
4076                     case SizeScalePolicyType.FitWithAspectRatio:
4077                         {
4078                             valueToString = "FIT_WITH_ASPECT_RATIO";
4079                             break;
4080                         }
4081                     case SizeScalePolicyType.FillWithAspectRatio:
4082                         {
4083                             valueToString = "FILL_WITH_ASPECT_RATIO";
4084                             break;
4085                         }
4086                     default:
4087                         {
4088                             valueToString = "USE_SIZE_SET";
4089                             break;
4090                         }
4091                 }
4092                 SetProperty(View.Property.SIZE_SCALE_POLICY, new Tizen.NUI.PropertyValue(valueToString));
4093             }
4094         }
4095
4096         /// <summary>
4097         ///  Gets or sets the status of whether the width size is dependent on the height size.
4098         /// </summary>
4099         /// <since_tizen> 3 </since_tizen>
4100         public bool WidthForHeight
4101         {
4102             get
4103             {
4104                 bool temp = false;
4105                 GetProperty(View.Property.WIDTH_FOR_HEIGHT).Get(out temp);
4106                 return temp;
4107             }
4108             set
4109             {
4110                 SetProperty(View.Property.WIDTH_FOR_HEIGHT, new Tizen.NUI.PropertyValue(value));
4111             }
4112         }
4113
4114         /// <summary>
4115         /// Gets or sets the status of whether the height size is dependent on the width size.
4116         /// </summary>
4117         /// <since_tizen> 3 </since_tizen>
4118         public bool HeightForWidth
4119         {
4120             get
4121             {
4122                 bool temp = false;
4123                 GetProperty(View.Property.HEIGHT_FOR_WIDTH).Get(out temp);
4124                 return temp;
4125             }
4126             set
4127             {
4128                 SetProperty(View.Property.HEIGHT_FOR_WIDTH, new Tizen.NUI.PropertyValue(value));
4129             }
4130         }
4131
4132         /// <summary>
4133         /// Gets or sets the padding for use in layout.
4134         /// </summary>
4135         /// <since_tizen> 4 </since_tizen>
4136         public Extents Padding
4137         {
4138             get
4139             {
4140                 Extents temp = new Extents(0, 0, 0, 0);
4141                 GetProperty(View.Property.PADDING).Get(temp);
4142                 return temp;
4143             }
4144             set
4145             {
4146                 SetProperty(View.Property.PADDING, new Tizen.NUI.PropertyValue(value));
4147             }
4148         }
4149
4150         /// <summary>
4151         /// Gets or sets the minimum size the view can be assigned in size negotiation.
4152         /// </summary>
4153         /// <since_tizen> 3 </since_tizen>
4154         public Size2D MinimumSize
4155         {
4156             get
4157             {
4158                 Size2D temp = new Size2D(0, 0);
4159                 GetProperty(View.Property.MINIMUM_SIZE).Get(temp);
4160                 return temp;
4161             }
4162             set
4163             {
4164                 SetProperty(View.Property.MINIMUM_SIZE, new Tizen.NUI.PropertyValue(value));
4165             }
4166         }
4167
4168         /// <summary>
4169         /// Gets or sets the maximum size the view can be assigned in size negotiation.
4170         /// </summary>
4171         /// <since_tizen> 3 </since_tizen>
4172         public Size2D MaximumSize
4173         {
4174             get
4175             {
4176                 Size2D temp = new Size2D(0, 0);
4177                 GetProperty(View.Property.MAXIMUM_SIZE).Get(temp);
4178                 return temp;
4179             }
4180             set
4181             {
4182                 SetProperty(View.Property.MAXIMUM_SIZE, new Tizen.NUI.PropertyValue(value));
4183             }
4184         }
4185
4186         /// <summary>
4187         /// Gets or sets whether a child view inherits it's parent's position.<br />
4188         /// Default is to inherit.<br />
4189         /// Switching this off means that using position sets the view's world position, i.e., translates from the world origin (0,0,0) to the pivot point of the view.<br />
4190         /// </summary>
4191         /// <since_tizen> 3 </since_tizen>
4192         public bool InheritPosition
4193         {
4194             get
4195             {
4196                 bool temp = false;
4197                 GetProperty(View.Property.INHERIT_POSITION).Get(out temp);
4198                 return temp;
4199             }
4200             set
4201             {
4202                 SetProperty(View.Property.INHERIT_POSITION, new Tizen.NUI.PropertyValue(value));
4203             }
4204         }
4205
4206         /// <summary>
4207         /// Gets or sets the clipping behavior (mode) of it's children.
4208         /// </summary>
4209         /// <since_tizen> 3 </since_tizen>
4210         public ClippingModeType ClippingMode
4211         {
4212             get
4213             {
4214                 string temp;
4215                 if (GetProperty(View.Property.CLIPPING_MODE).Get(out temp) == false)
4216                 {
4217                     NUILog.Error("ClippingMode get error!");
4218                 }
4219                 switch (temp)
4220                 {
4221                     case "DISABLED":
4222                     return ClippingModeType.Disabled;
4223                     case "CLIP_CHILDREN":
4224                     return ClippingModeType.ClipChildren;
4225                     case "CLIP_TO_BOUNDING_BOX":
4226                     return ClippingModeType.ClipToBoundingBox;
4227                     default:
4228                     return ClippingModeType.Disabled;
4229                 }
4230             }
4231             set
4232             {
4233                 SetProperty(View.Property.CLIPPING_MODE, new Tizen.NUI.PropertyValue((int)value));
4234             }
4235         }
4236
4237         /// <summary>
4238         /// Gets the number of renderers held by the view.
4239         /// </summary>
4240         /// <since_tizen> 3 </since_tizen>
4241         public uint RendererCount
4242         {
4243             get
4244             {
4245                 return GetRendererCount();
4246             }
4247         }
4248
4249         /// <summary>
4250         /// [Obsolete("Please do not use! this will be deprecated")]
4251         /// </summary>
4252         /// <since_tizen> 3 </since_tizen>
4253         /// Please do not use! this will be deprecated!
4254         /// Instead please use PivotPoint.
4255         [Obsolete("Please do not use! This will be deprecated! Please use PivotPoint instead! " +
4256             "Like: " +
4257             "View view = new View(); " +
4258             "view.PivotPoint = PivotPoint.Center; " +
4259             "view.PositionUsesPivotPoint = true;")]
4260         [EditorBrowsable(EditorBrowsableState.Never)]
4261         public Position AnchorPoint
4262         {
4263             get
4264             {
4265                 Position temp = new Position(0.0f, 0.0f, 0.0f);
4266                 GetProperty(View.Property.ANCHOR_POINT).Get(temp);
4267                 return temp;
4268             }
4269             set
4270             {
4271                 SetProperty(View.Property.ANCHOR_POINT, new Tizen.NUI.PropertyValue(value));
4272             }
4273         }
4274
4275         /// <summary>
4276         /// [Obsolete("Please do not use! this will be deprecated")]
4277         /// </summary>
4278         /// <since_tizen> 3 </since_tizen>
4279         [Obsolete("Please do not use! This will be deprecated! Please use Size2D instead! " +
4280             "Like: " +
4281             "View view = new View(); " +
4282             "view.Size2D = new Size2D(100, 100);")]
4283         [EditorBrowsable(EditorBrowsableState.Never)]
4284         public Size Size
4285         {
4286             get
4287             {
4288                 Size temp = new Size(0.0f, 0.0f, 0.0f);
4289                 GetProperty(View.Property.SIZE).Get(temp);
4290                 return temp;
4291             }
4292             set
4293             {
4294                 SetProperty(View.Property.SIZE, new Tizen.NUI.PropertyValue(value));
4295             }
4296         }
4297
4298         /// <summary>
4299         /// "Please DO NOT use! This will be deprecated! Please use 'Container GetParent() for derived class' instead!"
4300         /// </summary>
4301         /// <since_tizen> 3 </since_tizen>
4302         [Obsolete("Please do not use! This will be deprecated! Please use 'Container GetParent() for derived class' instead! " +
4303             "Like: " +
4304             "Container parent =  view.GetParent(); " +
4305             "View view = parent as View;")]
4306         [EditorBrowsable(EditorBrowsableState.Never)]
4307         public new View Parent
4308         {
4309             get
4310             {
4311                 View ret;
4312                 IntPtr cPtr = NDalicPINVOKE.Actor_GetParent(swigCPtr);
4313                 HandleRef CPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
4314                 BaseHandle basehandle = Registry.GetManagedBaseHandleFromNativePtr(CPtr.Handle);
4315                 NDalicPINVOKE.delete_BaseHandle(CPtr);
4316                 CPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
4317
4318                 if (basehandle is Layer)
4319                 {
4320                     ret = new View(cPtr, false);
4321                 }
4322                 else
4323                 {
4324                     ret = basehandle as View;
4325                 }
4326
4327                 if (NDalicPINVOKE.SWIGPendingException.Pending)
4328                     throw NDalicPINVOKE.SWIGPendingException.Retrieve();
4329                 return ret;
4330             }
4331         }
4332
4333         /// <summary>
4334         /// Gets/Sets whether inherit parent's the layout Direction.
4335         /// </summary>
4336         /// <since_tizen> 4 </since_tizen>
4337         public bool InheritLayoutDirection
4338         {
4339             get
4340             {
4341                 bool temp = false;
4342                 GetProperty(View.Property.INHERIT_LAYOUT_DIRECTION).Get(out temp);
4343                 return temp;
4344             }
4345             set
4346             {
4347                 SetProperty(View.Property.INHERIT_LAYOUT_DIRECTION, new Tizen.NUI.PropertyValue(value));
4348             }
4349         }
4350
4351         /// <summary>
4352         /// Gets/Sets the layout Direction.
4353         /// </summary>
4354         /// <since_tizen> 4 </since_tizen>
4355         public ViewLayoutDirectionType LayoutDirection
4356         {
4357             get
4358             {
4359                 int temp;
4360                 if (GetProperty(View.Property.LAYOUT_DIRECTION).Get(out temp) == false)
4361                 {
4362                     NUILog.Error("LAYOUT_DIRECTION get error!");
4363                 }
4364                 return (ViewLayoutDirectionType)temp;
4365             }
4366             set
4367             {
4368                 SetProperty(View.Property.LAYOUT_DIRECTION, new Tizen.NUI.PropertyValue((int)value));
4369             }
4370         }
4371
4372         /// <summary>
4373         /// Gets or sets the Margin for use in layout.
4374         /// </summary>
4375         /// <since_tizen> 4 </since_tizen>
4376         public Extents Margin
4377         {
4378             get
4379             {
4380                 Extents temp = new Extents(0, 0, 0, 0);
4381                 GetProperty(View.Property.MARGIN).Get(temp);
4382                 return temp;
4383             }
4384             set
4385             {
4386                 SetProperty(View.Property.MARGIN, new Tizen.NUI.PropertyValue(value));
4387             }
4388         }
4389
4390         /// <summary>
4391         /// [Obsolete("Please do not use! this will be deprecated")]
4392         /// </summary>
4393         /// Please do not use! this will be deprecated!
4394         /// Instead please use Padding.
4395         /// <since_tizen> 4 </since_tizen>
4396         [Obsolete("Please do not use! this will be deprecated, instead please use Padding.")]
4397         [EditorBrowsable(EditorBrowsableState.Never)]
4398         public Extents PaddingEX
4399         {
4400             get
4401             {
4402                 Extents temp = new Extents(0, 0, 0, 0);
4403                 GetProperty(View.Property.PADDING).Get(temp);
4404                 return temp;
4405             }
4406             set
4407             {
4408                 SetProperty(View.Property.PADDING, new Tizen.NUI.PropertyValue(value));
4409             }
4410         }
4411
4412         /// <summary>
4413         /// Perform an action on a visual registered to this view. <br />
4414         /// Visuals will have actions, this API is used to perform one of these actions with the given attributes.
4415         /// </summary>
4416         /// <param name="propertyIndexOfVisual">The Property index of the visual.</param>
4417         /// <param name="propertyIndexOfActionId">The action to perform.  See Visual to find supported actions.</param>
4418         /// <param name="attributes">Optional attributes for the action.</param>
4419         /// <since_tizen> 5 </since_tizen>
4420         /// This will be released at Tizen.NET API Level 5, so currently this would be used as inhouse API.
4421         [EditorBrowsable(EditorBrowsableState.Never)]
4422         public void DoAction(int propertyIndexOfVisual, int propertyIndexOfActionId, PropertyValue attributes)
4423         {
4424             NDalicManualPINVOKE.View_DoAction(swigCPtr, propertyIndexOfVisual, propertyIndexOfActionId, PropertyValue.getCPtr(attributes));
4425             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
4426         }
4427
4428     }
4429
4430     /// <summary>
4431     /// The View layout Direction type.
4432     /// </summary>
4433     /// <since_tizen> 4 </since_tizen>
4434     public enum ViewLayoutDirectionType
4435     {
4436         /// <summary>
4437         /// Left to right.
4438         /// </summary>
4439         /// <since_tizen> 4 </since_tizen>
4440         LTR,
4441         /// <summary>
4442         /// Right to left.
4443         /// </summary>
4444         /// <since_tizen> 4 </since_tizen>
4445         RTL
4446     }
4447 }