[NUI] Supports Clockwise and CounterClockwise focus movement.
[platform/core/csapi/tizenfx.git] / src / Tizen.NUI / src / public / BaseComponents / ViewBindableProperty.cs
1 /*
2  * Copyright(c) 2019-2022 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
18 using global::System;
19 using System.ComponentModel;
20 using Tizen.NUI.Binding;
21
22 namespace Tizen.NUI.BaseComponents
23 {
24     /// <summary>
25     /// View is the base class for all views.
26     /// </summary>
27     /// <since_tizen> 3 </since_tizen>
28     public partial class View
29     {
30         /// <summary>
31         /// StyleNameProperty (DALi json)
32         /// </summary>
33         [EditorBrowsable(EditorBrowsableState.Never)]
34         public static readonly BindableProperty StyleNameProperty = BindableProperty.Create(nameof(StyleName), typeof(string), typeof(View), string.Empty, propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
35         {
36             var view = (View)bindable;
37             if (newValue != null)
38             {
39                 string styleName = (string)newValue;
40                 Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.StyleName, new Tizen.NUI.PropertyValue(styleName));
41
42                 view.styleName = styleName;
43
44                 if (string.IsNullOrEmpty(styleName)) return;
45
46                 var style = ThemeManager.GetUpdateStyleWithoutClone(styleName);
47
48                 if (style == null) return;
49
50                 view.ApplyStyle(style);
51                 view.SetThemeApplied();
52             }
53         }),
54         defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
55         {
56             var view = (View)bindable;
57
58             if (!string.IsNullOrEmpty(view.styleName)) return view.styleName;
59
60             string temp;
61             Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.StyleName).Get(out temp);
62             return temp;
63         }));
64
65         /// <summary>
66         /// KeyInputFocusProperty
67         /// </summary>
68         [EditorBrowsable(EditorBrowsableState.Never)]
69         public static readonly BindableProperty KeyInputFocusProperty = BindableProperty.Create(nameof(KeyInputFocus), typeof(bool), typeof(View), false, propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
70         {
71             var view = (View)bindable;
72             if (newValue != null)
73             {
74                 Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.KeyInputFocus, new Tizen.NUI.PropertyValue((bool)newValue));
75             }
76         }),
77         defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
78         {
79             var view = (View)bindable;
80             bool temp = false;
81             Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.KeyInputFocus).Get(out temp);
82             return temp;
83         }));
84
85         /// <summary>
86         /// BackgroundColorProperty
87         /// </summary>
88         [EditorBrowsable(EditorBrowsableState.Never)]
89         public static readonly BindableProperty BackgroundColorProperty = BindableProperty.Create(nameof(BackgroundColor), typeof(Color), typeof(View), null,
90             propertyChanged: (bindable, oldValue, newValue) =>
91             {
92                 var view = (View)bindable;
93
94                 view.themeData?.selectorData?.ClearBackground(view);
95
96                 if (newValue is Selector<Color> selector)
97                 {
98                     if (selector.HasAll()) view.SetBackgroundColor(selector.All);
99                     else view.EnsureSelectorData().BackgroundColor = new TriggerableSelector<Color>(view, selector, view.SetBackgroundColor, true);
100                 }
101                 else
102                 {
103                     view.SetBackgroundColor((Color)newValue);
104                 }
105             },
106             defaultValueCreator: (bindable) =>
107             {
108                 var view = (View)bindable;
109
110                 if (view.internalBackgroundColor == null)
111                 {
112                     view.internalBackgroundColor = new Color(view.OnBackgroundColorChanged, 0, 0, 0, 0);
113                 }
114
115                 PropertyMap background = view.Background;
116                 int visualType = 0;
117                 background.Find(Visual.Property.Type)?.Get(out visualType);
118                 if (visualType == (int)Visual.Type.Color)
119                 {
120                     background.Find(ColorVisualProperty.MixColor)?.Get(view.internalBackgroundColor);
121                 }
122
123                 background?.Dispose();
124                 background = null;
125
126                 return view.internalBackgroundColor;
127             }
128         );
129
130         /// <summary>
131         /// ColorProperty
132         /// </summary>
133         [EditorBrowsable(EditorBrowsableState.Never)]
134         public static readonly BindableProperty ColorProperty = BindableProperty.Create(nameof(Color), typeof(Color), typeof(View), null,
135             propertyChanged: (bindable, oldValue, newValue) =>
136             {
137                 var view = (View)bindable;
138
139                 view.themeData?.selectorData?.Color?.Reset(view);
140
141                 if (newValue is Selector<Color> selector)
142                 {
143                     if (selector.HasAll()) view.SetColor(selector.All);
144                     else view.EnsureSelectorData().Color = new TriggerableSelector<Color>(view, selector, view.SetColor, true);
145                 }
146                 else
147                 {
148                     view.SetColor((Color)newValue);
149                 }
150             },
151             defaultValueCreator: (bindable) =>
152             {
153                 var view = (View)bindable;
154                 var tmpProperty = view.GetProperty(Interop.ActorProperty.ColorGet());
155
156                 if (view.internalColor == null)
157                 {
158                     view.internalColor = new Color(view.OnColorChanged, 0, 0, 0, 0);
159                 }
160
161                 tmpProperty?.Get(view.internalColor);
162                 tmpProperty?.Dispose();
163
164                 return view.internalColor;
165             }
166         );
167
168         /// <summary> BackgroundImageProperty </summary>
169         [EditorBrowsable(EditorBrowsableState.Never)]
170         public static readonly BindableProperty BackgroundImageProperty = BindableProperty.Create(nameof(BackgroundImage), typeof(string), typeof(View), default(string),
171             propertyChanged: (bindable, oldValue, newValue) =>
172             {
173                 var view = (View)bindable;
174
175                 if (view.themeData?.selectorData != null)
176                 {
177                     view.themeData.selectorData.BackgroundColor?.Reset(view);
178                     view.themeData.selectorData.BackgroundImage?.Reset(view);
179                 }
180
181                 if (newValue is Selector<string> selector)
182                 {
183                     if (selector.HasAll()) view.SetBackgroundImage(selector.All);
184                     else view.EnsureSelectorData().BackgroundImage = new TriggerableSelector<string>(view, selector, view.SetBackgroundImage, true);
185                 }
186                 else
187                 {
188                     view.SetBackgroundImage((string)newValue);
189                 }
190             },
191             defaultValueCreator: (bindable) =>
192             {
193                 var view = (View)bindable;
194                 string backgroundImage = "";
195
196                 PropertyMap background = view.Background;
197                 background.Find(ImageVisualProperty.URL)?.Get(out backgroundImage);
198
199                 background.Dispose();
200                 background = null;
201
202                 return backgroundImage;
203             }
204         );
205
206
207         /// <summary>BackgroundImageBorderProperty</summary>
208         [EditorBrowsable(EditorBrowsableState.Never)]
209         public static readonly BindableProperty BackgroundImageBorderProperty = BindableProperty.Create(nameof(BackgroundImageBorder), typeof(Rectangle), typeof(View), default(Rectangle), propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
210         {
211             var view = (View)bindable;
212
213             view.themeData?.selectorData?.BackgroundImageBorder?.Reset(view);
214
215             if (newValue is Selector<Rectangle> selector)
216             {
217                 if (selector.HasAll()) view.SetBackgroundImageBorder(selector.All);
218                 else view.EnsureSelectorData().BackgroundImageBorder = new TriggerableSelector<Rectangle>(view, selector, view.SetBackgroundImageBorder, true);
219             }
220             else
221             {
222                 view.SetBackgroundImageBorder((Rectangle)newValue);
223             }
224         }),
225         defaultValueCreator: (bindable) =>
226         {
227             var view = (View)bindable;
228
229             return view.backgroundExtraData?.BackgroundImageBorder;
230         });
231
232         /// <summary>
233         /// BackgroundProperty
234         /// </summary>
235         [EditorBrowsable(EditorBrowsableState.Never)]
236         public static readonly BindableProperty BackgroundProperty = BindableProperty.Create(nameof(Background), typeof(PropertyMap), typeof(View), null,
237             propertyChanged: (bindable, oldValue, newValue) =>
238             {
239                 var view = (View)bindable;
240                 if (newValue != null)
241                 {
242                     var propertyValue = new PropertyValue((PropertyMap)newValue);
243                     Object.SetProperty(view.SwigCPtr, Property.BACKGROUND, propertyValue);
244
245                     view.backgroundExtraData = null;
246
247                     propertyValue.Dispose();
248                     propertyValue = null;
249                 }
250             },
251             defaultValueCreator: (bindable) =>
252             {
253                 var view = (View)bindable;
254                 PropertyMap tmp = new PropertyMap();
255                 var propertyValue = Object.GetProperty(view.SwigCPtr, Property.BACKGROUND);
256                 propertyValue.Get(tmp);
257                 propertyValue.Dispose();
258                 propertyValue = null;
259                 return tmp;
260             }
261         );
262
263         /// <summary>
264         /// StateProperty
265         /// </summary>
266         [EditorBrowsable(EditorBrowsableState.Never)]
267         public static readonly BindableProperty StateProperty = BindableProperty.Create(nameof(State), typeof(States), typeof(View), States.Normal, propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
268         {
269             var view = (View)bindable;
270             if (newValue != null)
271             {
272                 Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.STATE, new Tizen.NUI.PropertyValue((int)newValue));
273             }
274         }),
275         defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
276         {
277             var view = (View)bindable;
278             int temp = 0;
279             if (Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.STATE).Get(out temp) == false)
280             {
281                 NUILog.Error("State get error!");
282             }
283             switch (temp)
284             {
285                 case 0: return States.Normal;
286                 case 1: return States.Focused;
287                 case 2: return States.Disabled;
288                 default: return States.Normal;
289             }
290         }));
291
292         /// <summary>
293         /// SubStateProperty
294         /// </summary>
295         [EditorBrowsable(EditorBrowsableState.Never)]
296         public static readonly BindableProperty SubStateProperty = BindableProperty.Create(nameof(SubState), typeof(States), typeof(View), States.Normal, propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
297         {
298             var view = (View)bindable;
299             string valueToString = "";
300             if (newValue != null)
301             {
302                 valueToString = ((States)newValue).GetDescription();
303                 Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.SubState, new Tizen.NUI.PropertyValue(valueToString));
304             }
305         }),
306         defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
307         {
308             var view = (View)bindable;
309             string temp;
310             if (Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.SubState).Get(out temp) == false)
311             {
312                 NUILog.Error("subState get error!");
313             }
314             return temp.GetValueByDescription<States>();
315         }));
316
317         /// <summary>
318         /// TooltipProperty
319         /// </summary>
320         [EditorBrowsable(EditorBrowsableState.Never)]
321         public static readonly BindableProperty TooltipProperty = BindableProperty.Create(nameof(Tooltip), typeof(PropertyMap), typeof(View), null, propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
322         {
323             var view = (View)bindable;
324             if (newValue != null)
325             {
326                 Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.TOOLTIP, new Tizen.NUI.PropertyValue((PropertyMap)newValue));
327             }
328         }),
329         defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
330         {
331             var view = (View)bindable;
332             Tizen.NUI.PropertyMap temp = new Tizen.NUI.PropertyMap();
333             Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.TOOLTIP).Get(temp);
334             return temp;
335         }));
336
337         /// <summary>
338         /// FlexProperty
339         /// </summary>
340         [EditorBrowsable(EditorBrowsableState.Never)]
341         public static readonly BindableProperty FlexProperty = BindableProperty.Create(nameof(Flex), typeof(float), typeof(View), default(float), propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
342         {
343             var view = (View)bindable;
344             if (newValue != null)
345             {
346                 Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, FlexContainer.ChildProperty.FLEX, new Tizen.NUI.PropertyValue((float)newValue));
347             }
348         }),
349         defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
350         {
351             var view = (View)bindable;
352             float temp = 0.0f;
353             Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, FlexContainer.ChildProperty.FLEX).Get(out temp);
354             return temp;
355         }));
356
357         /// <summary>
358         /// AlignSelfProperty
359         /// </summary>
360         [EditorBrowsable(EditorBrowsableState.Never)]
361         public static readonly BindableProperty AlignSelfProperty = BindableProperty.Create(nameof(AlignSelf), typeof(int), typeof(View), default(int), propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
362         {
363             var view = (View)bindable;
364             if (newValue != null)
365             {
366                 Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, FlexContainer.ChildProperty.AlignSelf, new Tizen.NUI.PropertyValue((int)newValue));
367             }
368         }),
369         defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
370         {
371             var view = (View)bindable;
372             int temp = 0;
373             Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, FlexContainer.ChildProperty.AlignSelf).Get(out temp);
374             return temp;
375         }));
376
377         /// <summary>
378         /// FlexMarginProperty
379         /// </summary>
380         [EditorBrowsable(EditorBrowsableState.Never)]
381         public static readonly BindableProperty FlexMarginProperty = BindableProperty.Create(nameof(FlexMargin), typeof(Vector4), typeof(View), null, propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
382         {
383             var view = (View)bindable;
384             if (newValue != null)
385             {
386                 Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, FlexContainer.ChildProperty.FlexMargin, new Tizen.NUI.PropertyValue((Vector4)newValue));
387             }
388         }),
389         defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
390         {
391             var view = (View)bindable;
392             Vector4 temp = new Vector4(0.0f, 0.0f, 0.0f, 0.0f);
393             Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, FlexContainer.ChildProperty.FlexMargin).Get(temp);
394             return temp;
395         }));
396
397         /// <summary>
398         /// CellIndexProperty
399         /// </summary>
400         [EditorBrowsable(EditorBrowsableState.Never)]
401         public static readonly BindableProperty CellIndexProperty = BindableProperty.Create(nameof(CellIndex), typeof(Vector2), typeof(View), null,
402             propertyChanged: (bindable, oldValue, newValue) =>
403             {
404                 var view = (View)bindable;
405                 if (newValue != null)
406                 {
407                     var tmp = new PropertyValue((Vector2)newValue);
408                     Object.SetProperty(view.SwigCPtr, TableView.ChildProperty.CellIndex, tmp);
409                     tmp.Dispose();
410                 }
411             },
412             defaultValueCreator: (bindable) =>
413             {
414                 var view = (View)bindable;
415                 if (view.internalCellIndex == null)
416                 {
417                     view.internalCellIndex = new Vector2(view.OnCellIndexChanged, 0, 0);
418                 }
419
420                 var tmp = Object.GetProperty(view.SwigCPtr, TableView.ChildProperty.CellIndex);
421                 tmp?.Get(view.internalCellIndex);
422                 tmp?.Dispose();
423
424                 return view.internalCellIndex;
425             }
426         );
427
428         /// <summary>
429         /// RowSpanProperty
430         /// </summary>
431         [EditorBrowsable(EditorBrowsableState.Never)]
432         public static readonly BindableProperty RowSpanProperty = BindableProperty.Create(nameof(RowSpan), typeof(float), typeof(View), default(float), propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
433         {
434             var view = (View)bindable;
435             if (newValue != null)
436             {
437                 Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, TableView.ChildProperty.RowSpan, new Tizen.NUI.PropertyValue((float)newValue));
438             }
439         }),
440         defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
441         {
442             var view = (View)bindable;
443             float temp = 0.0f;
444             Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, TableView.ChildProperty.RowSpan).Get(out temp);
445             return temp;
446         }));
447
448         /// <summary>
449         /// ColumnSpanProperty
450         /// </summary>
451         [EditorBrowsable(EditorBrowsableState.Never)]
452         public static readonly BindableProperty ColumnSpanProperty = BindableProperty.Create(nameof(ColumnSpan), typeof(float), typeof(View), default(float), propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
453         {
454             var view = (View)bindable;
455             if (newValue != null)
456             {
457                 Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, TableView.ChildProperty.ColumnSpan, new Tizen.NUI.PropertyValue((float)newValue));
458             }
459         }),
460         defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
461         {
462             var view = (View)bindable;
463             float temp = 0.0f;
464             Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, TableView.ChildProperty.ColumnSpan).Get(out temp);
465             return temp;
466         }));
467
468         /// <summary>
469         /// CellHorizontalAlignmentProperty
470         /// </summary>
471         [EditorBrowsable(EditorBrowsableState.Never)]
472         public static readonly BindableProperty CellHorizontalAlignmentProperty = BindableProperty.Create(nameof(CellHorizontalAlignment), typeof(HorizontalAlignmentType), typeof(View), HorizontalAlignmentType.Left, propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
473         {
474             var view = (View)bindable;
475             string valueToString = "";
476
477             if (newValue != null)
478             {
479                 valueToString = ((HorizontalAlignmentType)newValue).GetDescription();
480                 Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, TableView.ChildProperty.CellHorizontalAlignment, new Tizen.NUI.PropertyValue(valueToString));
481             }
482         }),
483         defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
484         {
485             var view = (View)bindable;
486             string temp;
487             if (Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, TableView.ChildProperty.CellHorizontalAlignment).Get(out temp) == false)
488             {
489                 NUILog.Error("CellHorizontalAlignment get error!");
490             }
491
492             return temp.GetValueByDescription<HorizontalAlignmentType>();
493         }));
494
495         /// <summary>
496         /// CellVerticalAlignmentProperty
497         /// </summary>
498         [EditorBrowsable(EditorBrowsableState.Never)]
499         public static readonly BindableProperty CellVerticalAlignmentProperty = BindableProperty.Create(nameof(CellVerticalAlignment), typeof(VerticalAlignmentType), typeof(View), VerticalAlignmentType.Top, propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
500         {
501             var view = (View)bindable;
502             string valueToString = "";
503
504             if (newValue != null)
505             {
506                 valueToString = ((VerticalAlignmentType)newValue).GetDescription();
507                 Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, TableView.ChildProperty.CellVerticalAlignment, new Tizen.NUI.PropertyValue(valueToString));
508             }
509         }),
510         defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
511         {
512             var view = (View)bindable;
513             string temp;
514             Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, TableView.ChildProperty.CellVerticalAlignment).Get(out temp);
515             {
516                 NUILog.Error("CellVerticalAlignment get error!");
517             }
518
519             return temp.GetValueByDescription<VerticalAlignmentType>();
520         }));
521
522         /// <summary>
523         /// "Please DO NOT use! This will be deprecated! Please use 'View Weight' instead of BindableProperty"
524         /// This needs to be hidden as inhouse API until all applications using it have been updated.  Do not make public.
525         /// </summary>
526         [EditorBrowsable(EditorBrowsableState.Never)]
527         public static readonly BindableProperty WeightProperty = BindableProperty.Create(nameof(Weight), typeof(float), typeof(View), default(float), propertyChanged: (bindable, oldValue, newValue) =>
528         {
529             var view = (View)bindable;
530             if (newValue != null)
531             {
532                 view.Weight = (float)newValue;
533             }
534         },
535
536         defaultValueCreator: (bindable) =>
537         {
538             var view = (View)bindable;
539             return view.Weight;
540         });
541
542         /// <summary>
543         /// LeftFocusableViewProperty
544         /// </summary>
545         [EditorBrowsable(EditorBrowsableState.Never)]
546         public static readonly BindableProperty LeftFocusableViewProperty = BindableProperty.Create(nameof(View.LeftFocusableView), typeof(View), typeof(View), null, propertyChanged: (bindable, oldValue, newValue) =>
547         {
548             var view = (View)bindable;
549             if (newValue != null) { view.LeftFocusableViewId = (int)(newValue as View)?.GetId(); }
550             else { view.LeftFocusableViewId = -1; }
551         },
552         defaultValueCreator: (bindable) =>
553         {
554             var view = (View)bindable;
555             if (view.LeftFocusableViewId >= 0) { return view.ConvertIdToView((uint)view.LeftFocusableViewId); }
556             return null;
557         });
558
559         /// <summary>
560         /// RightFocusableViewProperty
561         /// </summary>
562         [EditorBrowsable(EditorBrowsableState.Never)]
563         public static readonly BindableProperty RightFocusableViewProperty = BindableProperty.Create(nameof(View.RightFocusableView), typeof(View), typeof(View), null, propertyChanged: (bindable, oldValue, newValue) =>
564         {
565             var view = (View)bindable;
566             if (newValue != null) { view.RightFocusableViewId = (int)(newValue as View)?.GetId(); }
567             else { view.RightFocusableViewId = -1; }
568         },
569         defaultValueCreator: (bindable) =>
570         {
571             var view = (View)bindable;
572             if (view.RightFocusableViewId >= 0) { return view.ConvertIdToView((uint)view.RightFocusableViewId); }
573             return null;
574         });
575
576         /// <summary>
577         /// UpFocusableViewProperty
578         /// </summary>
579         [EditorBrowsable(EditorBrowsableState.Never)]
580         public static readonly BindableProperty UpFocusableViewProperty = BindableProperty.Create(nameof(View.UpFocusableView), typeof(View), typeof(View), null, propertyChanged: (bindable, oldValue, newValue) =>
581         {
582             var view = (View)bindable;
583             if (newValue != null) { view.UpFocusableViewId = (int)(newValue as View)?.GetId(); }
584             else { view.UpFocusableViewId = -1; }
585         },
586         defaultValueCreator: (bindable) =>
587         {
588             var view = (View)bindable;
589             if (view.UpFocusableViewId >= 0) { return view.ConvertIdToView((uint)view.UpFocusableViewId); }
590             return null;
591         });
592
593         /// <summary>
594         /// DownFocusableViewProperty
595         /// </summary>
596         [EditorBrowsable(EditorBrowsableState.Never)]
597         public static readonly BindableProperty DownFocusableViewProperty = BindableProperty.Create(nameof(View.DownFocusableView), typeof(View), typeof(View), null, propertyChanged: (bindable, oldValue, newValue) =>
598         {
599             var view = (View)bindable;
600             if (newValue != null) { view.DownFocusableViewId = (int)(newValue as View)?.GetId(); }
601             else { view.DownFocusableViewId = -1; }
602         },
603         defaultValueCreator: (bindable) =>
604         {
605             var view = (View)bindable;
606             if (view.DownFocusableViewId >= 0) { return view.ConvertIdToView((uint)view.DownFocusableViewId); }
607             return null;
608         });
609
610         /// <summary>
611         /// ClockwiseFocusableViewProperty
612         /// </summary>
613         [EditorBrowsable(EditorBrowsableState.Never)]
614         public static readonly BindableProperty ClockwiseFocusableViewProperty = BindableProperty.Create(nameof(View.ClockwiseFocusableView), typeof(View), typeof(View), null, propertyChanged: (bindable, oldValue, newValue) =>
615         {
616             var view = (View)bindable;
617             if (newValue != null && (newValue is View)) { view.ClockwiseFocusableViewId = (int)(newValue as View)?.GetId(); }
618             else { view.ClockwiseFocusableViewId = -1; }
619         },
620         defaultValueCreator: (bindable) =>
621         {
622             var view = (View)bindable;
623             if (view.ClockwiseFocusableViewId >= 0) { return view.ConvertIdToView((uint)view.ClockwiseFocusableViewId); }
624             return null;
625         });
626
627         /// <summary>
628         /// CounterClockwiseFocusableViewProperty
629         /// </summary>
630         [EditorBrowsable(EditorBrowsableState.Never)]
631         public static readonly BindableProperty CounterClockwiseFocusableViewProperty = BindableProperty.Create(nameof(View.CounterClockwiseFocusableView), typeof(View), typeof(View), null, propertyChanged: (bindable, oldValue, newValue) =>
632         {
633             var view = (View)bindable;
634             if (newValue != null && (newValue is View)) { view.CounterClockwiseFocusableViewId = (int)(newValue as View)?.GetId(); }
635             else { view.CounterClockwiseFocusableViewId = -1; }
636         },
637         defaultValueCreator: (bindable) =>
638         {
639             var view = (View)bindable;
640             if (view.CounterClockwiseFocusableViewId >= 0) { return view.ConvertIdToView((uint)view.CounterClockwiseFocusableViewId); }
641             return null;
642         });
643
644         /// <summary>
645         /// FocusableProperty
646         /// </summary>
647         [EditorBrowsable(EditorBrowsableState.Never)]
648         public static readonly BindableProperty FocusableProperty = BindableProperty.Create(nameof(Focusable), typeof(bool), typeof(View), false, propertyChanged: (bindable, oldValue, newValue) =>
649         {
650             var view = (View)bindable;
651             if (newValue != null) { view.SetKeyboardFocusable((bool)newValue); }
652         },
653         defaultValueCreator: (bindable) =>
654         {
655             var view = (View)bindable;
656             return view.IsKeyboardFocusable();
657         });
658
659         /// <summary>
660         /// FocusableChildrenProperty
661         /// </summary>
662         [EditorBrowsable(EditorBrowsableState.Never)]
663         public static readonly BindableProperty FocusableChildrenProperty = BindableProperty.Create(nameof(FocusableChildren), typeof(bool), typeof(View), true, propertyChanged: (bindable, oldValue, newValue) =>
664         {
665             var view = (View)bindable;
666             if (newValue != null) { view.SetKeyboardFocusableChildren((bool)newValue); }
667         },
668         defaultValueCreator: (bindable) =>
669         {
670             var view = (View)bindable;
671             return view.AreChildrenKeyBoardFocusable();
672         });
673
674         /// <summary>
675         /// FocusableInTouchProperty
676         /// </summary>
677         [EditorBrowsable(EditorBrowsableState.Never)]
678         public static readonly BindableProperty FocusableInTouchProperty = BindableProperty.Create(nameof(FocusableInTouch), typeof(bool), typeof(View), false, propertyChanged: (bindable, oldValue, newValue) =>
679         {
680             var view = (View)bindable;
681             if (newValue != null) { view.SetFocusableInTouch((bool)newValue); }
682         },
683         defaultValueCreator: (bindable) =>
684         {
685             var view = (View)bindable;
686             return view.IsFocusableInTouch();
687         });
688
689         /// <summary>
690         /// Size2DProperty
691         /// </summary>
692         [EditorBrowsable(EditorBrowsableState.Never)]
693         public static readonly BindableProperty Size2DProperty = BindableProperty.Create(nameof(Size2D), typeof(Size2D), typeof(View), null,
694             propertyChanged: (bindable, oldValue, newValue) =>
695             {
696                 var view = (View)bindable;
697                 if (newValue != null)
698                 {
699                     view.SetSize(((Size2D)newValue).Width, ((Size2D)newValue).Height, 0);
700
701                     view.widthPolicy = ((Size2D)newValue).Width;
702                     view.heightPolicy = ((Size2D)newValue).Height;
703
704                     view.layout?.RequestLayout();
705                 }
706             },
707             defaultValueCreator: (bindable) =>
708             {
709                 var view = (View)bindable;
710                 var tmp = new Size(0, 0, 0);
711                 var tmpProperty = Object.GetProperty(view.SwigCPtr, Property.SIZE);
712                 tmpProperty?.Get(tmp);
713
714                 if (view.internalSize2D == null)
715                 {
716                     view.internalSize2D = new Size2D(view.OnSize2DChanged, (int)tmp?.Width, (int)tmp?.Height);
717                 }
718                 else
719                 {
720                     if (view.internalSize2D.SwigCPtr.Handle != global::System.IntPtr.Zero)
721                     {
722                         Interop.Vector2.WidthSet(view.internalSize2D.SwigCPtr, (float)tmp?.Width);
723                         Interop.Vector2.HeightSet(view.internalSize2D.SwigCPtr, (float)tmp?.Height);
724                     }
725                 }
726
727                 tmpProperty?.Dispose();
728                 tmp?.Dispose();
729
730                 return view.internalSize2D;
731             }
732         );
733
734         /// <summary>
735         /// OpacityProperty
736         /// </summary>
737         [EditorBrowsable(EditorBrowsableState.Never)]
738         public static readonly BindableProperty OpacityProperty = BindableProperty.Create(nameof(Opacity), typeof(float), typeof(View), default(float), propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
739         {
740             var view = (View)bindable;
741
742             view.themeData?.selectorData?.Opacity?.Reset(view);
743
744             if (newValue is Selector<float?> selector)
745             {
746                 if (selector.HasAll()) view.SetOpacity(selector.All);
747                 else view.EnsureSelectorData().Opacity = new TriggerableSelector<float?>(view, selector, view.SetOpacity, true);
748             }
749             else
750             {
751                 view.SetOpacity((float?)newValue);
752             }
753         }),
754         defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
755         {
756             var view = (View)bindable;
757             float temp = 0.0f;
758             Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.OPACITY).Get(out temp);
759             return temp;
760         }));
761
762         /// <summary>
763         /// Position2DProperty
764         /// </summary>
765         [EditorBrowsable(EditorBrowsableState.Never)]
766         public static readonly BindableProperty Position2DProperty = BindableProperty.Create(nameof(Position2D), typeof(Position2D), typeof(View), null,
767             propertyChanged: (bindable, oldValue, newValue) =>
768             {
769                 var view = (View)bindable;
770                 if (newValue != null)
771                 {
772                     view.SetPosition(((Position2D)newValue).X, ((Position2D)newValue).Y, 0);
773                 }
774             },
775             defaultValueCreator: (bindable) =>
776             {
777                 var view = (View)bindable;
778                 var tmp = new Position(0, 0, 0);
779                 var tmpProperty = Object.GetProperty(view.SwigCPtr, Property.POSITION);
780                 tmpProperty?.Get(tmp);
781
782                 if (view.internalPosition2D == null)
783                 {
784                     view.internalPosition2D = new Position2D(view.OnPosition2DChanged, (int)tmp?.X, (int)tmp?.Y);
785                 }
786                 else
787                 {
788                     if (view.internalPosition2D.SwigCPtr.Handle != IntPtr.Zero)
789                     {
790                         Interop.Vector2.XSet(view.internalPosition2D.SwigCPtr, (float)tmp?.X);
791                         Interop.Vector2.YSet(view.internalPosition2D.SwigCPtr, (float)tmp?.Y);
792                     }
793                 }
794
795                 tmpProperty?.Dispose();
796                 tmp?.Dispose();
797
798                 return view.internalPosition2D;
799             }
800         );
801
802         /// <summary>
803         /// PositionUsesPivotPointProperty
804         /// </summary>
805         [EditorBrowsable(EditorBrowsableState.Never)]
806         public static readonly BindableProperty PositionUsesPivotPointProperty = BindableProperty.Create(nameof(PositionUsesPivotPoint), typeof(bool), typeof(View), true, propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
807         {
808             var view = (View)bindable;
809             if (newValue != null)
810             {
811                 Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.PositionUsesAnchorPoint, new Tizen.NUI.PropertyValue((bool)newValue));
812             }
813         }),
814         defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
815         {
816             var view = (View)bindable;
817             bool temp = false;
818             Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.PositionUsesAnchorPoint).Get(out temp);
819             return temp;
820         }));
821
822         /// <summary>
823         /// SiblingOrderProperty
824         /// </summary>
825         [EditorBrowsable(EditorBrowsableState.Never)]
826         public static readonly BindableProperty SiblingOrderProperty = BindableProperty.Create(nameof(SiblingOrder), typeof(int), typeof(View), default(int), propertyChanged: (bindable, oldValue, newValue) =>
827         {
828             var view = (View)bindable;
829             int value;
830             if (newValue != null)
831             {
832                 value = (int)newValue;
833                 if (value < 0)
834                 {
835                     NUILog.Error("SiblingOrder should be bigger than 0 or equal to 0.");
836                     return;
837                 }
838                 var siblings = view.GetParent()?.Children;
839                 if (siblings != null)
840                 {
841                     int currentOrder = siblings.IndexOf(view);
842                     if (value != currentOrder)
843                     {
844                         if (value == 0) { view.LowerToBottom(); }
845                         else if (value < siblings.Count - 1)
846                         {
847                             if (value > currentOrder) { view.RaiseAbove(siblings[value]); }
848                             else { view.LowerBelow(siblings[value]); }
849                         }
850                         else { view.RaiseToTop(); }
851                     }
852                 }
853             }
854         },
855         defaultValueCreator: (bindable) =>
856         {
857             var view = (View)bindable;
858             var parentChildren = view.GetParent()?.Children;
859             int currentOrder = 0;
860             if (parentChildren != null)
861             {
862                 currentOrder = parentChildren.IndexOf(view);
863
864                 if (currentOrder < 0) { return 0; }
865                 else if (currentOrder < parentChildren.Count) { return currentOrder; }
866             }
867
868             return 0;
869         });
870
871         /// <summary>
872         /// ParentOriginProperty
873         /// </summary>
874         [EditorBrowsable(EditorBrowsableState.Never)]
875         public static readonly BindableProperty ParentOriginProperty = BindableProperty.Create(nameof(ParentOrigin), typeof(Position), typeof(View), null, propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
876         {
877             var view = (View)bindable;
878             if (newValue != null)
879             {
880                 Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.ParentOrigin, new Tizen.NUI.PropertyValue((Position)newValue));
881             }
882         }),
883         defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
884         {
885             var view = (View)bindable;
886             Position temp = new Position(0.0f, 0.0f, 0.0f);
887             Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.ParentOrigin).Get(temp);
888             return temp;
889         })
890         );
891
892         /// <summary>
893         /// PivotPointProperty
894         /// </summary>
895         [EditorBrowsable(EditorBrowsableState.Never)]
896         public static readonly BindableProperty PivotPointProperty = BindableProperty.Create(nameof(PivotPoint), typeof(Position), typeof(View), null,
897             propertyChanged: (bindable, oldValue, newValue) =>
898             {
899                 var view = (View)bindable;
900                 if (newValue != null)
901                 {
902                     view.SetAnchorPoint((Position)newValue);
903                 }
904             },
905             defaultValueCreator: (bindable) =>
906             {
907                 var view = (View)bindable;
908                 if (view.internalPivotPoint == null)
909                 {
910                     view.internalPivotPoint = new Position(view.OnPivotPointChanged, 0, 0, 0);
911                 }
912                 var tmp = Object.GetProperty(view.SwigCPtr, Property.AnchorPoint);
913                 tmp?.Get(view.internalPivotPoint);
914                 tmp?.Dispose();
915
916                 return view.internalPivotPoint;
917             }
918         );
919
920         /// <summary>
921         /// SizeWidthProperty
922         /// </summary>
923         [EditorBrowsable(EditorBrowsableState.Never)]
924         public static readonly BindableProperty SizeWidthProperty = BindableProperty.Create(nameof(SizeWidth), typeof(float), typeof(View), default(float), propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
925         {
926             var view = (View)bindable;
927             if (newValue != null)
928             {
929                 Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.SizeWidth, new Tizen.NUI.PropertyValue((float)newValue));
930                 view.WidthSpecification = (int)System.Math.Ceiling((float)newValue);
931             }
932         }),
933         defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
934         {
935             var view = (View)bindable;
936             float temp = 0.0f;
937             Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.SizeWidth).Get(out temp);
938             return temp;
939         }));
940
941         /// <summary>
942         /// SizeHeightProperty
943         /// </summary>
944         [EditorBrowsable(EditorBrowsableState.Never)]
945         public static readonly BindableProperty SizeHeightProperty = BindableProperty.Create(nameof(SizeHeight), typeof(float), typeof(View), default(float), propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
946         {
947             var view = (View)bindable;
948             if (newValue != null)
949             {
950                 Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.SizeHeight, new Tizen.NUI.PropertyValue((float)newValue));
951                 view.HeightSpecification = (int)System.Math.Ceiling((float)newValue);
952             }
953         }),
954         defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
955         {
956             var view = (View)bindable;
957             float temp = 0.0f;
958             Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.SizeHeight).Get(out temp);
959             return temp;
960         }));
961
962         /// <summary>
963         /// PositionProperty
964         /// </summary>
965         [EditorBrowsable(EditorBrowsableState.Never)]
966         public static readonly BindableProperty PositionProperty = BindableProperty.Create(nameof(Position), typeof(Position), typeof(View), null,
967             propertyChanged: (bindable, oldValue, newValue) =>
968             {
969                 var view = (View)bindable;
970                 if (newValue != null)
971                 {
972                     view.SetPosition(((Position)newValue).X, ((Position)newValue).Y, ((Position)newValue).Z);
973                 }
974             },
975             defaultValueCreator: (bindable) =>
976             {
977                 var view = (View)bindable;
978                 var tmpProperty = Object.GetProperty(view.SwigCPtr, Property.POSITION);
979
980                 if (view.internalPosition == null)
981                 {
982                     view.internalPosition = new Position(view.OnPositionChanged, 0, 0, 0);
983                 }
984                 tmpProperty?.Get(view.internalPosition);
985                 tmpProperty?.Dispose();
986
987                 return view.internalPosition;
988             }
989         );
990
991         /// <summary>
992         /// PositionXProperty
993         /// </summary>
994         [EditorBrowsable(EditorBrowsableState.Never)]
995         public static readonly BindableProperty PositionXProperty = BindableProperty.Create(nameof(PositionX), typeof(float), typeof(View), default(float), propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
996         {
997             var view = (View)bindable;
998             if (newValue != null)
999             {
1000                 Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.PositionX, new Tizen.NUI.PropertyValue((float)newValue));
1001             }
1002         }),
1003         defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
1004         {
1005             var view = (View)bindable;
1006             float temp = 0.0f;
1007             Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.PositionX).Get(out temp);
1008             return temp;
1009         }));
1010
1011         /// <summary>
1012         /// PositionYProperty
1013         /// </summary>
1014         [EditorBrowsable(EditorBrowsableState.Never)]
1015         public static readonly BindableProperty PositionYProperty = BindableProperty.Create(nameof(PositionY), typeof(float), typeof(View), default(float), propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
1016         {
1017             var view = (View)bindable;
1018             if (newValue != null)
1019             {
1020                 Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.PositionY, new Tizen.NUI.PropertyValue((float)newValue));
1021             }
1022         }),
1023         defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
1024         {
1025             var view = (View)bindable;
1026             float temp = 0.0f;
1027             Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.PositionY).Get(out temp);
1028             return temp;
1029         }));
1030
1031         /// <summary>
1032         /// PositionZProperty
1033         /// </summary>
1034         [EditorBrowsable(EditorBrowsableState.Never)]
1035         public static readonly BindableProperty PositionZProperty = BindableProperty.Create(nameof(PositionZ), typeof(float), typeof(View), default(float), propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
1036         {
1037             var view = (View)bindable;
1038             if (newValue != null)
1039             {
1040                 Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.PositionZ, new Tizen.NUI.PropertyValue((float)newValue));
1041             }
1042         }),
1043         defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
1044         {
1045             var view = (View)bindable;
1046             float temp = 0.0f;
1047             Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.PositionZ).Get(out temp);
1048             return temp;
1049         }));
1050
1051         /// <summary>
1052         /// OrientationProperty
1053         /// </summary>
1054         [EditorBrowsable(EditorBrowsableState.Never)]
1055         public static readonly BindableProperty OrientationProperty = BindableProperty.Create(nameof(Orientation), typeof(Rotation), typeof(View), null, propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
1056         {
1057             var view = (View)bindable;
1058             if (newValue != null)
1059             {
1060                 Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.ORIENTATION, new Tizen.NUI.PropertyValue((Rotation)newValue));
1061             }
1062         }),
1063         defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
1064         {
1065             var view = (View)bindable;
1066             Rotation temp = new Rotation();
1067             Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.ORIENTATION).Get(temp);
1068             return temp;
1069         }));
1070
1071         /// <summary>
1072         /// ScaleProperty
1073         /// </summary>
1074         [EditorBrowsable(EditorBrowsableState.Never)]
1075         public static readonly BindableProperty ScaleProperty = BindableProperty.Create(nameof(Scale), typeof(Vector3), typeof(View), null,
1076             propertyChanged: (bindable, oldValue, newValue) =>
1077             {
1078                 var view = (View)bindable;
1079                 if (newValue != null)
1080                 {
1081                     view.SetScale((Vector3)newValue);
1082                 }
1083             },
1084             defaultValueCreator: (bindable) =>
1085             {
1086                 var view = (View)bindable;
1087                 if (view.internalScale == null)
1088                 {
1089                     view.internalScale = new Vector3(view.OnScaleChanged, 0, 0, 0);
1090                 }
1091
1092                 var tmpPropery = Object.GetProperty(view.SwigCPtr, Property.SCALE);
1093                 tmpPropery?.Get(view.internalScale);
1094                 tmpPropery?.Dispose();
1095
1096                 return view.internalScale;
1097             }
1098         );
1099
1100         /// <summary>
1101         /// ScaleXProperty
1102         /// </summary>
1103         [EditorBrowsable(EditorBrowsableState.Never)]
1104         public static readonly BindableProperty ScaleXProperty = BindableProperty.Create(nameof(ScaleX), typeof(float), typeof(View), default(float), propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
1105         {
1106             var view = (View)bindable;
1107             if (newValue != null)
1108             {
1109                 Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.ScaleX, new Tizen.NUI.PropertyValue((float)newValue));
1110             }
1111         }),
1112         defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
1113         {
1114             var view = (View)bindable;
1115             float temp = 0.0f;
1116             Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.ScaleX).Get(out temp);
1117             return temp;
1118         }));
1119
1120         /// <summary>
1121         /// ScaleYProperty
1122         /// </summary>
1123         [EditorBrowsable(EditorBrowsableState.Never)]
1124         public static readonly BindableProperty ScaleYProperty = BindableProperty.Create(nameof(ScaleY), typeof(float), typeof(View), default(float), propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
1125         {
1126             var view = (View)bindable;
1127             if (newValue != null)
1128             {
1129                 Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.ScaleY, new Tizen.NUI.PropertyValue((float)newValue));
1130             }
1131         }),
1132         defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
1133         {
1134             var view = (View)bindable;
1135             float temp = 0.0f;
1136             Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.ScaleY).Get(out temp);
1137             return temp;
1138         }));
1139
1140         /// <summary>
1141         /// ScaleZProperty
1142         /// </summary>
1143         [EditorBrowsable(EditorBrowsableState.Never)]
1144         public static readonly BindableProperty ScaleZProperty = BindableProperty.Create(nameof(ScaleZ), typeof(float), typeof(View), default(float), propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
1145         {
1146             var view = (View)bindable;
1147             if (newValue != null)
1148             {
1149                 Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.ScaleZ, new Tizen.NUI.PropertyValue((float)newValue));
1150             }
1151         }),
1152         defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
1153         {
1154             var view = (View)bindable;
1155             float temp = 0.0f;
1156             Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.ScaleZ).Get(out temp);
1157             return temp;
1158         }));
1159
1160         /// <summary>
1161         /// NameProperty
1162         /// </summary>
1163         [EditorBrowsable(EditorBrowsableState.Never)]
1164         public static readonly BindableProperty NameProperty = BindableProperty.Create(nameof(Name), typeof(string), typeof(View), string.Empty,
1165             propertyChanged: (bindable, oldValue, newValue) =>
1166             {
1167                 var view = (View)bindable;
1168                 if (newValue != null)
1169                 {
1170                     view.SetName((string)newValue);
1171                 }
1172             },
1173             defaultValueCreator: (bindable) =>
1174             {
1175                 var view = (View)bindable;
1176                 string temp;
1177                 temp = view.GetName();
1178                 return temp;
1179             }
1180         );
1181
1182         /// <summary>
1183         /// SensitiveProperty
1184         /// </summary>
1185         [EditorBrowsable(EditorBrowsableState.Never)]
1186         public static readonly BindableProperty SensitiveProperty = BindableProperty.Create(nameof(Sensitive), typeof(bool), typeof(View), false, propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
1187         {
1188             var view = (View)bindable;
1189             if (newValue != null)
1190             {
1191                 Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.SENSITIVE, new Tizen.NUI.PropertyValue((bool)newValue));
1192             }
1193         }),
1194         defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
1195         {
1196             var view = (View)bindable;
1197             bool temp = false;
1198             Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.SENSITIVE).Get(out temp);
1199             return temp;
1200         }));
1201
1202         /// <summary>
1203         /// IsEnabledProperty
1204         /// </summary>
1205         [EditorBrowsable(EditorBrowsableState.Never)]
1206         public static readonly BindableProperty IsEnabledProperty = BindableProperty.Create(nameof(Sensitive), typeof(bool), typeof(View), false, propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
1207         {
1208             var view = (View)bindable;
1209             if (newValue != null)
1210             {
1211                 Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.UserInteractionEnabled, new Tizen.NUI.PropertyValue((bool)newValue));
1212                 view.OnEnabled((bool)newValue);
1213             }
1214         }),
1215         defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
1216         {
1217             var view = (View)bindable;
1218             bool temp = false;
1219             Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.UserInteractionEnabled).Get(out temp);
1220             return temp;
1221         }));
1222
1223         /// <summary>
1224         /// DispatchKeyEventsProperty
1225         /// </summary>
1226         [EditorBrowsable(EditorBrowsableState.Never)]
1227         public static readonly BindableProperty DispatchKeyEventsProperty = BindableProperty.Create(nameof(DispatchKeyEvents), typeof(bool), typeof(View), false, propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
1228         {
1229             var view = (View)bindable;
1230             if (newValue != null)
1231             {
1232                 Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.DispatchKeyEvents, new Tizen.NUI.PropertyValue((bool)newValue));
1233             }
1234         }),
1235         defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
1236         {
1237             var view = (View)bindable;
1238             bool temp = false;
1239             Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.DispatchKeyEvents).Get(out temp);
1240             return temp;
1241         }));
1242
1243         /// <summary>
1244         /// LeaveRequiredProperty
1245         /// </summary>
1246         [EditorBrowsable(EditorBrowsableState.Never)]
1247         public static readonly BindableProperty LeaveRequiredProperty = BindableProperty.Create(nameof(LeaveRequired), typeof(bool), typeof(View), false, propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
1248         {
1249             var view = (View)bindable;
1250             if (newValue != null)
1251             {
1252                 Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.LeaveRequired, new Tizen.NUI.PropertyValue((bool)newValue));
1253             }
1254         }),
1255         defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
1256         {
1257             var view = (View)bindable;
1258             bool temp = false;
1259             Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.LeaveRequired).Get(out temp);
1260             return temp;
1261         }));
1262
1263         /// <summary>
1264         /// InheritOrientationProperty
1265         /// </summary>
1266         [EditorBrowsable(EditorBrowsableState.Never)]
1267         public static readonly BindableProperty InheritOrientationProperty = BindableProperty.Create(nameof(InheritOrientation), typeof(bool), typeof(View), false, propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
1268         {
1269             var view = (View)bindable;
1270             if (newValue != null)
1271             {
1272                 Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.InheritOrientation, new Tizen.NUI.PropertyValue((bool)newValue));
1273             }
1274         }),
1275         defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
1276         {
1277             var view = (View)bindable;
1278             bool temp = false;
1279             Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.InheritOrientation).Get(out temp);
1280             return temp;
1281         }));
1282
1283         /// <summary>
1284         /// InheritScaleProperty
1285         /// </summary>
1286         [EditorBrowsable(EditorBrowsableState.Never)]
1287         public static readonly BindableProperty InheritScaleProperty = BindableProperty.Create(nameof(InheritScale), typeof(bool), typeof(View), false, propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
1288         {
1289             var view = (View)bindable;
1290             if (newValue != null)
1291             {
1292                 Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.InheritScale, new Tizen.NUI.PropertyValue((bool)newValue));
1293             }
1294         }),
1295         defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
1296         {
1297             var view = (View)bindable;
1298             bool temp = false;
1299             Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.InheritScale).Get(out temp);
1300             return temp;
1301         }));
1302
1303         /// <summary>
1304         /// DrawModeProperty
1305         /// </summary>
1306         [EditorBrowsable(EditorBrowsableState.Never)]
1307         public static readonly BindableProperty DrawModeProperty = BindableProperty.Create(nameof(DrawMode), typeof(DrawModeType), typeof(View), DrawModeType.Normal, propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
1308         {
1309             var view = (View)bindable;
1310             if (newValue != null)
1311             {
1312                 Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.DrawMode, new Tizen.NUI.PropertyValue((int)newValue));
1313             }
1314         }),
1315         defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
1316         {
1317             var view = (View)bindable;
1318             int temp;
1319             if (Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.DrawMode).Get(out temp) == false)
1320             {
1321                 NUILog.Error("DrawMode get error!");
1322             }
1323             return (DrawModeType)temp;
1324         }));
1325
1326         /// <summary>
1327         /// SizeModeFactorProperty
1328         /// </summary>
1329         [EditorBrowsable(EditorBrowsableState.Never)]
1330         public static readonly BindableProperty SizeModeFactorProperty = BindableProperty.Create(nameof(SizeModeFactor), typeof(Vector3), typeof(View), null,
1331             propertyChanged: (bindable, oldValue, newValue) =>
1332             {
1333                 var view = (View)bindable;
1334                 if (newValue != null)
1335                 {
1336                     var tmp = new PropertyValue((Vector3)newValue);
1337                     Object.SetProperty(view.SwigCPtr, Property.SizeModeFactor, tmp);
1338                     tmp?.Dispose();
1339                 }
1340             },
1341             defaultValueCreator: (bindable) =>
1342             {
1343                 var view = (View)bindable;
1344                 if (view.internalSizeModeFactor == null)
1345                 {
1346                     view.internalSizeModeFactor = new Vector3(view.OnSizeModeFactorChanged, 0, 0, 0);
1347                 }
1348                 var tmp = Object.GetProperty(view.SwigCPtr, Property.SizeModeFactor);
1349                 tmp?.Get(view.internalSizeModeFactor);
1350                 tmp?.Dispose();
1351
1352                 return view.internalSizeModeFactor;
1353             }
1354         );
1355
1356         /// <summary>
1357         /// WidthResizePolicyProperty
1358         /// </summary>
1359         [EditorBrowsable(EditorBrowsableState.Never)]
1360         public static readonly BindableProperty WidthResizePolicyProperty = BindableProperty.Create(nameof(WidthResizePolicy), typeof(ResizePolicyType), typeof(View), ResizePolicyType.Fixed, propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
1361         {
1362             var view = (View)bindable;
1363             if (newValue != null)
1364             {
1365                 if ((ResizePolicyType)newValue == ResizePolicyType.KeepSizeFollowingParent)
1366                 {
1367                     if (view.widthConstraint == null)
1368                     {
1369                         view.widthConstraint = new EqualConstraintWithParentFloat((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.SizeWidth, View.Property.SizeWidth);
1370                         view.widthConstraint.Apply();
1371                     }
1372                     Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.WidthResizePolicy, new Tizen.NUI.PropertyValue((int)ResizePolicyType.FillToParent));
1373                 }
1374                 else
1375                 {
1376                     view.widthConstraint?.Remove();
1377                     view.widthConstraint?.Dispose();
1378                     view.widthConstraint = null;
1379                     Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.WidthResizePolicy, new Tizen.NUI.PropertyValue((int)newValue));
1380                 }
1381                 // Match ResizePolicy to new Layouting.
1382                 // Parent relative policies can not be mapped at this point as parent size unknown.
1383                 switch ((ResizePolicyType)newValue)
1384                 {
1385                     case ResizePolicyType.UseNaturalSize:
1386                         {
1387                             view.WidthSpecification = LayoutParamPolicies.WrapContent;
1388                             break;
1389                         }
1390                     case ResizePolicyType.FillToParent:
1391                         {
1392                             view.WidthSpecification = LayoutParamPolicies.MatchParent;
1393                             break;
1394                         }
1395                     case ResizePolicyType.FitToChildren:
1396                         {
1397                             view.WidthSpecification = LayoutParamPolicies.WrapContent;
1398                             break;
1399                         }
1400                     default:
1401                         break;
1402                 }
1403             }
1404         }),
1405         defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
1406         {
1407             var view = (View)bindable;
1408             string temp;
1409             if (Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.WidthResizePolicy).Get(out temp) == false)
1410             {
1411                 NUILog.Error("WidthResizePolicy get error!");
1412             }
1413             return temp.GetValueByDescription<ResizePolicyType>();
1414         }));
1415
1416         /// <summary>
1417         /// HeightResizePolicyProperty
1418         /// </summary>
1419         [EditorBrowsable(EditorBrowsableState.Never)]
1420         public static readonly BindableProperty HeightResizePolicyProperty = BindableProperty.Create(nameof(HeightResizePolicy), typeof(ResizePolicyType), typeof(View), ResizePolicyType.Fixed, propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
1421         {
1422             var view = (View)bindable;
1423             if (newValue != null)
1424             {
1425                 if ((ResizePolicyType)newValue == ResizePolicyType.KeepSizeFollowingParent)
1426                 {
1427                     if (view.heightConstraint == null)
1428                     {
1429                         view.heightConstraint = new EqualConstraintWithParentFloat((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.SizeHeight, View.Property.SizeHeight);
1430                         view.heightConstraint.Apply();
1431                     }
1432                     Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.HeightResizePolicy, new Tizen.NUI.PropertyValue((int)ResizePolicyType.FillToParent));
1433                 }
1434                 else
1435                 {
1436                     view.heightConstraint?.Remove();
1437                     view.heightConstraint?.Dispose();
1438                     view.heightConstraint = null;
1439                     Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.HeightResizePolicy, new Tizen.NUI.PropertyValue((int)newValue));
1440                 }
1441                 // Match ResizePolicy to new Layouting.
1442                 // Parent relative policies can not be mapped at this point as parent size unknown.
1443                 switch ((ResizePolicyType)newValue)
1444                 {
1445                     case ResizePolicyType.UseNaturalSize:
1446                         {
1447                             view.HeightSpecification = LayoutParamPolicies.WrapContent;
1448                             break;
1449                         }
1450                     case ResizePolicyType.FillToParent:
1451                         {
1452                             view.HeightSpecification = LayoutParamPolicies.MatchParent;
1453                             break;
1454                         }
1455                     case ResizePolicyType.FitToChildren:
1456                         {
1457                             view.HeightSpecification = LayoutParamPolicies.WrapContent;
1458                             break;
1459                         }
1460                     default:
1461                         break;
1462                 }
1463             }
1464         }),
1465         defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
1466         {
1467             var view = (View)bindable;
1468             string temp;
1469             if (Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.HeightResizePolicy).Get(out temp) == false)
1470             {
1471                 NUILog.Error("HeightResizePolicy get error!");
1472             }
1473             return temp.GetValueByDescription<ResizePolicyType>();
1474         }));
1475
1476         /// <summary>
1477         /// SizeScalePolicyProperty
1478         /// </summary>
1479         [EditorBrowsable(EditorBrowsableState.Never)]
1480         public static readonly BindableProperty SizeScalePolicyProperty = BindableProperty.Create(nameof(SizeScalePolicy), typeof(SizeScalePolicyType), typeof(View), SizeScalePolicyType.UseSizeSet, propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
1481         {
1482             var view = (View)bindable;
1483             string valueToString = "";
1484             if (newValue != null)
1485             {
1486                 valueToString = ((SizeScalePolicyType)newValue).GetDescription();
1487                 Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.SizeScalePolicy, new Tizen.NUI.PropertyValue(valueToString));
1488             }
1489         }),
1490         defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
1491         {
1492             var view = (View)bindable;
1493             int temp;
1494             if (Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.SizeScalePolicy).Get(out temp) == false)
1495             {
1496                 NUILog.Error("SizeScalePolicy get error!");
1497             }
1498             return (SizeScalePolicyType)temp;
1499         }));
1500
1501         /// <summary>
1502         /// WidthForHeightProperty
1503         /// </summary>
1504         [EditorBrowsable(EditorBrowsableState.Never)]
1505         public static readonly BindableProperty WidthForHeightProperty = BindableProperty.Create(nameof(WidthForHeight), typeof(bool), typeof(View), false, propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
1506         {
1507             var view = (View)bindable;
1508             if (newValue != null)
1509             {
1510                 Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.WidthForHeight, new Tizen.NUI.PropertyValue((bool)newValue));
1511             }
1512         }),
1513         defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
1514         {
1515             var view = (View)bindable;
1516             bool temp = false;
1517             Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.WidthForHeight).Get(out temp);
1518             return temp;
1519         }));
1520
1521         /// <summary>
1522         /// HeightForWidthProperty
1523         /// </summary>
1524         [EditorBrowsable(EditorBrowsableState.Never)]
1525         public static readonly BindableProperty HeightForWidthProperty = BindableProperty.Create(nameof(HeightForWidth), typeof(bool), typeof(View), false, propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
1526         {
1527             var view = (View)bindable;
1528             if (newValue != null)
1529             {
1530                 Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.HeightForWidth, new Tizen.NUI.PropertyValue((bool)newValue));
1531             }
1532         }),
1533         defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
1534         {
1535             var view = (View)bindable;
1536             bool temp = false;
1537             Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.HeightForWidth).Get(out temp);
1538             return temp;
1539         }));
1540
1541         /// <summary>
1542         /// PaddingProperty
1543         /// </summary>
1544         [EditorBrowsable(EditorBrowsableState.Never)]
1545         public static readonly BindableProperty PaddingProperty = BindableProperty.Create(nameof(Padding), typeof(Extents), typeof(View), null,
1546             propertyChanged: (bindable, oldValue, newValue) =>
1547             {
1548                 var view = (View)bindable;
1549                 if (newValue != null)
1550                 {
1551                     var tmp = new PropertyValue((Extents)newValue);
1552                     Object.SetProperty(view.SwigCPtr, View.Property.PADDING, tmp);
1553                     tmp?.Dispose();
1554                 }
1555             },
1556             defaultValueCreator: (bindable) =>
1557             {
1558                 var view = (View)bindable;
1559                 if (view.internalPadding == null)
1560                 {
1561                     view.internalPadding = new Extents(view.OnPaddingChanged, 0, 0, 0, 0);
1562                 }
1563
1564                 var tmp = Object.GetProperty(view.SwigCPtr, Property.PADDING);
1565                 tmp?.Get(view.internalPadding);
1566                 tmp?.Dispose();
1567
1568                 return view.internalPadding;
1569             }
1570         );
1571
1572         /// <summary>
1573         /// SizeProperty
1574         /// </summary>
1575         [EditorBrowsable(EditorBrowsableState.Never)]
1576         public static readonly BindableProperty SizeProperty = BindableProperty.Create(nameof(Size), typeof(Size), typeof(View), null,
1577             propertyChanged: (bindable, oldValue, newValue) =>
1578             {
1579                 var view = (View)bindable;
1580                 if (newValue != null)
1581                 {
1582                     // Set Specification so when layouts measure this View it matches the value set here.
1583                     // All Views are currently Layouts.
1584                     view.WidthSpecification = (int)System.Math.Ceiling(((Size)newValue).Width);
1585                     view.HeightSpecification = (int)System.Math.Ceiling(((Size)newValue).Height);
1586
1587                     view.SetSize(((Size)newValue).Width, ((Size)newValue).Height, ((Size)newValue).Depth);
1588                 }
1589             },
1590             defaultValueCreator: (bindable) =>
1591             {
1592                 var view = (View)bindable;
1593
1594                 var tmpProperty = Object.GetProperty(view.SwigCPtr, Property.SIZE);
1595                 if (view.internalSize == null)
1596                 {
1597                     view.internalSize = new Size(view.OnSizeChanged, 0, 0, 0);
1598                 }
1599                 tmpProperty?.Get(view.internalSize);
1600                 tmpProperty?.Dispose();
1601
1602                 return view.internalSize;
1603             }
1604         );
1605
1606         /// <summary>
1607         /// MinimumSizeProperty
1608         /// </summary>
1609         [EditorBrowsable(EditorBrowsableState.Never)]
1610         public static readonly BindableProperty MinimumSizeProperty = BindableProperty.Create(nameof(MinimumSize), typeof(Size2D), typeof(View), null,
1611             propertyChanged: (bindable, oldValue, newValue) =>
1612             {
1613                 var view = (View)bindable;
1614                 if (newValue != null)
1615                 {
1616                     view.SetMinimumSize((Size2D)newValue);
1617                 }
1618             },
1619             defaultValueCreator: (bindable) =>
1620             {
1621                 var view = (View)bindable;
1622                 if (view.internalMinimumSize == null)
1623                 {
1624                     view.internalMinimumSize = new Size2D(view.OnMinimumSizeChanged, 0, 0);
1625                 }
1626                 var tmp = Object.GetProperty(view.SwigCPtr, Property.MinimumSize);
1627                 tmp?.Get(view.internalMinimumSize);
1628                 tmp?.Dispose();
1629
1630                 return view.internalMinimumSize;
1631             }
1632         );
1633
1634         /// <summary>
1635         /// MaximumSizeProperty
1636         /// </summary>
1637         [EditorBrowsable(EditorBrowsableState.Never)]
1638         public static readonly BindableProperty MaximumSizeProperty = BindableProperty.Create(nameof(MaximumSize), typeof(Size2D), typeof(View), null,
1639             propertyChanged: (bindable, oldValue, newValue) =>
1640             {
1641                 var view = (View)bindable;
1642                 if (newValue != null)
1643                 {
1644                     view.SetMaximumSize((Size2D)newValue);
1645                 }
1646             },
1647             defaultValueCreator: (bindable) =>
1648             {
1649                 var view = (View)bindable;
1650                 if (view.internalMaximumSize == null)
1651                 {
1652                     view.internalMaximumSize = new Size2D(view.OnMaximumSizeChanged, 0, 0);
1653                 }
1654                 var tmp = Object.GetProperty(view.SwigCPtr, Property.MaximumSize);
1655                 tmp?.Get(view.internalMaximumSize);
1656                 tmp?.Dispose();
1657
1658                 return view.internalMaximumSize;
1659             }
1660         );
1661
1662         /// <summary>
1663         /// InheritPositionProperty
1664         /// </summary>
1665         [EditorBrowsable(EditorBrowsableState.Never)]
1666         public static readonly BindableProperty InheritPositionProperty = BindableProperty.Create(nameof(InheritPosition), typeof(bool), typeof(View), false, propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
1667         {
1668             var view = (View)bindable;
1669             if (newValue != null)
1670             {
1671                 Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.InheritPosition, new Tizen.NUI.PropertyValue((bool)newValue));
1672             }
1673         }),
1674         defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
1675         {
1676             var view = (View)bindable;
1677             bool temp = false;
1678             Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.InheritPosition).Get(out temp);
1679             return temp;
1680         }));
1681
1682         /// <summary>
1683         /// ClippingModeProperty
1684         /// </summary>
1685         [EditorBrowsable(EditorBrowsableState.Never)]
1686         public static readonly BindableProperty ClippingModeProperty = BindableProperty.Create(nameof(ClippingMode), typeof(ClippingModeType), typeof(View), ClippingModeType.Disabled, propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
1687         {
1688             var view = (View)bindable;
1689             if (newValue != null)
1690             {
1691                 Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.ClippingMode, new Tizen.NUI.PropertyValue((int)newValue));
1692             }
1693         }),
1694         defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
1695         {
1696             var view = (View)bindable;
1697             int temp = 0;
1698             if (Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.ClippingMode).Get(out temp) == false)
1699             {
1700                 NUILog.Error("ClippingMode get error!");
1701             }
1702             return (ClippingModeType)temp;
1703         }));
1704
1705         /// <summary>
1706         /// InheritLayoutDirectionProperty
1707         /// </summary>
1708         [EditorBrowsable(EditorBrowsableState.Never)]
1709         public static readonly BindableProperty InheritLayoutDirectionProperty = BindableProperty.Create(nameof(InheritLayoutDirection), typeof(bool), typeof(View), false, propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
1710         {
1711             var view = (View)bindable;
1712             if (newValue != null)
1713             {
1714                 Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.InheritLayoutDirection, new Tizen.NUI.PropertyValue((bool)newValue));
1715             }
1716         }),
1717         defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
1718         {
1719             var view = (View)bindable;
1720             bool temp = false;
1721             Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.InheritLayoutDirection).Get(out temp);
1722             return temp;
1723         }));
1724
1725         /// <summary>
1726         /// LayoutDirectionProperty
1727         /// </summary>
1728         [EditorBrowsable(EditorBrowsableState.Never)]
1729         public static readonly BindableProperty LayoutDirectionProperty = BindableProperty.Create(nameof(LayoutDirection), typeof(ViewLayoutDirectionType), typeof(View), ViewLayoutDirectionType.LTR, propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
1730         {
1731             var view = (View)bindable;
1732             if (newValue != null)
1733             {
1734                 Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.LayoutDirection, new Tizen.NUI.PropertyValue((int)newValue));
1735             }
1736         }),
1737         defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
1738         {
1739             var view = (View)bindable;
1740             int temp;
1741             if (false == Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.LayoutDirection).Get(out temp))
1742             {
1743                 NUILog.Error("LAYOUT_DIRECTION get error!");
1744             }
1745             return (ViewLayoutDirectionType)temp;
1746         }));
1747
1748         /// <summary>
1749         /// MarginProperty
1750         /// </summary>
1751         [EditorBrowsable(EditorBrowsableState.Never)]
1752         public static readonly BindableProperty MarginProperty = BindableProperty.Create(nameof(Margin), typeof(Extents), typeof(View), null,
1753             propertyChanged: (bindable, oldValue, newValue) =>
1754             {
1755                 var view = (View)bindable;
1756                 if (newValue != null)
1757                 {
1758                     var tmp = new PropertyValue((Extents)newValue);
1759                     Object.SetProperty(view.SwigCPtr, Property.MARGIN, tmp);
1760                     tmp?.Dispose();
1761                 }
1762             },
1763             defaultValueCreator: (bindable) =>
1764             {
1765                 var view = (View)bindable;
1766                 if (view.internalMargin == null)
1767                 {
1768                     view.internalMargin = new Extents(view.OnMarginChanged, 0, 0, 0, 0);
1769                 }
1770                 var tmp = Object.GetProperty(view.SwigCPtr, Property.MARGIN);
1771                 tmp?.Get(view.internalMargin);
1772                 tmp?.Dispose();
1773
1774                 return view.internalMargin;
1775             }
1776         );
1777
1778         /// <summary>
1779         /// UpdateSizeHintProperty
1780         /// </summary>
1781         [EditorBrowsable(EditorBrowsableState.Never)]
1782         public static readonly BindableProperty UpdateSizeHintProperty = BindableProperty.Create(nameof(UpdateSizeHint), typeof(Vector2), typeof(View), null, propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
1783         {
1784             var view = (View)bindable;
1785             if (newValue != null)
1786             {
1787                 Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, Interop.ViewProperty.UpdateSizeHintGet(), new Tizen.NUI.PropertyValue((Vector2)newValue));
1788             }
1789         }),
1790         defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
1791         {
1792             var view = (View)bindable;
1793
1794             Vector2 temp = new Vector2(0.0f, 0.0f);
1795             Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, Interop.ViewProperty.UpdateSizeHintGet()).Get(temp);
1796             return temp;
1797         }));
1798
1799         /// <summary>
1800         /// ImageShadow Property
1801         /// </summary>
1802         [EditorBrowsable(EditorBrowsableState.Never)]
1803         public static readonly BindableProperty ImageShadowProperty = BindableProperty.Create(nameof(ImageShadow), typeof(ImageShadow), typeof(View), null, propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
1804         {
1805             var view = (View)bindable;
1806
1807             view.themeData?.selectorData?.ClearShadow(view);
1808
1809             if (newValue is Selector<ImageShadow> selector)
1810             {
1811                 if (selector.HasAll()) view.SetShadow(selector.All);
1812                 else view.EnsureSelectorData().ImageShadow = new TriggerableSelector<ImageShadow>(view, selector, view.SetShadow, true);
1813             }
1814             else
1815             {
1816                 view.SetShadow((ImageShadow)newValue);
1817             }
1818         }),
1819         defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
1820         {
1821             var view = (View)bindable;
1822
1823             PropertyMap map = new PropertyMap();
1824             Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.SHADOW).Get(map);
1825
1826             var shadow = new ImageShadow(map);
1827             return shadow.IsEmpty() ? null : shadow;
1828         }));
1829
1830         /// <summary>
1831         /// Shadow Property
1832         /// </summary>
1833         [EditorBrowsable(EditorBrowsableState.Never)]
1834         public static readonly BindableProperty BoxShadowProperty = BindableProperty.Create(nameof(BoxShadow), typeof(Shadow), typeof(View), null, propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
1835         {
1836             var view = (View)bindable;
1837
1838             view.themeData?.selectorData?.ClearShadow(view);
1839
1840             if (newValue is Selector<Shadow> selector)
1841             {
1842                 if (selector.HasAll()) view.SetShadow(selector.All);
1843                 else view.EnsureSelectorData().BoxShadow = new TriggerableSelector<Shadow>(view, selector, view.SetShadow, true);
1844             }
1845             else
1846             {
1847                 view.SetShadow((Shadow)newValue);
1848             }
1849         }),
1850         defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
1851         {
1852             var view = (View)bindable;
1853
1854             PropertyMap map = new PropertyMap();
1855             Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.SHADOW).Get(map);
1856
1857             var shadow = new Shadow(map);
1858             return shadow.IsEmpty() ? null : shadow;
1859         }));
1860
1861         /// <summary>
1862         /// CornerRadius Property
1863         /// </summary>
1864         [EditorBrowsable(EditorBrowsableState.Never)]
1865         public static readonly BindableProperty CornerRadiusProperty = BindableProperty.Create(nameof(CornerRadius), typeof(Vector4), typeof(View), null, propertyChanged: (bindable, oldValue, newValue) =>
1866         {
1867             var view = (View)bindable;
1868             (view.backgroundExtraData ?? (view.backgroundExtraData = new BackgroundExtraData())).CornerRadius = (Vector4)newValue;
1869             view.ApplyCornerRadius();
1870         },
1871         defaultValueCreator: (bindable) =>
1872         {
1873             var view = (View)bindable;
1874             return view.backgroundExtraData == null ? 0.0f : view.backgroundExtraData.CornerRadius;
1875         });
1876
1877         /// <summary>
1878         /// CornerRadiusPolicy Property
1879         /// </summary>
1880         [EditorBrowsable(EditorBrowsableState.Never)]
1881         public static readonly BindableProperty CornerRadiusPolicyProperty = BindableProperty.Create(nameof(CornerRadiusPolicy), typeof(VisualTransformPolicyType), typeof(View), VisualTransformPolicyType.Absolute, propertyChanged: (bindable, oldValue, newValue) =>
1882         {
1883             var view = (View)bindable;
1884             (view.backgroundExtraData ?? (view.backgroundExtraData = new BackgroundExtraData())).CornerRadiusPolicy = (VisualTransformPolicyType)newValue;
1885
1886             if (view.backgroundExtraData.CornerRadius != null)
1887             {
1888                 view.ApplyCornerRadius();
1889             }
1890         },
1891         defaultValueCreator: (bindable) =>
1892         {
1893             var view = (View)bindable;
1894             return view.backgroundExtraData == null ? VisualTransformPolicyType.Absolute : view.backgroundExtraData.CornerRadiusPolicy;
1895         });
1896
1897         /// <summary>
1898         /// BorderlineWidth Property
1899         /// </summary>
1900         [EditorBrowsable(EditorBrowsableState.Never)]
1901         public static readonly BindableProperty BorderlineWidthProperty = BindableProperty.Create(nameof(BorderlineWidth), typeof(float), typeof(View), default(float), propertyChanged: (bindable, oldValue, newValue) =>
1902         {
1903             var view = (View)bindable;
1904             (view.backgroundExtraData ?? (view.backgroundExtraData = new BackgroundExtraData())).BorderlineWidth = (float)newValue;
1905             view.ApplyBorderline();
1906         },
1907         defaultValueCreator: (bindable) =>
1908         {
1909             var view = (View)bindable;
1910             return view.backgroundExtraData == null ? 0.0f : view.backgroundExtraData.BorderlineWidth;
1911         });
1912
1913         /// <summary>
1914         /// BorderlineColor Property
1915         /// </summary>
1916         [EditorBrowsable(EditorBrowsableState.Never)]
1917         public static readonly BindableProperty BorderlineColorProperty = BindableProperty.Create(nameof(BorderlineColor), typeof(Color), typeof(View), null, propertyChanged: (bindable, oldValue, newValue) =>
1918         {
1919             var view = (View)bindable;
1920             (view.backgroundExtraData ?? (view.backgroundExtraData = new BackgroundExtraData())).BorderlineColor = (Color)newValue;
1921             view.ApplyBorderline();
1922         },
1923         defaultValueCreator: (bindable) =>
1924         {
1925             var view = (View)bindable;
1926             return view.backgroundExtraData == null ? Color.Black : view.backgroundExtraData.BorderlineColor;
1927         });
1928
1929         /// <summary>
1930         /// BorderlineOffset Property
1931         /// </summary>
1932         [EditorBrowsable(EditorBrowsableState.Never)]
1933         public static readonly BindableProperty BorderlineOffsetProperty = BindableProperty.Create(nameof(BorderlineOffset), typeof(float), typeof(View), default(float), propertyChanged: (bindable, oldValue, newValue) =>
1934         {
1935             var view = (View)bindable;
1936             (view.backgroundExtraData ?? (view.backgroundExtraData = new BackgroundExtraData())).BorderlineOffset = (float)newValue;
1937             view.ApplyBorderline();
1938         },
1939         defaultValueCreator: (bindable) =>
1940         {
1941             var view = (View)bindable;
1942             return view.backgroundExtraData == null ? 0.0f : view.backgroundExtraData.BorderlineOffset;
1943         });
1944
1945         /// <summary>
1946         /// EnableControlState property
1947         /// </summary>
1948         [EditorBrowsable(EditorBrowsableState.Never)]
1949         public static readonly BindableProperty EnableControlStateProperty = BindableProperty.Create(nameof(EnableControlState), typeof(bool), typeof(View), false, propertyChanged: (bindable, oldValue, newValue) =>
1950         {
1951             var view = (View)bindable;
1952             bool prev = view.enableControlState;
1953             view.enableControlState = (bool)newValue;
1954
1955             if (prev != view.enableControlState)
1956             {
1957                 if (prev)
1958                 {
1959                     view.TouchEvent -= view.EmptyOnTouch;
1960                 }
1961                 else
1962                 {
1963                     view.TouchEvent += view.EmptyOnTouch;
1964                 }
1965             }
1966         },
1967         defaultValueCreator: (bindable) =>
1968         {
1969             return ((View)bindable).enableControlState;
1970         });
1971
1972         /// <summary>
1973         /// ThemeChangeSensitive property
1974         /// </summary>
1975         [EditorBrowsable(EditorBrowsableState.Never)]
1976         public static readonly BindableProperty ThemeChangeSensitiveProperty = BindableProperty.Create(nameof(ThemeChangeSensitive), typeof(bool), typeof(View), false, propertyChanged: (bindable, oldValue, newValue) =>
1977         {
1978             var view = (View)bindable;
1979
1980             if (view.ThemeChangeSensitive == (bool)newValue) return;
1981
1982             if (view.themeData == null) view.themeData = new ThemeData();
1983
1984             view.themeData.ThemeChangeSensitive = (bool)newValue;
1985
1986             if (!view.themeData.ThemeApplied) return;
1987
1988             if (view.themeData.ThemeChangeSensitive && !view.themeData.ListeningThemeChangeEvent)
1989             {
1990                 view.themeData.ListeningThemeChangeEvent = true;
1991                 ThemeManager.ThemeChangedInternal.Add(view.OnThemeChanged);
1992             }
1993             else if (!view.themeData.ThemeChangeSensitive && view.themeData.ListeningThemeChangeEvent)
1994             {
1995                 view.themeData.ListeningThemeChangeEvent = false;
1996                 ThemeManager.ThemeChangedInternal.Remove(view.OnThemeChanged);
1997             }
1998         },
1999         defaultValueCreator: (bindable) =>
2000         {
2001             return ((View)bindable).themeData?.ThemeChangeSensitive ?? ThemeManager.ApplicationThemeChangeSensitive;
2002         });
2003
2004         /// <summary>
2005         /// AccessibilityNameProperty
2006         /// </summary>
2007         [EditorBrowsable(EditorBrowsableState.Never)]
2008         public static readonly BindableProperty AccessibilityNameProperty = BindableProperty.Create(nameof(AccessibilityName), typeof(string), typeof(View), string.Empty, propertyChanged: (bindable, oldValue, newValue) =>
2009         {
2010             var view = (View)bindable;
2011             if (newValue != null)
2012             {
2013                 Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.AccessibilityName, new Tizen.NUI.PropertyValue((string)newValue));
2014             }
2015         },
2016         defaultValueCreator: (bindable) =>
2017         {
2018             var view = (View)bindable;
2019
2020             string temp;
2021             Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.AccessibilityName).Get(out temp);
2022             return temp;
2023         });
2024
2025         /// <summary>
2026         /// AccessibilityDescriptionProperty
2027         /// </summary>
2028         [EditorBrowsable(EditorBrowsableState.Never)]
2029         public static readonly BindableProperty AccessibilityDescriptionProperty = BindableProperty.Create(nameof(AccessibilityDescription), typeof(string), typeof(View), string.Empty, propertyChanged: (bindable, oldValue, newValue) =>
2030         {
2031             var view = (View)bindable;
2032             if (newValue != null)
2033             {
2034                 Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.AccessibilityDescription, new Tizen.NUI.PropertyValue((string)newValue));
2035             }
2036         },
2037         defaultValueCreator: (bindable) =>
2038         {
2039             var view = (View)bindable;
2040
2041             string temp;
2042             Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.AccessibilityDescription).Get(out temp);
2043             return temp;
2044         });
2045
2046         /// <summary>
2047         /// AccessibilityTranslationDomainProperty
2048         /// </summary>
2049         [EditorBrowsable(EditorBrowsableState.Never)]
2050         public static readonly BindableProperty AccessibilityTranslationDomainProperty = BindableProperty.Create(nameof(AccessibilityTranslationDomain), typeof(string), typeof(View), string.Empty, propertyChanged: (bindable, oldValue, newValue) =>
2051         {
2052             var view = (View)bindable;
2053             if (newValue != null)
2054             {
2055                 Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.AccessibilityTranslationDomain, new Tizen.NUI.PropertyValue((string)newValue));
2056             }
2057         },
2058         defaultValueCreator: (bindable) =>
2059         {
2060             var view = (View)bindable;
2061
2062             string temp;
2063             Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.AccessibilityTranslationDomain).Get(out temp);
2064             return temp;
2065         });
2066
2067         /// <summary>
2068         /// AccessibilityRoleProperty
2069         /// </summary>
2070         [EditorBrowsable(EditorBrowsableState.Never)]
2071         public static readonly BindableProperty AccessibilityRoleProperty = BindableProperty.Create(nameof(AccessibilityRole), typeof(Role), typeof(View), default(Role), propertyChanged: (bindable, oldValue, newValue) =>
2072         {
2073             var view = (View)bindable;
2074             if (newValue != null)
2075             {
2076                 Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.AccessibilityRole, new Tizen.NUI.PropertyValue((int)newValue));
2077             }
2078         },
2079         defaultValueCreator: (bindable) =>
2080         {
2081             var view = (View)bindable;
2082
2083             int temp = 0;
2084             Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.AccessibilityRole).Get(out temp);
2085             return (Role)temp;
2086         });
2087
2088         /// <summary>
2089         /// AccessibilityHighlightableProperty
2090         /// </summary>
2091         [EditorBrowsable(EditorBrowsableState.Never)]
2092         public static readonly BindableProperty AccessibilityHighlightableProperty = BindableProperty.Create(nameof(AccessibilityHighlightable), typeof(bool), typeof(View), false, propertyChanged: (bindable, oldValue, newValue) =>
2093         {
2094             var view = (View)bindable;
2095             if (newValue != null)
2096             {
2097                 Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.AccessibilityHighlightable, new Tizen.NUI.PropertyValue((bool)newValue));
2098             }
2099         },
2100         defaultValueCreator: (bindable) =>
2101         {
2102             var view = (View)bindable;
2103             bool temp = false;
2104             Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.AccessibilityHighlightable).Get(out temp);
2105             return temp;
2106         });
2107
2108         /// <summary>
2109         /// AccessibilityHiddenProperty
2110         /// </summary>
2111         [EditorBrowsable(EditorBrowsableState.Never)]
2112         public static readonly BindableProperty AccessibilityHiddenProperty = BindableProperty.Create(nameof(AccessibilityHidden), typeof(bool), typeof(View), false, propertyChanged: (bindable, oldValue, newValue) =>
2113         {
2114             var view = (View)bindable;
2115             if (newValue != null)
2116             {
2117                 Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.AccessibilityHidden, new Tizen.NUI.PropertyValue((bool)newValue));
2118             }
2119         },
2120         defaultValueCreator: (bindable) =>
2121         {
2122             var view = (View)bindable;
2123             bool temp = false;
2124             Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.AccessibilityHidden).Get(out temp);
2125             return temp;
2126         });
2127
2128         /// <summary>
2129         /// ExcludeLayoutingProperty
2130         /// </summary>
2131         [EditorBrowsable(EditorBrowsableState.Never)]
2132         public static readonly BindableProperty ExcludeLayoutingProperty = BindableProperty.Create(nameof(ExcludeLayouting), typeof(bool), typeof(View), false, propertyChanged: (bindable, oldValue, newValue) =>
2133         {
2134             var instance = (Tizen.NUI.BaseComponents.View)bindable;
2135             if (newValue != null)
2136             {
2137                 instance.InternalExcludeLayouting = (bool)newValue;
2138             }
2139         },
2140         defaultValueCreator: (bindable) =>
2141         {
2142             var instance = (Tizen.NUI.BaseComponents.View)bindable;
2143             return instance.InternalExcludeLayouting;
2144         });
2145
2146         /// <summary>
2147         /// TooltipTextProperty
2148         /// </summary>
2149         [EditorBrowsable(EditorBrowsableState.Never)]
2150         public static readonly BindableProperty TooltipTextProperty = BindableProperty.Create(nameof(TooltipText), typeof(string), typeof(View), string.Empty, propertyChanged: (bindable, oldValue, newValue) =>
2151         {
2152             var instance = (Tizen.NUI.BaseComponents.View)bindable;
2153             if (newValue != null)
2154             {
2155                 instance.InternalTooltipText = (string)newValue;
2156             }
2157         },
2158         defaultValueCreator: (bindable) =>
2159         {
2160             var instance = (Tizen.NUI.BaseComponents.View)bindable;
2161             return instance.InternalTooltipText;
2162         });
2163
2164         /// <summary>
2165         /// PositionUsesAnchorPointProperty
2166         /// </summary>
2167         [EditorBrowsable(EditorBrowsableState.Never)]
2168         public static readonly BindableProperty PositionUsesAnchorPointProperty = BindableProperty.Create(nameof(PositionUsesAnchorPoint), typeof(bool), typeof(View), false, propertyChanged: (bindable, oldValue, newValue) =>
2169         {
2170             var instance = (Tizen.NUI.BaseComponents.View)bindable;
2171             if (newValue != null)
2172             {
2173                 instance.InternalPositionUsesAnchorPoint = (bool)newValue;
2174             }
2175         },
2176         defaultValueCreator: (bindable) =>
2177         {
2178             var instance = (Tizen.NUI.BaseComponents.View)bindable;
2179             return instance.InternalPositionUsesAnchorPoint;
2180         });
2181
2182         /// <summary>
2183         /// AnchorPointProperty
2184         /// </summary>
2185         [EditorBrowsable(EditorBrowsableState.Never)]
2186         public static readonly BindableProperty AnchorPointProperty = BindableProperty.Create(nameof(AnchorPoint), typeof(Tizen.NUI.Position), typeof(View), null, propertyChanged: (bindable, oldValue, newValue) =>
2187         {
2188             var instance = (Tizen.NUI.BaseComponents.View)bindable;
2189             if (newValue != null)
2190             {
2191                 instance.InternalAnchorPoint = (Tizen.NUI.Position)newValue;
2192             }
2193         },
2194         defaultValueCreator: (bindable) =>
2195         {
2196             var instance = (Tizen.NUI.BaseComponents.View)bindable;
2197             return instance.InternalAnchorPoint;
2198         });
2199
2200         /// <summary>
2201         /// WidthSpecificationProperty
2202         /// </summary>
2203         [EditorBrowsable(EditorBrowsableState.Never)]
2204         public static readonly BindableProperty WidthSpecificationProperty = BindableProperty.Create(nameof(WidthSpecification), typeof(int), typeof(View), 0, propertyChanged: (bindable, oldValue, newValue) =>
2205         {
2206             var instance = (Tizen.NUI.BaseComponents.View)bindable;
2207             if (newValue != null)
2208             {
2209                 instance.InternalWidthSpecification = (int)newValue;
2210             }
2211         },
2212         defaultValueCreator: (bindable) =>
2213         {
2214             var instance = (Tizen.NUI.BaseComponents.View)bindable;
2215             return instance.InternalWidthSpecification;
2216         });
2217
2218         /// <summary>
2219         /// HeightSpecificationProperty
2220         /// </summary>
2221         [EditorBrowsable(EditorBrowsableState.Never)]
2222         public static readonly BindableProperty HeightSpecificationProperty = BindableProperty.Create(nameof(HeightSpecification), typeof(int), typeof(View), 0, propertyChanged: (bindable, oldValue, newValue) =>
2223         {
2224             var instance = (Tizen.NUI.BaseComponents.View)bindable;
2225             if (newValue != null)
2226             {
2227                 instance.InternalHeightSpecification = (int)newValue;
2228             }
2229         },
2230         defaultValueCreator: (bindable) =>
2231         {
2232             var instance = (Tizen.NUI.BaseComponents.View)bindable;
2233             return instance.InternalHeightSpecification;
2234         });
2235
2236         /// <summary>
2237         /// LayoutTransitionProperty
2238         /// </summary>
2239         [EditorBrowsable(EditorBrowsableState.Never)]
2240         public static readonly BindableProperty LayoutTransitionProperty = BindableProperty.Create(nameof(LayoutTransition), typeof(Tizen.NUI.LayoutTransition), typeof(View), null, propertyChanged: (bindable, oldValue, newValue) =>
2241         {
2242             var instance = (Tizen.NUI.BaseComponents.View)bindable;
2243             if (newValue != null)
2244             {
2245                 instance.InternalLayoutTransition = (Tizen.NUI.LayoutTransition)newValue;
2246             }
2247         },
2248         defaultValueCreator: (bindable) =>
2249         {
2250             var instance = (Tizen.NUI.BaseComponents.View)bindable;
2251             return instance.InternalLayoutTransition;
2252         });
2253
2254         /// <summary>
2255         /// PaddingEXProperty
2256         /// </summary>
2257         [EditorBrowsable(EditorBrowsableState.Never)]
2258         public static readonly BindableProperty PaddingEXProperty = BindableProperty.Create(nameof(PaddingEX), typeof(Tizen.NUI.Extents), typeof(View), null, propertyChanged: (bindable, oldValue, newValue) =>
2259         {
2260             var instance = (Tizen.NUI.BaseComponents.View)bindable;
2261             if (newValue != null)
2262             {
2263                 instance.InternalPaddingEX = (Tizen.NUI.Extents)newValue;
2264             }
2265         },
2266         defaultValueCreator: (bindable) =>
2267         {
2268             var instance = (Tizen.NUI.BaseComponents.View)bindable;
2269             return instance.InternalPaddingEX;
2270         });
2271
2272         /// <summary>
2273         /// LayoutProperty
2274         /// </summary>
2275         [EditorBrowsable(EditorBrowsableState.Never)]
2276         public static readonly BindableProperty LayoutProperty = BindableProperty.Create(nameof(Layout), typeof(Tizen.NUI.LayoutItem), typeof(View), null, propertyChanged: (bindable, oldValue, newValue) =>
2277         {
2278             var instance = (Tizen.NUI.BaseComponents.View)bindable;
2279             if (newValue != null)
2280             {
2281                 instance.InternalLayout = (Tizen.NUI.LayoutItem)newValue;
2282             }
2283         },
2284         defaultValueCreator: (bindable) =>
2285         {
2286             var instance = (Tizen.NUI.BaseComponents.View)bindable;
2287             return instance.InternalLayout;
2288         });
2289
2290         /// <summary>
2291         /// BackgroundImageSynchronosLoadingProperty
2292         /// </summary>
2293         [EditorBrowsable(EditorBrowsableState.Never)]
2294         public static readonly BindableProperty BackgroundImageSynchronosLoadingProperty = BindableProperty.Create(nameof(BackgroundImageSynchronosLoading), typeof(bool), typeof(View), false, propertyChanged: (bindable, oldValue, newValue) =>
2295         {
2296             var instance = (Tizen.NUI.BaseComponents.View)bindable;
2297             if (newValue != null)
2298             {
2299                 instance.InternalBackgroundImageSynchronosLoading = (bool)newValue;
2300             }
2301         },
2302         defaultValueCreator: (bindable) =>
2303         {
2304             var instance = (Tizen.NUI.BaseComponents.View)bindable;
2305             return instance.InternalBackgroundImageSynchronosLoading;
2306         });
2307
2308         /// <summary>
2309         /// BackgroundImageSynchronousLoadingProperty
2310         /// </summary>
2311         [EditorBrowsable(EditorBrowsableState.Never)]
2312         public static readonly BindableProperty BackgroundImageSynchronousLoadingProperty = BindableProperty.Create(nameof(BackgroundImageSynchronousLoading), typeof(bool), typeof(View), false, propertyChanged: (bindable, oldValue, newValue) =>
2313         {
2314             var instance = (Tizen.NUI.BaseComponents.View)bindable;
2315             if (newValue != null)
2316             {
2317                 instance.InternalBackgroundImageSynchronousLoading = (bool)newValue;
2318             }
2319         },
2320         defaultValueCreator: (bindable) =>
2321         {
2322             var instance = (Tizen.NUI.BaseComponents.View)bindable;
2323             return instance.InternalBackgroundImageSynchronousLoading;
2324         });
2325
2326         /// <summary>
2327         /// EnableControlStatePropagationProperty
2328         /// </summary>
2329         [EditorBrowsable(EditorBrowsableState.Never)]
2330         public static readonly BindableProperty EnableControlStatePropagationProperty = BindableProperty.Create(nameof(EnableControlStatePropagation), typeof(bool), typeof(View), false, propertyChanged: (bindable, oldValue, newValue) =>
2331         {
2332             var instance = (Tizen.NUI.BaseComponents.View)bindable;
2333             if (newValue != null)
2334             {
2335                 instance.InternalEnableControlStatePropagation = (bool)newValue;
2336             }
2337         },
2338         defaultValueCreator: (bindable) =>
2339         {
2340             var instance = (Tizen.NUI.BaseComponents.View)bindable;
2341             return instance.InternalEnableControlStatePropagation;
2342         });
2343
2344         /// <summary>
2345         /// GrabTouchAfterLeaveProperty
2346         /// </summary>
2347         [EditorBrowsable(EditorBrowsableState.Never)]
2348         public static readonly BindableProperty GrabTouchAfterLeaveProperty = BindableProperty.Create(nameof(GrabTouchAfterLeave), typeof(bool), typeof(View), false, propertyChanged: (bindable, oldValue, newValue) =>
2349         {
2350             var instance = (Tizen.NUI.BaseComponents.View)bindable;
2351             if (newValue != null)
2352             {
2353                 instance.InternalGrabTouchAfterLeave = (bool)newValue;
2354             }
2355         },
2356         defaultValueCreator: (bindable) =>
2357         {
2358             var instance = (Tizen.NUI.BaseComponents.View)bindable;
2359             return instance.InternalGrabTouchAfterLeave;
2360         });
2361
2362         /// <summary>
2363         /// BlendEquationProperty
2364         /// </summary>
2365         [EditorBrowsable(EditorBrowsableState.Never)]
2366         public static readonly BindableProperty BlendEquationProperty = BindableProperty.Create(nameof(BlendEquation), typeof(BlendEquationType), typeof(View), default(BlendEquationType), propertyChanged: (bindable, oldValue, newValue) =>
2367         {
2368             var instance = (Tizen.NUI.BaseComponents.View)bindable;
2369             if (newValue != null)
2370             {
2371                 instance.InternalBlendEquation = (Tizen.NUI.BlendEquationType)newValue;
2372             }
2373         },
2374         defaultValueCreator: (bindable) =>
2375         {
2376             var instance = (Tizen.NUI.BaseComponents.View)bindable;
2377             return instance.InternalBlendEquation;
2378         });
2379
2380         /// <summary>
2381         /// TransitionOptionsProperty
2382         /// </summary>
2383         [EditorBrowsable(EditorBrowsableState.Never)]
2384         public static readonly BindableProperty TransitionOptionsProperty = BindableProperty.Create(nameof(TransitionOptions), typeof(TransitionOptions), typeof(View), default(TransitionOptions), propertyChanged: (bindable, oldValue, newValue) =>
2385         {
2386             var instance = (Tizen.NUI.BaseComponents.View)bindable;
2387             if (newValue != null)
2388             {
2389                 instance.InternalTransitionOptions = (Tizen.NUI.TransitionOptions)newValue;
2390             }
2391         },
2392         defaultValueCreator: (bindable) =>
2393         {
2394             var instance = (Tizen.NUI.BaseComponents.View)bindable;
2395             return instance.InternalTransitionOptions;
2396         });
2397
2398         /// <summary>
2399         /// AutomationIdProperty
2400         /// </summary>
2401         [EditorBrowsable(EditorBrowsableState.Never)]
2402         public static readonly BindableProperty AutomationIdProperty = BindableProperty.Create(nameof(AutomationId), typeof(string), typeof(View), string.Empty, propertyChanged: (bindable, oldValue, newValue) =>
2403         {
2404             var instance = (Tizen.NUI.BaseComponents.View)bindable;
2405             if (newValue != null)
2406             {
2407                 instance.InternalAutomationId = (string)newValue;
2408             }
2409         },
2410         defaultValueCreator: (bindable) =>
2411         {
2412             var instance = (Tizen.NUI.BaseComponents.View)bindable;
2413             return instance.InternalAutomationId;
2414         });
2415
2416         /// <summary>
2417         /// TouchAreaOffsetProperty
2418         /// </summary>
2419         [EditorBrowsable(EditorBrowsableState.Never)]
2420         public static readonly BindableProperty TouchAreaOffsetProperty = BindableProperty.Create(nameof(TouchAreaOffset), typeof(Offset), typeof(View), default(Offset), propertyChanged: (bindable, oldValue, newValue) =>
2421         {
2422             var instance = (Tizen.NUI.BaseComponents.View)bindable;
2423             if (newValue != null)
2424             {
2425                 instance.InternalTouchAreaOffset = (Tizen.NUI.Offset)newValue;
2426             }
2427         },
2428         defaultValueCreator: (bindable) =>
2429         {
2430             var instance = (Tizen.NUI.BaseComponents.View)bindable;
2431             return instance.InternalTouchAreaOffset;
2432         });
2433
2434         private void SetBackgroundImage(string value)
2435         {
2436             if (string.IsNullOrEmpty(value))
2437             {
2438                 var empty = new PropertyValue();
2439                 // Clear background
2440                 Object.SetProperty(SwigCPtr, Property.BACKGROUND, empty);
2441                 empty.Dispose();
2442                 return;
2443             }
2444
2445             if (value.StartsWith("*Resource*"))
2446             {
2447                 string resource = Tizen.Applications.Application.Current.DirectoryInfo.Resource;
2448                 value = value.Replace("*Resource*", resource);
2449             }
2450
2451             if (backgroundExtraData == null)
2452             {
2453                 var propertyValue = new PropertyValue(value);
2454                 Object.SetProperty(SwigCPtr, Property.BACKGROUND, propertyValue);
2455                 BackgroundImageSynchronousLoading = backgroundImageSynchronousLoading;
2456                 propertyValue?.Dispose();
2457                 return;
2458             }
2459
2460             var map = new PropertyMap();
2461             var url = new PropertyValue(value);
2462             var cornerRadiusValue = backgroundExtraData.CornerRadius == null ? new PropertyValue() : new PropertyValue(backgroundExtraData.CornerRadius);
2463             var cornerRadius = new PropertyValue(cornerRadiusValue);
2464             var cornerRadiusPolicy = new PropertyValue((int)(backgroundExtraData.CornerRadiusPolicy));
2465             var borderlineWidth = new PropertyValue(backgroundExtraData.BorderlineWidth);
2466             var borderlineColorValue = backgroundExtraData.BorderlineColor == null ? new PropertyValue(Color.Black) : new PropertyValue(backgroundExtraData.BorderlineColor);
2467             var borderlineColor = new PropertyValue(borderlineColorValue);
2468             var borderlineOffset = new PropertyValue(backgroundExtraData.BorderlineOffset);
2469             var synchronousLoading = new PropertyValue(backgroundImageSynchronousLoading);
2470             var npatchType = new PropertyValue((int)Visual.Type.NPatch);
2471             var border = (backgroundExtraData.BackgroundImageBorder != null) ? new PropertyValue(backgroundExtraData.BackgroundImageBorder) : null;
2472             var imageType = new PropertyValue((int)Visual.Type.Image);
2473
2474             map.Add(ImageVisualProperty.URL, url)
2475                .Add(Visual.Property.CornerRadius, cornerRadius)
2476                .Add(Visual.Property.CornerRadiusPolicy, cornerRadiusPolicy)
2477                .Add(Visual.Property.BorderlineWidth, borderlineWidth)
2478                .Add(Visual.Property.BorderlineColor, borderlineColor)
2479                .Add(Visual.Property.BorderlineOffset, borderlineOffset)
2480                .Add(ImageVisualProperty.SynchronousLoading, synchronousLoading);
2481
2482             if (backgroundExtraData.BackgroundImageBorder != null)
2483             {
2484                 map.Add(Visual.Property.Type, npatchType)
2485                    .Add(NpatchImageVisualProperty.Border, border);
2486             }
2487             else
2488             {
2489                 map.Add(Visual.Property.Type, imageType);
2490             }
2491
2492             var mapValue = new PropertyValue(map);
2493             Object.SetProperty(SwigCPtr, Property.BACKGROUND, mapValue);
2494
2495             imageType?.Dispose();
2496             border?.Dispose();
2497             npatchType?.Dispose();
2498             synchronousLoading?.Dispose();
2499             borderlineOffset?.Dispose();
2500             borderlineColor?.Dispose();
2501             borderlineColorValue?.Dispose();
2502             borderlineWidth?.Dispose();
2503             cornerRadiusPolicy?.Dispose();
2504             cornerRadius?.Dispose();
2505             cornerRadiusValue?.Dispose();
2506             url?.Dispose();
2507             map?.Dispose();
2508             mapValue?.Dispose();
2509         }
2510
2511         private void SetBackgroundImageBorder(Rectangle value)
2512         {
2513             bool isEmptyValue = Rectangle.IsNullOrZero(value);
2514
2515             var backgroundImageBorder = isEmptyValue ? null : value;
2516
2517             (backgroundExtraData ?? (backgroundExtraData = new BackgroundExtraData())).BackgroundImageBorder = backgroundImageBorder;
2518
2519             if (isEmptyValue)
2520             {
2521                 return;
2522             }
2523
2524             PropertyMap map = Background;
2525
2526             if (map.Empty())
2527             {
2528                 return;
2529             }
2530
2531             map[NpatchImageVisualProperty.Border] = new PropertyValue(backgroundImageBorder);
2532
2533             int visualType = 0;
2534
2535             map.Find(Visual.Property.Type)?.Get(out visualType);
2536
2537             if (visualType == (int)Visual.Type.Image)
2538             {
2539                 map[Visual.Property.Type] = new PropertyValue((int)Visual.Type.NPatch);
2540             }
2541
2542             Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)SwigCPtr, View.Property.BACKGROUND, new PropertyValue(map));
2543         }
2544
2545         private void SetBackgroundColor(Color value)
2546         {
2547             if (value == null)
2548             {
2549                 return;
2550             }
2551
2552             if (backgroundExtraData == null)
2553             {
2554                 var background = new PropertyValue(value);
2555                 Object.SetProperty(SwigCPtr, Property.BACKGROUND, background);
2556                 background?.Dispose();
2557                 return;
2558             }
2559
2560             var map = new PropertyMap();
2561             var colorType = new PropertyValue((int)Visual.Type.Color);
2562             var mixColor = new PropertyValue(value);
2563             var cornerRadiusValue = backgroundExtraData.CornerRadius == null ? new PropertyValue() : new PropertyValue(backgroundExtraData.CornerRadius);
2564             var cornerRadius = new PropertyValue(cornerRadiusValue);
2565             var cornerRadiusPolicy = new PropertyValue((int)(backgroundExtraData.CornerRadiusPolicy));
2566             var borderlineWidth = new PropertyValue(backgroundExtraData.BorderlineWidth);
2567             var borderlineColorValue = backgroundExtraData.BorderlineColor == null ? new PropertyValue(Color.Black) : new PropertyValue(backgroundExtraData.BorderlineColor);
2568             var borderlineColor = new PropertyValue(borderlineColorValue);
2569             var borderlineOffset = new PropertyValue(backgroundExtraData.BorderlineOffset);
2570
2571             map.Add(Visual.Property.Type, colorType)
2572                .Add(ColorVisualProperty.MixColor, mixColor)
2573                .Add(Visual.Property.CornerRadius, cornerRadius)
2574                .Add(Visual.Property.CornerRadiusPolicy, cornerRadiusPolicy)
2575                .Add(Visual.Property.BorderlineWidth, borderlineWidth)
2576                .Add(Visual.Property.BorderlineColor, borderlineColor)
2577                .Add(Visual.Property.BorderlineOffset, borderlineOffset);
2578
2579             var mapValue = new PropertyValue(map);
2580             Object.SetProperty(SwigCPtr, Property.BACKGROUND, mapValue);
2581
2582             borderlineOffset?.Dispose();
2583             borderlineColor?.Dispose();
2584             borderlineColorValue?.Dispose();
2585             borderlineWidth?.Dispose();
2586             cornerRadiusPolicy?.Dispose();
2587             cornerRadius?.Dispose();
2588             cornerRadiusValue?.Dispose();
2589             mixColor?.Dispose();
2590             colorType?.Dispose();
2591             map?.Dispose();
2592             mapValue?.Dispose();
2593         }
2594
2595         private void SetColor(Color value)
2596         {
2597             if (value == null)
2598             {
2599                 return;
2600             }
2601
2602             Interop.ActorInternal.SetColor(SwigCPtr, value.SwigCPtr);
2603             if (NDalicPINVOKE.SWIGPendingException.Pending)
2604                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
2605         }
2606
2607         private void SetOpacity(float? value)
2608         {
2609             if (value == null)
2610             {
2611                 return;
2612             }
2613
2614             Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)SwigCPtr, View.Property.OPACITY, new Tizen.NUI.PropertyValue((float)value));
2615         }
2616
2617         private void SetShadow(ShadowBase value)
2618         {
2619             Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)SwigCPtr, View.Property.SHADOW, value == null ? new PropertyValue() : value.ToPropertyValue(this));
2620         }
2621     }
2622 }