[NUI] Fix Renderer null issue (#758)
[platform/core/csapi/tizenfx.git] / src / Tizen.NUI / src / public / BaseComponents / View.cs
1 /*
2  * Copyright(c) 2019 Samsung Electronics Co., Ltd.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  *
16  */
17 using System;
18 using System.ComponentModel;
19 using System.Runtime.InteropServices;
20 using Tizen.NUI.Binding;
21
22 namespace Tizen.NUI.BaseComponents
23 {
24     /// <summary>
25     /// The View layout Direction type.
26     /// </summary>
27     /// <since_tizen> 4 </since_tizen>
28     public enum ViewLayoutDirectionType
29     {
30         /// <summary>
31         /// Left to right.
32         /// </summary>
33         /// <since_tizen> 4 </since_tizen>
34         LTR,
35         /// <summary>
36         /// Right to left.
37         /// </summary>
38         /// <since_tizen> 4 </since_tizen>
39         RTL
40     }
41
42     internal enum ChildLayoutData
43     {
44         /// <summary>
45         /// Constant which indicates child size should match parent size
46         /// </summary>
47         MatchParent = -1,
48         /// <summary>
49         /// Constant which indicates parent should take the smallest size possible to wrap it's children with their desired size
50         /// </summary>
51         WrapContent = -2,
52     }
53
54     internal enum ResourceLoadingStatusType
55     {
56         Invalid = -1,
57         Preparing = 0,
58         Ready,
59         Failed,
60     }
61
62     /// <summary>
63     /// View is the base class for all views.
64     /// </summary>
65     /// <since_tizen> 3 </since_tizen>
66     public class View : Container, IResourcesProvider
67     {
68         /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
69         [EditorBrowsable(EditorBrowsableState.Never)]
70         public static readonly BindableProperty StyleNameProperty = BindableProperty.Create("StyleName", typeof(string), typeof(View), string.Empty, propertyChanged: (bindable, oldValue, newValue) =>
71         {
72             var view = (View)bindable;
73             if (newValue != null)
74             {
75                 Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.STYLE_NAME, new Tizen.NUI.PropertyValue((string)newValue));
76             }
77         },
78         defaultValueCreator: (bindable) =>
79         {
80             var view = (View)bindable;
81             string temp;
82             Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.STYLE_NAME).Get(out temp);
83             return temp;
84         });
85         /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
86         [EditorBrowsable(EditorBrowsableState.Never)]
87         public static readonly BindableProperty BackgroundColorProperty = BindableProperty.Create("BackgroundColor", typeof(Color), typeof(View), null, propertyChanged: (bindable, oldValue, newValue) =>
88         {
89             var view = (View)bindable;
90             if (newValue != null)
91             {
92                 Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.BACKGROUND, new Tizen.NUI.PropertyValue((Color)newValue));
93             }
94         },
95         defaultValueCreator: (bindable) =>
96         {
97             var view = (View)bindable;
98             Color backgroundColor = new Color(0.0f, 0.0f, 0.0f, 0.0f);
99
100             Tizen.NUI.PropertyMap background = view.Background;
101             int visualType = 0;
102             background.Find(Visual.Property.Type)?.Get(out visualType);
103             if (visualType == (int)Visual.Type.Color)
104             {
105                 background.Find(ColorVisualProperty.MixColor)?.Get(backgroundColor);
106             }
107
108             return backgroundColor;
109         });
110         /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
111         [EditorBrowsable(EditorBrowsableState.Never)]
112         public static readonly BindableProperty BackgroundImageProperty = BindableProperty.Create("BackgroundImage", typeof(string), typeof(View), default(string), propertyChanged: (bindable, oldValue, newValue) =>
113         {
114             var view = (View)bindable;
115             if (newValue != null)
116             {
117                 Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.BACKGROUND, new Tizen.NUI.PropertyValue((string)newValue));
118             }
119         },
120         defaultValueCreator: (bindable) =>
121         {
122             var view = (View)bindable;
123             string backgroundImage = "";
124
125             Tizen.NUI.PropertyMap background = view.Background;
126             int visualType = 0;
127             background.Find(Visual.Property.Type)?.Get(out visualType);
128             if (visualType == (int)Visual.Type.Image)
129             {
130                 background.Find(ImageVisualProperty.URL)?.Get(out backgroundImage);
131             }
132
133             return backgroundImage;
134         });
135         /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
136         [EditorBrowsable(EditorBrowsableState.Never)]
137         public static readonly BindableProperty BackgroundProperty = BindableProperty.Create("Background", typeof(PropertyMap), typeof(View), null, propertyChanged: (bindable, oldValue, newValue) =>
138         {
139             var view = (View)bindable;
140             if (newValue != null)
141             {
142                 Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.BACKGROUND, new Tizen.NUI.PropertyValue((PropertyMap)newValue));
143             }
144         },
145         defaultValueCreator: (bindable) =>
146         {
147             var view = (View)bindable;
148             Tizen.NUI.PropertyMap temp = new Tizen.NUI.PropertyMap();
149             Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.BACKGROUND).Get(temp);
150             return temp;
151         });
152         /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
153         [EditorBrowsable(EditorBrowsableState.Never)]
154         public static readonly BindableProperty StateProperty = BindableProperty.Create("State", typeof(States), typeof(View), States.Normal, propertyChanged: (bindable, oldValue, newValue) =>
155         {
156             var view = (View)bindable;
157             if (newValue != null)
158             {
159                 Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.STATE, new Tizen.NUI.PropertyValue((int)newValue));
160             }
161         },
162         defaultValueCreator: (bindable) =>
163         {
164             var view = (View)bindable;
165             int temp = 0;
166             if (Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.STATE).Get(out temp) == false)
167             {
168                 NUILog.Error("State get error!");
169             }
170             switch (temp)
171             {
172                 case 0: return States.Normal;
173                 case 1: return States.Focused;
174                 case 2: return States.Disabled;
175                 default: return States.Normal;
176             }
177         });
178         /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
179         [EditorBrowsable(EditorBrowsableState.Never)]
180         public static readonly BindableProperty SubStateProperty = BindableProperty.Create("SubState", typeof(States), typeof(View), States.Normal, propertyChanged: (bindable, oldValue, newValue) =>
181         {
182             var view = (View)bindable;
183             string valueToString = "";
184             if (newValue != null)
185             {
186                 switch ((States)newValue)
187                 {
188                     case States.Normal: { valueToString = "NORMAL"; break; }
189                     case States.Focused: { valueToString = "FOCUSED"; break; }
190                     case States.Disabled: { valueToString = "DISABLED"; break; }
191                     default: { valueToString = "NORMAL"; break; }
192                 }
193                 Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.SUB_STATE, new Tizen.NUI.PropertyValue(valueToString));
194             }
195         },
196         defaultValueCreator: (bindable) =>
197         {
198             var view = (View)bindable;
199             string temp;
200             if (Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.SUB_STATE).Get(out temp) == false)
201             {
202                 NUILog.Error("subState get error!");
203             }
204             switch (temp)
205             {
206                 case "NORMAL": return States.Normal;
207                 case "FOCUSED": return States.Focused;
208                 case "DISABLED": return States.Disabled;
209                 default: return States.Normal;
210             }
211         });
212         /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
213         [EditorBrowsable(EditorBrowsableState.Never)]
214         public static readonly BindableProperty TooltipProperty = BindableProperty.Create("Tooltip", typeof(PropertyMap), typeof(View), null, propertyChanged: (bindable, oldValue, newValue) =>
215         {
216             var view = (View)bindable;
217             if (newValue != null)
218             {
219                 Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.TOOLTIP, new Tizen.NUI.PropertyValue((PropertyMap)newValue));
220             }
221         },
222         defaultValueCreator: (bindable) =>
223         {
224             var view = (View)bindable;
225             Tizen.NUI.PropertyMap temp = new Tizen.NUI.PropertyMap();
226             Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.TOOLTIP).Get(temp);
227             return temp;
228         });
229
230         public static readonly BindableProperty FlexProperty = BindableProperty.Create("Flex", typeof(float), typeof(View), default(float), propertyChanged: (bindable, oldValue, newValue) =>
231         {
232             var view = (View)bindable;
233             if (newValue != null)
234             {
235                 Tizen.NUI.Object.SetProperty(view.swigCPtr, FlexContainer.ChildProperty.FLEX, new Tizen.NUI.PropertyValue((float)newValue));
236             }
237         },
238         defaultValueCreator: (bindable) =>
239         {
240             var view = (View)bindable;
241             float temp = 0.0f;
242             Tizen.NUI.Object.GetProperty(view.swigCPtr, FlexContainer.ChildProperty.FLEX).Get(out temp);
243             return temp;
244         });
245
246         /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
247         [EditorBrowsable(EditorBrowsableState.Never)]
248         public static readonly BindableProperty AlignSelfProperty = BindableProperty.Create("AlignSelf", typeof(int), typeof(View), default(int), propertyChanged: (bindable, oldValue, newValue) =>
249         {
250             var view = (View)bindable;
251             if (newValue != null)
252             {
253                 Tizen.NUI.Object.SetProperty(view.swigCPtr, FlexContainer.ChildProperty.ALIGN_SELF, new Tizen.NUI.PropertyValue((int)newValue));
254             }
255         },
256         defaultValueCreator: (bindable) =>
257         {
258             var view = (View)bindable;
259             int temp = 0;
260             Tizen.NUI.Object.GetProperty(view.swigCPtr, FlexContainer.ChildProperty.ALIGN_SELF).Get(out temp);
261             return temp;
262         });
263         /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
264         [EditorBrowsable(EditorBrowsableState.Never)]
265         public static readonly BindableProperty FlexMarginProperty = BindableProperty.Create("FlexMargin", typeof(Vector4), typeof(View), null, propertyChanged: (bindable, oldValue, newValue) =>
266         {
267             var view = (View)bindable;
268             if (newValue != null)
269             {
270                 Tizen.NUI.Object.SetProperty(view.swigCPtr, FlexContainer.ChildProperty.FLEX_MARGIN, new Tizen.NUI.PropertyValue((Vector4)newValue));
271             }
272         },
273         defaultValueCreator: (bindable) =>
274         {
275             var view = (View)bindable;
276             Vector4 temp = new Vector4(0.0f, 0.0f, 0.0f, 0.0f);
277             Tizen.NUI.Object.GetProperty(view.swigCPtr, FlexContainer.ChildProperty.FLEX_MARGIN).Get(temp);
278             return temp;
279         });
280         /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
281         [EditorBrowsable(EditorBrowsableState.Never)]
282         public static readonly BindableProperty CellIndexProperty = BindableProperty.Create("CellIndex", typeof(Vector2), typeof(View), null, propertyChanged: (bindable, oldValue, newValue) =>
283         {
284             var view = (View)bindable;
285             if (newValue != null)
286             {
287                 Tizen.NUI.Object.SetProperty(view.swigCPtr, TableView.ChildProperty.CELL_INDEX, new Tizen.NUI.PropertyValue((Vector2)newValue));
288             }
289         },
290         defaultValueCreator: (bindable) =>
291         {
292             var view = (View)bindable;
293             Vector2 temp = new Vector2(0.0f, 0.0f);
294             Tizen.NUI.Object.GetProperty(view.swigCPtr, TableView.ChildProperty.CELL_INDEX).Get(temp);
295             return temp;
296         });
297         /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
298         [EditorBrowsable(EditorBrowsableState.Never)]
299         public static readonly BindableProperty RowSpanProperty = BindableProperty.Create("RowSpan", typeof(float), typeof(View), default(float), propertyChanged: (bindable, oldValue, newValue) =>
300         {
301             var view = (View)bindable;
302             if (newValue != null)
303             {
304                 Tizen.NUI.Object.SetProperty(view.swigCPtr, TableView.ChildProperty.ROW_SPAN, new Tizen.NUI.PropertyValue((float)newValue));
305             }
306         },
307         defaultValueCreator: (bindable) =>
308         {
309             var view = (View)bindable;
310             float temp = 0.0f;
311             Tizen.NUI.Object.GetProperty(view.swigCPtr, TableView.ChildProperty.ROW_SPAN).Get(out temp);
312             return temp;
313         });
314         /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
315         [EditorBrowsable(EditorBrowsableState.Never)]
316         public static readonly BindableProperty ColumnSpanProperty = BindableProperty.Create("ColumnSpan", typeof(float), typeof(View), default(float), propertyChanged: (bindable, oldValue, newValue) =>
317         {
318             var view = (View)bindable;
319             if (newValue != null)
320             {
321                 Tizen.NUI.Object.SetProperty(view.swigCPtr, TableView.ChildProperty.COLUMN_SPAN, new Tizen.NUI.PropertyValue((float)newValue));
322             }
323         },
324         defaultValueCreator: (bindable) =>
325         {
326             var view = (View)bindable;
327             float temp = 0.0f;
328             Tizen.NUI.Object.GetProperty(view.swigCPtr, TableView.ChildProperty.COLUMN_SPAN).Get(out temp);
329             return temp;
330         });
331         /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
332         [EditorBrowsable(EditorBrowsableState.Never)]
333         public static readonly BindableProperty CellHorizontalAlignmentProperty = BindableProperty.Create("CellHorizontalAlignment", typeof(HorizontalAlignmentType), typeof(View), HorizontalAlignmentType.Left, propertyChanged: (bindable, oldValue, newValue) =>
334         {
335             var view = (View)bindable;
336             string valueToString = "";
337
338             if (newValue != null)
339             {
340                 switch ((HorizontalAlignmentType)newValue)
341                 {
342                     case Tizen.NUI.HorizontalAlignmentType.Left: { valueToString = "left"; break; }
343                     case Tizen.NUI.HorizontalAlignmentType.Center: { valueToString = "center"; break; }
344                     case Tizen.NUI.HorizontalAlignmentType.Right: { valueToString = "right"; break; }
345                     default: { valueToString = "left"; break; }
346                 }
347                 Tizen.NUI.Object.SetProperty(view.swigCPtr, TableView.ChildProperty.CELL_HORIZONTAL_ALIGNMENT, new Tizen.NUI.PropertyValue(valueToString));
348             }
349         },
350         defaultValueCreator: (bindable) =>
351         {
352             var view = (View)bindable;
353             string temp;
354             if (Tizen.NUI.Object.GetProperty(view.swigCPtr, TableView.ChildProperty.CELL_HORIZONTAL_ALIGNMENT).Get(out temp) == false)
355             {
356                 NUILog.Error("CellHorizontalAlignment get error!");
357             }
358
359             switch (temp)
360             {
361                 case "left": return Tizen.NUI.HorizontalAlignmentType.Left;
362                 case "center": return Tizen.NUI.HorizontalAlignmentType.Center;
363                 case "right": return Tizen.NUI.HorizontalAlignmentType.Right;
364                 default: return Tizen.NUI.HorizontalAlignmentType.Left;
365             }
366         });
367         /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
368         [EditorBrowsable(EditorBrowsableState.Never)]
369         public static readonly BindableProperty CellVerticalAlignmentProperty = BindableProperty.Create("CellVerticalAlignment", typeof(VerticalAlignmentType), typeof(View), VerticalAlignmentType.Top, propertyChanged: (bindable, oldValue, newValue) =>
370         {
371             var view = (View)bindable;
372             string valueToString = "";
373
374             if (newValue != null)
375             {
376                 switch ((VerticalAlignmentType)newValue)
377                 {
378                     case Tizen.NUI.VerticalAlignmentType.Top: { valueToString = "top"; break; }
379                     case Tizen.NUI.VerticalAlignmentType.Center: { valueToString = "center"; break; }
380                     case Tizen.NUI.VerticalAlignmentType.Bottom: { valueToString = "bottom"; break; }
381                     default: { valueToString = "top"; break; }
382                 }
383                 Tizen.NUI.Object.SetProperty(view.swigCPtr, TableView.ChildProperty.CELL_VERTICAL_ALIGNMENT, new Tizen.NUI.PropertyValue(valueToString));
384             }
385         },
386         defaultValueCreator: (bindable) =>
387         {
388             var view = (View)bindable;
389             string temp;
390             Tizen.NUI.Object.GetProperty(view.swigCPtr, TableView.ChildProperty.CELL_VERTICAL_ALIGNMENT).Get(out temp);
391             {
392                 NUILog.Error("CellVerticalAlignment get error!");
393             }
394
395             switch (temp)
396             {
397                 case "top": return Tizen.NUI.VerticalAlignmentType.Top;
398                 case "center": return Tizen.NUI.VerticalAlignmentType.Center;
399                 case "bottom": return Tizen.NUI.VerticalAlignmentType.Bottom;
400                 default: return Tizen.NUI.VerticalAlignmentType.Top;
401             }
402         });
403         /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
404         [EditorBrowsable(EditorBrowsableState.Never)]
405         public static readonly BindableProperty WeightProperty = BindableProperty.Create("Weight", typeof(float), typeof(View), default(float), propertyChanged: (bindable, oldValue, newValue) =>
406         {
407             var view = (View)bindable;
408             if (newValue != null)
409             {
410                 Tizen.NUI.Object.SetProperty(view.swigCPtr, LinearLayout.ChildProperty.WEIGHT, new Tizen.NUI.PropertyValue((float)newValue));
411             }
412         },
413         defaultValueCreator: (bindable) =>
414         {
415             var view = (View)bindable;
416             float temp = 0.0f;
417             Tizen.NUI.Object.GetProperty(view.swigCPtr, LinearLayout.ChildProperty.WEIGHT).Get(out temp);
418             return temp;
419         });
420         /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
421         [EditorBrowsable(EditorBrowsableState.Never)]
422         public static readonly BindableProperty LeftFocusableViewProperty = BindableProperty.Create(nameof(View.LeftFocusableView), typeof(View), typeof(View), null, propertyChanged: (bindable, oldValue, newValue) =>
423         {
424             var view = (View)bindable;
425             if (newValue != null) { view.LeftFocusableViewId = (int)(newValue as View)?.GetId(); }
426             else { view.LeftFocusableViewId = -1; }
427         },
428         defaultValueCreator: (bindable) =>
429         {
430             var view = (View)bindable;
431             if (view.LeftFocusableViewId >= 0) { return view.ConvertIdToView((uint)view.LeftFocusableViewId); }
432             return null;
433         });
434         /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
435         [EditorBrowsable(EditorBrowsableState.Never)]
436         public static readonly BindableProperty RightFocusableViewProperty = BindableProperty.Create(nameof(View.RightFocusableView), typeof(View), typeof(View), null, propertyChanged: (bindable, oldValue, newValue) =>
437         {
438             var view = (View)bindable;
439             if (newValue != null) { view.RightFocusableViewId = (int)(newValue as View)?.GetId(); }
440             else { view.RightFocusableViewId = -1; }
441         },
442         defaultValueCreator: (bindable) =>
443         {
444             var view = (View)bindable;
445             if (view.RightFocusableViewId >= 0) { return view.ConvertIdToView((uint)view.RightFocusableViewId); }
446             return null;
447         });
448         /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
449         [EditorBrowsable(EditorBrowsableState.Never)]
450         public static readonly BindableProperty UpFocusableViewProperty = BindableProperty.Create(nameof(View.UpFocusableView), typeof(View), typeof(View), null, propertyChanged: (bindable, oldValue, newValue) =>
451         {
452             var view = (View)bindable;
453             if (newValue != null) { view.UpFocusableViewId = (int)(newValue as View)?.GetId(); }
454             else { view.UpFocusableViewId = -1; }
455         },
456         defaultValueCreator: (bindable) =>
457         {
458             var view = (View)bindable;
459             if (view.UpFocusableViewId >= 0) { return view.ConvertIdToView((uint)view.UpFocusableViewId); }
460             return null;
461         });
462         /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
463         [EditorBrowsable(EditorBrowsableState.Never)]
464         public static readonly BindableProperty DownFocusableViewProperty = BindableProperty.Create(nameof(View.DownFocusableView), typeof(View), typeof(View), null, propertyChanged: (bindable, oldValue, newValue) =>
465         {
466             var view = (View)bindable;
467             if (newValue != null) { view.DownFocusableViewId = (int)(newValue as View)?.GetId(); }
468             else { view.DownFocusableViewId = -1; }
469         },
470         defaultValueCreator: (bindable) =>
471         {
472             var view = (View)bindable;
473             if (view.DownFocusableViewId >= 0) { return view.ConvertIdToView((uint)view.DownFocusableViewId); }
474             return null;
475         });
476         /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
477         [EditorBrowsable(EditorBrowsableState.Never)]
478         public static readonly BindableProperty FocusableProperty = BindableProperty.Create("Focusable", typeof(bool), typeof(View), false, propertyChanged: (bindable, oldValue, newValue) =>
479         {
480             var view = (View)bindable;
481             if (newValue != null) { view.SetKeyboardFocusable((bool)newValue); }
482         },
483         defaultValueCreator: (bindable) =>
484         {
485             var view = (View)bindable;
486             return view.IsKeyboardFocusable();
487         });
488         /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
489         [EditorBrowsable(EditorBrowsableState.Never)]
490         public static readonly BindableProperty Size2DProperty = BindableProperty.Create("Size2D", typeof(Size2D), typeof(View), null, propertyChanged: (bindable, oldValue, newValue) =>
491         {
492             var view = (View)bindable;
493             if (newValue != null)
494             {
495                 Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.SIZE, new Tizen.NUI.PropertyValue(new Size((Size2D)newValue)));
496             }
497         },
498         defaultValueCreator: (bindable) =>
499         {
500             var view = (View)bindable;
501             Size temp = new Size(0.0f, 0.0f, 0.0f);
502             Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.SIZE).Get(temp);
503             Size2D size = new Size2D((int)temp.Width, (int)temp.Height);
504             return size;
505         });
506         /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
507         [EditorBrowsable(EditorBrowsableState.Never)]
508         public static readonly BindableProperty OpacityProperty = BindableProperty.Create("Opacity", typeof(float), typeof(View), default(float), propertyChanged: (bindable, oldValue, newValue) =>
509         {
510             var view = (View)bindable;
511             if (newValue != null)
512             {
513                 Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.OPACITY, new Tizen.NUI.PropertyValue((float)newValue));
514             }
515         },
516         defaultValueCreator: (bindable) =>
517         {
518             var view = (View)bindable;
519             float temp = 0.0f;
520             Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.OPACITY).Get(out temp);
521             return temp;
522         });
523         /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
524         [EditorBrowsable(EditorBrowsableState.Never)]
525         public static readonly BindableProperty Position2DProperty = BindableProperty.Create("Position2D", typeof(Position2D), typeof(View), null, propertyChanged: (bindable, oldValue, newValue) =>
526         {
527             var view = (View)bindable;
528             if (newValue != null)
529             {
530                 Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.POSITION, new Tizen.NUI.PropertyValue(new Position((Position2D)newValue)));
531             }
532         },
533         defaultValueCreator: (bindable) =>
534         {
535             var view = (View)bindable;
536             Position temp = new Position(0.0f, 0.0f, 0.0f);
537             Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.POSITION).Get(temp);
538             return new Position2D(temp);
539         });
540         /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
541         [EditorBrowsable(EditorBrowsableState.Never)]
542         public static readonly BindableProperty PositionUsesPivotPointProperty = BindableProperty.Create("PositionUsesPivotPoint", typeof(bool), typeof(View), true, propertyChanged: (bindable, oldValue, newValue) =>
543         {
544             var view = (View)bindable;
545             if (newValue != null)
546             {
547                 Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.POSITION_USES_ANCHOR_POINT, new Tizen.NUI.PropertyValue((bool)newValue));
548             }
549         },
550         defaultValueCreator: (bindable) =>
551         {
552             var view = (View)bindable;
553             bool temp = false;
554             Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.POSITION_USES_ANCHOR_POINT).Get(out temp);
555             return temp;
556         });
557         /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
558         [EditorBrowsable(EditorBrowsableState.Never)]
559         public static readonly BindableProperty SiblingOrderProperty = BindableProperty.Create("SiblingOrder", typeof(int), typeof(View), default(int), propertyChanged: (bindable, oldValue, newValue) =>
560         {
561             var view = (View)bindable;
562             int value;
563             if (newValue != null)
564             {
565                 value = (int)newValue;
566                 if (value < 0)
567                 {
568                     NUILog.Error("SiblingOrder should be bigger than 0 or equal to 0.");
569                     return;
570                 }
571                 var siblings = view.GetParent()?.Children;
572                 if (siblings != null)
573                 {
574                     int currentOrder = siblings.IndexOf(view);
575                     if (value != currentOrder)
576                     {
577                         if (value == 0) { view.LowerToBottom(); }
578                         else if (value < siblings.Count - 1)
579                         {
580                             if (value > currentOrder) { view.RaiseAbove(siblings[value]); }
581                             else { view.LowerBelow(siblings[value]); }
582                         }
583                         else { view.RaiseToTop(); }
584                     }
585                 }
586             }
587         },
588         defaultValueCreator: (bindable) =>
589         {
590             var view = (View)bindable;
591             var parentChildren = view.GetParent()?.Children;
592             int currentOrder = 0;
593             if (parentChildren != null)
594             {
595                 currentOrder = parentChildren.IndexOf(view);
596
597                 if (currentOrder < 0) { return 0; }
598                 else if (currentOrder < parentChildren.Count) { return currentOrder; }
599             }
600
601             return 0;
602         });
603         /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
604         [EditorBrowsable(EditorBrowsableState.Never)]
605         public static readonly BindableProperty ParentOriginProperty = BindableProperty.Create("ParentOrigin", typeof(Position), typeof(View), null, propertyChanged: (bindable, oldValue, newValue) =>
606         {
607             var view = (View)bindable;
608             if (newValue != null)
609             {
610                 Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.PARENT_ORIGIN, new Tizen.NUI.PropertyValue((Position)newValue));
611             }
612         },
613         defaultValueCreator: (bindable) =>
614         {
615             var view = (View)bindable;
616             Position temp = new Position(0.0f, 0.0f, 0.0f);
617             Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.PARENT_ORIGIN).Get(temp);
618             return temp;
619         }
620         );
621         /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
622         [EditorBrowsable(EditorBrowsableState.Never)]
623         public static readonly BindableProperty PivotPointProperty = BindableProperty.Create("PivotPoint", typeof(Position), typeof(View), null, propertyChanged: (bindable, oldValue, newValue) =>
624         {
625             var view = (View)bindable;
626             if (newValue != null)
627             {
628                 Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.ANCHOR_POINT, new Tizen.NUI.PropertyValue((Position)newValue));
629             }
630         },
631         defaultValueCreator: (bindable) =>
632         {
633             var view = (View)bindable;
634             Position temp = new Position(0.0f, 0.0f, 0.0f);
635             Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.ANCHOR_POINT).Get(temp);
636             return temp;
637         });
638         /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
639         [EditorBrowsable(EditorBrowsableState.Never)]
640         public static readonly BindableProperty SizeWidthProperty = BindableProperty.Create("SizeWidth", typeof(float), typeof(View), default(float), propertyChanged: (bindable, oldValue, newValue) =>
641         {
642             var view = (View)bindable;
643             if (newValue != null)
644             {
645                 Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.SIZE_WIDTH, new Tizen.NUI.PropertyValue((float)newValue));
646             }
647         },
648         defaultValueCreator: (bindable) =>
649         {
650             var view = (View)bindable;
651             float temp = 0.0f;
652             Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.SIZE_WIDTH).Get(out temp);
653             return temp;
654         });
655         /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
656         [EditorBrowsable(EditorBrowsableState.Never)]
657         public static readonly BindableProperty SizeHeightProperty = BindableProperty.Create("SizeHeight", typeof(float), typeof(View), default(float), propertyChanged: (bindable, oldValue, newValue) =>
658         {
659             var view = (View)bindable;
660             if (newValue != null)
661             {
662                 Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.SIZE_HEIGHT, new Tizen.NUI.PropertyValue((float)newValue));
663             }
664         },
665         defaultValueCreator: (bindable) =>
666         {
667             var view = (View)bindable;
668             float temp = 0.0f;
669             Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.SIZE_HEIGHT).Get(out temp);
670             return temp;
671         });
672         /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
673         [EditorBrowsable(EditorBrowsableState.Never)]
674         public static readonly BindableProperty PositionProperty = BindableProperty.Create("Position", typeof(Position), typeof(View), null, propertyChanged: (bindable, oldValue, newValue) =>
675         {
676             var view = (View)bindable;
677             if (newValue != null)
678             {
679                 Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.POSITION, new Tizen.NUI.PropertyValue((Position)newValue));
680             }
681         },
682         defaultValueCreator: (bindable) =>
683         {
684             var view = (View)bindable;
685             Position temp = new Position(0.0f, 0.0f, 0.0f);
686             Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.POSITION).Get(temp);
687             return temp;
688         });
689         /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
690         [EditorBrowsable(EditorBrowsableState.Never)]
691         public static readonly BindableProperty PositionXProperty = BindableProperty.Create("PositionX", typeof(float), typeof(View), default(float), propertyChanged: (bindable, oldValue, newValue) =>
692         {
693             var view = (View)bindable;
694             if (newValue != null)
695             {
696                 Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.POSITION_X, new Tizen.NUI.PropertyValue((float)newValue));
697             }
698         },
699         defaultValueCreator: (bindable) =>
700         {
701             var view = (View)bindable;
702             float temp = 0.0f;
703             Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.POSITION_X).Get(out temp);
704             return temp;
705         });
706         /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
707         [EditorBrowsable(EditorBrowsableState.Never)]
708         public static readonly BindableProperty PositionYProperty = BindableProperty.Create("PositionY", typeof(float), typeof(View), default(float), propertyChanged: (bindable, oldValue, newValue) =>
709         {
710             var view = (View)bindable;
711             if (newValue != null)
712             {
713                 Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.POSITION_Y, new Tizen.NUI.PropertyValue((float)newValue));
714             }
715         },
716         defaultValueCreator: (bindable) =>
717         {
718             var view = (View)bindable;
719             float temp = 0.0f;
720             Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.POSITION_Y).Get(out temp);
721             return temp;
722         });
723         /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
724         [EditorBrowsable(EditorBrowsableState.Never)]
725         public static readonly BindableProperty PositionZProperty = BindableProperty.Create("PositionZ", typeof(float), typeof(View), default(float), propertyChanged: (bindable, oldValue, newValue) =>
726         {
727             var view = (View)bindable;
728             if (newValue != null)
729             {
730                 Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.POSITION_Z, new Tizen.NUI.PropertyValue((float)newValue));
731             }
732         },
733         defaultValueCreator: (bindable) =>
734         {
735             var view = (View)bindable;
736             float temp = 0.0f;
737             Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.POSITION_Z).Get(out temp);
738             return temp;
739         });
740         /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
741         [EditorBrowsable(EditorBrowsableState.Never)]
742         public static readonly BindableProperty OrientationProperty = BindableProperty.Create("Orientation", typeof(Rotation), typeof(View), null, propertyChanged: (bindable, oldValue, newValue) =>
743         {
744             var view = (View)bindable;
745             if (newValue != null)
746             {
747                 Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.ORIENTATION, new Tizen.NUI.PropertyValue((Rotation)newValue));
748             }
749         },
750         defaultValueCreator: (bindable) =>
751         {
752             var view = (View)bindable;
753             Rotation temp = new Rotation();
754             Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.ORIENTATION).Get(temp);
755             return temp;
756         });
757         /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
758         [EditorBrowsable(EditorBrowsableState.Never)]
759         public static readonly BindableProperty ScaleProperty = BindableProperty.Create("Scale", typeof(Vector3), typeof(View), null, propertyChanged: (bindable, oldValue, newValue) =>
760         {
761             var view = (View)bindable;
762             if (newValue != null)
763             {
764                 Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.SCALE, new Tizen.NUI.PropertyValue((Vector3)newValue));
765             }
766         },
767         defaultValueCreator: (bindable) =>
768         {
769             var view = (View)bindable;
770             Vector3 temp = new Vector3(0.0f, 0.0f, 0.0f);
771             Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.SCALE).Get(temp);
772             return temp;
773         });
774         /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
775         [EditorBrowsable(EditorBrowsableState.Never)]
776         public static readonly BindableProperty ScaleXProperty = BindableProperty.Create("ScaleX", typeof(float), typeof(View), default(float), propertyChanged: (bindable, oldValue, newValue) =>
777         {
778             var view = (View)bindable;
779             if (newValue != null)
780             {
781                 Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.SCALE_X, new Tizen.NUI.PropertyValue((float)newValue));
782             }
783         },
784         defaultValueCreator: (bindable) =>
785         {
786             var view = (View)bindable;
787             float temp = 0.0f;
788             Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.SCALE_X).Get(out temp);
789             return temp;
790         });
791         /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
792         [EditorBrowsable(EditorBrowsableState.Never)]
793         public static readonly BindableProperty ScaleYProperty = BindableProperty.Create("ScaleY", typeof(float), typeof(View), default(float), propertyChanged: (bindable, oldValue, newValue) =>
794         {
795             var view = (View)bindable;
796             if (newValue != null)
797             {
798                 Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.SCALE_Y, new Tizen.NUI.PropertyValue((float)newValue));
799             }
800         },
801         defaultValueCreator: (bindable) =>
802         {
803             var view = (View)bindable;
804             float temp = 0.0f;
805             Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.SCALE_Y).Get(out temp);
806             return temp;
807         });
808         /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
809         [EditorBrowsable(EditorBrowsableState.Never)]
810         public static readonly BindableProperty ScaleZProperty = BindableProperty.Create("ScaleZ", typeof(float), typeof(View), default(float), propertyChanged: (bindable, oldValue, newValue) =>
811         {
812             var view = (View)bindable;
813             if (newValue != null)
814             {
815                 Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.SCALE_Z, new Tizen.NUI.PropertyValue((float)newValue));
816             }
817         },
818         defaultValueCreator: (bindable) =>
819         {
820             var view = (View)bindable;
821             float temp = 0.0f;
822             Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.SCALE_Z).Get(out temp);
823             return temp;
824         });
825         /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
826         [EditorBrowsable(EditorBrowsableState.Never)]
827         public static readonly BindableProperty NameProperty = BindableProperty.Create("Name", typeof(string), typeof(View), string.Empty, propertyChanged: (bindable, oldValue, newValue) =>
828         {
829             var view = (View)bindable;
830             if (newValue != null)
831             {
832                 Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.NAME, new Tizen.NUI.PropertyValue((string)newValue));
833             }
834         },
835         defaultValueCreator: (bindable) =>
836         {
837             var view = (View)bindable;
838             string temp;
839             Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.NAME).Get(out temp);
840             return temp;
841         });
842         /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
843         [EditorBrowsable(EditorBrowsableState.Never)]
844         public static readonly BindableProperty SensitiveProperty = BindableProperty.Create("Sensitive", typeof(bool), typeof(View), false, propertyChanged: (bindable, oldValue, newValue) =>
845         {
846             var view = (View)bindable;
847             if (newValue != null)
848             {
849                 Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.SENSITIVE, new Tizen.NUI.PropertyValue((bool)newValue));
850             }
851         },
852         defaultValueCreator: (bindable) =>
853         {
854             var view = (View)bindable;
855             bool temp = false;
856             Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.SENSITIVE).Get(out temp);
857             return temp;
858         });
859         /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
860         [EditorBrowsable(EditorBrowsableState.Never)]
861         public static readonly BindableProperty LeaveRequiredProperty = BindableProperty.Create("LeaveRequired", typeof(bool), typeof(View), false, propertyChanged: (bindable, oldValue, newValue) =>
862         {
863             var view = (View)bindable;
864             if (newValue != null)
865             {
866                 Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.LEAVE_REQUIRED, new Tizen.NUI.PropertyValue((bool)newValue));
867             }
868         },
869         defaultValueCreator: (bindable) =>
870         {
871             var view = (View)bindable;
872             bool temp = false;
873             Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.LEAVE_REQUIRED).Get(out temp);
874             return temp;
875         });
876         /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
877         [EditorBrowsable(EditorBrowsableState.Never)]
878         public static readonly BindableProperty InheritOrientationProperty = BindableProperty.Create("InheritOrientation", typeof(bool), typeof(View), false, propertyChanged: (bindable, oldValue, newValue) =>
879         {
880             var view = (View)bindable;
881             if (newValue != null)
882             {
883                 Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.INHERIT_ORIENTATION, new Tizen.NUI.PropertyValue((bool)newValue));
884             }
885         },
886         defaultValueCreator: (bindable) =>
887         {
888             var view = (View)bindable;
889             bool temp = false;
890             Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.INHERIT_ORIENTATION).Get(out temp);
891             return temp;
892         });
893         /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
894         [EditorBrowsable(EditorBrowsableState.Never)]
895         public static readonly BindableProperty InheritScaleProperty = BindableProperty.Create("InheritScale", typeof(bool), typeof(View), false, propertyChanged: (bindable, oldValue, newValue) =>
896         {
897             var view = (View)bindable;
898             if (newValue != null)
899             {
900                 Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.INHERIT_SCALE, new Tizen.NUI.PropertyValue((bool)newValue));
901             }
902         },
903         defaultValueCreator: (bindable) =>
904         {
905             var view = (View)bindable;
906             bool temp = false;
907             Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.INHERIT_SCALE).Get(out temp);
908             return temp;
909         });
910         /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
911         [EditorBrowsable(EditorBrowsableState.Never)]
912         public static readonly BindableProperty DrawModeProperty = BindableProperty.Create("DrawMode", typeof(DrawModeType), typeof(View), DrawModeType.Normal, propertyChanged: (bindable, oldValue, newValue) =>
913         {
914             var view = (View)bindable;
915             if (newValue != null)
916             {
917                 Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.DRAW_MODE, new Tizen.NUI.PropertyValue((int)newValue));
918             }
919         },
920         defaultValueCreator: (bindable) =>
921         {
922             var view = (View)bindable;
923             string temp;
924             if (Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.DRAW_MODE).Get(out temp) == false)
925             {
926                 NUILog.Error("DrawMode get error!");
927             }
928             switch (temp)
929             {
930                 case "NORMAL": return DrawModeType.Normal;
931                 case "OVERLAY_2D": return DrawModeType.Overlay2D;
932 #pragma warning disable CS0618 // Disable deprecated warning as we do need to use the deprecated API here.
933                 case "STENCIL": return DrawModeType.Stencil;
934 #pragma warning restore CS0618
935                 default: return DrawModeType.Normal;
936             }
937         });
938         /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
939         [EditorBrowsable(EditorBrowsableState.Never)]
940         public static readonly BindableProperty SizeModeFactorProperty = BindableProperty.Create("SizeModeFactor", typeof(Vector3), typeof(View), null, propertyChanged: (bindable, oldValue, newValue) =>
941         {
942             var view = (View)bindable;
943             if (newValue != null)
944             {
945                 Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.SIZE_MODE_FACTOR, new Tizen.NUI.PropertyValue((Vector3)newValue));
946             }
947         },
948         defaultValueCreator: (bindable) =>
949         {
950             var view = (View)bindable;
951             Vector3 temp = new Vector3(0.0f, 0.0f, 0.0f);
952             Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.SIZE_MODE_FACTOR).Get(temp);
953             return temp;
954         });
955         /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
956         [EditorBrowsable(EditorBrowsableState.Never)]
957         public static readonly BindableProperty WidthResizePolicyProperty = BindableProperty.Create("WidthResizePolicy", typeof(ResizePolicyType), typeof(View), ResizePolicyType.Fixed, propertyChanged: (bindable, oldValue, newValue) =>
958         {
959             var view = (View)bindable;
960             if (newValue != null)
961             {
962                 Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.WIDTH_RESIZE_POLICY, new Tizen.NUI.PropertyValue((int)newValue));
963             }
964         },
965         defaultValueCreator: (bindable) =>
966         {
967             var view = (View)bindable;
968             string temp;
969             if (Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.WIDTH_RESIZE_POLICY).Get(out temp) == false)
970             {
971                 NUILog.Error("WidthResizePolicy get error!");
972             }
973             switch (temp)
974             {
975                 case "FIXED": return ResizePolicyType.Fixed;
976                 case "USE_NATURAL_SIZE": return ResizePolicyType.UseNaturalSize;
977                 case "FILL_TO_PARENT": return ResizePolicyType.FillToParent;
978                 case "SIZE_RELATIVE_TO_PARENT": return ResizePolicyType.SizeRelativeToParent;
979                 case "SIZE_FIXED_OFFSET_FROM_PARENT": return ResizePolicyType.SizeFixedOffsetFromParent;
980                 case "FIT_TO_CHILDREN": return ResizePolicyType.FitToChildren;
981                 case "DIMENSION_DEPENDENCY": return ResizePolicyType.DimensionDependency;
982                 case "USE_ASSIGNED_SIZE": return ResizePolicyType.UseAssignedSize;
983                 default: return ResizePolicyType.Fixed;
984             }
985         });
986         /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
987         [EditorBrowsable(EditorBrowsableState.Never)]
988         public static readonly BindableProperty HeightResizePolicyProperty = BindableProperty.Create("HeightResizePolicy", typeof(ResizePolicyType), typeof(View), ResizePolicyType.Fixed, propertyChanged: (bindable, oldValue, newValue) =>
989         {
990             var view = (View)bindable;
991             if (newValue != null)
992             {
993                 Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.HEIGHT_RESIZE_POLICY, new Tizen.NUI.PropertyValue((int)newValue));
994             }
995         },
996         defaultValueCreator: (bindable) =>
997         {
998             var view = (View)bindable;
999             string temp;
1000             if (Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.HEIGHT_RESIZE_POLICY).Get(out temp) == false)
1001             {
1002                 NUILog.Error("HeightResizePolicy get error!");
1003             }
1004             switch (temp)
1005             {
1006                 case "FIXED": return ResizePolicyType.Fixed;
1007                 case "USE_NATURAL_SIZE": return ResizePolicyType.UseNaturalSize;
1008                 case "FILL_TO_PARENT": return ResizePolicyType.FillToParent;
1009                 case "SIZE_RELATIVE_TO_PARENT": return ResizePolicyType.SizeRelativeToParent;
1010                 case "SIZE_FIXED_OFFSET_FROM_PARENT": return ResizePolicyType.SizeFixedOffsetFromParent;
1011                 case "FIT_TO_CHILDREN": return ResizePolicyType.FitToChildren;
1012                 case "DIMENSION_DEPENDENCY": return ResizePolicyType.DimensionDependency;
1013                 case "USE_ASSIGNED_SIZE": return ResizePolicyType.UseAssignedSize;
1014                 default: return ResizePolicyType.Fixed;
1015             }
1016         });
1017         /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
1018         [EditorBrowsable(EditorBrowsableState.Never)]
1019         public static readonly BindableProperty SizeScalePolicyProperty = BindableProperty.Create("SizeScalePolicy", typeof(SizeScalePolicyType), typeof(View), SizeScalePolicyType.UseSizeSet, propertyChanged: (bindable, oldValue, newValue) =>
1020         {
1021             var view = (View)bindable;
1022             string valueToString = "";
1023             if (newValue != null)
1024             {
1025                 switch ((SizeScalePolicyType)newValue)
1026                 {
1027                     case SizeScalePolicyType.UseSizeSet: { valueToString = "USE_SIZE_SET"; break; }
1028                     case SizeScalePolicyType.FitWithAspectRatio: { valueToString = "FIT_WITH_ASPECT_RATIO"; break; }
1029                     case SizeScalePolicyType.FillWithAspectRatio: { valueToString = "FILL_WITH_ASPECT_RATIO"; break; }
1030                     default: { valueToString = "USE_SIZE_SET"; break; }
1031                 }
1032                 Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.SIZE_SCALE_POLICY, new Tizen.NUI.PropertyValue(valueToString));
1033             }
1034         },
1035         defaultValueCreator: (bindable) =>
1036         {
1037             var view = (View)bindable;
1038             string temp;
1039             if (Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.SIZE_SCALE_POLICY).Get(out temp) == false)
1040             {
1041                 NUILog.Error("SizeScalePolicy get error!");
1042             }
1043             switch (temp)
1044             {
1045                 case "USE_SIZE_SET": return SizeScalePolicyType.UseSizeSet;
1046                 case "FIT_WITH_ASPECT_RATIO": return SizeScalePolicyType.FitWithAspectRatio;
1047                 case "FILL_WITH_ASPECT_RATIO": return SizeScalePolicyType.FillWithAspectRatio;
1048                 default: return SizeScalePolicyType.UseSizeSet;
1049             }
1050         });
1051         /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
1052         [EditorBrowsable(EditorBrowsableState.Never)]
1053         public static readonly BindableProperty WidthForHeightProperty = BindableProperty.Create("WidthForHeight", typeof(bool), typeof(View), false, propertyChanged: (bindable, oldValue, newValue) =>
1054         {
1055             var view = (View)bindable;
1056             if (newValue != null)
1057             {
1058                 Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.WIDTH_FOR_HEIGHT, new Tizen.NUI.PropertyValue((bool)newValue));
1059             }
1060         },
1061         defaultValueCreator: (bindable) =>
1062         {
1063             var view = (View)bindable;
1064             bool temp = false;
1065             Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.WIDTH_FOR_HEIGHT).Get(out temp);
1066             return temp;
1067         });
1068         /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
1069         [EditorBrowsable(EditorBrowsableState.Never)]
1070         public static readonly BindableProperty HeightForWidthProperty = BindableProperty.Create("HeightForWidth", typeof(bool), typeof(View), false, propertyChanged: (bindable, oldValue, newValue) =>
1071         {
1072             var view = (View)bindable;
1073             if (newValue != null)
1074             {
1075                 Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.HEIGHT_FOR_WIDTH, new Tizen.NUI.PropertyValue((bool)newValue));
1076             }
1077         },
1078         defaultValueCreator: (bindable) =>
1079         {
1080             var view = (View)bindable;
1081             bool temp = false;
1082             Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.HEIGHT_FOR_WIDTH).Get(out temp);
1083             return temp;
1084         });
1085         /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
1086         [EditorBrowsable(EditorBrowsableState.Never)]
1087         public static readonly BindableProperty PaddingProperty = BindableProperty.Create("Padding", typeof(Extents), typeof(View), null, propertyChanged: (bindable, oldValue, newValue) =>
1088         {
1089             var view = (View)bindable;
1090             if (newValue != null)
1091             {
1092                 Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.PADDING, new Tizen.NUI.PropertyValue((Extents)newValue));
1093             }
1094         },
1095         defaultValueCreator: (bindable) =>
1096         {
1097             var view = (View)bindable;
1098             Extents temp = new Extents(0, 0, 0, 0);
1099             Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.PADDING).Get(temp);
1100             return temp;
1101         });
1102         /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
1103         [EditorBrowsable(EditorBrowsableState.Never)]
1104         public static readonly BindableProperty SizeProperty = BindableProperty.Create("Size", typeof(Size), typeof(View), null, propertyChanged: (bindable, oldValue, newValue) =>
1105         {
1106             var view = (View)bindable;
1107             if (newValue != null)
1108             {
1109                 Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.SIZE, new Tizen.NUI.PropertyValue((Size)newValue));
1110             }
1111         },
1112         defaultValueCreator: (bindable) =>
1113         {
1114             var view = (View)bindable;
1115             Size temp = new Size(0, 0, 0);
1116             Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.SIZE).Get(temp);
1117             return temp;
1118         });
1119         /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
1120         [EditorBrowsable(EditorBrowsableState.Never)]
1121         public static readonly BindableProperty MinimumSizeProperty = BindableProperty.Create("MinimumSize", typeof(Size2D), typeof(View), null, propertyChanged: (bindable, oldValue, newValue) =>
1122         {
1123             var view = (View)bindable;
1124             if (newValue != null)
1125             {
1126                 Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.MINIMUM_SIZE, new Tizen.NUI.PropertyValue((Size2D)newValue));
1127             }
1128         },
1129         defaultValueCreator: (bindable) =>
1130         {
1131             var view = (View)bindable;
1132             Size2D temp = new Size2D(0, 0);
1133             Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.MINIMUM_SIZE).Get(temp);
1134             return temp;
1135         });
1136         /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
1137         [EditorBrowsable(EditorBrowsableState.Never)]
1138         public static readonly BindableProperty MaximumSizeProperty = BindableProperty.Create("MaximumSize", typeof(Size2D), typeof(View), null, propertyChanged: (bindable, oldValue, newValue) =>
1139         {
1140             var view = (View)bindable;
1141             if (newValue != null)
1142             {
1143                 Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.MAXIMUM_SIZE, new Tizen.NUI.PropertyValue((Size2D)newValue));
1144             }
1145         },
1146         defaultValueCreator: (bindable) =>
1147         {
1148             var view = (View)bindable;
1149             Size2D temp = new Size2D(0, 0);
1150             Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.MAXIMUM_SIZE).Get(temp);
1151             return temp;
1152         });
1153         /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
1154         [EditorBrowsable(EditorBrowsableState.Never)]
1155         public static readonly BindableProperty InheritPositionProperty = BindableProperty.Create("InheritPosition", typeof(bool), typeof(View), false, propertyChanged: (bindable, oldValue, newValue) =>
1156         {
1157             var view = (View)bindable;
1158             if (newValue != null)
1159             {
1160                 Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.INHERIT_POSITION, new Tizen.NUI.PropertyValue((bool)newValue));
1161             }
1162         },
1163         defaultValueCreator: (bindable) =>
1164         {
1165             var view = (View)bindable;
1166             bool temp = false;
1167             Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.INHERIT_POSITION).Get(out temp);
1168             return temp;
1169         });
1170         /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
1171         [EditorBrowsable(EditorBrowsableState.Never)]
1172         public static readonly BindableProperty ClippingModeProperty = BindableProperty.Create("ClippingMode", typeof(ClippingModeType), typeof(View), ClippingModeType.Disabled, propertyChanged: (bindable, oldValue, newValue) =>
1173         {
1174             var view = (View)bindable;
1175             if (newValue != null)
1176             {
1177                 Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.CLIPPING_MODE, new Tizen.NUI.PropertyValue((int)newValue));
1178             }
1179         },
1180         defaultValueCreator: (bindable) =>
1181         {
1182             var view = (View)bindable;
1183             int temp = 0;
1184             if (Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.CLIPPING_MODE).Get(out temp) == false)
1185             {
1186                 NUILog.Error("ClippingMode get error!");
1187             }
1188             return (ClippingModeType)temp;
1189         });
1190         /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
1191         [EditorBrowsable(EditorBrowsableState.Never)]
1192         public static readonly BindableProperty InheritLayoutDirectionProperty = BindableProperty.Create("InheritLayoutDirection", typeof(bool), typeof(View), false, propertyChanged: (bindable, oldValue, newValue) =>
1193         {
1194             var view = (View)bindable;
1195             if (newValue != null)
1196             {
1197                 Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.INHERIT_LAYOUT_DIRECTION, new Tizen.NUI.PropertyValue((bool)newValue));
1198             }
1199         },
1200         defaultValueCreator: (bindable) =>
1201         {
1202             var view = (View)bindable;
1203             bool temp = false;
1204             Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.INHERIT_LAYOUT_DIRECTION).Get(out temp);
1205             return temp;
1206         });
1207         /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
1208         [EditorBrowsable(EditorBrowsableState.Never)]
1209         public static readonly BindableProperty LayoutDirectionProperty = BindableProperty.Create("LayoutDirection", typeof(ViewLayoutDirectionType), typeof(View), ViewLayoutDirectionType.LTR, propertyChanged: (bindable, oldValue, newValue) =>
1210         {
1211             var view = (View)bindable;
1212             if (newValue != null)
1213             {
1214                 Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.LAYOUT_DIRECTION, new Tizen.NUI.PropertyValue((int)newValue));
1215             }
1216         },
1217         defaultValueCreator: (bindable) =>
1218         {
1219             var view = (View)bindable;
1220             int temp;
1221             if (false == Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.LAYOUT_DIRECTION).Get(out temp))
1222             {
1223                 NUILog.Error("LAYOUT_DIRECTION get error!");
1224             }
1225             return (ViewLayoutDirectionType)temp;
1226         });
1227         /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
1228         [EditorBrowsable(EditorBrowsableState.Never)]
1229         public static readonly BindableProperty MarginProperty = BindableProperty.Create("Margin", typeof(Extents), typeof(View), null, propertyChanged: (bindable, oldValue, newValue) =>
1230         {
1231             var view = (View)bindable;
1232             if (newValue != null)
1233             {
1234                 Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.MARGIN, new Tizen.NUI.PropertyValue((Extents)newValue));
1235             }
1236         },
1237         defaultValueCreator: (bindable) =>
1238         {
1239             var view = (View)bindable;
1240             Extents temp = new Extents(0, 0, 0, 0);
1241             Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.MARGIN).Get(temp);
1242             return temp;
1243         });
1244         /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
1245         [EditorBrowsable(EditorBrowsableState.Never)]
1246         public static readonly BindableProperty StyleProperty = BindableProperty.Create("Style", typeof(Style), typeof(View), default(Style), propertyChanged: (bindable, oldvalue, newvalue) => ((View)bindable)._mergedStyle.Style = (Style)newvalue);
1247
1248         internal readonly MergedStyle _mergedStyle;
1249         /// <summary>
1250         /// Flag to allow Layouting to be disabled for Views.
1251         /// Once a View has a Layout set then any children added to Views from then on will receive
1252         /// automatic Layouts.
1253         /// </summary>
1254         private static bool layoutingDisabled = true;
1255         private global::System.Runtime.InteropServices.HandleRef swigCPtr;
1256
1257         private bool layoutSet = false; // Flag to indicate if SetLayout was called or View was automatically given a Layout
1258         private bool _backgroundImageSynchronosLoading = false;
1259         private EventHandler _offWindowEventHandler;
1260         private OffWindowEventCallbackType _offWindowEventCallback;
1261         private EventHandlerWithReturnType<object, WheelEventArgs, bool> _wheelEventHandler;
1262         private WheelEventCallbackType _wheelEventCallback;
1263         private EventHandlerWithReturnType<object, KeyEventArgs, bool> _keyEventHandler;
1264         private KeyCallbackType _keyCallback;
1265         private EventHandlerWithReturnType<object, TouchEventArgs, bool> _touchDataEventHandler;
1266         private TouchDataCallbackType _touchDataCallback;
1267         private EventHandlerWithReturnType<object, HoverEventArgs, bool> _hoverEventHandler;
1268         private HoverEventCallbackType _hoverEventCallback;
1269         private EventHandler<VisibilityChangedEventArgs> _visibilityChangedEventHandler;
1270         private VisibilityChangedEventCallbackType _visibilityChangedEventCallback;
1271         private EventHandler _keyInputFocusGainedEventHandler;
1272         private KeyInputFocusGainedCallbackType _keyInputFocusGainedCallback;
1273         private EventHandler _keyInputFocusLostEventHandler;
1274         private KeyInputFocusLostCallbackType _keyInputFocusLostCallback;
1275         private EventHandler _onRelayoutEventHandler;
1276         private OnRelayoutEventCallbackType _onRelayoutEventCallback;
1277         private EventHandler _onWindowEventHandler;
1278         private OnWindowEventCallbackType _onWindowEventCallback;
1279         private EventHandler<LayoutDirectionChangedEventArgs> _layoutDirectionChangedEventHandler;
1280         private LayoutDirectionChangedEventCallbackType _layoutDirectionChangedEventCallback;
1281         // Resource Ready Signal
1282         private EventHandler _resourcesLoadedEventHandler;
1283         private ResourcesLoadedCallbackType _ResourcesLoadedCallback;
1284         private EventHandler<BackgroundResourceLoadedEventArgs> _backgroundResourceLoadedEventHandler;
1285         private _backgroundResourceLoadedCallbackType _backgroundResourceLoadedCallback;
1286
1287         private OnWindowEventCallbackType _onWindowSendEventCallback;
1288
1289         private void SendViewAddedEventToWindow(IntPtr data)
1290         {
1291             Window.Instance.SendViewAdded(this);
1292         }
1293
1294         /// <summary>
1295         /// Creates a new instance of a view.
1296         /// </summary>
1297         /// <since_tizen> 3 </since_tizen>
1298         public View() : this(NDalicPINVOKE.View_New(), true)
1299         {
1300             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
1301         }
1302         internal View(View uiControl) : this(NDalicPINVOKE.new_View__SWIG_1(View.getCPtr(uiControl)), true)
1303         {
1304             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
1305         }
1306
1307         internal View(global::System.IntPtr cPtr, bool cMemoryOwn) : base(NDalicPINVOKE.View_SWIGUpcast(cPtr), cMemoryOwn)
1308         {
1309             swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
1310             if (HasBody())
1311             {
1312                 PositionUsesPivotPoint = false;
1313             }
1314             _mergedStyle = new MergedStyle(GetType(), this);
1315
1316             _onWindowSendEventCallback = SendViewAddedEventToWindow;
1317             this.OnWindowSignal().Connect(_onWindowSendEventCallback);
1318         }
1319
1320         internal View(ViewImpl implementation) : this(NDalicPINVOKE.new_View__SWIG_2(ViewImpl.getCPtr(implementation)), true)
1321         {
1322             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
1323         }
1324
1325         [UnmanagedFunctionPointer(CallingConvention.StdCall)]
1326         private delegate void OffWindowEventCallbackType(IntPtr control);
1327         [UnmanagedFunctionPointer(CallingConvention.StdCall)]
1328         private delegate bool WheelEventCallbackType(IntPtr view, IntPtr wheelEvent);
1329         [UnmanagedFunctionPointer(CallingConvention.StdCall)]
1330         private delegate bool KeyCallbackType(IntPtr control, IntPtr keyEvent);
1331         [UnmanagedFunctionPointer(CallingConvention.StdCall)]
1332         private delegate bool TouchDataCallbackType(IntPtr view, IntPtr touchData);
1333         [UnmanagedFunctionPointer(CallingConvention.StdCall)]
1334         private delegate bool HoverEventCallbackType(IntPtr view, IntPtr hoverEvent);
1335         [UnmanagedFunctionPointer(CallingConvention.StdCall)]
1336         private delegate void VisibilityChangedEventCallbackType(IntPtr data, bool visibility, VisibilityChangeType type);
1337         [UnmanagedFunctionPointer(CallingConvention.StdCall)]
1338         private delegate void ResourcesLoadedCallbackType(IntPtr control);
1339         [UnmanagedFunctionPointer(CallingConvention.StdCall)]
1340         private delegate void _backgroundResourceLoadedCallbackType(IntPtr view);
1341         [UnmanagedFunctionPointer(CallingConvention.StdCall)]
1342         private delegate void KeyInputFocusGainedCallbackType(IntPtr control);
1343         [UnmanagedFunctionPointer(CallingConvention.StdCall)]
1344         private delegate void KeyInputFocusLostCallbackType(IntPtr control);
1345         [UnmanagedFunctionPointer(CallingConvention.StdCall)]
1346         private delegate void OnRelayoutEventCallbackType(IntPtr control);
1347         [UnmanagedFunctionPointer(CallingConvention.StdCall)]
1348         private delegate void OnWindowEventCallbackType(IntPtr control);
1349         [UnmanagedFunctionPointer(CallingConvention.StdCall)]
1350         private delegate void LayoutDirectionChangedEventCallbackType(IntPtr data, ViewLayoutDirectionType type);
1351
1352         /// <summary>
1353         /// Event when a child is removed.
1354         /// </summary>
1355         /// <since_tizen> 5 </since_tizen>
1356         public new event EventHandler<ChildRemovedEventArgs> ChildRemoved;
1357         /// <summary>
1358         /// Event when a child is added.
1359         /// </summary>
1360         /// <since_tizen> 5 </since_tizen>
1361         public new event EventHandler<ChildAddedEventArgs> ChildAdded;
1362
1363         /// <summary>
1364         /// An event for the KeyInputFocusGained signal which can be used to subscribe or unsubscribe the event handler provided by the user.<br />
1365         /// The KeyInputFocusGained signal is emitted when the control gets the key input focus.<br />
1366         /// </summary>
1367         /// <since_tizen> 3 </since_tizen>
1368         public event EventHandler FocusGained
1369         {
1370             add
1371             {
1372                 if (_keyInputFocusGainedEventHandler == null)
1373                 {
1374                     _keyInputFocusGainedCallback = OnKeyInputFocusGained;
1375                     this.KeyInputFocusGainedSignal().Connect(_keyInputFocusGainedCallback);
1376                 }
1377
1378                 _keyInputFocusGainedEventHandler += value;
1379             }
1380
1381             remove
1382             {
1383                 _keyInputFocusGainedEventHandler -= value;
1384
1385                 if (_keyInputFocusGainedEventHandler == null && KeyInputFocusGainedSignal().Empty() == false)
1386                 {
1387                     this.KeyInputFocusGainedSignal().Disconnect(_keyInputFocusGainedCallback);
1388                 }
1389             }
1390         }
1391
1392         /// <summary>
1393         /// An event for the KeyInputFocusLost signal which can be used to subscribe or unsubscribe the event handler provided by the user.<br />
1394         /// The KeyInputFocusLost signal is emitted when the control loses the key input focus.<br />
1395         /// </summary>
1396         /// <since_tizen> 3 </since_tizen>
1397         public event EventHandler FocusLost
1398         {
1399             add
1400             {
1401                 if (_keyInputFocusLostEventHandler == null)
1402                 {
1403                     _keyInputFocusLostCallback = OnKeyInputFocusLost;
1404                     this.KeyInputFocusLostSignal().Connect(_keyInputFocusLostCallback);
1405                 }
1406
1407                 _keyInputFocusLostEventHandler += value;
1408             }
1409
1410             remove
1411             {
1412                 _keyInputFocusLostEventHandler -= value;
1413
1414                 if (_keyInputFocusLostEventHandler == null && KeyInputFocusLostSignal().Empty() == false)
1415                 {
1416                     this.KeyInputFocusLostSignal().Disconnect(_keyInputFocusLostCallback);
1417                 }
1418             }
1419         }
1420
1421         /// <summary>
1422         /// An event for the KeyPressed signal which can be used to subscribe or unsubscribe the event handler provided by the user.<br />
1423         /// The KeyPressed signal is emitted when the key event is received.<br />
1424         /// </summary>
1425         /// <since_tizen> 3 </since_tizen>
1426         public event EventHandlerWithReturnType<object, KeyEventArgs, bool> KeyEvent
1427         {
1428             add
1429             {
1430                 if (_keyEventHandler == null)
1431                 {
1432                     _keyCallback = OnKeyEvent;
1433                     this.KeyEventSignal().Connect(_keyCallback);
1434                 }
1435
1436                 _keyEventHandler += value;
1437             }
1438
1439             remove
1440             {
1441                 _keyEventHandler -= value;
1442
1443                 if (_keyEventHandler == null && KeyEventSignal().Empty() == false)
1444                 {
1445                     this.KeyEventSignal().Disconnect(_keyCallback);
1446                 }
1447             }
1448         }
1449
1450         /// <summary>
1451         /// An event for the OnRelayout signal which can be used to subscribe or unsubscribe the event handler.<br />
1452         /// The OnRelayout signal is emitted after the size has been set on the view during relayout.<br />
1453         /// </summary>
1454         /// <since_tizen> 3 </since_tizen>
1455         public event EventHandler Relayout
1456         {
1457             add
1458             {
1459                 if (_onRelayoutEventHandler == null)
1460                 {
1461                     _onRelayoutEventCallback = OnRelayout;
1462                     this.OnRelayoutSignal().Connect(_onRelayoutEventCallback);
1463                 }
1464
1465                 _onRelayoutEventHandler += value;
1466             }
1467
1468             remove
1469             {
1470                 _onRelayoutEventHandler -= value;
1471
1472                 if (_onRelayoutEventHandler == null && OnRelayoutSignal().Empty() == false)
1473                 {
1474                     this.OnRelayoutSignal().Disconnect(_onRelayoutEventCallback);
1475                 }
1476
1477             }
1478         }
1479
1480         /// <summary>
1481         /// An event for the touched signal which can be used to subscribe or unsubscribe the event handler provided by the user.<br />
1482         /// The touched signal is emitted when the touch input is received.<br />
1483         /// </summary>
1484         /// <since_tizen> 3 </since_tizen>
1485         public event EventHandlerWithReturnType<object, TouchEventArgs, bool> TouchEvent
1486         {
1487             add
1488             {
1489                 if (_touchDataEventHandler == null)
1490                 {
1491                     _touchDataCallback = OnTouch;
1492                     this.TouchSignal().Connect(_touchDataCallback);
1493                 }
1494
1495                 _touchDataEventHandler += value;
1496             }
1497
1498             remove
1499             {
1500                 _touchDataEventHandler -= value;
1501
1502                 if (_touchDataEventHandler == null && TouchSignal().Empty() == false)
1503                 {
1504                     this.TouchSignal().Disconnect(_touchDataCallback);
1505                 }
1506
1507             }
1508         }
1509
1510         /// <summary>
1511         /// An event for the hovered signal which can be used to subscribe or unsubscribe the event handler provided by the user.<br />
1512         /// The hovered signal is emitted when the hover input is received.<br />
1513         /// </summary>
1514         /// <since_tizen> 3 </since_tizen>
1515         public event EventHandlerWithReturnType<object, HoverEventArgs, bool> HoverEvent
1516         {
1517             add
1518             {
1519                 if (_hoverEventHandler == null)
1520                 {
1521                     _hoverEventCallback = OnHoverEvent;
1522                     this.HoveredSignal().Connect(_hoverEventCallback);
1523                 }
1524
1525                 _hoverEventHandler += value;
1526             }
1527
1528             remove
1529             {
1530                 _hoverEventHandler -= value;
1531
1532                 if (_hoverEventHandler == null && HoveredSignal().Empty() == false)
1533                 {
1534                     this.HoveredSignal().Disconnect(_hoverEventCallback);
1535                 }
1536
1537             }
1538         }
1539
1540         /// <summary>
1541         /// An event for the WheelMoved signal which can be used to subscribe or unsubscribe the event handler provided by the user.<br />
1542         /// The WheelMoved signal is emitted when the wheel event is received.<br />
1543         /// </summary>
1544         /// <since_tizen> 3 </since_tizen>
1545         public event EventHandlerWithReturnType<object, WheelEventArgs, bool> WheelEvent
1546         {
1547             add
1548             {
1549                 if (_wheelEventHandler == null)
1550                 {
1551                     _wheelEventCallback = OnWheelEvent;
1552                     this.WheelEventSignal().Connect(_wheelEventCallback);
1553                 }
1554
1555                 _wheelEventHandler += value;
1556             }
1557
1558             remove
1559             {
1560                 _wheelEventHandler -= value;
1561
1562                 if (_wheelEventHandler == null && WheelEventSignal().Empty() == false)
1563                 {
1564                     this.WheelEventSignal().Disconnect(_wheelEventCallback);
1565                 }
1566
1567             }
1568         }
1569
1570         /// <summary>
1571         /// An event for the OnWindow signal which can be used to subscribe or unsubscribe the event handler.<br />
1572         /// The OnWindow signal is emitted after the view has been connected to the window.<br />
1573         /// </summary>
1574         /// <since_tizen> 3 </since_tizen>
1575         public event EventHandler AddedToWindow
1576         {
1577             add
1578             {
1579                 if (_onWindowEventHandler == null)
1580                 {
1581                     _onWindowEventCallback = OnWindow;
1582                     this.OnWindowSignal().Connect(_onWindowEventCallback);
1583                 }
1584
1585                 _onWindowEventHandler += value;
1586             }
1587
1588             remove
1589             {
1590                 _onWindowEventHandler -= value;
1591
1592                 if (_onWindowEventHandler == null && OnWindowSignal().Empty() == false)
1593                 {
1594                     this.OnWindowSignal().Disconnect(_onWindowEventCallback);
1595                 }
1596             }
1597         }
1598
1599         /// <summary>
1600         /// An event for the OffWindow signal, which can be used to subscribe or unsubscribe the event handler.<br />
1601         /// OffWindow signal is emitted after the view has been disconnected from the window.<br />
1602         /// </summary>
1603         /// <since_tizen> 3 </since_tizen>
1604         public event EventHandler RemovedFromWindow
1605         {
1606             add
1607             {
1608                 if (_offWindowEventHandler == null)
1609                 {
1610                     _offWindowEventCallback = OffWindow;
1611                     this.OffWindowSignal().Connect(_offWindowEventCallback);
1612                 }
1613
1614                 _offWindowEventHandler += value;
1615             }
1616
1617             remove
1618             {
1619                 _offWindowEventHandler -= value;
1620
1621                 if (_offWindowEventHandler == null && OffWindowSignal().Empty() == false)
1622                 {
1623                     this.OffWindowSignal().Disconnect(_offWindowEventCallback);
1624                 }
1625             }
1626         }
1627
1628         /// <summary>
1629         /// An event for visibility change which can be used to subscribe or unsubscribe the event handler.<br />
1630         /// This signal is emitted when the visible property of this or a parent view is changed.<br />
1631         /// </summary>
1632         /// <since_tizen> 3 </since_tizen>
1633         public event EventHandler<VisibilityChangedEventArgs> VisibilityChanged
1634         {
1635             add
1636             {
1637                 if (_visibilityChangedEventHandler == null)
1638                 {
1639                     _visibilityChangedEventCallback = OnVisibilityChanged;
1640                     VisibilityChangedSignal(this).Connect(_visibilityChangedEventCallback);
1641                 }
1642
1643                 _visibilityChangedEventHandler += value;
1644             }
1645
1646             remove
1647             {
1648                 _visibilityChangedEventHandler -= value;
1649
1650                 if (_visibilityChangedEventHandler == null && VisibilityChangedSignal(this).Empty() == false)
1651                 {
1652                     VisibilityChangedSignal(this).Disconnect(_visibilityChangedEventCallback);
1653                 }
1654             }
1655         }
1656
1657         /// <summary>
1658         /// Event for layout direction change which can be used to subscribe/unsubscribe the event handler.<br />
1659         /// This signal is emitted when the layout direction property of this or a parent view is changed.<br />
1660         /// </summary>
1661         /// <since_tizen> 4 </since_tizen>
1662         public event EventHandler<LayoutDirectionChangedEventArgs> LayoutDirectionChanged
1663         {
1664             add
1665             {
1666                 if (_layoutDirectionChangedEventHandler == null)
1667                 {
1668                     _layoutDirectionChangedEventCallback = OnLayoutDirectionChanged;
1669                     LayoutDirectionChangedSignal(this).Connect(_layoutDirectionChangedEventCallback);
1670                 }
1671
1672                 _layoutDirectionChangedEventHandler += value;
1673             }
1674
1675             remove
1676             {
1677                 _layoutDirectionChangedEventHandler -= value;
1678
1679                 if (_layoutDirectionChangedEventHandler == null && LayoutDirectionChangedSignal(this).Empty() == false)
1680                 {
1681                     LayoutDirectionChangedSignal(this).Disconnect(_layoutDirectionChangedEventCallback);
1682                 }
1683             }
1684         }
1685
1686         /// <summary>
1687         /// An event for the ResourcesLoadedSignal signal which can be used to subscribe or unsubscribe the event handler provided by the user.<br />
1688         /// This signal is emitted after all resources required by a view are loaded and ready.<br />
1689         /// </summary>
1690         /// <since_tizen> 3 </since_tizen>
1691         public event EventHandler ResourcesLoaded
1692         {
1693             add
1694             {
1695                 if (_resourcesLoadedEventHandler == null)
1696                 {
1697                     _ResourcesLoadedCallback = OnResourcesLoaded;
1698                     this.ResourcesLoadedSignal().Connect(_ResourcesLoadedCallback);
1699                 }
1700
1701                 _resourcesLoadedEventHandler += value;
1702             }
1703
1704             remove
1705             {
1706                 _resourcesLoadedEventHandler -= value;
1707
1708                 if (_resourcesLoadedEventHandler == null && ResourcesLoadedSignal().Empty() == false)
1709                 {
1710                     this.ResourcesLoadedSignal().Disconnect(_ResourcesLoadedCallback);
1711                 }
1712             }
1713         }
1714
1715         internal event EventHandler<BackgroundResourceLoadedEventArgs> BackgroundResourceLoaded
1716         {
1717             add
1718             {
1719                 if (_backgroundResourceLoadedEventHandler == null)
1720                 {
1721                     _backgroundResourceLoadedCallback = OnBackgroundResourceLoaded;
1722                     this.ResourcesLoadedSignal().Connect(_backgroundResourceLoadedCallback);
1723                 }
1724
1725                 _backgroundResourceLoadedEventHandler += value;
1726             }
1727             remove
1728             {
1729                 _backgroundResourceLoadedEventHandler -= value;
1730
1731                 if (_backgroundResourceLoadedEventHandler == null && ResourcesLoadedSignal().Empty() == false)
1732                 {
1733                     this.ResourcesLoadedSignal().Disconnect(_backgroundResourceLoadedCallback);
1734                 }
1735             }
1736         }
1737
1738         /// <summary>
1739         /// Enumeration for describing the states of the view.
1740         /// </summary>
1741         /// <since_tizen> 3 </since_tizen>
1742         public enum States
1743         {
1744             /// <summary>
1745             /// The normal state.
1746             /// </summary>
1747             Normal,
1748             /// <summary>
1749             /// The focused state.
1750             /// </summary>
1751             Focused,
1752             /// <summary>
1753             /// The disabled state.
1754             /// </summary>
1755             Disabled
1756         }
1757
1758         /// <summary>
1759         /// Describes the direction to move the focus towards.
1760         /// </summary>
1761         /// <since_tizen> 3 </since_tizen>
1762         public enum FocusDirection
1763         {
1764             /// <summary>
1765             /// Move keyboard focus towards the left direction.
1766             /// </summary>
1767             /// <since_tizen> 3 </since_tizen>
1768             Left,
1769             /// <summary>
1770             /// Move keyboard focus towards the right direction.
1771             /// </summary>
1772             /// <since_tizen> 3 </since_tizen>
1773             Right,
1774             /// <summary>
1775             /// Move keyboard focus towards the up direction.
1776             /// </summary>
1777             /// <since_tizen> 3 </since_tizen>
1778             Up,
1779             /// <summary>
1780             /// Move keyboard focus towards the down direction.
1781             /// </summary>
1782             /// <since_tizen> 3 </since_tizen>
1783             Down,
1784             /// <summary>
1785             /// Move keyboard focus towards the previous page direction.
1786             /// </summary>
1787             /// <since_tizen> 3 </since_tizen>
1788             PageUp,
1789             /// <summary>
1790             /// Move keyboard focus towards the next page direction.
1791             /// </summary>
1792             /// <since_tizen> 3 </since_tizen>
1793             PageDown
1794         }
1795
1796         internal enum PropertyRange
1797         {
1798             PROPERTY_START_INDEX = PropertyRanges.PROPERTY_REGISTRATION_START_INDEX,
1799             CONTROL_PROPERTY_START_INDEX = PROPERTY_START_INDEX,
1800             CONTROL_PROPERTY_END_INDEX = CONTROL_PROPERTY_START_INDEX + 1000
1801         }
1802
1803         /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
1804         [EditorBrowsable(EditorBrowsableState.Never)]
1805         public bool IsResourcesCreated
1806         {
1807             get
1808             {
1809                 return Application.Current.IsResourcesCreated;
1810             }
1811         }
1812
1813         /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
1814         [EditorBrowsable(EditorBrowsableState.Never)]
1815         public ResourceDictionary XamlResources
1816         {
1817             get
1818             {
1819                 return Application.Current.XamlResources;
1820             }
1821             set
1822             {
1823                 Application.Current.XamlResources = value;
1824             }
1825         }
1826
1827         /// <summary>
1828         /// The StyleName, type string.
1829         /// </summary>
1830         /// <since_tizen> 3 </since_tizen>
1831         public string StyleName
1832         {
1833             get
1834             {
1835                 return (string)GetValue(StyleNameProperty);
1836             }
1837             set
1838             {
1839                 SetValue(StyleNameProperty, value);
1840                 NotifyPropertyChanged();
1841             }
1842         }
1843
1844         /// <summary>
1845         /// The mutually exclusive with BACKGROUND_IMAGE and BACKGROUND type Vector4.
1846         /// </summary>
1847         /// <since_tizen> 3 </since_tizen>
1848         public Color BackgroundColor
1849         {
1850             get
1851             {
1852                 return (Color)GetValue(BackgroundColorProperty);
1853             }
1854             set
1855             {
1856                 SetValue(BackgroundColorProperty, value);
1857                 NotifyPropertyChanged();
1858             }
1859         }
1860
1861         /// <summary>
1862         /// The mutually exclusive with BACKGROUND_COLOR and BACKGROUND type Map.
1863         /// </summary>
1864         /// <since_tizen> 3 </since_tizen>
1865         public string BackgroundImage
1866         {
1867             get
1868             {
1869                 return (string)GetValue(BackgroundImageProperty);
1870             }
1871             set
1872             {
1873                 SetValue(BackgroundImageProperty, value);
1874                 NotifyPropertyChanged();
1875             }
1876         }
1877
1878         /// <summary>
1879         /// The background of view.
1880         /// </summary>
1881         /// <since_tizen> 3 </since_tizen>
1882         public Tizen.NUI.PropertyMap Background
1883         {
1884             get
1885             {
1886                 return (PropertyMap)GetValue(BackgroundProperty);
1887             }
1888             set
1889             {
1890                 SetValue(BackgroundProperty, value);
1891                 NotifyPropertyChanged();
1892             }
1893         }
1894
1895
1896         /// <summary>
1897         /// The current state of the view.
1898         /// </summary>
1899         /// <since_tizen> 3 </since_tizen>
1900         public States State
1901         {
1902             get
1903             {
1904                 return (States)GetValue(StateProperty);
1905             }
1906             set
1907             {
1908                 SetValue(StateProperty, value);
1909                 NotifyPropertyChanged();
1910             }
1911         }
1912
1913         /// <summary>
1914         /// The current sub state of the view.
1915         /// </summary>
1916         /// <since_tizen> 3 </since_tizen>
1917         public States SubState
1918         {
1919             get
1920             {
1921                 return (States)GetValue(SubStateProperty);
1922             }
1923             set
1924             {
1925                 SetValue(SubStateProperty, value);
1926                 NotifyPropertyChanged();
1927             }
1928         }
1929
1930         /// <summary>
1931         /// Displays a tooltip
1932         /// </summary>
1933         /// <since_tizen> 3 </since_tizen>
1934         public Tizen.NUI.PropertyMap Tooltip
1935         {
1936             get
1937             {
1938                 return (PropertyMap)GetValue(TooltipProperty);
1939             }
1940             set
1941             {
1942                 SetValue(TooltipProperty, value);
1943                 NotifyPropertyChanged();
1944             }
1945         }
1946
1947         /// <summary>
1948         /// Displays a tooltip as a text.
1949         /// </summary>
1950         /// <since_tizen> 3 </since_tizen>
1951         public string TooltipText
1952         {
1953             set
1954             {
1955                 SetProperty(View.Property.TOOLTIP, new Tizen.NUI.PropertyValue(value));
1956                 NotifyPropertyChanged();
1957             }
1958         }
1959
1960         /// <summary>
1961         /// The Child property of FlexContainer.<br />
1962         /// The proportion of the free space in the container, the flex item will receive.<br />
1963         /// If all items in the container set this property, their sizes will be proportional to the specified flex factor.<br />
1964         /// </summary>
1965         /// <since_tizen> 3 </since_tizen>
1966         public float Flex
1967         {
1968             get
1969             {
1970                 return (float)GetValue(FlexProperty);
1971             }
1972             set
1973             {
1974                 SetValue(FlexProperty, value);
1975                 NotifyPropertyChanged();
1976             }
1977         }
1978
1979         /// <summary>
1980         /// The Child property of FlexContainer.<br />
1981         /// The alignment of the flex item along the cross axis, which, if set, overides the default alignment for all items in the container.<br />
1982         /// </summary>
1983         /// <since_tizen> 3 </since_tizen>
1984         public int AlignSelf
1985         {
1986             get
1987             {
1988                 return (int)GetValue(AlignSelfProperty);
1989             }
1990             set
1991             {
1992                 SetValue(AlignSelfProperty, value);
1993                 NotifyPropertyChanged();
1994             }
1995         }
1996
1997         /// <summary>
1998         /// The Child property of FlexContainer.<br />
1999         /// The space around the flex item.<br />
2000         /// </summary>
2001         /// <since_tizen> 3 </since_tizen>
2002         public Vector4 FlexMargin
2003         {
2004             get
2005             {
2006                 return (Vector4)GetValue(FlexMarginProperty);
2007             }
2008             set
2009             {
2010                 SetValue(FlexMarginProperty, value);
2011                 NotifyPropertyChanged();
2012             }
2013         }
2014
2015         /// <summary>
2016         /// The top-left cell this child occupies, if not set, the first available cell is used.
2017         /// </summary>
2018         /// <since_tizen> 3 </since_tizen>
2019         public Vector2 CellIndex
2020         {
2021             get
2022             {
2023                 return (Vector2)GetValue(CellIndexProperty);
2024             }
2025             set
2026             {
2027                 SetValue(CellIndexProperty, value);
2028                 NotifyPropertyChanged();
2029             }
2030         }
2031
2032         /// <summary>
2033         /// The number of rows this child occupies, if not set, the default value is 1.
2034         /// </summary>
2035         /// <since_tizen> 3 </since_tizen>
2036         public float RowSpan
2037         {
2038             get
2039             {
2040                 return (float)GetValue(RowSpanProperty);
2041             }
2042             set
2043             {
2044                 SetValue(RowSpanProperty, value);
2045                 NotifyPropertyChanged();
2046             }
2047         }
2048
2049         /// <summary>
2050         /// The number of columns this child occupies, if not set, the default value is 1.
2051         /// </summary>
2052         /// <since_tizen> 3 </since_tizen>
2053         public float ColumnSpan
2054         {
2055             get
2056             {
2057                 return (float)GetValue(ColumnSpanProperty);
2058             }
2059             set
2060             {
2061                 SetValue(ColumnSpanProperty, value);
2062                 NotifyPropertyChanged();
2063             }
2064         }
2065
2066         /// <summary>
2067         /// The horizontal alignment of this child inside the cells, if not set, the default value is 'left'.
2068         /// </summary>
2069         /// <since_tizen> 3 </since_tizen>
2070         public Tizen.NUI.HorizontalAlignmentType CellHorizontalAlignment
2071         {
2072             get
2073             {
2074                 return (HorizontalAlignmentType)GetValue(CellHorizontalAlignmentProperty);
2075             }
2076             set
2077             {
2078                 SetValue(CellHorizontalAlignmentProperty, value);
2079                 NotifyPropertyChanged();
2080             }
2081         }
2082
2083         /// <summary>
2084         /// The vertical alignment of this child inside the cells, if not set, the default value is 'top'.
2085         /// </summary>
2086         /// <since_tizen> 3 </since_tizen>
2087         public Tizen.NUI.VerticalAlignmentType CellVerticalAlignment
2088         {
2089             get
2090             {
2091                 return (VerticalAlignmentType)GetValue(CellVerticalAlignmentProperty);
2092             }
2093             set
2094             {
2095                 SetValue(CellVerticalAlignmentProperty, value);
2096                 NotifyPropertyChanged();
2097             }
2098         }
2099
2100         /// <summary>
2101         /// The left focusable view.<br />
2102         /// This will return null if not set.<br />
2103         /// This will also return null if the specified left focusable view is not on a window.<br />
2104         /// </summary>
2105         /// <since_tizen> 3 </since_tizen>
2106         public View LeftFocusableView
2107         {
2108             // As native side will be only storing IDs so need a logic to convert View to ID and vice-versa.
2109             get
2110             {
2111                 return (View)GetValue(LeftFocusableViewProperty);
2112             }
2113             set
2114             {
2115                 SetValue(LeftFocusableViewProperty, value);
2116                 NotifyPropertyChanged();
2117             }
2118         }
2119
2120         /// <summary>
2121         /// The right focusable view.<br />
2122         /// This will return null if not set.<br />
2123         /// This will also return null if the specified right focusable view is not on a window.<br />
2124         /// </summary>
2125         /// <since_tizen> 3 </since_tizen>
2126         public View RightFocusableView
2127         {
2128             // As native side will be only storing IDs so need a logic to convert View to ID and vice-versa.
2129             get
2130             {
2131                 return (View)GetValue(RightFocusableViewProperty);
2132             }
2133             set
2134             {
2135                 SetValue(RightFocusableViewProperty, value);
2136                 NotifyPropertyChanged();
2137             }
2138         }
2139
2140         /// <summary>
2141         /// The up focusable view.<br />
2142         /// This will return null if not set.<br />
2143         /// This will also return null if the specified up focusable view is not on a window.<br />
2144         /// </summary>
2145         /// <since_tizen> 3 </since_tizen>
2146         public View UpFocusableView
2147         {
2148             // As native side will be only storing IDs so need a logic to convert View to ID and vice-versa.
2149             get
2150             {
2151                 return (View)GetValue(UpFocusableViewProperty);
2152             }
2153             set
2154             {
2155                 SetValue(UpFocusableViewProperty, value);
2156                 NotifyPropertyChanged();
2157             }
2158         }
2159
2160         /// <summary>
2161         /// The down focusable view.<br />
2162         /// This will return null if not set.<br />
2163         /// This will also return null if the specified down focusable view is not on a window.<br />
2164         /// </summary>
2165         /// <since_tizen> 3 </since_tizen>
2166         public View DownFocusableView
2167         {
2168             // As native side will be only storing IDs so need a logic to convert View to ID and vice-versa.
2169             get
2170             {
2171                 return (View)GetValue(DownFocusableViewProperty);
2172             }
2173             set
2174             {
2175                 SetValue(DownFocusableViewProperty, value);
2176                 NotifyPropertyChanged();
2177             }
2178         }
2179
2180         /// <summary>
2181         /// Whether the view should be focusable by keyboard navigation.
2182         /// </summary>
2183         /// <since_tizen> 3 </since_tizen>
2184         public bool Focusable
2185         {
2186             set
2187             {
2188                 SetValue(FocusableProperty, value);
2189                 NotifyPropertyChanged();
2190             }
2191             get
2192             {
2193                 return (bool)GetValue(FocusableProperty);
2194             }
2195         }
2196
2197         /// <summary>
2198         ///  Retrieves the position of the view.<br />
2199         ///  The coordinates are relative to the view's parent.<br />
2200         /// </summary>
2201         /// <since_tizen> 3 </since_tizen>
2202         public Position CurrentPosition
2203         {
2204             get
2205             {
2206                 return GetCurrentPosition();
2207             }
2208         }
2209
2210         /// <summary>
2211         /// Sets the size of a view for the width and the height.<br />
2212         /// Geometry can be scaled to fit within this area.<br />
2213         /// This does not interfere with the view's scale factor.<br />
2214         /// The views default depth is the minimum of width and height.<br />
2215         /// </summary>
2216         /// <remarks>
2217         /// This NUI object (Size2D) typed property can be configured by multiple cascade setting. <br />
2218         /// For example, this code ( view.Size2D.Width = 100; view.Size2D.Height = 100; ) is equivalent to this ( view.Size2D = new Size2D(100, 100); ). <br />
2219         /// Please note that this multi-cascade setting is especially possible for this NUI object (Size2D). <br />
2220         /// This means by default others are impossible so it is recommended that NUI object typed properties are configured by their constructor with parameters. <br />
2221         /// For example, this code is working fine : view.Scale = new Vector3( 2.0f, 1.5f, 0.0f); <br />
2222         /// but this will not work! : view.Scale.X = 2.0f; view.Scale.Y = 1.5f; <br />
2223         /// It may not match the current value in some cases, i.e. when the animation is progressing or the maximum or minimu size is set. <br />
2224         /// </remarks>
2225         /// <since_tizen> 3 </since_tizen>
2226         public Size2D Size2D
2227         {
2228             get
2229             {
2230                 Size2D temp = (Size2D)GetValue(Size2DProperty);
2231                 return new Size2D(OnSize2DChanged, temp.Width, temp.Height);
2232             }
2233             set
2234             {
2235                 SetValue(Size2DProperty, value);
2236                 // Set Specification so when layouts measure this View it matches the value set here.
2237                 // All Views are currently Layouts.
2238                 SetProperty(LayoutItemWrapper.ChildProperty.WIDTH_SPECIFICATION, new Tizen.NUI.PropertyValue(value.Width));
2239                 SetProperty(LayoutItemWrapper.ChildProperty.HEIGHT_SPECIFICATION, new Tizen.NUI.PropertyValue(value.Height));
2240                 NotifyPropertyChanged();
2241             }
2242         }
2243
2244         /// <summary>
2245         ///  Retrieves the size of the view.<br />
2246         ///  The coordinates are relative to the view's parent.<br />
2247         /// </summary>
2248         /// <since_tizen> 3 </since_tizen>
2249         public Size2D CurrentSize
2250         {
2251             get
2252             {
2253                 return GetCurrentSize();
2254             }
2255         }
2256
2257         /// <summary>
2258         /// Retrieves and sets the view's opacity.<br />
2259         /// </summary>
2260         /// <since_tizen> 3 </since_tizen>
2261         public float Opacity
2262         {
2263             get
2264             {
2265                 return (float)GetValue(OpacityProperty);
2266             }
2267             set
2268             {
2269                 SetValue(OpacityProperty, value);
2270                 NotifyPropertyChanged();
2271             }
2272         }
2273
2274         /// <summary>
2275         /// Sets the position of the view for X and Y.<br />
2276         /// By default, sets the position vector between the parent origin and the pivot point (default).<br />
2277         /// If the position inheritance is disabled, sets the world position.<br />
2278         /// </summary>
2279         /// <remarks>
2280         /// This NUI object (Position2D) typed property can be configured by multiple cascade setting. <br />
2281         /// For example, this code ( view.Position2D.X = 100; view.Position2D.Y = 100; ) is equivalent to this ( view.Position2D = new Position2D(100, 100); ). <br />
2282         /// Please note that this multi-cascade setting is especially possible for this NUI object (Position2D). <br />
2283         /// This means by default others are impossible so it is recommended that NUI object typed properties are configured by their constructor with parameters. <br />
2284         /// For example, this code is working fine : view.Scale = new Vector3( 2.0f, 1.5f, 0.0f); <br />
2285         /// but this will not work! : view.Scale.X = 2.0f; view.Scale.Y = 1.5f; <br />
2286         /// </remarks>
2287         /// <since_tizen> 3 </since_tizen>
2288         public Position2D Position2D
2289         {
2290             get
2291             {
2292                 Position2D temp = (Position2D)GetValue(Position2DProperty);
2293                 return new Position2D(OnPosition2DChanged, temp.X, temp.Y);
2294             }
2295             set
2296             {
2297                 SetValue(Position2DProperty, value);
2298                 NotifyPropertyChanged();
2299             }
2300         }
2301
2302         /// <summary>
2303         /// Retrieves the screen postion of the view.<br />
2304         /// </summary>
2305         /// <since_tizen> 3 </since_tizen>
2306         public Vector2 ScreenPosition
2307         {
2308             get
2309             {
2310                 Vector2 temp = new Vector2(0.0f, 0.0f);
2311                 GetProperty(View.Property.SCREEN_POSITION).Get(temp);
2312                 return temp;
2313             }
2314         }
2315
2316         /// <summary>
2317         /// Determines whether the pivot point should be used to determine the position of the view.
2318         /// This is true by default.
2319         /// </summary>
2320         /// <remarks>If false, then the top-left of the view is used for the position.
2321         /// Setting this to false will allow scaling or rotation around the anchor-point without affecting the view's position.
2322         /// </remarks>
2323         /// <since_tizen> 3 </since_tizen>
2324         public bool PositionUsesPivotPoint
2325         {
2326             get
2327             {
2328                 return (bool)GetValue(PositionUsesPivotPointProperty);
2329             }
2330             set
2331             {
2332                 SetValue(PositionUsesPivotPointProperty, value);
2333                 NotifyPropertyChanged();
2334             }
2335         }
2336
2337         /// <summary>
2338         /// Please do not use! this will be deprecated.
2339         /// </summary>
2340         /// Please do not use! this will be deprecated!
2341         /// Instead please use PositionUsesPivotPoint.
2342         /// <since_tizen> 3 </since_tizen>
2343         [Obsolete("Please do not use! This will be deprecated! Please use PositionUsesPivotPoint instead! " +
2344             "Like: " +
2345             "View view = new View(); " +
2346             "view.PivotPoint = PivotPoint.Center; " +
2347             "view.PositionUsesPivotPoint = true;")]
2348         [EditorBrowsable(EditorBrowsableState.Never)]
2349         public bool PositionUsesAnchorPoint
2350         {
2351             get
2352             {
2353                 bool temp = false;
2354                 GetProperty(View.Property.POSITION_USES_ANCHOR_POINT).Get(out temp);
2355                 return temp;
2356             }
2357             set
2358             {
2359                 SetProperty(View.Property.POSITION_USES_ANCHOR_POINT, new Tizen.NUI.PropertyValue(value));
2360                 NotifyPropertyChanged();
2361             }
2362         }
2363
2364         /// <summary>
2365         /// Queries whether the view is connected to the stage.<br />
2366         /// When a view is connected, it will be directly or indirectly parented to the root view.<br />
2367         /// </summary>
2368         /// <since_tizen> 3 </since_tizen>
2369         public bool IsOnWindow
2370         {
2371             get
2372             {
2373                 return OnWindow();
2374             }
2375         }
2376
2377         /// <summary>
2378         /// Gets the depth in the hierarchy for the view.
2379         /// </summary>
2380         /// <since_tizen> 3 </since_tizen>
2381         public int HierarchyDepth
2382         {
2383             get
2384             {
2385                 return GetHierarchyDepth();
2386             }
2387         }
2388
2389         /// <summary>
2390         /// Sets the sibling order of the view so the depth position can be defined within the same parent.
2391         /// </summary>
2392         /// <remarks>
2393         /// Note the initial value is 0. SiblingOrder should be bigger than 0 or equal to 0.
2394         /// Raise, Lower, RaiseToTop, LowerToBottom, RaiseAbove, and LowerBelow will override the sibling order.
2395         /// The values set by this property will likely change.
2396         /// </remarks>
2397         /// <since_tizen> 3 </since_tizen>
2398         public int SiblingOrder
2399         {
2400             get
2401             {
2402                 return (int)GetValue(SiblingOrderProperty);
2403             }
2404             set
2405             {
2406                 SetValue(SiblingOrderProperty, value);
2407                 NotifyPropertyChanged();
2408             }
2409         }
2410
2411         /// <summary>
2412         /// Returns the natural size of the view.
2413         /// </summary>
2414         /// <remarks>
2415         /// Deriving classes stipulate the natural size and by default a view has a zero natural size.
2416         /// </remarks>
2417         /// <since_tizen> 5 </since_tizen>
2418         public Vector3 NaturalSize
2419         {
2420             get
2421             {
2422                 Vector3 ret = new Vector3(NDalicPINVOKE.Actor_GetNaturalSize(swigCPtr), true);
2423                 if (NDalicPINVOKE.SWIGPendingException.Pending)
2424                     throw NDalicPINVOKE.SWIGPendingException.Retrieve();
2425                 return ret;
2426             }
2427         }
2428
2429         /// <summary>
2430         /// Returns the natural size (Size2D) of the view.
2431         /// </summary>
2432         /// <remarks>
2433         /// Deriving classes stipulate the natural size and by default a view has a zero natural size.
2434         /// </remarks>
2435         /// <since_tizen> 4 </since_tizen>
2436         public Size2D NaturalSize2D
2437         {
2438             get
2439             {
2440                 Vector3 temp = new Vector3(NDalicPINVOKE.Actor_GetNaturalSize(swigCPtr), true);
2441                 if (NDalicPINVOKE.SWIGPendingException.Pending)
2442                     throw NDalicPINVOKE.SWIGPendingException.Retrieve();
2443
2444                 return new Size2D((int)temp.Width, (int)temp.Height);
2445             }
2446         }
2447
2448         /// <summary>
2449         /// Gets or sets the origin of a view within its parent's area.<br />
2450         /// 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 />
2451         /// The default parent-origin is ParentOrigin.TopLeft (0.0, 0.0, 0.5).<br />
2452         /// A view's position is the distance between this origin and the view's anchor-point.<br />
2453         /// </summary>
2454         /// <pre>The view has been initialized.</pre>
2455         /// <since_tizen> 3 </since_tizen>
2456         public Position ParentOrigin
2457         {
2458             get
2459             {
2460                 return (Position)GetValue(ParentOriginProperty);
2461             }
2462             set
2463             {
2464                 SetValue(ParentOriginProperty, value);
2465                 NotifyPropertyChanged();
2466             }
2467         }
2468
2469         /// <summary>
2470         /// Gets or sets the anchor-point of a view.<br />
2471         /// 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 />
2472         /// The default pivot point is PivotPoint.Center (0.5, 0.5, 0.5).<br />
2473         /// A view position is the distance between its parent-origin and this anchor-point.<br />
2474         /// A view's orientation is the rotation from its default orientation, the rotation is centered around its anchor-point.<br />
2475         /// <pre>The view has been initialized.</pre>
2476         /// </summary>
2477         /// <since_tizen> 3 </since_tizen>
2478         public Position PivotPoint
2479         {
2480             get
2481             {
2482                 return (Position)GetValue(PivotPointProperty);
2483             }
2484             set
2485             {
2486                 SetValue(PivotPointProperty, value);
2487                 NotifyPropertyChanged();
2488             }
2489         }
2490
2491         /// <summary>
2492         /// Gets or sets the size width of the view.
2493         /// </summary>
2494         /// <since_tizen> 3 </since_tizen>
2495         public float SizeWidth
2496         {
2497             get
2498             {
2499                 return (float)GetValue(SizeWidthProperty);
2500             }
2501             set
2502             {
2503                 SetValue(SizeWidthProperty, value);
2504                 SetProperty(LayoutItemWrapper.ChildProperty.WIDTH_SPECIFICATION, new Tizen.NUI.PropertyValue(value));
2505                 NotifyPropertyChanged();
2506             }
2507         }
2508
2509         /// <summary>
2510         /// Gets or sets the size height of the view.
2511         /// </summary>
2512         /// <since_tizen> 3 </since_tizen>
2513         public float SizeHeight
2514         {
2515             get
2516             {
2517                 return (float)GetValue(SizeHeightProperty);
2518             }
2519             set
2520             {
2521                 SetValue(SizeHeightProperty, value);
2522                 SetProperty(LayoutItemWrapper.ChildProperty.HEIGHT_SPECIFICATION, new Tizen.NUI.PropertyValue(value));
2523                 NotifyPropertyChanged();
2524             }
2525         }
2526
2527         /// <summary>
2528         /// Gets or sets the position of the view.<br />
2529         /// By default, sets the position vector between the parent origin and pivot point (default).<br />
2530         /// If the position inheritance is disabled, sets the world position.<br />
2531         /// </summary>
2532         /// <since_tizen> 3 </since_tizen>
2533         public Position Position
2534         {
2535             get
2536             {
2537                 return (Position)GetValue(PositionProperty);
2538             }
2539             set
2540             {
2541                 SetValue(PositionProperty, value);
2542                 NotifyPropertyChanged();
2543             }
2544         }
2545
2546         /// <summary>
2547         /// Gets or sets the position X of the view.
2548         /// </summary>
2549         /// <since_tizen> 3 </since_tizen>
2550         public float PositionX
2551         {
2552             get
2553             {
2554                 return (float)GetValue(PositionXProperty);
2555             }
2556             set
2557             {
2558                 SetValue(PositionXProperty, value);
2559                 NotifyPropertyChanged();
2560             }
2561         }
2562
2563         /// <summary>
2564         /// Gets or sets the position Y of the view.
2565         /// </summary>
2566         /// <since_tizen> 3 </since_tizen>
2567         public float PositionY
2568         {
2569             get
2570             {
2571                 return (float)GetValue(PositionYProperty);
2572             }
2573             set
2574             {
2575                 SetValue(PositionYProperty, value);
2576                 NotifyPropertyChanged();
2577             }
2578         }
2579
2580         /// <summary>
2581         /// Gets or sets the position Z of the view.
2582         /// </summary>
2583         /// <since_tizen> 3 </since_tizen>
2584         public float PositionZ
2585         {
2586             get
2587             {
2588                 return (float)GetValue(PositionZProperty);
2589             }
2590             set
2591             {
2592                 SetValue(PositionZProperty, value);
2593                 NotifyPropertyChanged();
2594             }
2595         }
2596
2597         /// <summary>
2598         /// Gets or sets the world position of the view.
2599         /// </summary>
2600         /// <since_tizen> 3 </since_tizen>
2601         public Vector3 WorldPosition
2602         {
2603             get
2604             {
2605                 Vector3 temp = new Vector3(0.0f, 0.0f, 0.0f);
2606                 GetProperty(View.Property.WORLD_POSITION).Get(temp);
2607                 return temp;
2608             }
2609         }
2610
2611         /// <summary>
2612         /// Gets or sets the orientation of the view.<br />
2613         /// The view's orientation is the rotation from its default orientation, and the rotation is centered around its anchor-point.<br />
2614         /// </summary>
2615         /// <remarks>This is an asynchronous method.</remarks>
2616         /// <since_tizen> 3 </since_tizen>
2617         public Rotation Orientation
2618         {
2619             get
2620             {
2621                 return (Rotation)GetValue(OrientationProperty);
2622             }
2623             set
2624             {
2625                 SetValue(OrientationProperty, value);
2626                 NotifyPropertyChanged();
2627             }
2628         }
2629
2630         /// <summary>
2631         /// Gets or sets the world orientation of the view.<br />
2632         /// </summary>
2633         /// <since_tizen> 3 </since_tizen>
2634         public Rotation WorldOrientation
2635         {
2636             get
2637             {
2638                 Rotation temp = new Rotation();
2639                 GetProperty(View.Property.WORLD_ORIENTATION).Get(temp);
2640                 return temp;
2641             }
2642         }
2643
2644         /// <summary>
2645         /// Gets or sets the scale factor applied to the view.<br />
2646         /// </summary>
2647         /// <since_tizen> 3 </since_tizen>
2648         public Vector3 Scale
2649         {
2650             get
2651             {
2652                 return (Vector3)GetValue(ScaleProperty);
2653             }
2654             set
2655             {
2656                 SetValue(ScaleProperty, value);
2657                 NotifyPropertyChanged();
2658             }
2659         }
2660
2661         /// <summary>
2662         /// Gets or sets the scale X factor applied to the view.
2663         /// </summary>
2664         /// <since_tizen> 3 </since_tizen>
2665         public float ScaleX
2666         {
2667             get
2668             {
2669                 return (float)GetValue(ScaleXProperty);
2670             }
2671             set
2672             {
2673                 SetValue(ScaleXProperty, value);
2674                 NotifyPropertyChanged();
2675             }
2676         }
2677
2678         /// <summary>
2679         /// Gets or sets the scale Y factor applied to the view.
2680         /// </summary>
2681         /// <since_tizen> 3 </since_tizen>
2682         public float ScaleY
2683         {
2684             get
2685             {
2686                 return (float)GetValue(ScaleYProperty);
2687             }
2688             set
2689             {
2690                 SetValue(ScaleYProperty, value);
2691                 NotifyPropertyChanged();
2692             }
2693         }
2694
2695         /// <summary>
2696         /// Gets or sets the scale Z factor applied to the view.
2697         /// </summary>
2698         /// <since_tizen> 3 </since_tizen>
2699         public float ScaleZ
2700         {
2701             get
2702             {
2703                 return (float)GetValue(ScaleZProperty);
2704             }
2705             set
2706             {
2707                 SetValue(ScaleZProperty, value);
2708                 NotifyPropertyChanged();
2709             }
2710         }
2711
2712         /// <summary>
2713         /// Gets the world scale of the view.
2714         /// </summary>
2715         /// <since_tizen> 3 </since_tizen>
2716         public Vector3 WorldScale
2717         {
2718             get
2719             {
2720                 Vector3 temp = new Vector3(0.0f, 0.0f, 0.0f);
2721                 GetProperty(View.Property.WORLD_SCALE).Get(temp);
2722                 return temp;
2723             }
2724         }
2725
2726         /// <summary>
2727         /// Retrieves the visibility flag of the view.
2728         /// </summary>
2729         /// <remarks>
2730         /// If the view is not visible, then the view and its children will not be rendered.
2731         /// This is regardless of the individual visibility values of the children, i.e., the view will only be rendered if all of its parents have visibility set to true.
2732         /// </remarks>
2733         /// <since_tizen> 3 </since_tizen>
2734         public bool Visibility
2735         {
2736             get
2737             {
2738                 bool temp = false;
2739                 GetProperty(View.Property.VISIBLE).Get(out temp);
2740                 return temp;
2741             }
2742         }
2743
2744         /// <summary>
2745         /// Gets the view's world color.
2746         /// </summary>
2747         /// <since_tizen> 3 </since_tizen>
2748         public Vector4 WorldColor
2749         {
2750             get
2751             {
2752                 Vector4 temp = new Vector4(0.0f, 0.0f, 0.0f, 0.0f);
2753                 GetProperty(View.Property.WORLD_COLOR).Get(temp);
2754                 return temp;
2755             }
2756         }
2757
2758         /// <summary>
2759         /// Gets or sets the view's name.
2760         /// </summary>
2761         /// <since_tizen> 3 </since_tizen>
2762         public string Name
2763         {
2764             get
2765             {
2766                 return (string)GetValue(NameProperty);
2767             }
2768             set
2769             {
2770                 SetValue(NameProperty, value);
2771                 NotifyPropertyChanged();
2772             }
2773         }
2774
2775         /// <summary>
2776         /// Get the number of children held by the view.
2777         /// </summary>
2778         /// <since_tizen> 3 </since_tizen>
2779         public new uint ChildCount
2780         {
2781             get
2782             {
2783                 return GetChildCount();
2784             }
2785         }
2786
2787         /// <summary>
2788         /// Gets the view's ID.
2789         /// Readonly
2790         /// </summary>
2791         /// <since_tizen> 3 </since_tizen>
2792         public uint ID
2793         {
2794             get
2795             {
2796                 return GetId();
2797             }
2798         }
2799
2800         /// <summary>
2801         /// Gets or sets the status of whether the view should emit touch or hover signals.
2802         /// </summary>
2803         /// <since_tizen> 3 </since_tizen>
2804         public bool Sensitive
2805         {
2806             get
2807             {
2808                 return (bool)GetValue(SensitiveProperty);
2809             }
2810             set
2811             {
2812                 SetValue(SensitiveProperty, value);
2813                 NotifyPropertyChanged();
2814             }
2815         }
2816
2817         /// <summary>
2818         /// Gets or sets the status of whether the view should receive a notification when touch or hover motion events leave the boundary of the view.
2819         /// </summary>
2820         /// <since_tizen> 3 </since_tizen>
2821         public bool LeaveRequired
2822         {
2823             get
2824             {
2825                 return (bool)GetValue(LeaveRequiredProperty);
2826             }
2827             set
2828             {
2829                 SetValue(LeaveRequiredProperty, value);
2830                 NotifyPropertyChanged();
2831             }
2832         }
2833
2834         /// <summary>
2835         /// Gets or sets the status of whether a child view inherits it's parent's orientation.
2836         /// </summary>
2837         /// <since_tizen> 3 </since_tizen>
2838         public bool InheritOrientation
2839         {
2840             get
2841             {
2842                 return (bool)GetValue(InheritOrientationProperty);
2843             }
2844             set
2845             {
2846                 SetValue(InheritOrientationProperty, value);
2847                 NotifyPropertyChanged();
2848             }
2849         }
2850
2851         /// <summary>
2852         /// Gets or sets the status of whether a child view inherits it's parent's scale.
2853         /// </summary>
2854         /// <since_tizen> 3 </since_tizen>
2855         public bool InheritScale
2856         {
2857             get
2858             {
2859                 return (bool)GetValue(InheritScaleProperty);
2860             }
2861             set
2862             {
2863                 SetValue(InheritScaleProperty, value);
2864                 NotifyPropertyChanged();
2865             }
2866         }
2867
2868         /// <summary>
2869         /// Gets or sets the status of how the view and its children should be drawn.<br />
2870         /// Not all views are renderable, but DrawMode can be inherited from any view.<br />
2871         /// 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 />
2872         /// If DrawMode.Overlay2D is used, the view and its children will be drawn as a 2D overlay.<br />
2873         /// Overlay views are drawn in a separate pass, after all non-overlay views within the layer.<br />
2874         /// For overlay views, the drawing order is with respect to tree levels of views, and depth-testing will not be used.<br />
2875         /// </summary>
2876         /// <since_tizen> 3 </since_tizen>
2877         public DrawModeType DrawMode
2878         {
2879             get
2880             {
2881                 return (DrawModeType)GetValue(DrawModeProperty);
2882             }
2883             set
2884             {
2885                 SetValue(DrawModeProperty, value);
2886                 NotifyPropertyChanged();
2887             }
2888         }
2889
2890         /// <summary>
2891         /// Gets or sets the relative to parent size factor of the view.<br />
2892         /// This factor is only used when ResizePolicyType is set to either: ResizePolicyType.SizeRelativeToParent or ResizePolicyType.SizeFixedOffsetFromParent.<br />
2893         /// This view's size is set to the view's size multiplied by or added to this factor, depending on ResizePolicyType.<br />
2894         /// </summary>
2895         /// <since_tizen> 3 </since_tizen>
2896         public Vector3 SizeModeFactor
2897         {
2898             get
2899             {
2900                 return (Vector3)GetValue(SizeModeFactorProperty);
2901             }
2902             set
2903             {
2904                 SetValue(SizeModeFactorProperty, value);
2905                 NotifyPropertyChanged();
2906             }
2907         }
2908
2909         /// <summary>
2910         /// Gets or sets the width resize policy to be used.
2911         /// </summary>
2912         /// <since_tizen> 3 </since_tizen>
2913         public ResizePolicyType WidthResizePolicy
2914         {
2915             get
2916             {
2917                 return (ResizePolicyType)GetValue(WidthResizePolicyProperty);
2918             }
2919             set
2920             {
2921                 SetValue(WidthResizePolicyProperty, value);
2922                 // Match ResizePolicy to new Layouting.
2923                 // Parent relative policies can not be mapped at this point as parent size unknown.
2924                 switch (value)
2925                 {
2926                     case ResizePolicyType.UseNaturalSize:
2927                     {
2928                         SetProperty(LayoutItemWrapper.ChildProperty.WIDTH_SPECIFICATION, new Tizen.NUI.PropertyValue( (int)ChildLayoutData.WrapContent ) );
2929                         break;
2930                     }
2931                     case ResizePolicyType.FillToParent:
2932                     {
2933                         SetProperty(LayoutItemWrapper.ChildProperty.WIDTH_SPECIFICATION, new Tizen.NUI.PropertyValue((int)ChildLayoutData.MatchParent));
2934                         break;
2935                     }
2936                     case ResizePolicyType.FitToChildren:
2937                     {
2938                         SetProperty(LayoutItemWrapper.ChildProperty.WIDTH_SPECIFICATION, new Tizen.NUI.PropertyValue((int)ChildLayoutData.WrapContent));
2939                         break;
2940                     }
2941                     default:
2942                         break;
2943                 }
2944                 NotifyPropertyChanged();
2945             }
2946         }
2947
2948         /// <summary>
2949         /// Gets or sets the height resize policy to be used.
2950         /// </summary>
2951         /// <since_tizen> 3 </since_tizen>
2952         public ResizePolicyType HeightResizePolicy
2953         {
2954             get
2955             {
2956                 return (ResizePolicyType)GetValue(HeightResizePolicyProperty);
2957             }
2958             set
2959             {
2960                 SetValue(HeightResizePolicyProperty, value);
2961                 // Match ResizePolicy to new Layouting.
2962                 // Parent relative policies can not be mapped at this point as parent size unknown.
2963                 switch (value)
2964                 {
2965                     case ResizePolicyType.UseNaturalSize:
2966                     {
2967                         SetProperty(LayoutItemWrapper.ChildProperty.HEIGHT_SPECIFICATION, new Tizen.NUI.PropertyValue( (int)ChildLayoutData.WrapContent ) );
2968                         break;
2969                     }
2970                     case ResizePolicyType.FillToParent:
2971                     {
2972                         SetProperty(LayoutItemWrapper.ChildProperty.HEIGHT_SPECIFICATION, new Tizen.NUI.PropertyValue((int)ChildLayoutData.MatchParent));
2973                         break;
2974                     }
2975                     case ResizePolicyType.FitToChildren:
2976                     {
2977                         SetProperty(LayoutItemWrapper.ChildProperty.HEIGHT_SPECIFICATION, new Tizen.NUI.PropertyValue((int)ChildLayoutData.WrapContent));
2978                         break;
2979                     }
2980                     default:
2981                         break;
2982                 }
2983                 NotifyPropertyChanged();
2984             }
2985         }
2986
2987         /// <summary>
2988         /// Gets or sets the policy to use when setting size with size negotiation.<br />
2989         /// Defaults to SizeScalePolicyType.UseSizeSet.<br />
2990         /// </summary>
2991         /// <since_tizen> 3 </since_tizen>
2992         public SizeScalePolicyType SizeScalePolicy
2993         {
2994             get
2995             {
2996                 return (SizeScalePolicyType)GetValue(SizeScalePolicyProperty);
2997             }
2998             set
2999             {
3000                 SetValue(SizeScalePolicyProperty, value);
3001                 NotifyPropertyChanged();
3002             }
3003         }
3004
3005         /// <summary>
3006         ///  Gets or sets the status of whether the width size is dependent on the height size.
3007         /// </summary>
3008         /// <since_tizen> 3 </since_tizen>
3009         public bool WidthForHeight
3010         {
3011             get
3012             {
3013                 return (bool)GetValue(WidthForHeightProperty);
3014             }
3015             set
3016             {
3017                 SetValue(WidthForHeightProperty, value);
3018                 NotifyPropertyChanged();
3019             }
3020         }
3021
3022         /// <summary>
3023         /// Gets or sets the status of whether the height size is dependent on the width size.
3024         /// </summary>
3025         /// <since_tizen> 3 </since_tizen>
3026         public bool HeightForWidth
3027         {
3028             get
3029             {
3030                 return (bool)GetValue(HeightForWidthProperty);
3031             }
3032             set
3033             {
3034                 SetValue(HeightForWidthProperty, value);
3035                 NotifyPropertyChanged();
3036             }
3037         }
3038
3039         /// <summary>
3040         /// Gets or sets the padding for use in layout.
3041         /// </summary>
3042         /// <since_tizen> 5 </since_tizen>
3043         public Extents Padding
3044         {
3045             get
3046             {
3047                 return (Extents)GetValue(PaddingProperty);
3048             }
3049             set
3050             {
3051                 SetValue(PaddingProperty, value);
3052                 NotifyPropertyChanged();
3053             }
3054         }
3055
3056         /// <summary>
3057         /// Gets or sets the minimum size the view can be assigned in size negotiation.
3058         /// </summary>
3059         /// <since_tizen> 3 </since_tizen>
3060         public Size2D MinimumSize
3061         {
3062             get
3063             {
3064                 return (Size2D)GetValue(MinimumSizeProperty);
3065             }
3066             set
3067             {
3068                 if (Layout != null)
3069                 {
3070                     // Note: it only works if minimum size is >= than natural size.
3071                     // To force the size it should be done through the width&height spec or Size2D.
3072                     Layout.MinimumWidth = new Tizen.NUI.LayoutLength(value.Width);
3073                     Layout.MinimumHeight = new Tizen.NUI.LayoutLength(value.Height);
3074                 }
3075                 SetValue(MinimumSizeProperty, value);
3076                 NotifyPropertyChanged();
3077             }
3078         }
3079
3080         /// <summary>
3081         /// Gets or sets the maximum size the view can be assigned in size negotiation.
3082         /// </summary>
3083         /// <since_tizen> 3 </since_tizen>
3084         public Size2D MaximumSize
3085         {
3086             get
3087             {
3088                 return (Size2D)GetValue(MaximumSizeProperty);
3089             }
3090             set
3091             {
3092                 // We don't have Layout.Maximum(Width|Height) so we cannot apply it to layout.
3093                 // MATCH_PARENT spec + parent container size can be used to limit
3094                 SetValue(MaximumSizeProperty, value);
3095                 NotifyPropertyChanged();
3096             }
3097         }
3098
3099         /// <summary>
3100         /// Gets or sets whether a child view inherits it's parent's position.<br />
3101         /// Default is to inherit.<br />
3102         /// 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 />
3103         /// </summary>
3104         /// <since_tizen> 3 </since_tizen>
3105         public bool InheritPosition
3106         {
3107             get
3108             {
3109                 return (bool)GetValue(InheritPositionProperty);
3110             }
3111             set
3112             {
3113                 SetValue(InheritPositionProperty, value);
3114                 NotifyPropertyChanged();
3115             }
3116         }
3117
3118         /// <summary>
3119         /// Gets or sets the clipping behavior (mode) of it's children.
3120         /// </summary>
3121         /// <since_tizen> 3 </since_tizen>
3122         public ClippingModeType ClippingMode
3123         {
3124             get
3125             {
3126                 return (ClippingModeType)GetValue(ClippingModeProperty);
3127             }
3128             set
3129             {
3130                 SetValue(ClippingModeProperty, value);
3131                 NotifyPropertyChanged();
3132             }
3133         }
3134
3135         /// <summary>
3136         /// Gets the number of renderers held by the view.
3137         /// </summary>
3138         /// <since_tizen> 3 </since_tizen>
3139         public uint RendererCount
3140         {
3141             get
3142             {
3143                 return GetRendererCount();
3144             }
3145         }
3146
3147         /// <summary>
3148         /// [Obsolete("Please do not use! this will be deprecated")]
3149         /// </summary>
3150         /// <since_tizen> 3 </since_tizen>
3151         /// Please do not use! this will be deprecated!
3152         /// Instead please use PivotPoint.
3153         [Obsolete("Please do not use! This will be deprecated! Please use PivotPoint instead! " +
3154             "Like: " +
3155             "View view = new View(); " +
3156             "view.PivotPoint = PivotPoint.Center; " +
3157             "view.PositionUsesPivotPoint = true;")]
3158         [EditorBrowsable(EditorBrowsableState.Never)]
3159         public Position AnchorPoint
3160         {
3161             get
3162             {
3163                 Position temp = new Position(0.0f, 0.0f, 0.0f);
3164                 GetProperty(View.Property.ANCHOR_POINT).Get(temp);
3165                 return temp;
3166             }
3167             set
3168             {
3169                 SetProperty(View.Property.ANCHOR_POINT, new Tizen.NUI.PropertyValue(value));
3170                 NotifyPropertyChanged();
3171             }
3172         }
3173
3174         /// <summary>
3175         /// Sets the size of a view for the width, the height and the depth.<br />
3176         /// Geometry can be scaled to fit within this area.<br />
3177         /// This does not interfere with the view's scale factor.<br />
3178         /// The views default depth is the minimum of width and height.<br />
3179         /// </summary>
3180         /// <remarks>
3181         /// Please note that multi-cascade setting is not possible for this NUI object. <br />
3182         /// It is recommended that NUI object typed properties are configured by their constructor with parameters. <br />
3183         /// For example, this code is working fine : view.Size = new Size( 1.0f, 1.0f, 0.0f); <br />
3184         /// but this will not work! : view.Size.Width = 2.0f; view.Size.Height = 2.0f; <br />
3185         /// It may not match the current value in some cases, i.e. when the animation is progressing or the maximum or minimu size is set. <br />
3186         /// </remarks>
3187         /// <since_tizen> 5 </since_tizen>
3188         public Size Size
3189         {
3190             get
3191             {
3192                 return (Size)GetValue(SizeProperty);
3193             }
3194             set
3195             {
3196                 SetValue(SizeProperty, value);
3197                 // Set Specification so when layouts measure this View it matches the value set here.
3198                 // All Views are currently Layouts.
3199                 SetProperty(LayoutItemWrapper.ChildProperty.WIDTH_SPECIFICATION, new Tizen.NUI.PropertyValue(value.Width));
3200                 SetProperty(LayoutItemWrapper.ChildProperty.HEIGHT_SPECIFICATION, new Tizen.NUI.PropertyValue(value.Height));
3201                 NotifyPropertyChanged();
3202             }
3203         }
3204
3205         /// <summary>
3206         /// "Please DO NOT use! This will be deprecated! Please use 'Container GetParent() for derived class' instead!"
3207         /// </summary>
3208         /// <since_tizen> 3 </since_tizen>
3209         [Obsolete("Please do not use! This will be deprecated! Please use 'Container GetParent() for derived class' instead! " +
3210             "Like: " +
3211             "Container parent =  view.GetParent(); " +
3212             "View view = parent as View;")]
3213         [EditorBrowsable(EditorBrowsableState.Never)]
3214         public new View Parent
3215         {
3216             get
3217             {
3218                 View ret;
3219                 IntPtr cPtr = NDalicPINVOKE.Actor_GetParent(swigCPtr);
3220                 HandleRef CPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
3221                 BaseHandle basehandle = Registry.GetManagedBaseHandleFromNativePtr(CPtr.Handle);
3222
3223                 if (basehandle is Layer layer)
3224                 {
3225                     ret = new View(Layer.getCPtr(layer).Handle, false);
3226                     NUILog.Error("This Parent property is deprecated, shoud do not be used");
3227                 }
3228                 else
3229                 {
3230                     ret = basehandle as View;
3231                 }
3232
3233                 NDalicPINVOKE.delete_BaseHandle(CPtr);
3234                 CPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
3235
3236                 if (NDalicPINVOKE.SWIGPendingException.Pending)
3237                     throw NDalicPINVOKE.SWIGPendingException.Retrieve();
3238                 return ret;
3239             }
3240         }
3241
3242         /// <summary>
3243         /// Gets/Sets whether inherit parent's the layout Direction.
3244         /// </summary>
3245         /// <since_tizen> 4 </since_tizen>
3246         public bool InheritLayoutDirection
3247         {
3248             get
3249             {
3250                 return (bool)GetValue(InheritLayoutDirectionProperty);
3251             }
3252             set
3253             {
3254                 SetValue(InheritLayoutDirectionProperty, value);
3255                 NotifyPropertyChanged();
3256             }
3257         }
3258
3259         /// <summary>
3260         /// Gets/Sets the layout Direction.
3261         /// </summary>
3262         /// <since_tizen> 4 </since_tizen>
3263         public ViewLayoutDirectionType LayoutDirection
3264         {
3265             get
3266             {
3267                 return (ViewLayoutDirectionType)GetValue(LayoutDirectionProperty);
3268             }
3269             set
3270             {
3271                 SetValue(LayoutDirectionProperty, value);
3272                 NotifyPropertyChanged();
3273             }
3274         }
3275
3276         /// <summary>
3277         /// Gets or sets the Margin for use in layout.
3278         /// </summary>
3279         /// <remarks>
3280         /// Margin property is supported by Layout algorithms and containers.
3281         /// Please Set Layout if you want to use Margin property.
3282         /// </remarks>
3283         /// <since_tizen> 4 </since_tizen>
3284         public Extents Margin
3285         {
3286             get
3287             {
3288                 return (Extents)GetValue(MarginProperty);
3289             }
3290             set
3291             {
3292                 SetValue(MarginProperty, value);
3293                 NotifyPropertyChanged();
3294             }
3295         }
3296
3297         /// <summary>
3298         /// [Obsolete("Please do not use! this will be deprecated")]
3299         /// </summary>
3300         /// Please do not use! this will be deprecated!
3301         /// Instead please use Padding.
3302         /// <since_tizen> 4 </since_tizen>
3303         [Obsolete("Please do not use! this will be deprecated, instead please use Padding.")]
3304         [EditorBrowsable(EditorBrowsableState.Never)]
3305         public Extents PaddingEX
3306         {
3307             get
3308             {
3309                 Extents temp = new Extents(0, 0, 0, 0);
3310                 GetProperty(View.Property.PADDING).Get(temp);
3311                 return temp;
3312             }
3313             set
3314             {
3315                 SetProperty(View.Property.PADDING, new Tizen.NUI.PropertyValue(value));
3316                 NotifyPropertyChanged();
3317             }
3318         }
3319
3320         internal Style Style
3321         {
3322             get
3323             {
3324                 return (Style)GetValue(StyleProperty);
3325             }
3326             set
3327             {
3328                 SetValue(StyleProperty, value);
3329             }
3330         }
3331
3332         /// <summary>
3333         /// Child property to specify desired width
3334         /// </summary>
3335         internal int LayoutWidthSpecificationFixed
3336         {
3337             get
3338             {
3339                 int tmp = 0;
3340                 if (GetProperty(LayoutItemWrapper.ChildProperty.WIDTH_SPECIFICATION).Get(out tmp) == false)
3341                 {
3342                     NUILog.Error("WidthSpecificationFixed get error!");
3343                 }
3344                 return tmp;
3345             }
3346             set
3347             {
3348                 SetProperty(LayoutItemWrapper.ChildProperty.WIDTH_SPECIFICATION, new Tizen.NUI.PropertyValue(value));
3349             }
3350         }
3351
3352         /// <summary>
3353         /// Child property to specify desired height
3354         /// </summary>
3355         internal int LayoutHeightSpecificationFixed
3356         {
3357             get
3358             {
3359                 int tmp = 0;
3360                 if (GetProperty(LayoutItemWrapper.ChildProperty.HEIGHT_SPECIFICATION).Get(out tmp) == false)
3361                 {
3362                     NUILog.Error("HeightSpecificationFixed get error!");
3363                 }
3364                 return tmp;
3365             }
3366             set
3367             {
3368                 SetProperty(LayoutItemWrapper.ChildProperty.HEIGHT_SPECIFICATION, new Tizen.NUI.PropertyValue(value));
3369             }
3370         }
3371
3372         /// <summary>
3373         /// Child property to specify desired width, use MatchParent/WrapContent)
3374         /// </summary>
3375         internal ChildLayoutData LayoutWidthSpecification
3376         {
3377             get
3378             {
3379                 int tmp = 0;
3380                 if (GetProperty(LayoutItemWrapper.ChildProperty.WIDTH_SPECIFICATION).Get(out tmp) == false)
3381                 {
3382                     NUILog.Error("WidthSpecificationFixed get error!");
3383                 }
3384                 return (ChildLayoutData)tmp;
3385             }
3386             set
3387             {
3388                 SetProperty(LayoutItemWrapper.ChildProperty.WIDTH_SPECIFICATION, new Tizen.NUI.PropertyValue((int)value));
3389             }
3390         }
3391
3392         /// <summary>
3393         /// Child property to specify desired height, use MatchParent/WrapContent)
3394         /// </summary>
3395         internal ChildLayoutData LayoutHeightSpecification
3396         {
3397             get
3398             {
3399                 int tmp = 0;
3400                 if (GetProperty(LayoutItemWrapper.ChildProperty.HEIGHT_SPECIFICATION).Get(out tmp) == false)
3401                 {
3402                     NUILog.Error("HeightSpecificationFixed get error!");
3403                 }
3404                 return (ChildLayoutData)tmp;
3405             }
3406             set
3407             {
3408                 SetProperty(LayoutItemWrapper.ChildProperty.HEIGHT_SPECIFICATION, new Tizen.NUI.PropertyValue((int)value));
3409             }
3410         }
3411
3412         internal float Weight
3413         {
3414             get
3415             {
3416                 return (float)GetValue(WeightProperty);
3417             }
3418             set
3419             {
3420                 SetValue(WeightProperty, value);
3421                 NotifyPropertyChanged();
3422             }
3423         }
3424
3425         internal bool BackgroundImageSynchronosLoading
3426         {
3427             get
3428             {
3429                 return _backgroundImageSynchronosLoading;
3430             }
3431             set
3432             {
3433                 if (value != _backgroundImageSynchronosLoading)
3434                 {
3435                     string bgUrl = "";
3436                     PropertyMap bgMap = this.Background;
3437                     int visualType = 0;
3438                     bgMap.Find(Visual.Property.Type)?.Get(out visualType);
3439                     if (visualType == (int)Visual.Type.Image)
3440                     {
3441                         bgMap.Find(ImageVisualProperty.URL)?.Get(out bgUrl);
3442                     }
3443                     if (bgUrl.Length != 0)
3444                     {
3445                         _backgroundImageSynchronosLoading = value;
3446                         bgMap.Add("synchronousLoading", new PropertyValue(_backgroundImageSynchronosLoading));
3447                         this.Background = bgMap;
3448                     }
3449                 }
3450             }
3451         }
3452
3453         internal float WorldPositionX
3454         {
3455             get
3456             {
3457                 float temp = 0.0f;
3458                 GetProperty(View.Property.WORLD_POSITION_X).Get(out temp);
3459                 return temp;
3460             }
3461         }
3462
3463         internal float WorldPositionY
3464         {
3465             get
3466             {
3467                 float temp = 0.0f;
3468                 GetProperty(View.Property.WORLD_POSITION_Y).Get(out temp);
3469                 return temp;
3470             }
3471         }
3472
3473         internal float WorldPositionZ
3474         {
3475             get
3476             {
3477                 float temp = 0.0f;
3478                 GetProperty(View.Property.WORLD_POSITION_Z).Get(out temp);
3479                 return temp;
3480             }
3481         }
3482
3483         internal bool FocusState
3484         {
3485             get
3486             {
3487                 return IsKeyboardFocusable();
3488             }
3489             set
3490             {
3491                 SetKeyboardFocusable(value);
3492             }
3493         }
3494
3495         /// <summary>
3496         /// Set the layout on this control.
3497         /// </summary>
3498         /// <remarks>
3499         /// </remarks>
3500         internal LayoutItem Layout
3501         {
3502             get
3503             {
3504                 IntPtr cPtr = Tizen.NUI.NDalicManualPINVOKE.GetLayout__SWIG_1(View.getCPtr(this));
3505
3506                 HandleRef CPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
3507                 BaseHandle basehandle = Registry.GetManagedBaseHandleFromNativePtr(CPtr.Handle);
3508                 NDalicPINVOKE.delete_BaseHandle(CPtr);
3509                 CPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
3510
3511                 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
3512
3513                 return basehandle as LayoutItem;
3514             }
3515             set
3516             {
3517                 Log.Info("NUI", "Set Layout on:" + Name + "\n");
3518                 layoutingDisabled = false;
3519                 layoutSet = true;
3520                 SetLayout(value);
3521             }
3522         }
3523
3524         /// <summary>
3525         /// Set that layouting is required on this View. It will automatically receive a Layout.
3526         /// </summary>
3527         /// <remarks>
3528         /// </remarks>
3529         internal bool LayoutingRequired
3530         {
3531             get
3532             {
3533                 bool result = Tizen.NUI.NDalicManualPINVOKE.View_IsLayoutingRequired(View.getCPtr(this));
3534                 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
3535                 return result;
3536             }
3537             set
3538             {
3539                 Tizen.NUI.NDalicManualPINVOKE.View_SetLayoutingRequired(View.getCPtr(this), value);
3540             }
3541         }
3542
3543         internal float ParentOriginX
3544         {
3545             get
3546             {
3547                 float temp = 0.0f;
3548                 GetProperty(View.Property.PARENT_ORIGIN_X).Get(out temp);
3549                 return temp;
3550             }
3551             set
3552             {
3553                 SetProperty(View.Property.PARENT_ORIGIN_X, new Tizen.NUI.PropertyValue(value));
3554                 NotifyPropertyChanged();
3555             }
3556         }
3557
3558         internal float ParentOriginY
3559         {
3560             get
3561             {
3562                 float temp = 0.0f;
3563                 GetProperty(View.Property.PARENT_ORIGIN_Y).Get(out temp);
3564                 return temp;
3565             }
3566             set
3567             {
3568                 SetProperty(View.Property.PARENT_ORIGIN_Y, new Tizen.NUI.PropertyValue(value));
3569                 NotifyPropertyChanged();
3570             }
3571         }
3572
3573         internal float ParentOriginZ
3574         {
3575             get
3576             {
3577                 float temp = 0.0f;
3578                 GetProperty(View.Property.PARENT_ORIGIN_Z).Get(out temp);
3579                 return temp;
3580             }
3581             set
3582             {
3583                 SetProperty(View.Property.PARENT_ORIGIN_Z, new Tizen.NUI.PropertyValue(value));
3584                 NotifyPropertyChanged();
3585             }
3586         }
3587
3588         internal float PivotPointX
3589         {
3590             get
3591             {
3592                 float temp = 0.0f;
3593                 GetProperty(View.Property.ANCHOR_POINT_X).Get(out temp);
3594                 return temp;
3595             }
3596             set
3597             {
3598                 SetProperty(View.Property.ANCHOR_POINT_X, new Tizen.NUI.PropertyValue(value));
3599             }
3600         }
3601
3602         internal float PivotPointY
3603         {
3604             get
3605             {
3606                 float temp = 0.0f;
3607                 GetProperty(View.Property.ANCHOR_POINT_Y).Get(out temp);
3608                 return temp;
3609             }
3610             set
3611             {
3612                 SetProperty(View.Property.ANCHOR_POINT_Y, new Tizen.NUI.PropertyValue(value));
3613             }
3614         }
3615
3616         internal float PivotPointZ
3617         {
3618             get
3619             {
3620                 float temp = 0.0f;
3621                 GetProperty(View.Property.ANCHOR_POINT_Z).Get(out temp);
3622                 return temp;
3623             }
3624             set
3625             {
3626                 SetProperty(View.Property.ANCHOR_POINT_Z, new Tizen.NUI.PropertyValue(value));
3627             }
3628         }
3629
3630         internal Matrix WorldMatrix
3631         {
3632             get
3633             {
3634                 Matrix temp = new Matrix();
3635                 GetProperty(View.Property.WORLD_MATRIX).Get(temp);
3636                 return temp;
3637             }
3638         }
3639
3640         private int LeftFocusableViewId
3641         {
3642             get
3643             {
3644                 int temp = 0;
3645                 GetProperty(View.Property.LEFT_FOCUSABLE_VIEW_ID).Get(out temp);
3646                 return temp;
3647             }
3648             set
3649             {
3650                 SetProperty(View.Property.LEFT_FOCUSABLE_VIEW_ID, new Tizen.NUI.PropertyValue(value));
3651             }
3652         }
3653
3654         private int RightFocusableViewId
3655         {
3656             get
3657             {
3658                 int temp = 0;
3659                 GetProperty(View.Property.RIGHT_FOCUSABLE_VIEW_ID).Get(out temp);
3660                 return temp;
3661             }
3662             set
3663             {
3664                 SetProperty(View.Property.RIGHT_FOCUSABLE_VIEW_ID, new Tizen.NUI.PropertyValue(value));
3665             }
3666         }
3667
3668         private int UpFocusableViewId
3669         {
3670             get
3671             {
3672                 int temp = 0;
3673                 GetProperty(View.Property.UP_FOCUSABLE_VIEW_ID).Get(out temp);
3674                 return temp;
3675             }
3676             set
3677             {
3678                 SetProperty(View.Property.UP_FOCUSABLE_VIEW_ID, new Tizen.NUI.PropertyValue(value));
3679             }
3680         }
3681
3682         private int DownFocusableViewId
3683         {
3684             get
3685             {
3686                 int temp = 0;
3687                 GetProperty(View.Property.DOWN_FOCUSABLE_VIEW_ID).Get(out temp);
3688                 return temp;
3689             }
3690             set
3691             {
3692                 SetProperty(View.Property.DOWN_FOCUSABLE_VIEW_ID, new Tizen.NUI.PropertyValue(value));
3693             }
3694         }
3695
3696         /// <summary>
3697         /// Perform an action on a visual registered to this view. <br />
3698         /// Visuals will have actions. This API is used to perform one of these actions with the given attributes.
3699         /// </summary>
3700         /// <param name="propertyIndexOfVisual">The Property index of the visual.</param>
3701         /// <param name="propertyIndexOfActionId">The action to perform. See Visual to find the supported actions.</param>
3702         /// <param name="attributes">Optional attributes for the action.</param>
3703         /// <since_tizen> 5 </since_tizen>
3704         public void DoAction(int propertyIndexOfVisual, int propertyIndexOfActionId, PropertyValue attributes)
3705         {
3706             NDalicManualPINVOKE.View_DoAction(swigCPtr, propertyIndexOfVisual, propertyIndexOfActionId, PropertyValue.getCPtr(attributes));
3707             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
3708         }
3709
3710         /// <summary>
3711         /// Creates an animation to animate the background color visual. If there is no
3712         /// background visual, creates one with transparent black as it's mixColor.
3713         /// </summary>
3714         /// <since_tizen> 3 </since_tizen>
3715         public Animation AnimateBackgroundColor(object destinationValue,
3716                                                  int startTime,
3717                                                  int endTime,
3718                                                  AlphaFunction.BuiltinFunctions? alphaFunction = null,
3719                                                  object initialValue = null)
3720         {
3721             Tizen.NUI.PropertyMap background = Background;
3722
3723             if (background.Empty())
3724             {
3725                 // If there is no background yet, ensure there is a transparent
3726                 // color visual
3727                 BackgroundColor = new Color(0.0f, 0.0f, 0.0f, 0.0f);
3728                 background = Background;
3729             }
3730             return AnimateColor("background", destinationValue, startTime, endTime, alphaFunction, initialValue);
3731         }
3732
3733         /// <summary>
3734         /// Creates an animation to animate the mixColor of the named visual.
3735         /// </summary>
3736         /// <since_tizen> 3 </since_tizen>
3737         public Animation AnimateColor(string targetVisual, object destinationColor, int startTime, int endTime, AlphaFunction.BuiltinFunctions? alphaFunction = null, object initialColor = null)
3738         {
3739             Animation animation = null;
3740             {
3741                 PropertyMap _animator = new PropertyMap();
3742                 if (alphaFunction != null)
3743                 {
3744                     _animator.Add("alphaFunction", new PropertyValue(AlphaFunction.BuiltinToPropertyKey(alphaFunction)));
3745                 }
3746
3747                 PropertyMap _timePeriod = new PropertyMap();
3748                 _timePeriod.Add("duration", new PropertyValue((endTime - startTime) / 1000.0f));
3749                 _timePeriod.Add("delay", new PropertyValue(startTime / 1000.0f));
3750                 _animator.Add("timePeriod", new PropertyValue(_timePeriod));
3751
3752                 PropertyMap _transition = new PropertyMap();
3753                 _transition.Add("animator", new PropertyValue(_animator));
3754                 _transition.Add("target", new PropertyValue(targetVisual));
3755                 _transition.Add("property", new PropertyValue("mixColor"));
3756
3757                 if (initialColor != null)
3758                 {
3759                     PropertyValue initValue = PropertyValue.CreateFromObject(initialColor);
3760                     _transition.Add("initialValue", initValue);
3761                 }
3762
3763                 PropertyValue destValue = PropertyValue.CreateFromObject(destinationColor);
3764                 _transition.Add("targetValue", destValue);
3765                 TransitionData _transitionData = new TransitionData(_transition);
3766
3767                 animation = new Animation(NDalicManualPINVOKE.View_CreateTransition(swigCPtr, TransitionData.getCPtr(_transitionData)), true);
3768                 if (NDalicPINVOKE.SWIGPendingException.Pending)
3769                     throw NDalicPINVOKE.SWIGPendingException.Retrieve();
3770             }
3771             return animation;
3772         }
3773
3774         // From Container Base class
3775         /// <summary>
3776         /// Adds a child view to this view.
3777         /// </summary>
3778         /// <seealso cref="Container.Add" />
3779         /// <since_tizen> 4 </since_tizen>
3780         public override void Add(View child)
3781         {
3782             if (null == child)
3783             {
3784                 Tizen.Log.Fatal("NUI", "Child is null");
3785                 return;
3786             }
3787
3788             Log.Info("NUI", "Adding Child:" + child.Name + " to " + Name + "\n");
3789
3790             Container oldParent = child.GetParent();
3791             if (oldParent != this)
3792             {
3793                 if (oldParent != null)
3794                 {
3795                     oldParent.Remove(child);
3796                 }
3797                 child.InternalParent = this;
3798
3799                 // Only give children a layout if their parent is an explicit container or a pure View.
3800                 // Pure View meaning not derived from a View, e.g a Legacy container.
3801                 // layoutSet flag is true when the View became a layout using the set Layout API opposed to automatically due to it's parent.
3802                 // First time the set Layout API is used by any View the Window no longer has layoutingDisabled.
3803                 if ((true == layoutSet || GetType() == typeof(View)) && null == child.Layout && false == layoutingDisabled)
3804                 {
3805                     Log.Info("NUI", "Parent[" + Name + "] Layout set[" + layoutSet.ToString() + "] Pure View[" + (!layoutSet).ToString() + "]\n");
3806                     // If child is a View or explicitly set to require layouting then set child as a LayoutGroup.
3807                     // If the child is derived from a View then it may be a legacy or existing container hence will do layouting itself.
3808                     if (child.GetType() == typeof(View) || true == child.LayoutingRequired)
3809                     {
3810                         Log.Info("NUI", "Creating LayoutGroup for " + child.Name + " LayoutingRequired[" + child.LayoutingRequired.ToString() + "]\n");
3811                         child.SetLayout(new LayoutGroup());
3812                     }
3813                     else
3814                     {
3815                         // Adding child as a leaf, layouting will not propagate past this child.
3816                         // Legacy containers will be a LayoutItems too and layout their children how they wish.
3817                         Log.Info("NUI", "Creating LayoutItem for " + child.Name + "\n");
3818                         child.SetLayout(new LayoutItem());
3819                     }
3820                 }
3821
3822                 if (Layout)
3823                 {
3824                     Layout.LayoutChildren.Add(child.Layout);
3825                 }
3826
3827                 NDalicPINVOKE.Actor_Add(swigCPtr, View.getCPtr(child));
3828                 if (NDalicPINVOKE.SWIGPendingException.Pending)
3829                     throw NDalicPINVOKE.SWIGPendingException.Retrieve();
3830                 Children.Add(child);
3831
3832                 if (ChildAdded != null)
3833                 {
3834                     ChildAddedEventArgs e = new ChildAddedEventArgs
3835                     {
3836                         Added = child
3837                     };
3838                     ChildAdded(this, e);
3839                 }
3840             }
3841         }
3842
3843         /// <summary>
3844         /// Removes a child view from this View. If the view was not a child of this view, this is a no-op.
3845         /// </summary>
3846         /// <seealso cref="Container.Remove" />
3847         /// <since_tizen> 4 </since_tizen>
3848         public override void Remove(View child)
3849         {
3850             NDalicPINVOKE.Actor_Remove(swigCPtr, View.getCPtr(child));
3851             if (NDalicPINVOKE.SWIGPendingException.Pending)
3852                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
3853
3854             Children.Remove(child);
3855             child.InternalParent = null;
3856
3857             if (Layout)
3858             {
3859                 if (child.Layout)
3860                 {
3861                     Layout.LayoutChildren.Remove(child.Layout);
3862                 }
3863             }
3864
3865             if (ChildRemoved != null)
3866             {
3867                 ChildRemovedEventArgs e = new ChildRemovedEventArgs
3868                 {
3869                     Removed = child
3870                 };
3871                 ChildRemoved(this, e);
3872             }
3873         }
3874
3875         /// <summary>
3876         /// Retrieves a child view by index.
3877         /// </summary>
3878         /// <seealso cref="Container.GetChildAt" />
3879         /// <since_tizen> 4 </since_tizen>
3880         public override View GetChildAt(uint index)
3881         {
3882             if (index < Children.Count)
3883             {
3884                 return Children[Convert.ToInt32(index)];
3885             }
3886             else
3887             {
3888                 return null;
3889             }
3890         }
3891
3892         /// <summary>
3893         /// Retrieves the number of children held by the view.
3894         /// </summary>
3895         /// <seealso cref="Container.GetChildCount" />
3896         /// <since_tizen> 4 </since_tizen>
3897         public override uint GetChildCount()
3898         {
3899             return Convert.ToUInt32(Children.Count);
3900         }
3901
3902         /// <summary>
3903         /// Gets the views parent.
3904         /// </summary>
3905         /// <seealso cref="Container.GetParent()" />
3906         /// <since_tizen> 4 </since_tizen>
3907         public override Container GetParent()
3908         {
3909             return this.InternalParent as Container;
3910         }
3911
3912         /// <summary>
3913         /// Queries whether the view has a focus.
3914         /// </summary>
3915         /// <returns>True if this view has a focus.</returns>
3916         /// <since_tizen> 3 </since_tizen>
3917         public bool HasFocus()
3918         {
3919             bool ret = NDalicPINVOKE.View_HasKeyInputFocus(swigCPtr);
3920             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
3921             return ret;
3922         }
3923
3924         /// <summary>
3925         /// Sets the name of the style to be applied to the view.
3926         /// </summary>
3927         /// <param name="styleName">A string matching a style described in a stylesheet.</param>
3928         /// <since_tizen> 3 </since_tizen>
3929         public void SetStyleName(string styleName)
3930         {
3931             NDalicPINVOKE.View_SetStyleName(swigCPtr, styleName);
3932             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
3933         }
3934
3935         /// <summary>
3936         /// Retrieves the name of the style to be applied to the view (if any).
3937         /// </summary>
3938         /// <returns>A string matching a style, or an empty string.</returns>
3939         /// <since_tizen> 3 </since_tizen>
3940         public string GetStyleName()
3941         {
3942             string ret = NDalicPINVOKE.View_GetStyleName(swigCPtr);
3943             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
3944             return ret;
3945         }
3946
3947         /// <summary>
3948         /// Clears the background.
3949         /// </summary>
3950         /// <since_tizen> 3 </since_tizen>
3951         public void ClearBackground()
3952         {
3953             NDalicPINVOKE.View_ClearBackground(swigCPtr);
3954             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
3955         }
3956
3957         /// <summary>
3958         /// Shows the view.
3959         /// </summary>
3960         /// <remarks>
3961         /// This is an asynchronous method.
3962         /// </remarks>
3963         /// <since_tizen> 3 </since_tizen>
3964         public void Show()
3965         {
3966             SetVisible(true);
3967         }
3968
3969         /// <summary>
3970         /// Hides the view.
3971         /// </summary>
3972         /// <remarks>
3973         /// This is an asynchronous method.
3974         /// If the view is hidden, then the view and its children will not be rendered.
3975         /// This is regardless of the individual visibility of the children, i.e., the view will only be rendered if all of its parents are shown.
3976         /// </remarks>
3977         /// <since_tizen> 3 </since_tizen>
3978         public void Hide()
3979         {
3980             SetVisible(false);
3981         }
3982
3983         /// <summary>
3984         /// Raises the view above all other views.
3985         /// </summary>
3986         /// <remarks>
3987         /// Sibling order of views within the parent will be updated automatically.
3988         /// Once a raise or lower API is used, that view will then have an exclusive sibling order independent of insertion.
3989         /// </remarks>
3990         /// <since_tizen> 3 </since_tizen>
3991         public void RaiseToTop()
3992         {
3993             var parentChildren = GetParent()?.Children;
3994
3995             if (parentChildren != null)
3996             {
3997                 parentChildren.Remove(this);
3998                 parentChildren.Add(this);
3999
4000                 NDalicPINVOKE.RaiseToTop(swigCPtr);
4001                 if (NDalicPINVOKE.SWIGPendingException.Pending)
4002                     throw NDalicPINVOKE.SWIGPendingException.Retrieve();
4003             }
4004
4005         }
4006
4007         /// <summary>
4008         /// Lowers the view to the bottom of all views.
4009         /// </summary>
4010         /// <remarks>
4011         /// The sibling order of views within the parent will be updated automatically.
4012         /// Once a raise or lower API is used that view will then have an exclusive sibling order independent of insertion.
4013         /// </remarks>
4014         /// <since_tizen> 3 </since_tizen>
4015         public void LowerToBottom()
4016         {
4017             var parentChildren = GetParent()?.Children;
4018
4019             if (parentChildren != null)
4020             {
4021                 parentChildren.Remove(this);
4022                 parentChildren.Insert(0, this);
4023
4024                 NDalicPINVOKE.LowerToBottom(swigCPtr);
4025                 if (NDalicPINVOKE.SWIGPendingException.Pending)
4026                     throw NDalicPINVOKE.SWIGPendingException.Retrieve();
4027             }
4028         }
4029
4030         /// <summary>
4031         /// Queries if all resources required by a view are loaded and ready.
4032         /// </summary>
4033         /// <remarks>Most resources are only loaded when the control is placed on the stage.
4034         /// </remarks>
4035         /// <since_tizen> 3 </since_tizen>
4036         public bool IsResourceReady()
4037         {
4038             bool ret = NDalicPINVOKE.IsResourceReady(swigCPtr);
4039             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
4040             return ret;
4041         }
4042
4043         /// <summary>
4044         /// Gets the parent layer of this view.If a view has no parent, this method does not do anything.
4045         /// </summary>
4046         /// <pre>The view has been initialized. </pre>
4047         /// <returns>The parent layer of view </returns>
4048         /// <since_tizen> 5 </since_tizen>
4049         public Layer GetLayer()
4050         {
4051             //to fix memory leak issue, match the handle count with native side.
4052             IntPtr cPtr = NDalicPINVOKE.Actor_GetLayer(swigCPtr);
4053             HandleRef CPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
4054             Layer ret = Registry.GetManagedBaseHandleFromNativePtr(CPtr.Handle) as Layer;
4055             NDalicPINVOKE.delete_BaseHandle(CPtr);
4056             CPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
4057
4058             if (NDalicPINVOKE.SWIGPendingException.Pending)
4059                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
4060             return ret;
4061         }
4062
4063         /// <summary>
4064         /// Removes a view from its parent view or layer. If a view has no parent, this method does nothing.
4065         /// </summary>
4066         /// <pre>The (child) view has been initialized. </pre>
4067         /// <since_tizen> 4 </since_tizen>
4068         public void Unparent()
4069         {
4070             GetParent()?.Remove(this);
4071         }
4072
4073         /// <summary>
4074         /// Search through this view's hierarchy for a view with the given name.
4075         /// The view itself is also considered in the search.
4076         /// </summary>
4077         /// <pre>The view has been initialized.</pre>
4078         /// <param name="viewName">The name of the view to find.</param>
4079         /// <returns>A handle to the view if found, or an empty handle if not.</returns>
4080         /// <since_tizen> 3 </since_tizen>
4081         public View FindChildByName(string viewName)
4082         {
4083             //to fix memory leak issue, match the handle count with native side.
4084             IntPtr cPtr = NDalicPINVOKE.Actor_FindChildByName(swigCPtr, viewName);
4085             HandleRef CPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
4086             View ret = Registry.GetManagedBaseHandleFromNativePtr(CPtr.Handle) as View;
4087             NDalicPINVOKE.delete_BaseHandle(CPtr);
4088             CPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
4089
4090             if (NDalicPINVOKE.SWIGPendingException.Pending)
4091                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
4092             return ret;
4093         }
4094
4095         /// <summary>
4096         /// Converts screen coordinates into the view's coordinate system using the default camera.
4097         /// </summary>
4098         /// <pre>The view has been initialized.</pre>
4099         /// <remarks>The view coordinates are relative to the top-left(0.0, 0.0, 0.5).</remarks>
4100         /// <param name="localX">On return, the X-coordinate relative to the view.</param>
4101         /// <param name="localY">On return, the Y-coordinate relative to the view.</param>
4102         /// <param name="screenX">The screen X-coordinate.</param>
4103         /// <param name="screenY">The screen Y-coordinate.</param>
4104         /// <returns>True if the conversion succeeded.</returns>
4105         /// <since_tizen> 3 </since_tizen>
4106         public bool ScreenToLocal(out float localX, out float localY, float screenX, float screenY)
4107         {
4108             bool ret = NDalicPINVOKE.Actor_ScreenToLocal(swigCPtr, out localX, out localY, screenX, screenY);
4109             if (NDalicPINVOKE.SWIGPendingException.Pending)
4110                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
4111             return ret;
4112         }
4113
4114         /// <summary>
4115         /// Sets the relative to parent size factor of the view.<br />
4116         /// This factor is only used when ResizePolicy is set to either:
4117         /// ResizePolicy::SIZE_RELATIVE_TO_PARENT or ResizePolicy::SIZE_FIXED_OFFSET_FROM_PARENT.<br />
4118         /// This view's size is set to the view's size multiplied by or added to this factor, depending on ResizePolicy.<br />
4119         /// </summary>
4120         /// <pre>The view has been initialized.</pre>
4121         /// <param name="factor">A Vector3 representing the relative factor to be applied to each axis.</param>
4122         /// <since_tizen> 3 </since_tizen>
4123         public void SetSizeModeFactor(Vector3 factor)
4124         {
4125             NDalicPINVOKE.Actor_SetSizeModeFactor(swigCPtr, Vector3.getCPtr(factor));
4126             if (NDalicPINVOKE.SWIGPendingException.Pending)
4127                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
4128         }
4129         /// <summary>
4130         /// Calculates the height of the view given a width.<br />
4131         /// The natural size is used for default calculation.<br />
4132         /// Size 0 is treated as aspect ratio 1:1.<br />
4133         /// </summary>
4134         /// <param name="width">The width to use.</param>
4135         /// <returns>The height based on the width.</returns>
4136         /// <since_tizen> 3 </since_tizen>
4137         public float GetHeightForWidth(float width)
4138         {
4139             float ret = NDalicPINVOKE.Actor_GetHeightForWidth(swigCPtr, width);
4140             if (NDalicPINVOKE.SWIGPendingException.Pending)
4141                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
4142             return ret;
4143         }
4144
4145         /// <summary>
4146         /// Calculates the width of the view given a height.<br />
4147         /// The natural size is used for default calculation.<br />
4148         /// Size 0 is treated as aspect ratio 1:1.<br />
4149         /// </summary>
4150         /// <param name="height">The height to use.</param>
4151         /// <returns>The width based on the height.</returns>
4152         /// <since_tizen> 3 </since_tizen>
4153         public float GetWidthForHeight(float height)
4154         {
4155             float ret = NDalicPINVOKE.Actor_GetWidthForHeight(swigCPtr, height);
4156             if (NDalicPINVOKE.SWIGPendingException.Pending)
4157                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
4158             return ret;
4159         }
4160
4161         /// <summary>
4162         /// Return the amount of size allocated for relayout.
4163         /// </summary>
4164         /// <param name="dimension">The dimension to retrieve.</param>
4165         /// <returns>Return the size.</returns>
4166         /// <since_tizen> 3 </since_tizen>
4167         public float GetRelayoutSize(DimensionType dimension)
4168         {
4169             float ret = NDalicPINVOKE.Actor_GetRelayoutSize(swigCPtr, (int)dimension);
4170             if (NDalicPINVOKE.SWIGPendingException.Pending)
4171                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
4172             return ret;
4173         }
4174
4175         /// <summary>
4176         /// Set the padding for the view.
4177         /// </summary>
4178         /// <param name="padding">Padding for the view.</param>
4179         /// <since_tizen> 3 </since_tizen>
4180         public void SetPadding(PaddingType padding)
4181         {
4182             NDalicPINVOKE.Actor_SetPadding(swigCPtr, PaddingType.getCPtr(padding));
4183             if (NDalicPINVOKE.SWIGPendingException.Pending)
4184                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
4185         }
4186
4187         /// <summary>
4188         /// Return the value of padding for the view.
4189         /// </summary>
4190         /// <param name="paddingOut">the value of padding for the view</param>
4191         /// <since_tizen> 3 </since_tizen>
4192         public void GetPadding(PaddingType paddingOut)
4193         {
4194             NDalicPINVOKE.Actor_GetPadding(swigCPtr, PaddingType.getCPtr(paddingOut));
4195             if (NDalicPINVOKE.SWIGPendingException.Pending)
4196                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
4197         }
4198
4199         /// <since_tizen> 3 </since_tizen>
4200         public uint AddRenderer(Renderer renderer)
4201         {
4202             uint ret = NDalicPINVOKE.Actor_AddRenderer(swigCPtr, Renderer.getCPtr(renderer));
4203             if (NDalicPINVOKE.SWIGPendingException.Pending)
4204                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
4205             return ret;
4206         }
4207
4208         /// <since_tizen> 3 </since_tizen>
4209         public Renderer GetRendererAt(uint index)
4210         {
4211             //to fix memory leak issue, match the handle count with native side.
4212             IntPtr cPtr = NDalicPINVOKE.Actor_GetRendererAt(swigCPtr, index);
4213             HandleRef CPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
4214             Renderer ret = Registry.GetManagedBaseHandleFromNativePtr(CPtr.Handle) as Renderer;
4215             if (cPtr != null && ret == null)
4216             {
4217                 ret = new Renderer(cPtr, false);
4218                 if (NDalicPINVOKE.SWIGPendingException.Pending)
4219                     throw NDalicPINVOKE.SWIGPendingException.Retrieve();
4220                 return ret;
4221             }
4222             NDalicPINVOKE.delete_BaseHandle(CPtr);
4223             CPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
4224
4225             if (NDalicPINVOKE.SWIGPendingException.Pending)
4226                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
4227             return ret;
4228         }
4229
4230         /// <since_tizen> 3 </since_tizen>
4231         public void RemoveRenderer(Renderer renderer)
4232         {
4233             NDalicPINVOKE.Actor_RemoveRenderer__SWIG_0(swigCPtr, Renderer.getCPtr(renderer));
4234             if (NDalicPINVOKE.SWIGPendingException.Pending)
4235                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
4236         }
4237
4238         /// <since_tizen> 3 </since_tizen>
4239         public void RemoveRenderer(uint index)
4240         {
4241             NDalicPINVOKE.Actor_RemoveRenderer__SWIG_1(swigCPtr, index);
4242             if (NDalicPINVOKE.SWIGPendingException.Pending)
4243                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
4244         }
4245
4246         internal void Raise()
4247         {
4248             var parentChildren = GetParent()?.Children;
4249
4250             if (parentChildren != null)
4251             {
4252                 int currentIndex = parentChildren.IndexOf(this);
4253
4254                 // If the view is not already the last item in the list.
4255                 if (currentIndex >= 0 && currentIndex < parentChildren.Count - 1)
4256                 {
4257                     View temp = parentChildren[currentIndex + 1];
4258                     parentChildren[currentIndex + 1] = this;
4259                     parentChildren[currentIndex] = temp;
4260
4261                     NDalicPINVOKE.Raise(swigCPtr);
4262                     if (NDalicPINVOKE.SWIGPendingException.Pending)
4263                         throw NDalicPINVOKE.SWIGPendingException.Retrieve();
4264                 }
4265             }
4266         }
4267
4268         internal void Lower()
4269         {
4270             var parentChildren = GetParent()?.Children;
4271
4272             if (parentChildren != null)
4273             {
4274                 int currentIndex = parentChildren.IndexOf(this);
4275
4276                 // If the view is not already the first item in the list.
4277                 if (currentIndex > 0 && currentIndex < parentChildren.Count)
4278                 {
4279                     View temp = parentChildren[currentIndex - 1];
4280                     parentChildren[currentIndex - 1] = this;
4281                     parentChildren[currentIndex] = temp;
4282
4283                     NDalicPINVOKE.Lower(swigCPtr);
4284                     if (NDalicPINVOKE.SWIGPendingException.Pending)
4285                         throw NDalicPINVOKE.SWIGPendingException.Retrieve();
4286                 }
4287             }
4288         }
4289
4290         /// <summary>
4291         /// Raises the view to above the target view.
4292         /// </summary>
4293         /// <remarks>The sibling order of views within the parent will be updated automatically.
4294         /// Views on the level above the target view will still be shown above this view.
4295         /// Raising this view above views with the same sibling order as each other will raise this view above them.
4296         /// Once a raise or lower API is used that view will then have an exclusive sibling order independent of insertion.
4297         /// </remarks>
4298         /// <param name="target">Will be raised above this view.</param>
4299         internal void RaiseAbove(View target)
4300         {
4301             var parentChildren = GetParent()?.Children;
4302
4303             if (parentChildren != null)
4304             {
4305                 int currentIndex = parentChildren.IndexOf(this);
4306                 int targetIndex = parentChildren.IndexOf(target);
4307
4308                 if (currentIndex < 0 || targetIndex < 0 ||
4309                     currentIndex >= parentChildren.Count || targetIndex >= parentChildren.Count)
4310                 {
4311                     NUILog.Error("index should be bigger than 0 and less than children of layer count");
4312                     return;
4313                 }
4314                 // If the currentIndex is less than the target index and the target has the same parent.
4315                 if (currentIndex < targetIndex)
4316                 {
4317                     parentChildren.Remove(this);
4318                     parentChildren.Insert(targetIndex, this);
4319
4320                     NDalicPINVOKE.RaiseAbove(swigCPtr, View.getCPtr(target));
4321                     if (NDalicPINVOKE.SWIGPendingException.Pending)
4322                         throw NDalicPINVOKE.SWIGPendingException.Retrieve();
4323                 }
4324             }
4325
4326         }
4327
4328         /// <summary>
4329         /// Lowers the view to below the target view.
4330         /// </summary>
4331         /// <remarks>The sibling order of views within the parent will be updated automatically.
4332         /// Lowering this view below views with the same sibling order as each other will lower this view above them.
4333         /// Once a raise or lower API is used that view will then have an exclusive sibling order independent of insertion.
4334         /// </remarks>
4335         /// <param name="target">Will be lowered below this view.</param>
4336         internal void LowerBelow(View target)
4337         {
4338             var parentChildren = GetParent()?.Children;
4339
4340             if (parentChildren != null)
4341             {
4342                 int currentIndex = parentChildren.IndexOf(this);
4343                 int targetIndex = parentChildren.IndexOf(target);
4344                 if (currentIndex < 0 || targetIndex < 0 ||
4345                    currentIndex >= parentChildren.Count || targetIndex >= parentChildren.Count)
4346                 {
4347                     NUILog.Error("index should be bigger than 0 and less than children of layer count");
4348                     return;
4349                 }
4350
4351                 // If the currentIndex is not already the 0th index and the target has the same parent.
4352                 if ((currentIndex != 0) && (targetIndex != -1) &&
4353                     (currentIndex > targetIndex))
4354                 {
4355                     parentChildren.Remove(this);
4356                     parentChildren.Insert(targetIndex, this);
4357
4358                     NDalicPINVOKE.LowerBelow(swigCPtr, View.getCPtr(target));
4359                     if (NDalicPINVOKE.SWIGPendingException.Pending)
4360                         throw NDalicPINVOKE.SWIGPendingException.Retrieve();
4361                 }
4362             }
4363
4364         }
4365
4366         internal string GetName()
4367         {
4368             string ret = NDalicPINVOKE.Actor_GetName(swigCPtr);
4369             if (NDalicPINVOKE.SWIGPendingException.Pending)
4370                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
4371             return ret;
4372         }
4373
4374         internal void SetName(string name)
4375         {
4376             NDalicPINVOKE.Actor_SetName(swigCPtr, name);
4377             if (NDalicPINVOKE.SWIGPendingException.Pending)
4378                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
4379         }
4380
4381         internal uint GetId()
4382         {
4383             uint ret = NDalicPINVOKE.Actor_GetId(swigCPtr);
4384             if (NDalicPINVOKE.SWIGPendingException.Pending)
4385                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
4386             return ret;
4387         }
4388
4389         internal bool IsRoot()
4390         {
4391             bool ret = NDalicPINVOKE.Actor_IsRoot(swigCPtr);
4392             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
4393             return ret;
4394         }
4395
4396         internal bool OnWindow()
4397         {
4398             bool ret = NDalicPINVOKE.Actor_OnStage(swigCPtr);
4399             if (NDalicPINVOKE.SWIGPendingException.Pending)
4400                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
4401             return ret;
4402         }
4403
4404         internal View FindChildById(uint id)
4405         {
4406             //to fix memory leak issue, match the handle count with native side.
4407             IntPtr cPtr = NDalicPINVOKE.Actor_FindChildById(swigCPtr, id);
4408             HandleRef CPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
4409             View ret = Registry.GetManagedBaseHandleFromNativePtr(CPtr.Handle) as View;
4410             NDalicPINVOKE.delete_BaseHandle(CPtr);
4411             CPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
4412
4413             if (NDalicPINVOKE.SWIGPendingException.Pending)
4414                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
4415             return ret;
4416         }
4417
4418         internal void SetParentOrigin(Vector3 origin)
4419         {
4420             NDalicPINVOKE.Actor_SetParentOrigin(swigCPtr, Vector3.getCPtr(origin));
4421             if (NDalicPINVOKE.SWIGPendingException.Pending)
4422                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
4423         }
4424
4425         internal Vector3 GetCurrentParentOrigin()
4426         {
4427             Vector3 ret = new Vector3(NDalicPINVOKE.Actor_GetCurrentParentOrigin(swigCPtr), true);
4428             if (NDalicPINVOKE.SWIGPendingException.Pending)
4429                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
4430             return ret;
4431         }
4432
4433         internal void SetAnchorPoint(Vector3 anchorPoint)
4434         {
4435             NDalicPINVOKE.Actor_SetAnchorPoint(swigCPtr, Vector3.getCPtr(anchorPoint));
4436             if (NDalicPINVOKE.SWIGPendingException.Pending)
4437                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
4438         }
4439
4440         internal Vector3 GetCurrentAnchorPoint()
4441         {
4442             Vector3 ret = new Vector3(NDalicPINVOKE.Actor_GetCurrentAnchorPoint(swigCPtr), true);
4443             if (NDalicPINVOKE.SWIGPendingException.Pending)
4444                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
4445             return ret;
4446         }
4447
4448         internal void SetSize(float width, float height)
4449         {
4450             NDalicPINVOKE.Actor_SetSize__SWIG_0(swigCPtr, width, height);
4451             if (NDalicPINVOKE.SWIGPendingException.Pending)
4452                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
4453         }
4454
4455         internal void SetSize(float width, float height, float depth)
4456         {
4457             NDalicPINVOKE.Actor_SetSize__SWIG_1(swigCPtr, width, height, depth);
4458             if (NDalicPINVOKE.SWIGPendingException.Pending)
4459                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
4460         }
4461
4462         internal void SetSize(Vector2 size)
4463         {
4464             NDalicPINVOKE.Actor_SetSize__SWIG_2(swigCPtr, Vector2.getCPtr(size));
4465             if (NDalicPINVOKE.SWIGPendingException.Pending)
4466                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
4467         }
4468
4469         internal void SetSize(Vector3 size)
4470         {
4471             NDalicPINVOKE.Actor_SetSize__SWIG_3(swigCPtr, Vector3.getCPtr(size));
4472             if (NDalicPINVOKE.SWIGPendingException.Pending)
4473                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
4474         }
4475
4476         internal Vector3 GetTargetSize()
4477         {
4478             Vector3 ret = new Vector3(NDalicPINVOKE.Actor_GetTargetSize(swigCPtr), true);
4479             if (NDalicPINVOKE.SWIGPendingException.Pending)
4480                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
4481             return ret;
4482         }
4483
4484         internal Size2D GetCurrentSize()
4485         {
4486             Size ret = new Size(NDalicPINVOKE.Actor_GetCurrentSize(swigCPtr), true);
4487             if (NDalicPINVOKE.SWIGPendingException.Pending)
4488                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
4489             Size2D size = new Size2D((int)ret.Width, (int)ret.Height);
4490             return size;
4491         }
4492
4493         internal Vector3 GetNaturalSize()
4494         {
4495             Vector3 ret = new Vector3(NDalicPINVOKE.Actor_GetNaturalSize(swigCPtr), true);
4496             if (NDalicPINVOKE.SWIGPendingException.Pending)
4497                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
4498             return ret;
4499         }
4500
4501         internal void SetPosition(float x, float y)
4502         {
4503             NDalicPINVOKE.Actor_SetPosition__SWIG_0(swigCPtr, x, y);
4504             if (NDalicPINVOKE.SWIGPendingException.Pending)
4505                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
4506         }
4507
4508         internal void SetPosition(float x, float y, float z)
4509         {
4510             NDalicPINVOKE.Actor_SetPosition__SWIG_1(swigCPtr, x, y, z);
4511             if (NDalicPINVOKE.SWIGPendingException.Pending)
4512                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
4513         }
4514
4515         internal void SetPosition(Vector3 position)
4516         {
4517             NDalicPINVOKE.Actor_SetPosition__SWIG_2(swigCPtr, Vector3.getCPtr(position));
4518             if (NDalicPINVOKE.SWIGPendingException.Pending)
4519                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
4520         }
4521
4522         internal void SetX(float x)
4523         {
4524             NDalicPINVOKE.Actor_SetX(swigCPtr, x);
4525             if (NDalicPINVOKE.SWIGPendingException.Pending)
4526                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
4527         }
4528
4529         internal void SetY(float y)
4530         {
4531             NDalicPINVOKE.Actor_SetY(swigCPtr, y);
4532             if (NDalicPINVOKE.SWIGPendingException.Pending)
4533                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
4534         }
4535
4536         internal void SetZ(float z)
4537         {
4538             NDalicPINVOKE.Actor_SetZ(swigCPtr, z);
4539             if (NDalicPINVOKE.SWIGPendingException.Pending)
4540                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
4541         }
4542
4543         internal void TranslateBy(Vector3 distance)
4544         {
4545             NDalicPINVOKE.Actor_TranslateBy(swigCPtr, Vector3.getCPtr(distance));
4546             if (NDalicPINVOKE.SWIGPendingException.Pending)
4547                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
4548         }
4549
4550         internal Position GetCurrentPosition()
4551         {
4552             Position ret = new Position(NDalicPINVOKE.Actor_GetCurrentPosition(swigCPtr), true);
4553             if (NDalicPINVOKE.SWIGPendingException.Pending)
4554                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
4555             return ret;
4556         }
4557
4558         internal Vector3 GetCurrentWorldPosition()
4559         {
4560             Vector3 ret = new Vector3(NDalicPINVOKE.Actor_GetCurrentWorldPosition(swigCPtr), true);
4561             if (NDalicPINVOKE.SWIGPendingException.Pending)
4562                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
4563             return ret;
4564         }
4565
4566         internal void SetInheritPosition(bool inherit)
4567         {
4568             NDalicPINVOKE.Actor_SetInheritPosition(swigCPtr, inherit);
4569             if (NDalicPINVOKE.SWIGPendingException.Pending)
4570                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
4571         }
4572
4573         internal bool IsPositionInherited()
4574         {
4575             bool ret = NDalicPINVOKE.Actor_IsPositionInherited(swigCPtr);
4576             if (NDalicPINVOKE.SWIGPendingException.Pending)
4577                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
4578             return ret;
4579         }
4580
4581         internal void SetOrientation(Degree angle, Vector3 axis)
4582         {
4583             NDalicPINVOKE.Actor_SetOrientation__SWIG_0(swigCPtr, Degree.getCPtr(angle), Vector3.getCPtr(axis));
4584             if (NDalicPINVOKE.SWIGPendingException.Pending)
4585                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
4586         }
4587
4588         internal void SetOrientation(Radian angle, Vector3 axis)
4589         {
4590             NDalicPINVOKE.Actor_SetOrientation__SWIG_1(swigCPtr, Radian.getCPtr(angle), Vector3.getCPtr(axis));
4591             if (NDalicPINVOKE.SWIGPendingException.Pending)
4592                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
4593         }
4594
4595         internal void SetOrientation(Rotation orientation)
4596         {
4597             NDalicPINVOKE.Actor_SetOrientation__SWIG_2(swigCPtr, Rotation.getCPtr(orientation));
4598             if (NDalicPINVOKE.SWIGPendingException.Pending)
4599                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
4600         }
4601
4602         internal void RotateBy(Degree angle, Vector3 axis)
4603         {
4604             NDalicPINVOKE.Actor_RotateBy__SWIG_0(swigCPtr, Degree.getCPtr(angle), Vector3.getCPtr(axis));
4605             if (NDalicPINVOKE.SWIGPendingException.Pending)
4606                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
4607         }
4608
4609         internal void RotateBy(Radian angle, Vector3 axis)
4610         {
4611             NDalicPINVOKE.Actor_RotateBy__SWIG_1(swigCPtr, Radian.getCPtr(angle), Vector3.getCPtr(axis));
4612             if (NDalicPINVOKE.SWIGPendingException.Pending)
4613                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
4614         }
4615
4616         internal void RotateBy(Rotation relativeRotation)
4617         {
4618             NDalicPINVOKE.Actor_RotateBy__SWIG_2(swigCPtr, Rotation.getCPtr(relativeRotation));
4619             if (NDalicPINVOKE.SWIGPendingException.Pending)
4620                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
4621         }
4622
4623         internal Rotation GetCurrentOrientation()
4624         {
4625             Rotation ret = new Rotation(NDalicPINVOKE.Actor_GetCurrentOrientation(swigCPtr), true);
4626             if (NDalicPINVOKE.SWIGPendingException.Pending)
4627                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
4628             return ret;
4629         }
4630
4631         internal void SetInheritOrientation(bool inherit)
4632         {
4633             NDalicPINVOKE.Actor_SetInheritOrientation(swigCPtr, inherit);
4634             if (NDalicPINVOKE.SWIGPendingException.Pending)
4635                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
4636         }
4637
4638         internal bool IsOrientationInherited()
4639         {
4640             bool ret = NDalicPINVOKE.Actor_IsOrientationInherited(swigCPtr);
4641             if (NDalicPINVOKE.SWIGPendingException.Pending)
4642                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
4643             return ret;
4644         }
4645
4646         internal Rotation GetCurrentWorldOrientation()
4647         {
4648             Rotation ret = new Rotation(NDalicPINVOKE.Actor_GetCurrentWorldOrientation(swigCPtr), true);
4649             if (NDalicPINVOKE.SWIGPendingException.Pending)
4650                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
4651             return ret;
4652         }
4653
4654         internal void SetScale(float scale)
4655         {
4656             NDalicPINVOKE.Actor_SetScale__SWIG_0(swigCPtr, scale);
4657             if (NDalicPINVOKE.SWIGPendingException.Pending)
4658                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
4659         }
4660
4661         internal void SetScale(float scaleX, float scaleY, float scaleZ)
4662         {
4663             NDalicPINVOKE.Actor_SetScale__SWIG_1(swigCPtr, scaleX, scaleY, scaleZ);
4664             if (NDalicPINVOKE.SWIGPendingException.Pending)
4665                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
4666         }
4667
4668         internal void SetScale(Vector3 scale)
4669         {
4670             NDalicPINVOKE.Actor_SetScale__SWIG_2(swigCPtr, Vector3.getCPtr(scale));
4671             if (NDalicPINVOKE.SWIGPendingException.Pending)
4672                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
4673         }
4674
4675         internal void ScaleBy(Vector3 relativeScale)
4676         {
4677             NDalicPINVOKE.Actor_ScaleBy(swigCPtr, Vector3.getCPtr(relativeScale));
4678             if (NDalicPINVOKE.SWIGPendingException.Pending)
4679                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
4680         }
4681
4682         internal Vector3 GetCurrentScale()
4683         {
4684             Vector3 ret = new Vector3(NDalicPINVOKE.Actor_GetCurrentScale(swigCPtr), true);
4685             if (NDalicPINVOKE.SWIGPendingException.Pending)
4686                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
4687             return ret;
4688         }
4689
4690         internal Vector3 GetCurrentWorldScale()
4691         {
4692             Vector3 ret = new Vector3(NDalicPINVOKE.Actor_GetCurrentWorldScale(swigCPtr), true);
4693             if (NDalicPINVOKE.SWIGPendingException.Pending)
4694                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
4695             return ret;
4696         }
4697
4698         internal void SetInheritScale(bool inherit)
4699         {
4700             NDalicPINVOKE.Actor_SetInheritScale(swigCPtr, inherit);
4701             if (NDalicPINVOKE.SWIGPendingException.Pending)
4702                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
4703         }
4704
4705         internal bool IsScaleInherited()
4706         {
4707             bool ret = NDalicPINVOKE.Actor_IsScaleInherited(swigCPtr);
4708             if (NDalicPINVOKE.SWIGPendingException.Pending)
4709                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
4710             return ret;
4711         }
4712
4713         internal Matrix GetCurrentWorldMatrix()
4714         {
4715             Matrix ret = new Matrix(NDalicPINVOKE.Actor_GetCurrentWorldMatrix(swigCPtr), true);
4716             if (NDalicPINVOKE.SWIGPendingException.Pending)
4717                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
4718             return ret;
4719         }
4720
4721         internal void SetVisible(bool visible)
4722         {
4723             NDalicPINVOKE.Actor_SetVisible(swigCPtr, visible);
4724             if (NDalicPINVOKE.SWIGPendingException.Pending)
4725                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
4726         }
4727
4728         internal bool IsVisible()
4729         {
4730             bool ret = NDalicPINVOKE.Actor_IsVisible(swigCPtr);
4731             if (NDalicPINVOKE.SWIGPendingException.Pending)
4732                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
4733             return ret;
4734         }
4735
4736         internal void SetOpacity(float opacity)
4737         {
4738             NDalicPINVOKE.Actor_SetOpacity(swigCPtr, opacity);
4739             if (NDalicPINVOKE.SWIGPendingException.Pending)
4740                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
4741         }
4742
4743         internal float GetCurrentOpacity()
4744         {
4745             float ret = NDalicPINVOKE.Actor_GetCurrentOpacity(swigCPtr);
4746             if (NDalicPINVOKE.SWIGPendingException.Pending)
4747                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
4748             return ret;
4749         }
4750
4751         internal void SetColor(Vector4 color)
4752         {
4753             NDalicPINVOKE.Actor_SetColor(swigCPtr, Vector4.getCPtr(color));
4754             if (NDalicPINVOKE.SWIGPendingException.Pending)
4755                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
4756         }
4757
4758         internal Vector4 GetCurrentColor()
4759         {
4760             Vector4 ret = new Vector4(NDalicPINVOKE.Actor_GetCurrentColor(swigCPtr), true);
4761             if (NDalicPINVOKE.SWIGPendingException.Pending)
4762                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
4763             return ret;
4764         }
4765
4766         internal void SetColorMode(ColorMode colorMode)
4767         {
4768             NDalicPINVOKE.Actor_SetColorMode(swigCPtr, (int)colorMode);
4769             if (NDalicPINVOKE.SWIGPendingException.Pending)
4770                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
4771         }
4772
4773         internal ColorMode GetColorMode()
4774         {
4775             ColorMode ret = (ColorMode)NDalicPINVOKE.Actor_GetColorMode(swigCPtr);
4776             if (NDalicPINVOKE.SWIGPendingException.Pending)
4777                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
4778             return ret;
4779         }
4780
4781         internal Vector4 GetCurrentWorldColor()
4782         {
4783             Vector4 ret = new Vector4(NDalicPINVOKE.Actor_GetCurrentWorldColor(swigCPtr), true);
4784             if (NDalicPINVOKE.SWIGPendingException.Pending)
4785                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
4786             return ret;
4787         }
4788
4789         internal void SetDrawMode(DrawModeType drawMode)
4790         {
4791             NDalicPINVOKE.Actor_SetDrawMode(swigCPtr, (int)drawMode);
4792             if (NDalicPINVOKE.SWIGPendingException.Pending)
4793                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
4794         }
4795
4796         internal DrawModeType GetDrawMode()
4797         {
4798             DrawModeType ret = (DrawModeType)NDalicPINVOKE.Actor_GetDrawMode(swigCPtr);
4799             if (NDalicPINVOKE.SWIGPendingException.Pending)
4800                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
4801             return ret;
4802         }
4803
4804         internal void SetKeyboardFocusable(bool focusable)
4805         {
4806             NDalicPINVOKE.Actor_SetKeyboardFocusable(swigCPtr, focusable);
4807             if (NDalicPINVOKE.SWIGPendingException.Pending)
4808                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
4809         }
4810
4811         internal bool IsKeyboardFocusable()
4812         {
4813             bool ret = NDalicPINVOKE.Actor_IsKeyboardFocusable(swigCPtr);
4814             if (NDalicPINVOKE.SWIGPendingException.Pending)
4815                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
4816             return ret;
4817         }
4818
4819         internal void SetResizePolicy(ResizePolicyType policy, DimensionType dimension)
4820         {
4821             NDalicPINVOKE.Actor_SetResizePolicy(swigCPtr, (int)policy, (int)dimension);
4822             if (NDalicPINVOKE.SWIGPendingException.Pending)
4823                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
4824         }
4825
4826         internal ResizePolicyType GetResizePolicy(DimensionType dimension)
4827         {
4828             ResizePolicyType ret = (ResizePolicyType)NDalicPINVOKE.Actor_GetResizePolicy(swigCPtr, (int)dimension);
4829             if (NDalicPINVOKE.SWIGPendingException.Pending)
4830                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
4831             return ret;
4832         }
4833
4834         internal Vector3 GetSizeModeFactor()
4835         {
4836             Vector3 ret = new Vector3(NDalicPINVOKE.Actor_GetSizeModeFactor(swigCPtr), true);
4837             if (NDalicPINVOKE.SWIGPendingException.Pending)
4838                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
4839             return ret;
4840         }
4841
4842         internal void SetMinimumSize(Vector2 size)
4843         {
4844             NDalicPINVOKE.Actor_SetMinimumSize(swigCPtr, Vector2.getCPtr(size));
4845             if (NDalicPINVOKE.SWIGPendingException.Pending)
4846                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
4847         }
4848
4849         internal Vector2 GetMinimumSize()
4850         {
4851             Vector2 ret = new Vector2(NDalicPINVOKE.Actor_GetMinimumSize(swigCPtr), true);
4852             if (NDalicPINVOKE.SWIGPendingException.Pending)
4853                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
4854             return ret;
4855         }
4856
4857         internal void SetMaximumSize(Vector2 size)
4858         {
4859             NDalicPINVOKE.Actor_SetMaximumSize(swigCPtr, Vector2.getCPtr(size));
4860             if (NDalicPINVOKE.SWIGPendingException.Pending)
4861                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
4862         }
4863
4864         internal Vector2 GetMaximumSize()
4865         {
4866             Vector2 ret = new Vector2(NDalicPINVOKE.Actor_GetMaximumSize(swigCPtr), true);
4867             if (NDalicPINVOKE.SWIGPendingException.Pending)
4868                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
4869             return ret;
4870         }
4871
4872         internal int GetHierarchyDepth()
4873         {
4874             int ret = NDalicPINVOKE.Actor_GetHierarchyDepth(swigCPtr);
4875             if (NDalicPINVOKE.SWIGPendingException.Pending)
4876                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
4877             return ret;
4878         }
4879
4880         internal uint GetRendererCount()
4881         {
4882             uint ret = NDalicPINVOKE.Actor_GetRendererCount(swigCPtr);
4883             if (NDalicPINVOKE.SWIGPendingException.Pending)
4884                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
4885             return ret;
4886         }
4887
4888         internal TouchDataSignal TouchSignal()
4889         {
4890             TouchDataSignal ret = new TouchDataSignal(NDalicPINVOKE.Actor_TouchSignal(swigCPtr), false);
4891             if (NDalicPINVOKE.SWIGPendingException.Pending)
4892                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
4893             return ret;
4894         }
4895
4896         internal HoverSignal HoveredSignal()
4897         {
4898             HoverSignal ret = new HoverSignal(NDalicPINVOKE.Actor_HoveredSignal(swigCPtr), false);
4899             if (NDalicPINVOKE.SWIGPendingException.Pending)
4900                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
4901             return ret;
4902         }
4903
4904         internal WheelSignal WheelEventSignal()
4905         {
4906             WheelSignal ret = new WheelSignal(NDalicPINVOKE.Actor_WheelEventSignal(swigCPtr), false);
4907             if (NDalicPINVOKE.SWIGPendingException.Pending)
4908                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
4909             return ret;
4910         }
4911
4912         internal ViewSignal OnWindowSignal()
4913         {
4914             ViewSignal ret = new ViewSignal(NDalicPINVOKE.Actor_OnStageSignal(swigCPtr), false);
4915             if (NDalicPINVOKE.SWIGPendingException.Pending)
4916                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
4917             return ret;
4918         }
4919
4920         internal ViewSignal OffWindowSignal()
4921         {
4922             ViewSignal ret = new ViewSignal(NDalicPINVOKE.Actor_OffStageSignal(swigCPtr), false);
4923             if (NDalicPINVOKE.SWIGPendingException.Pending)
4924                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
4925             return ret;
4926         }
4927
4928         internal ViewSignal OnRelayoutSignal()
4929         {
4930             ViewSignal ret = new ViewSignal(NDalicPINVOKE.Actor_OnRelayoutSignal(swigCPtr), false);
4931             if (NDalicPINVOKE.SWIGPendingException.Pending)
4932                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
4933             return ret;
4934         }
4935
4936         internal ViewVisibilityChangedSignal VisibilityChangedSignal(View view)
4937         {
4938             ViewVisibilityChangedSignal ret = new ViewVisibilityChangedSignal(NDalicPINVOKE.VisibilityChangedSignal(View.getCPtr(view)), false);
4939             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
4940             return ret;
4941         }
4942
4943         internal ViewLayoutDirectionChangedSignal LayoutDirectionChangedSignal(View view)
4944         {
4945             ViewLayoutDirectionChangedSignal ret = new ViewLayoutDirectionChangedSignal(NDalicManualPINVOKE.LayoutDirectionChangedSignal(View.getCPtr(view)), false);
4946             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
4947             return ret;
4948         }
4949
4950         internal ViewSignal ResourcesLoadedSignal()
4951         {
4952             ViewSignal ret = new ViewSignal(NDalicPINVOKE.ResourceReadySignal(swigCPtr), false);
4953             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
4954             return ret;
4955         }
4956
4957         internal static global::System.Runtime.InteropServices.HandleRef getCPtr(View obj)
4958         {
4959             return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
4960         }
4961
4962         internal bool IsTopLevelView()
4963         {
4964             if (GetParent() is Layer)
4965             {
4966                 return true;
4967             }
4968             return false;
4969         }
4970
4971         internal void SetKeyInputFocus()
4972         {
4973             NDalicPINVOKE.View_SetKeyInputFocus(swigCPtr);
4974             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
4975         }
4976
4977         internal void ClearKeyInputFocus()
4978         {
4979             NDalicPINVOKE.View_ClearKeyInputFocus(swigCPtr);
4980             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
4981         }
4982
4983         internal PinchGestureDetector GetPinchGestureDetector()
4984         {
4985             PinchGestureDetector ret = new PinchGestureDetector(NDalicPINVOKE.View_GetPinchGestureDetector(swigCPtr), true);
4986             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
4987             return ret;
4988         }
4989
4990         internal PanGestureDetector GetPanGestureDetector()
4991         {
4992             PanGestureDetector ret = new PanGestureDetector(NDalicPINVOKE.View_GetPanGestureDetector(swigCPtr), true);
4993             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
4994             return ret;
4995         }
4996
4997         internal TapGestureDetector GetTapGestureDetector()
4998         {
4999             TapGestureDetector ret = new TapGestureDetector(NDalicPINVOKE.View_GetTapGestureDetector(swigCPtr), true);
5000             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
5001             return ret;
5002         }
5003
5004         internal LongPressGestureDetector GetLongPressGestureDetector()
5005         {
5006             LongPressGestureDetector ret = new LongPressGestureDetector(NDalicPINVOKE.View_GetLongPressGestureDetector(swigCPtr), true);
5007             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
5008             return ret;
5009         }
5010
5011         internal void SetBackgroundColor(Vector4 color)
5012         {
5013             NDalicPINVOKE.View_SetBackgroundColor(swigCPtr, Vector4.getCPtr(color));
5014             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
5015         }
5016
5017         internal Vector4 GetBackgroundColor()
5018         {
5019             Vector4 ret = new Vector4(NDalicPINVOKE.View_GetBackgroundColor(swigCPtr), true);
5020             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
5021             return ret;
5022         }
5023
5024         internal void SetBackgroundImage(Image image)
5025         {
5026             NDalicPINVOKE.View_SetBackgroundImage(swigCPtr, Image.getCPtr(image));
5027             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
5028         }
5029
5030         internal ControlKeySignal KeyEventSignal()
5031         {
5032             ControlKeySignal ret = new ControlKeySignal(NDalicPINVOKE.View_KeyEventSignal(swigCPtr), false);
5033             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
5034             return ret;
5035         }
5036
5037         internal KeyInputFocusSignal KeyInputFocusGainedSignal()
5038         {
5039             KeyInputFocusSignal ret = new KeyInputFocusSignal(NDalicPINVOKE.View_KeyInputFocusGainedSignal(swigCPtr), false);
5040             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
5041             return ret;
5042         }
5043
5044         internal KeyInputFocusSignal KeyInputFocusLostSignal()
5045         {
5046             KeyInputFocusSignal ret = new KeyInputFocusSignal(NDalicPINVOKE.View_KeyInputFocusLostSignal(swigCPtr), false);
5047             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
5048             return ret;
5049         }
5050
5051         internal IntPtr GetPtrfromView()
5052         {
5053             return (IntPtr)swigCPtr;
5054         }
5055
5056         internal void SetLayout(LayoutItem layout)
5057         {
5058             Tizen.NUI.NDalicManualPINVOKE.SetLayout__SWIG_1(View.getCPtr(this), LayoutItem.getCPtr(layout));
5059             layout.LayoutChildren.Clear();
5060             foreach (View view in Children)
5061             {
5062                 layout.LayoutChildren.Add(view.Layout);
5063             }
5064         }
5065
5066         internal ResourceLoadingStatusType GetBackgroundResourceStatus()
5067         {
5068             return (ResourceLoadingStatusType)NDalicManualPINVOKE.View_GetVisualResourceStatus(this.swigCPtr, Property.BACKGROUND);
5069         }
5070
5071         /// <summary>
5072         /// you can override it to clean-up your own resources.
5073         /// </summary>
5074         /// <param name="type">DisposeTypes</param>
5075         /// <since_tizen> 3 </since_tizen>
5076         protected override void Dispose(DisposeTypes type)
5077         {
5078             if (disposed)
5079             {
5080                 return;
5081             }
5082
5083             if (type == DisposeTypes.Explicit)
5084             {
5085                 //Called by User
5086                 //Release your own managed resources here.
5087                 //You should release all of your own disposable objects here.
5088             }
5089
5090             //Release your own unmanaged resources here.
5091             //You should not access any managed member here except static instance.
5092             //because the execution order of Finalizes is non-deterministic.
5093             if (this != null)
5094             {
5095                 DisConnectFromSignals();
5096             }
5097
5098             if (swigCPtr.Handle != global::System.IntPtr.Zero)
5099             {
5100                 if (swigCMemOwn)
5101                 {
5102                     swigCMemOwn = false;
5103                     NDalicPINVOKE.delete_View(swigCPtr);
5104                 }
5105                 swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
5106             }
5107
5108             foreach (View view in Children)
5109             {
5110                 view.InternalParent = null;
5111             }
5112
5113             base.Dispose(type);
5114
5115         }
5116
5117         private void OnSize2DChanged(int width, int height)
5118         {
5119             Size2D = new Size2D(width, height);
5120         }
5121
5122         private void OnPosition2DChanged(int x, int y)
5123         {
5124             Position2D = new Position2D(x, y);
5125         }
5126
5127         private void DisConnectFromSignals()
5128         {
5129             // Save current CPtr.
5130             global::System.Runtime.InteropServices.HandleRef currentCPtr = swigCPtr;
5131
5132             // Use BaseHandle CPtr as current might have been deleted already in derived classes.
5133             swigCPtr = GetBaseHandleCPtrHandleRef;
5134
5135             if (_onRelayoutEventCallback != null)
5136             {
5137                 this.OnRelayoutSignal().Disconnect(_onRelayoutEventCallback);
5138             }
5139
5140             if (_offWindowEventCallback != null)
5141             {
5142                 this.OffWindowSignal().Disconnect(_offWindowEventCallback);
5143             }
5144
5145             if (_onWindowEventCallback != null)
5146             {
5147                 this.OnWindowSignal().Disconnect(_onWindowEventCallback);
5148             }
5149
5150             if (_wheelEventCallback != null)
5151             {
5152                 this.WheelEventSignal().Disconnect(_wheelEventCallback);
5153             }
5154
5155             if (_hoverEventCallback != null)
5156             {
5157                 this.HoveredSignal().Disconnect(_hoverEventCallback);
5158             }
5159
5160             if (_touchDataCallback != null)
5161             {
5162                 this.TouchSignal().Disconnect(_touchDataCallback);
5163             }
5164
5165             if (_ResourcesLoadedCallback != null)
5166             {
5167                 this.ResourcesLoadedSignal().Disconnect(_ResourcesLoadedCallback);
5168             }
5169
5170             if (_offWindowEventCallback != null)
5171             {
5172                 this.OffWindowSignal().Disconnect(_offWindowEventCallback);
5173             }
5174
5175             if (_onWindowEventCallback != null)
5176             {
5177                 this.OnWindowSignal().Disconnect(_onWindowEventCallback);
5178             }
5179
5180             if (_wheelEventCallback != null)
5181             {
5182                 this.WheelEventSignal().Disconnect(_wheelEventCallback);
5183             }
5184
5185             if (_hoverEventCallback != null)
5186             {
5187                 this.HoveredSignal().Disconnect(_hoverEventCallback);
5188             }
5189
5190             if (_touchDataCallback != null)
5191             {
5192                 this.TouchSignal().Disconnect(_touchDataCallback);
5193             }
5194
5195             if (_onRelayoutEventCallback != null)
5196             {
5197                 this.OnRelayoutSignal().Disconnect(_onRelayoutEventCallback);
5198             }
5199
5200             if (_keyCallback != null)
5201             {
5202                 this.KeyEventSignal().Disconnect(_keyCallback);
5203             }
5204
5205             if (_keyInputFocusLostCallback != null)
5206             {
5207                 this.KeyInputFocusLostSignal().Disconnect(_keyInputFocusLostCallback);
5208             }
5209
5210             if (_keyInputFocusGainedCallback != null)
5211             {
5212                 this.KeyInputFocusGainedSignal().Disconnect(_keyInputFocusGainedCallback);
5213             }
5214
5215             if (_backgroundResourceLoadedCallback != null)
5216             {
5217                 this.ResourcesLoadedSignal().Disconnect(_backgroundResourceLoadedCallback);
5218             }
5219
5220             if (_onWindowSendEventCallback != null)
5221             {
5222                 this.OnWindowSignal().Disconnect(_onWindowSendEventCallback);
5223             }
5224
5225             // BaseHandle CPtr is used in Registry and there is danger of deletion if we keep using it here.
5226             // Restore current CPtr.
5227             swigCPtr = currentCPtr;
5228         }
5229
5230         private void OnKeyInputFocusGained(IntPtr view)
5231         {
5232             if (_keyInputFocusGainedEventHandler != null)
5233             {
5234                 _keyInputFocusGainedEventHandler(this, null);
5235             }
5236         }
5237
5238         private void OnKeyInputFocusLost(IntPtr view)
5239         {
5240             if (_keyInputFocusLostEventHandler != null)
5241             {
5242                 _keyInputFocusLostEventHandler(this, null);
5243             }
5244         }
5245
5246         private bool OnKeyEvent(IntPtr view, IntPtr keyEvent)
5247         {
5248             if (keyEvent == global::System.IntPtr.Zero)
5249             {
5250                 NUILog.Error("keyEvent should not be null!");
5251                 return true;
5252             }
5253
5254             KeyEventArgs e = new KeyEventArgs();
5255
5256             bool result = false;
5257
5258             e.Key = Tizen.NUI.Key.GetKeyFromPtr(keyEvent);
5259
5260             if (_keyEventHandler != null)
5261             {
5262                 Delegate[] delegateList = _keyEventHandler.GetInvocationList();
5263
5264                 // Oring the result of each callback.
5265                 foreach (EventHandlerWithReturnType<object, KeyEventArgs, bool> del in delegateList)
5266                 {
5267                     result |= del(this, e);
5268                 }
5269             }
5270
5271             return result;
5272         }
5273
5274         // Callback for View OnRelayout signal
5275         private void OnRelayout(IntPtr data)
5276         {
5277             if (_onRelayoutEventHandler != null)
5278             {
5279                 _onRelayoutEventHandler(this, null);
5280             }
5281         }
5282
5283         // Callback for View TouchSignal
5284         private bool OnTouch(IntPtr view, IntPtr touchData)
5285         {
5286             if (touchData == global::System.IntPtr.Zero)
5287             {
5288                 NUILog.Error("touchData should not be null!");
5289                 return true;
5290             }
5291
5292             TouchEventArgs e = new TouchEventArgs();
5293
5294             e.Touch = Tizen.NUI.Touch.GetTouchFromPtr(touchData);
5295
5296             if (_touchDataEventHandler != null)
5297             {
5298                 return _touchDataEventHandler(this, e);
5299             }
5300             return false;
5301         }
5302
5303         // Callback for View Hover signal
5304         private bool OnHoverEvent(IntPtr view, IntPtr hoverEvent)
5305         {
5306             if (hoverEvent == global::System.IntPtr.Zero)
5307             {
5308                 NUILog.Error("hoverEvent should not be null!");
5309                 return true;
5310             }
5311
5312             HoverEventArgs e = new HoverEventArgs();
5313
5314             e.Hover = Tizen.NUI.Hover.GetHoverFromPtr(hoverEvent);
5315
5316             if (_hoverEventHandler != null)
5317             {
5318                 return _hoverEventHandler(this, e);
5319             }
5320             return false;
5321         }
5322
5323         // Callback for View Wheel signal
5324         private bool OnWheelEvent(IntPtr view, IntPtr wheelEvent)
5325         {
5326             if (wheelEvent == global::System.IntPtr.Zero)
5327             {
5328                 NUILog.Error("wheelEvent should not be null!");
5329                 return true;
5330             }
5331
5332             WheelEventArgs e = new WheelEventArgs();
5333
5334             e.Wheel = Tizen.NUI.Wheel.GetWheelFromPtr(wheelEvent);
5335
5336             if (_wheelEventHandler != null)
5337             {
5338                 return _wheelEventHandler(this, e);
5339             }
5340             return false;
5341         }
5342
5343         // Callback for View OnWindow signal
5344         private void OnWindow(IntPtr data)
5345         {
5346             if (_onWindowEventHandler != null)
5347             {
5348                 _onWindowEventHandler(this, null);
5349             }
5350         }
5351
5352         // Callback for View OffWindow signal
5353         private void OffWindow(IntPtr data)
5354         {
5355             if (_offWindowEventHandler != null)
5356             {
5357                 _offWindowEventHandler(this, null);
5358             }
5359         }
5360
5361         // Callback for View visibility change signal
5362         private void OnVisibilityChanged(IntPtr data, bool visibility, VisibilityChangeType type)
5363         {
5364             VisibilityChangedEventArgs e = new VisibilityChangedEventArgs();
5365             if (data != null)
5366             {
5367                 e.View = Registry.GetManagedBaseHandleFromNativePtr(data) as View;
5368             }
5369             e.Visibility = visibility;
5370             e.Type = type;
5371
5372             if (_visibilityChangedEventHandler != null)
5373             {
5374                 _visibilityChangedEventHandler(this, e);
5375             }
5376         }
5377
5378         // Callback for View layout direction change signal
5379         private void OnLayoutDirectionChanged(IntPtr data, ViewLayoutDirectionType type)
5380         {
5381             LayoutDirectionChangedEventArgs e = new LayoutDirectionChangedEventArgs();
5382             if (data != null)
5383             {
5384                 e.View = Registry.GetManagedBaseHandleFromNativePtr(data) as View;
5385             }
5386             e.Type = type;
5387
5388             if (_layoutDirectionChangedEventHandler != null)
5389             {
5390                 _layoutDirectionChangedEventHandler(this, e);
5391             }
5392         }
5393
5394         private void OnResourcesLoaded(IntPtr view)
5395         {
5396             if (_resourcesLoadedEventHandler != null)
5397             {
5398                 _resourcesLoadedEventHandler(this, null);
5399             }
5400         }
5401
5402         private View ConvertIdToView(uint id)
5403         {
5404             View view = null;
5405             if (GetParent() is View)
5406             {
5407                 View parentView = GetParent() as View;
5408                 view = parentView.FindChildById(id);
5409             }
5410
5411             if (!view)
5412             {
5413                 view = Window.Instance.GetRootLayer().FindChildById(id);
5414             }
5415
5416             return view;
5417         }
5418
5419         private void OnBackgroundResourceLoaded(IntPtr view)
5420         {
5421             BackgroundResourceLoadedEventArgs e = new BackgroundResourceLoadedEventArgs();
5422             e.Status = (ResourceLoadingStatusType)NDalicManualPINVOKE.View_GetVisualResourceStatus(this.swigCPtr, Property.BACKGROUND);
5423
5424             if (_backgroundResourceLoadedEventHandler != null)
5425             {
5426                 _backgroundResourceLoadedEventHandler(this, e);
5427             }
5428         }
5429
5430         /// <summary>
5431         /// Event argument passed through the ChildAdded event.
5432         /// </summary>
5433         /// <since_tizen> 5 </since_tizen>
5434         public class ChildAddedEventArgs : EventArgs
5435         {
5436             /// <summary>
5437             /// Added child view at moment.
5438             /// </summary>
5439             /// <since_tizen> 5 </since_tizen>
5440             public View Added { get; set; }
5441         }
5442
5443         /// <summary>
5444         /// Event argument passed through the ChildRemoved event.
5445         /// </summary>
5446         /// <since_tizen> 5 </since_tizen>
5447         public class ChildRemovedEventArgs : EventArgs
5448         {
5449             /// <summary>
5450             /// Removed child view at moment.
5451             /// </summary>
5452             /// <since_tizen> 5 </since_tizen>
5453             public View Removed { get; set; }
5454         }
5455
5456         /// <summary>
5457         /// Event arguments that passed via the KeyEvent signal.
5458         /// </summary>
5459         /// <since_tizen> 3 </since_tizen>
5460         public class KeyEventArgs : EventArgs
5461         {
5462             private Key _key;
5463
5464             /// <summary>
5465             /// Key - is the key sent to the view.
5466             /// </summary>
5467             /// <since_tizen> 3 </since_tizen>
5468             public Key Key
5469             {
5470                 get
5471                 {
5472                     return _key;
5473                 }
5474                 set
5475                 {
5476                     _key = value;
5477                 }
5478             }
5479         }
5480
5481         /// <summary>
5482         /// Event arguments that passed via the touch signal.
5483         /// </summary>
5484         /// <since_tizen> 3 </since_tizen>
5485         public class TouchEventArgs : EventArgs
5486         {
5487             private Touch _touch;
5488
5489             /// <summary>
5490             /// Touch - contains the information of touch points.
5491             /// </summary>
5492             /// <since_tizen> 3 </since_tizen>
5493             public Touch Touch
5494             {
5495                 get
5496                 {
5497                     return _touch;
5498                 }
5499                 set
5500                 {
5501                     _touch = value;
5502                 }
5503             }
5504         }
5505
5506         /// <summary>
5507         /// Event arguments that passed via the hover signal.
5508         /// </summary>
5509         /// <since_tizen> 3 </since_tizen>
5510         public class HoverEventArgs : EventArgs
5511         {
5512             private Hover _hover;
5513
5514             /// <summary>
5515             /// Hover - contains touch points that represent the points that are currently being hovered or the points where a hover has stopped.
5516             /// </summary>
5517             /// <since_tizen> 3 </since_tizen>
5518             public Hover Hover
5519             {
5520                 get
5521                 {
5522                     return _hover;
5523                 }
5524                 set
5525                 {
5526                     _hover = value;
5527                 }
5528             }
5529         }
5530
5531         /// <summary>
5532         /// Event arguments that passed via the wheel signal.
5533         /// </summary>
5534         /// <since_tizen> 3 </since_tizen>
5535         public class WheelEventArgs : EventArgs
5536         {
5537             private Wheel _wheel;
5538
5539             /// <summary>
5540             /// WheelEvent - store a wheel rolling type: MOUSE_WHEEL or CUSTOM_WHEEL.
5541             /// </summary>
5542             /// <since_tizen> 3 </since_tizen>
5543             public Wheel Wheel
5544             {
5545                 get
5546                 {
5547                     return _wheel;
5548                 }
5549                 set
5550                 {
5551                     _wheel = value;
5552                 }
5553             }
5554         }
5555
5556         /// <summary>
5557         /// Event arguments of visibility changed.
5558         /// </summary>
5559         /// <since_tizen> 3 </since_tizen>
5560         public class VisibilityChangedEventArgs : EventArgs
5561         {
5562             private View _view;
5563             private bool _visibility;
5564             private VisibilityChangeType _type;
5565
5566             /// <summary>
5567             /// The view, or child of view, whose visibility has changed.
5568             /// </summary>
5569             /// <since_tizen> 3 </since_tizen>
5570             public View View
5571             {
5572                 get
5573                 {
5574                     return _view;
5575                 }
5576                 set
5577                 {
5578                     _view = value;
5579                 }
5580             }
5581
5582             /// <summary>
5583             /// Whether the view is now visible or not.
5584             /// </summary>
5585             /// <since_tizen> 3 </since_tizen>
5586             public bool Visibility
5587             {
5588                 get
5589                 {
5590                     return _visibility;
5591                 }
5592                 set
5593                 {
5594                     _visibility = value;
5595                 }
5596             }
5597
5598             /// <summary>
5599             /// Whether the view's visible property has changed or a parent's.
5600             /// </summary>
5601             /// <since_tizen> 3 </since_tizen>
5602             public VisibilityChangeType Type
5603             {
5604                 get
5605                 {
5606                     return _type;
5607                 }
5608                 set
5609                 {
5610                     _type = value;
5611                 }
5612             }
5613         }
5614
5615         /// <summary>
5616         /// Event arguments of layout direction changed.
5617         /// </summary>
5618         /// <since_tizen> 4 </since_tizen>
5619         public class LayoutDirectionChangedEventArgs : EventArgs
5620         {
5621             private View _view;
5622             private ViewLayoutDirectionType _type;
5623
5624             /// <summary>
5625             /// The view, or child of view, whose layout direction has changed.
5626             /// </summary>
5627             /// <since_tizen> 4 </since_tizen>
5628             public View View
5629             {
5630                 get
5631                 {
5632                     return _view;
5633                 }
5634                 set
5635                 {
5636                     _view = value;
5637                 }
5638             }
5639
5640             /// <summary>
5641             /// Whether the view's layout direction property has changed or a parent's.
5642             /// </summary>
5643             /// <since_tizen> 4 </since_tizen>
5644             public ViewLayoutDirectionType Type
5645             {
5646                 get
5647                 {
5648                     return _type;
5649                 }
5650                 set
5651                 {
5652                     _type = value;
5653                 }
5654             }
5655         }
5656
5657         internal class BackgroundResourceLoadedEventArgs : EventArgs
5658         {
5659             private ResourceLoadingStatusType status = ResourceLoadingStatusType.Invalid;
5660             public ResourceLoadingStatusType Status
5661             {
5662                 get
5663                 {
5664                     return status;
5665                 }
5666                 set
5667                 {
5668                     status = value;
5669                 }
5670             }
5671         }
5672
5673         internal class Property
5674         {
5675             internal static readonly int TOOLTIP = NDalicManualPINVOKE.View_Property_TOOLTIP_get();
5676             internal static readonly int STATE = NDalicManualPINVOKE.View_Property_STATE_get();
5677             internal static readonly int SUB_STATE = NDalicManualPINVOKE.View_Property_SUB_STATE_get();
5678             internal static readonly int LEFT_FOCUSABLE_VIEW_ID = NDalicManualPINVOKE.View_Property_LEFT_FOCUSABLE_ACTOR_ID_get();
5679             internal static readonly int RIGHT_FOCUSABLE_VIEW_ID = NDalicManualPINVOKE.View_Property_RIGHT_FOCUSABLE_ACTOR_ID_get();
5680             internal static readonly int UP_FOCUSABLE_VIEW_ID = NDalicManualPINVOKE.View_Property_UP_FOCUSABLE_ACTOR_ID_get();
5681             internal static readonly int DOWN_FOCUSABLE_VIEW_ID = NDalicManualPINVOKE.View_Property_DOWN_FOCUSABLE_ACTOR_ID_get();
5682             internal static readonly int STYLE_NAME = NDalicPINVOKE.View_Property_STYLE_NAME_get();
5683             internal static readonly int BACKGROUND = NDalicPINVOKE.View_Property_BACKGROUND_get();
5684             internal static readonly int SIBLING_ORDER = NDalicManualPINVOKE.Actor_Property_SIBLING_ORDER_get();
5685             internal static readonly int OPACITY = NDalicManualPINVOKE.Actor_Property_OPACITY_get();
5686             internal static readonly int SCREEN_POSITION = NDalicManualPINVOKE.Actor_Property_SCREEN_POSITION_get();
5687             internal static readonly int POSITION_USES_ANCHOR_POINT = NDalicManualPINVOKE.Actor_Property_POSITION_USES_ANCHOR_POINT_get();
5688             internal static readonly int PARENT_ORIGIN = NDalicPINVOKE.Actor_Property_PARENT_ORIGIN_get();
5689             internal static readonly int PARENT_ORIGIN_X = NDalicPINVOKE.Actor_Property_PARENT_ORIGIN_X_get();
5690             internal static readonly int PARENT_ORIGIN_Y = NDalicPINVOKE.Actor_Property_PARENT_ORIGIN_Y_get();
5691             internal static readonly int PARENT_ORIGIN_Z = NDalicPINVOKE.Actor_Property_PARENT_ORIGIN_Z_get();
5692             internal static readonly int ANCHOR_POINT = NDalicPINVOKE.Actor_Property_ANCHOR_POINT_get();
5693             internal static readonly int ANCHOR_POINT_X = NDalicPINVOKE.Actor_Property_ANCHOR_POINT_X_get();
5694             internal static readonly int ANCHOR_POINT_Y = NDalicPINVOKE.Actor_Property_ANCHOR_POINT_Y_get();
5695             internal static readonly int ANCHOR_POINT_Z = NDalicPINVOKE.Actor_Property_ANCHOR_POINT_Z_get();
5696             internal static readonly int SIZE = NDalicPINVOKE.Actor_Property_SIZE_get();
5697             internal static readonly int SIZE_WIDTH = NDalicPINVOKE.Actor_Property_SIZE_WIDTH_get();
5698             internal static readonly int SIZE_HEIGHT = NDalicPINVOKE.Actor_Property_SIZE_HEIGHT_get();
5699             internal static readonly int SIZE_DEPTH = NDalicPINVOKE.Actor_Property_SIZE_DEPTH_get();
5700             internal static readonly int POSITION = NDalicPINVOKE.Actor_Property_POSITION_get();
5701             internal static readonly int POSITION_X = NDalicPINVOKE.Actor_Property_POSITION_X_get();
5702             internal static readonly int POSITION_Y = NDalicPINVOKE.Actor_Property_POSITION_Y_get();
5703             internal static readonly int POSITION_Z = NDalicPINVOKE.Actor_Property_POSITION_Z_get();
5704             internal static readonly int WORLD_POSITION = NDalicPINVOKE.Actor_Property_WORLD_POSITION_get();
5705             internal static readonly int WORLD_POSITION_X = NDalicPINVOKE.Actor_Property_WORLD_POSITION_X_get();
5706             internal static readonly int WORLD_POSITION_Y = NDalicPINVOKE.Actor_Property_WORLD_POSITION_Y_get();
5707             internal static readonly int WORLD_POSITION_Z = NDalicPINVOKE.Actor_Property_WORLD_POSITION_Z_get();
5708             internal static readonly int ORIENTATION = NDalicPINVOKE.Actor_Property_ORIENTATION_get();
5709             internal static readonly int WORLD_ORIENTATION = NDalicPINVOKE.Actor_Property_WORLD_ORIENTATION_get();
5710             internal static readonly int SCALE = NDalicPINVOKE.Actor_Property_SCALE_get();
5711             internal static readonly int SCALE_X = NDalicPINVOKE.Actor_Property_SCALE_X_get();
5712             internal static readonly int SCALE_Y = NDalicPINVOKE.Actor_Property_SCALE_Y_get();
5713             internal static readonly int SCALE_Z = NDalicPINVOKE.Actor_Property_SCALE_Z_get();
5714             internal static readonly int WORLD_SCALE = NDalicPINVOKE.Actor_Property_WORLD_SCALE_get();
5715             internal static readonly int VISIBLE = NDalicPINVOKE.Actor_Property_VISIBLE_get();
5716             internal static readonly int WORLD_COLOR = NDalicPINVOKE.Actor_Property_WORLD_COLOR_get();
5717             internal static readonly int WORLD_MATRIX = NDalicPINVOKE.Actor_Property_WORLD_MATRIX_get();
5718             internal static readonly int NAME = NDalicPINVOKE.Actor_Property_NAME_get();
5719             internal static readonly int SENSITIVE = NDalicPINVOKE.Actor_Property_SENSITIVE_get();
5720             internal static readonly int LEAVE_REQUIRED = NDalicPINVOKE.Actor_Property_LEAVE_REQUIRED_get();
5721             internal static readonly int INHERIT_ORIENTATION = NDalicPINVOKE.Actor_Property_INHERIT_ORIENTATION_get();
5722             internal static readonly int INHERIT_SCALE = NDalicPINVOKE.Actor_Property_INHERIT_SCALE_get();
5723             internal static readonly int DRAW_MODE = NDalicPINVOKE.Actor_Property_DRAW_MODE_get();
5724             internal static readonly int SIZE_MODE_FACTOR = NDalicPINVOKE.Actor_Property_SIZE_MODE_FACTOR_get();
5725             internal static readonly int WIDTH_RESIZE_POLICY = NDalicPINVOKE.Actor_Property_WIDTH_RESIZE_POLICY_get();
5726             internal static readonly int HEIGHT_RESIZE_POLICY = NDalicPINVOKE.Actor_Property_HEIGHT_RESIZE_POLICY_get();
5727             internal static readonly int SIZE_SCALE_POLICY = NDalicPINVOKE.Actor_Property_SIZE_SCALE_POLICY_get();
5728             internal static readonly int WIDTH_FOR_HEIGHT = NDalicPINVOKE.Actor_Property_WIDTH_FOR_HEIGHT_get();
5729             internal static readonly int HEIGHT_FOR_WIDTH = NDalicPINVOKE.Actor_Property_HEIGHT_FOR_WIDTH_get();
5730             internal static readonly int MINIMUM_SIZE = NDalicPINVOKE.Actor_Property_MINIMUM_SIZE_get();
5731             internal static readonly int MAXIMUM_SIZE = NDalicPINVOKE.Actor_Property_MAXIMUM_SIZE_get();
5732             internal static readonly int INHERIT_POSITION = NDalicPINVOKE.Actor_Property_INHERIT_POSITION_get();
5733             internal static readonly int CLIPPING_MODE = NDalicPINVOKE.Actor_Property_CLIPPING_MODE_get();
5734             internal static readonly int INHERIT_LAYOUT_DIRECTION = NDalicManualPINVOKE.Actor_Property_INHERIT_LAYOUT_DIRECTION_get();
5735             internal static readonly int LAYOUT_DIRECTION = NDalicManualPINVOKE.Actor_Property_LAYOUT_DIRECTION_get();
5736             internal static readonly int MARGIN = NDalicPINVOKE.View_Property_MARGIN_get();
5737             internal static readonly int PADDING = NDalicPINVOKE.View_Property_PADDING_get();
5738         }
5739     }
5740 }