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