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