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