1e0187108dbabacd07a11cbc8d84fda480c38cef
[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         /// FocusableProperty
612         /// </summary>
613         [EditorBrowsable(EditorBrowsableState.Never)]
614         public static readonly BindableProperty FocusableProperty = BindableProperty.Create(nameof(Focusable), typeof(bool), typeof(View), false, propertyChanged: (bindable, oldValue, newValue) =>
615         {
616             var view = (View)bindable;
617             if (newValue != null) { view.SetKeyboardFocusable((bool)newValue); }
618         },
619         defaultValueCreator: (bindable) =>
620         {
621             var view = (View)bindable;
622             return view.IsKeyboardFocusable();
623         });
624
625         /// <summary>
626         /// FocusableChildrenProperty
627         /// </summary>
628         [EditorBrowsable(EditorBrowsableState.Never)]
629         public static readonly BindableProperty FocusableChildrenProperty = BindableProperty.Create(nameof(FocusableChildren), typeof(bool), typeof(View), true, propertyChanged: (bindable, oldValue, newValue) =>
630         {
631             var view = (View)bindable;
632             if (newValue != null) { view.SetKeyboardFocusableChildren((bool)newValue); }
633         },
634         defaultValueCreator: (bindable) =>
635         {
636             var view = (View)bindable;
637             return view.AreChildrenKeyBoardFocusable();
638         });
639
640         /// <summary>
641         /// FocusableInTouchProperty
642         /// </summary>
643         [EditorBrowsable(EditorBrowsableState.Never)]
644         public static readonly BindableProperty FocusableInTouchProperty = BindableProperty.Create(nameof(FocusableInTouch), typeof(bool), typeof(View), false, propertyChanged: (bindable, oldValue, newValue) =>
645         {
646             var view = (View)bindable;
647             if (newValue != null) { view.SetFocusableInTouch((bool)newValue); }
648         },
649         defaultValueCreator: (bindable) =>
650         {
651             var view = (View)bindable;
652             return view.IsFocusableInTouch();
653         });
654
655         /// <summary>
656         /// Size2DProperty
657         /// </summary>
658         [EditorBrowsable(EditorBrowsableState.Never)]
659         public static readonly BindableProperty Size2DProperty = BindableProperty.Create(nameof(Size2D), typeof(Size2D), typeof(View), null,
660             propertyChanged: (bindable, oldValue, newValue) =>
661             {
662                 var view = (View)bindable;
663                 if (newValue != null)
664                 {
665                     view.SetSize(((Size2D)newValue).Width, ((Size2D)newValue).Height, 0);
666
667                     view.widthPolicy = ((Size2D)newValue).Width;
668                     view.heightPolicy = ((Size2D)newValue).Height;
669
670                     view.layout?.RequestLayout();
671                 }
672             },
673             defaultValueCreator: (bindable) =>
674             {
675                 var view = (View)bindable;
676                 var tmp = new Size(0, 0, 0);
677                 var tmpProperty = Object.GetProperty(view.SwigCPtr, Property.SIZE);
678                 tmpProperty?.Get(tmp);
679
680                 if (view.internalSize2D == null)
681                 {
682                     view.internalSize2D = new Size2D(view.OnSize2DChanged, (int)tmp?.Width, (int)tmp?.Height);
683                 }
684                 else
685                 {
686                     if (view.internalSize2D.SwigCPtr.Handle != global::System.IntPtr.Zero)
687                     {
688                         Interop.Vector2.WidthSet(view.internalSize2D.SwigCPtr, (float)tmp?.Width);
689                         Interop.Vector2.HeightSet(view.internalSize2D.SwigCPtr, (float)tmp?.Height);
690                     }
691                 }
692
693                 tmpProperty?.Dispose();
694                 tmp?.Dispose();
695
696                 return view.internalSize2D;
697             }
698         );
699
700         /// <summary>
701         /// OpacityProperty
702         /// </summary>
703         [EditorBrowsable(EditorBrowsableState.Never)]
704         public static readonly BindableProperty OpacityProperty = BindableProperty.Create(nameof(Opacity), typeof(float), typeof(View), default(float), propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
705         {
706             var view = (View)bindable;
707
708             view.themeData?.selectorData?.Opacity?.Reset(view);
709
710             if (newValue is Selector<float?> selector)
711             {
712                 if (selector.HasAll()) view.SetOpacity(selector.All);
713                 else view.EnsureSelectorData().Opacity = new TriggerableSelector<float?>(view, selector, view.SetOpacity, true);
714             }
715             else
716             {
717                 view.SetOpacity((float?)newValue);
718             }
719         }),
720         defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
721         {
722             var view = (View)bindable;
723             float temp = 0.0f;
724             Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.OPACITY).Get(out temp);
725             return temp;
726         }));
727
728         /// <summary>
729         /// Position2DProperty
730         /// </summary>
731         [EditorBrowsable(EditorBrowsableState.Never)]
732         public static readonly BindableProperty Position2DProperty = BindableProperty.Create(nameof(Position2D), typeof(Position2D), typeof(View), null,
733             propertyChanged: (bindable, oldValue, newValue) =>
734             {
735                 var view = (View)bindable;
736                 if (newValue != null)
737                 {
738                     view.SetPosition(((Position2D)newValue).X, ((Position2D)newValue).Y, 0);
739                 }
740             },
741             defaultValueCreator: (bindable) =>
742             {
743                 var view = (View)bindable;
744                 var tmp = new Position(0, 0, 0);
745                 var tmpProperty = Object.GetProperty(view.SwigCPtr, Property.POSITION);
746                 tmpProperty?.Get(tmp);
747
748                 if (view.internalPosition2D == null)
749                 {
750                     view.internalPosition2D = new Position2D(view.OnPosition2DChanged, (int)tmp?.X, (int)tmp?.Y);
751                 }
752                 else
753                 {
754                     if (view.internalPosition2D.SwigCPtr.Handle != IntPtr.Zero)
755                     {
756                         Interop.Vector2.XSet(view.internalPosition2D.SwigCPtr, (float)tmp?.X);
757                         Interop.Vector2.YSet(view.internalPosition2D.SwigCPtr, (float)tmp?.Y);
758                     }
759                 }
760
761                 tmpProperty?.Dispose();
762                 tmp?.Dispose();
763
764                 return view.internalPosition2D;
765             }
766         );
767
768         /// <summary>
769         /// PositionUsesPivotPointProperty
770         /// </summary>
771         [EditorBrowsable(EditorBrowsableState.Never)]
772         public static readonly BindableProperty PositionUsesPivotPointProperty = BindableProperty.Create(nameof(PositionUsesPivotPoint), typeof(bool), typeof(View), true, propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
773         {
774             var view = (View)bindable;
775             if (newValue != null)
776             {
777                 Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.PositionUsesAnchorPoint, new Tizen.NUI.PropertyValue((bool)newValue));
778             }
779         }),
780         defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
781         {
782             var view = (View)bindable;
783             bool temp = false;
784             Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.PositionUsesAnchorPoint).Get(out temp);
785             return temp;
786         }));
787
788         /// <summary>
789         /// SiblingOrderProperty
790         /// </summary>
791         [EditorBrowsable(EditorBrowsableState.Never)]
792         public static readonly BindableProperty SiblingOrderProperty = BindableProperty.Create(nameof(SiblingOrder), typeof(int), typeof(View), default(int), propertyChanged: (bindable, oldValue, newValue) =>
793         {
794             var view = (View)bindable;
795             int value;
796             if (newValue != null)
797             {
798                 value = (int)newValue;
799                 if (value < 0)
800                 {
801                     NUILog.Error("SiblingOrder should be bigger than 0 or equal to 0.");
802                     return;
803                 }
804                 var siblings = view.GetParent()?.Children;
805                 if (siblings != null)
806                 {
807                     int currentOrder = siblings.IndexOf(view);
808                     if (value != currentOrder)
809                     {
810                         if (value == 0) { view.LowerToBottom(); }
811                         else if (value < siblings.Count - 1)
812                         {
813                             if (value > currentOrder) { view.RaiseAbove(siblings[value]); }
814                             else { view.LowerBelow(siblings[value]); }
815                         }
816                         else { view.RaiseToTop(); }
817                     }
818                 }
819             }
820         },
821         defaultValueCreator: (bindable) =>
822         {
823             var view = (View)bindable;
824             var parentChildren = view.GetParent()?.Children;
825             int currentOrder = 0;
826             if (parentChildren != null)
827             {
828                 currentOrder = parentChildren.IndexOf(view);
829
830                 if (currentOrder < 0) { return 0; }
831                 else if (currentOrder < parentChildren.Count) { return currentOrder; }
832             }
833
834             return 0;
835         });
836
837         /// <summary>
838         /// ParentOriginProperty
839         /// </summary>
840         [EditorBrowsable(EditorBrowsableState.Never)]
841         public static readonly BindableProperty ParentOriginProperty = BindableProperty.Create(nameof(ParentOrigin), typeof(Position), typeof(View), null, propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
842         {
843             var view = (View)bindable;
844             if (newValue != null)
845             {
846                 Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.ParentOrigin, new Tizen.NUI.PropertyValue((Position)newValue));
847             }
848         }),
849         defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
850         {
851             var view = (View)bindable;
852             Position temp = new Position(0.0f, 0.0f, 0.0f);
853             Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.ParentOrigin).Get(temp);
854             return temp;
855         })
856         );
857
858         /// <summary>
859         /// PivotPointProperty
860         /// </summary>
861         [EditorBrowsable(EditorBrowsableState.Never)]
862         public static readonly BindableProperty PivotPointProperty = BindableProperty.Create(nameof(PivotPoint), typeof(Position), typeof(View), null,
863             propertyChanged: (bindable, oldValue, newValue) =>
864             {
865                 var view = (View)bindable;
866                 if (newValue != null)
867                 {
868                     view.SetAnchorPoint((Position)newValue);
869                 }
870             },
871             defaultValueCreator: (bindable) =>
872             {
873                 var view = (View)bindable;
874                 if (view.internalPivotPoint == null)
875                 {
876                     view.internalPivotPoint = new Position(view.OnPivotPointChanged, 0, 0, 0);
877                 }
878                 var tmp = Object.GetProperty(view.SwigCPtr, Property.AnchorPoint);
879                 tmp?.Get(view.internalPivotPoint);
880                 tmp?.Dispose();
881
882                 return view.internalPivotPoint;
883             }
884         );
885
886         /// <summary>
887         /// SizeWidthProperty
888         /// </summary>
889         [EditorBrowsable(EditorBrowsableState.Never)]
890         public static readonly BindableProperty SizeWidthProperty = BindableProperty.Create(nameof(SizeWidth), typeof(float), typeof(View), default(float), propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
891         {
892             var view = (View)bindable;
893             if (newValue != null)
894             {
895                 Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.SizeWidth, new Tizen.NUI.PropertyValue((float)newValue));
896                 view.WidthSpecification = (int)System.Math.Ceiling((float)newValue);
897             }
898         }),
899         defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
900         {
901             var view = (View)bindable;
902             float temp = 0.0f;
903             Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.SizeWidth).Get(out temp);
904             return temp;
905         }));
906
907         /// <summary>
908         /// SizeHeightProperty
909         /// </summary>
910         [EditorBrowsable(EditorBrowsableState.Never)]
911         public static readonly BindableProperty SizeHeightProperty = BindableProperty.Create(nameof(SizeHeight), typeof(float), typeof(View), default(float), propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
912         {
913             var view = (View)bindable;
914             if (newValue != null)
915             {
916                 Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.SizeHeight, new Tizen.NUI.PropertyValue((float)newValue));
917                 view.HeightSpecification = (int)System.Math.Ceiling((float)newValue);
918             }
919         }),
920         defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
921         {
922             var view = (View)bindable;
923             float temp = 0.0f;
924             Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.SizeHeight).Get(out temp);
925             return temp;
926         }));
927
928         /// <summary>
929         /// PositionProperty
930         /// </summary>
931         [EditorBrowsable(EditorBrowsableState.Never)]
932         public static readonly BindableProperty PositionProperty = BindableProperty.Create(nameof(Position), typeof(Position), typeof(View), null,
933             propertyChanged: (bindable, oldValue, newValue) =>
934             {
935                 var view = (View)bindable;
936                 if (newValue != null)
937                 {
938                     view.SetPosition(((Position)newValue).X, ((Position)newValue).Y, ((Position)newValue).Z);
939                 }
940             },
941             defaultValueCreator: (bindable) =>
942             {
943                 var view = (View)bindable;
944                 var tmpProperty = Object.GetProperty(view.SwigCPtr, Property.POSITION);
945
946                 if (view.internalPosition == null)
947                 {
948                     view.internalPosition = new Position(view.OnPositionChanged, 0, 0, 0);
949                 }
950                 tmpProperty?.Get(view.internalPosition);
951                 tmpProperty?.Dispose();
952
953                 return view.internalPosition;
954             }
955         );
956
957         /// <summary>
958         /// PositionXProperty
959         /// </summary>
960         [EditorBrowsable(EditorBrowsableState.Never)]
961         public static readonly BindableProperty PositionXProperty = BindableProperty.Create(nameof(PositionX), typeof(float), typeof(View), default(float), propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
962         {
963             var view = (View)bindable;
964             if (newValue != null)
965             {
966                 Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.PositionX, new Tizen.NUI.PropertyValue((float)newValue));
967             }
968         }),
969         defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
970         {
971             var view = (View)bindable;
972             float temp = 0.0f;
973             Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.PositionX).Get(out temp);
974             return temp;
975         }));
976
977         /// <summary>
978         /// PositionYProperty
979         /// </summary>
980         [EditorBrowsable(EditorBrowsableState.Never)]
981         public static readonly BindableProperty PositionYProperty = BindableProperty.Create(nameof(PositionY), typeof(float), typeof(View), default(float), propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
982         {
983             var view = (View)bindable;
984             if (newValue != null)
985             {
986                 Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.PositionY, new Tizen.NUI.PropertyValue((float)newValue));
987             }
988         }),
989         defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
990         {
991             var view = (View)bindable;
992             float temp = 0.0f;
993             Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.PositionY).Get(out temp);
994             return temp;
995         }));
996
997         /// <summary>
998         /// PositionZProperty
999         /// </summary>
1000         [EditorBrowsable(EditorBrowsableState.Never)]
1001         public static readonly BindableProperty PositionZProperty = BindableProperty.Create(nameof(PositionZ), typeof(float), typeof(View), default(float), propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
1002         {
1003             var view = (View)bindable;
1004             if (newValue != null)
1005             {
1006                 Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.PositionZ, new Tizen.NUI.PropertyValue((float)newValue));
1007             }
1008         }),
1009         defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
1010         {
1011             var view = (View)bindable;
1012             float temp = 0.0f;
1013             Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.PositionZ).Get(out temp);
1014             return temp;
1015         }));
1016
1017         /// <summary>
1018         /// OrientationProperty
1019         /// </summary>
1020         [EditorBrowsable(EditorBrowsableState.Never)]
1021         public static readonly BindableProperty OrientationProperty = BindableProperty.Create(nameof(Orientation), typeof(Rotation), typeof(View), null, propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
1022         {
1023             var view = (View)bindable;
1024             if (newValue != null)
1025             {
1026                 Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.ORIENTATION, new Tizen.NUI.PropertyValue((Rotation)newValue));
1027             }
1028         }),
1029         defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
1030         {
1031             var view = (View)bindable;
1032             Rotation temp = new Rotation();
1033             Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.ORIENTATION).Get(temp);
1034             return temp;
1035         }));
1036
1037         /// <summary>
1038         /// ScaleProperty
1039         /// </summary>
1040         [EditorBrowsable(EditorBrowsableState.Never)]
1041         public static readonly BindableProperty ScaleProperty = BindableProperty.Create(nameof(Scale), typeof(Vector3), typeof(View), null,
1042             propertyChanged: (bindable, oldValue, newValue) =>
1043             {
1044                 var view = (View)bindable;
1045                 if (newValue != null)
1046                 {
1047                     view.SetScale((Vector3)newValue);
1048                 }
1049             },
1050             defaultValueCreator: (bindable) =>
1051             {
1052                 var view = (View)bindable;
1053                 if (view.internalScale == null)
1054                 {
1055                     view.internalScale = new Vector3(view.OnScaleChanged, 0, 0, 0);
1056                 }
1057
1058                 var tmpPropery = Object.GetProperty(view.SwigCPtr, Property.SCALE);
1059                 tmpPropery?.Get(view.internalScale);
1060                 tmpPropery?.Dispose();
1061
1062                 return view.internalScale;
1063             }
1064         );
1065
1066         /// <summary>
1067         /// ScaleXProperty
1068         /// </summary>
1069         [EditorBrowsable(EditorBrowsableState.Never)]
1070         public static readonly BindableProperty ScaleXProperty = BindableProperty.Create(nameof(ScaleX), typeof(float), typeof(View), default(float), propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
1071         {
1072             var view = (View)bindable;
1073             if (newValue != null)
1074             {
1075                 Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.ScaleX, new Tizen.NUI.PropertyValue((float)newValue));
1076             }
1077         }),
1078         defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
1079         {
1080             var view = (View)bindable;
1081             float temp = 0.0f;
1082             Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.ScaleX).Get(out temp);
1083             return temp;
1084         }));
1085
1086         /// <summary>
1087         /// ScaleYProperty
1088         /// </summary>
1089         [EditorBrowsable(EditorBrowsableState.Never)]
1090         public static readonly BindableProperty ScaleYProperty = BindableProperty.Create(nameof(ScaleY), typeof(float), typeof(View), default(float), propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
1091         {
1092             var view = (View)bindable;
1093             if (newValue != null)
1094             {
1095                 Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.ScaleY, new Tizen.NUI.PropertyValue((float)newValue));
1096             }
1097         }),
1098         defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
1099         {
1100             var view = (View)bindable;
1101             float temp = 0.0f;
1102             Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.ScaleY).Get(out temp);
1103             return temp;
1104         }));
1105
1106         /// <summary>
1107         /// ScaleZProperty
1108         /// </summary>
1109         [EditorBrowsable(EditorBrowsableState.Never)]
1110         public static readonly BindableProperty ScaleZProperty = BindableProperty.Create(nameof(ScaleZ), typeof(float), typeof(View), default(float), propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
1111         {
1112             var view = (View)bindable;
1113             if (newValue != null)
1114             {
1115                 Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.ScaleZ, new Tizen.NUI.PropertyValue((float)newValue));
1116             }
1117         }),
1118         defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
1119         {
1120             var view = (View)bindable;
1121             float temp = 0.0f;
1122             Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.ScaleZ).Get(out temp);
1123             return temp;
1124         }));
1125
1126         /// <summary>
1127         /// NameProperty
1128         /// </summary>
1129         [EditorBrowsable(EditorBrowsableState.Never)]
1130         public static readonly BindableProperty NameProperty = BindableProperty.Create(nameof(Name), typeof(string), typeof(View), string.Empty,
1131             propertyChanged: (bindable, oldValue, newValue) =>
1132             {
1133                 var view = (View)bindable;
1134                 if (newValue != null)
1135                 {
1136                     view.SetName((string)newValue);
1137                 }
1138             },
1139             defaultValueCreator: (bindable) =>
1140             {
1141                 var view = (View)bindable;
1142                 string temp;
1143                 temp = view.GetName();
1144                 return temp;
1145             }
1146         );
1147
1148         /// <summary>
1149         /// SensitiveProperty
1150         /// </summary>
1151         [EditorBrowsable(EditorBrowsableState.Never)]
1152         public static readonly BindableProperty SensitiveProperty = BindableProperty.Create(nameof(Sensitive), typeof(bool), typeof(View), false, propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
1153         {
1154             var view = (View)bindable;
1155             if (newValue != null)
1156             {
1157                 Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.SENSITIVE, new Tizen.NUI.PropertyValue((bool)newValue));
1158             }
1159         }),
1160         defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
1161         {
1162             var view = (View)bindable;
1163             bool temp = false;
1164             Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.SENSITIVE).Get(out temp);
1165             return temp;
1166         }));
1167
1168         /// <summary>
1169         /// IsEnabledProperty
1170         /// </summary>
1171         [EditorBrowsable(EditorBrowsableState.Never)]
1172         public static readonly BindableProperty IsEnabledProperty = BindableProperty.Create(nameof(Sensitive), typeof(bool), typeof(View), false, propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
1173         {
1174             var view = (View)bindable;
1175             if (newValue != null)
1176             {
1177                 Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.UserInteractionEnabled, new Tizen.NUI.PropertyValue((bool)newValue));
1178                 view.OnEnabled((bool)newValue);
1179             }
1180         }),
1181         defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
1182         {
1183             var view = (View)bindable;
1184             bool temp = false;
1185             Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.UserInteractionEnabled).Get(out temp);
1186             return temp;
1187         }));
1188
1189         /// <summary>
1190         /// DispatchKeyEventsProperty
1191         /// </summary>
1192         [EditorBrowsable(EditorBrowsableState.Never)]
1193         public static readonly BindableProperty DispatchKeyEventsProperty = BindableProperty.Create(nameof(DispatchKeyEvents), typeof(bool), typeof(View), false, propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
1194         {
1195             var view = (View)bindable;
1196             if (newValue != null)
1197             {
1198                 Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.DispatchKeyEvents, new Tizen.NUI.PropertyValue((bool)newValue));
1199             }
1200         }),
1201         defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
1202         {
1203             var view = (View)bindable;
1204             bool temp = false;
1205             Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.DispatchKeyEvents).Get(out temp);
1206             return temp;
1207         }));
1208
1209         /// <summary>
1210         /// LeaveRequiredProperty
1211         /// </summary>
1212         [EditorBrowsable(EditorBrowsableState.Never)]
1213         public static readonly BindableProperty LeaveRequiredProperty = BindableProperty.Create(nameof(LeaveRequired), typeof(bool), typeof(View), false, propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
1214         {
1215             var view = (View)bindable;
1216             if (newValue != null)
1217             {
1218                 Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.LeaveRequired, new Tizen.NUI.PropertyValue((bool)newValue));
1219             }
1220         }),
1221         defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
1222         {
1223             var view = (View)bindable;
1224             bool temp = false;
1225             Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.LeaveRequired).Get(out temp);
1226             return temp;
1227         }));
1228
1229         /// <summary>
1230         /// InheritOrientationProperty
1231         /// </summary>
1232         [EditorBrowsable(EditorBrowsableState.Never)]
1233         public static readonly BindableProperty InheritOrientationProperty = BindableProperty.Create(nameof(InheritOrientation), typeof(bool), typeof(View), false, propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
1234         {
1235             var view = (View)bindable;
1236             if (newValue != null)
1237             {
1238                 Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.InheritOrientation, new Tizen.NUI.PropertyValue((bool)newValue));
1239             }
1240         }),
1241         defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
1242         {
1243             var view = (View)bindable;
1244             bool temp = false;
1245             Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.InheritOrientation).Get(out temp);
1246             return temp;
1247         }));
1248
1249         /// <summary>
1250         /// InheritScaleProperty
1251         /// </summary>
1252         [EditorBrowsable(EditorBrowsableState.Never)]
1253         public static readonly BindableProperty InheritScaleProperty = BindableProperty.Create(nameof(InheritScale), typeof(bool), typeof(View), false, propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
1254         {
1255             var view = (View)bindable;
1256             if (newValue != null)
1257             {
1258                 Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.InheritScale, new Tizen.NUI.PropertyValue((bool)newValue));
1259             }
1260         }),
1261         defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
1262         {
1263             var view = (View)bindable;
1264             bool temp = false;
1265             Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.InheritScale).Get(out temp);
1266             return temp;
1267         }));
1268
1269         /// <summary>
1270         /// DrawModeProperty
1271         /// </summary>
1272         [EditorBrowsable(EditorBrowsableState.Never)]
1273         public static readonly BindableProperty DrawModeProperty = BindableProperty.Create(nameof(DrawMode), typeof(DrawModeType), typeof(View), DrawModeType.Normal, propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
1274         {
1275             var view = (View)bindable;
1276             if (newValue != null)
1277             {
1278                 Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.DrawMode, new Tizen.NUI.PropertyValue((int)newValue));
1279             }
1280         }),
1281         defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
1282         {
1283             var view = (View)bindable;
1284             int temp;
1285             if (Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.DrawMode).Get(out temp) == false)
1286             {
1287                 NUILog.Error("DrawMode get error!");
1288             }
1289             return (DrawModeType)temp;
1290         }));
1291
1292         /// <summary>
1293         /// SizeModeFactorProperty
1294         /// </summary>
1295         [EditorBrowsable(EditorBrowsableState.Never)]
1296         public static readonly BindableProperty SizeModeFactorProperty = BindableProperty.Create(nameof(SizeModeFactor), typeof(Vector3), typeof(View), null,
1297             propertyChanged: (bindable, oldValue, newValue) =>
1298             {
1299                 var view = (View)bindable;
1300                 if (newValue != null)
1301                 {
1302                     var tmp = new PropertyValue((Vector3)newValue);
1303                     Object.SetProperty(view.SwigCPtr, Property.SizeModeFactor, tmp);
1304                     tmp?.Dispose();
1305                 }
1306             },
1307             defaultValueCreator: (bindable) =>
1308             {
1309                 var view = (View)bindable;
1310                 if (view.internalSizeModeFactor == null)
1311                 {
1312                     view.internalSizeModeFactor = new Vector3(view.OnSizeModeFactorChanged, 0, 0, 0);
1313                 }
1314                 var tmp = Object.GetProperty(view.SwigCPtr, Property.SizeModeFactor);
1315                 tmp?.Get(view.internalSizeModeFactor);
1316                 tmp?.Dispose();
1317
1318                 return view.internalSizeModeFactor;
1319             }
1320         );
1321
1322         /// <summary>
1323         /// WidthResizePolicyProperty
1324         /// </summary>
1325         [EditorBrowsable(EditorBrowsableState.Never)]
1326         public static readonly BindableProperty WidthResizePolicyProperty = BindableProperty.Create(nameof(WidthResizePolicy), typeof(ResizePolicyType), typeof(View), ResizePolicyType.Fixed, propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
1327         {
1328             var view = (View)bindable;
1329             if (newValue != null)
1330             {
1331                 if ((ResizePolicyType)newValue == ResizePolicyType.KeepSizeFollowingParent)
1332                 {
1333                     if (view.widthConstraint == null)
1334                     {
1335                         view.widthConstraint = new EqualConstraintWithParentFloat((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.SizeWidth, View.Property.SizeWidth);
1336                         view.widthConstraint.Apply();
1337                     }
1338                     Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.WidthResizePolicy, new Tizen.NUI.PropertyValue((int)ResizePolicyType.FillToParent));
1339                 }
1340                 else
1341                 {
1342                     view.widthConstraint?.Remove();
1343                     view.widthConstraint?.Dispose();
1344                     view.widthConstraint = null;
1345                     Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.WidthResizePolicy, new Tizen.NUI.PropertyValue((int)newValue));
1346                 }
1347                 // Match ResizePolicy to new Layouting.
1348                 // Parent relative policies can not be mapped at this point as parent size unknown.
1349                 switch ((ResizePolicyType)newValue)
1350                 {
1351                     case ResizePolicyType.UseNaturalSize:
1352                         {
1353                             view.WidthSpecification = LayoutParamPolicies.WrapContent;
1354                             break;
1355                         }
1356                     case ResizePolicyType.FillToParent:
1357                         {
1358                             view.WidthSpecification = LayoutParamPolicies.MatchParent;
1359                             break;
1360                         }
1361                     case ResizePolicyType.FitToChildren:
1362                         {
1363                             view.WidthSpecification = LayoutParamPolicies.WrapContent;
1364                             break;
1365                         }
1366                     default:
1367                         break;
1368                 }
1369             }
1370         }),
1371         defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
1372         {
1373             var view = (View)bindable;
1374             string temp;
1375             if (Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.WidthResizePolicy).Get(out temp) == false)
1376             {
1377                 NUILog.Error("WidthResizePolicy get error!");
1378             }
1379             return temp.GetValueByDescription<ResizePolicyType>();
1380         }));
1381
1382         /// <summary>
1383         /// HeightResizePolicyProperty
1384         /// </summary>
1385         [EditorBrowsable(EditorBrowsableState.Never)]
1386         public static readonly BindableProperty HeightResizePolicyProperty = BindableProperty.Create(nameof(HeightResizePolicy), typeof(ResizePolicyType), typeof(View), ResizePolicyType.Fixed, propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
1387         {
1388             var view = (View)bindable;
1389             if (newValue != null)
1390             {
1391                 if ((ResizePolicyType)newValue == ResizePolicyType.KeepSizeFollowingParent)
1392                 {
1393                     if (view.heightConstraint == null)
1394                     {
1395                         view.heightConstraint = new EqualConstraintWithParentFloat((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.SizeHeight, View.Property.SizeHeight);
1396                         view.heightConstraint.Apply();
1397                     }
1398                     Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.HeightResizePolicy, new Tizen.NUI.PropertyValue((int)ResizePolicyType.FillToParent));
1399                 }
1400                 else
1401                 {
1402                     view.heightConstraint?.Remove();
1403                     view.heightConstraint?.Dispose();
1404                     view.heightConstraint = null;
1405                     Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.HeightResizePolicy, new Tizen.NUI.PropertyValue((int)newValue));
1406                 }
1407                 // Match ResizePolicy to new Layouting.
1408                 // Parent relative policies can not be mapped at this point as parent size unknown.
1409                 switch ((ResizePolicyType)newValue)
1410                 {
1411                     case ResizePolicyType.UseNaturalSize:
1412                         {
1413                             view.HeightSpecification = LayoutParamPolicies.WrapContent;
1414                             break;
1415                         }
1416                     case ResizePolicyType.FillToParent:
1417                         {
1418                             view.HeightSpecification = LayoutParamPolicies.MatchParent;
1419                             break;
1420                         }
1421                     case ResizePolicyType.FitToChildren:
1422                         {
1423                             view.HeightSpecification = LayoutParamPolicies.WrapContent;
1424                             break;
1425                         }
1426                     default:
1427                         break;
1428                 }
1429             }
1430         }),
1431         defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
1432         {
1433             var view = (View)bindable;
1434             string temp;
1435             if (Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.HeightResizePolicy).Get(out temp) == false)
1436             {
1437                 NUILog.Error("HeightResizePolicy get error!");
1438             }
1439             return temp.GetValueByDescription<ResizePolicyType>();
1440         }));
1441
1442         /// <summary>
1443         /// SizeScalePolicyProperty
1444         /// </summary>
1445         [EditorBrowsable(EditorBrowsableState.Never)]
1446         public static readonly BindableProperty SizeScalePolicyProperty = BindableProperty.Create(nameof(SizeScalePolicy), typeof(SizeScalePolicyType), typeof(View), SizeScalePolicyType.UseSizeSet, propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
1447         {
1448             var view = (View)bindable;
1449             string valueToString = "";
1450             if (newValue != null)
1451             {
1452                 valueToString = ((SizeScalePolicyType)newValue).GetDescription();
1453                 Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.SizeScalePolicy, new Tizen.NUI.PropertyValue(valueToString));
1454             }
1455         }),
1456         defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
1457         {
1458             var view = (View)bindable;
1459             int temp;
1460             if (Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.SizeScalePolicy).Get(out temp) == false)
1461             {
1462                 NUILog.Error("SizeScalePolicy get error!");
1463             }
1464             return (SizeScalePolicyType)temp;
1465         }));
1466
1467         /// <summary>
1468         /// WidthForHeightProperty
1469         /// </summary>
1470         [EditorBrowsable(EditorBrowsableState.Never)]
1471         public static readonly BindableProperty WidthForHeightProperty = BindableProperty.Create(nameof(WidthForHeight), typeof(bool), typeof(View), false, propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
1472         {
1473             var view = (View)bindable;
1474             if (newValue != null)
1475             {
1476                 Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.WidthForHeight, new Tizen.NUI.PropertyValue((bool)newValue));
1477             }
1478         }),
1479         defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
1480         {
1481             var view = (View)bindable;
1482             bool temp = false;
1483             Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.WidthForHeight).Get(out temp);
1484             return temp;
1485         }));
1486
1487         /// <summary>
1488         /// HeightForWidthProperty
1489         /// </summary>
1490         [EditorBrowsable(EditorBrowsableState.Never)]
1491         public static readonly BindableProperty HeightForWidthProperty = BindableProperty.Create(nameof(HeightForWidth), typeof(bool), typeof(View), false, propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
1492         {
1493             var view = (View)bindable;
1494             if (newValue != null)
1495             {
1496                 Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.HeightForWidth, new Tizen.NUI.PropertyValue((bool)newValue));
1497             }
1498         }),
1499         defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
1500         {
1501             var view = (View)bindable;
1502             bool temp = false;
1503             Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.HeightForWidth).Get(out temp);
1504             return temp;
1505         }));
1506
1507         /// <summary>
1508         /// PaddingProperty
1509         /// </summary>
1510         [EditorBrowsable(EditorBrowsableState.Never)]
1511         public static readonly BindableProperty PaddingProperty = BindableProperty.Create(nameof(Padding), typeof(Extents), typeof(View), null,
1512             propertyChanged: (bindable, oldValue, newValue) =>
1513             {
1514                 var view = (View)bindable;
1515                 if (newValue != null)
1516                 {
1517                     var tmp = new PropertyValue((Extents)newValue);
1518                     Object.SetProperty(view.SwigCPtr, View.Property.PADDING, tmp);
1519                     tmp?.Dispose();
1520                 }
1521             },
1522             defaultValueCreator: (bindable) =>
1523             {
1524                 var view = (View)bindable;
1525                 if (view.internalPadding == null)
1526                 {
1527                     view.internalPadding = new Extents(view.OnPaddingChanged, 0, 0, 0, 0);
1528                 }
1529
1530                 var tmp = Object.GetProperty(view.SwigCPtr, Property.PADDING);
1531                 tmp?.Get(view.internalPadding);
1532                 tmp?.Dispose();
1533
1534                 return view.internalPadding;
1535             }
1536         );
1537
1538         /// <summary>
1539         /// SizeProperty
1540         /// </summary>
1541         [EditorBrowsable(EditorBrowsableState.Never)]
1542         public static readonly BindableProperty SizeProperty = BindableProperty.Create(nameof(Size), typeof(Size), typeof(View), null,
1543             propertyChanged: (bindable, oldValue, newValue) =>
1544             {
1545                 var view = (View)bindable;
1546                 if (newValue != null)
1547                 {
1548                     // Set Specification so when layouts measure this View it matches the value set here.
1549                     // All Views are currently Layouts.
1550                     view.WidthSpecification = (int)System.Math.Ceiling(((Size)newValue).Width);
1551                     view.HeightSpecification = (int)System.Math.Ceiling(((Size)newValue).Height);
1552
1553                     view.SetSize(((Size)newValue).Width, ((Size)newValue).Height, ((Size)newValue).Depth);
1554                 }
1555             },
1556             defaultValueCreator: (bindable) =>
1557             {
1558                 var view = (View)bindable;
1559
1560                 var tmpProperty = Object.GetProperty(view.SwigCPtr, Property.SIZE);
1561                 if (view.internalSize == null)
1562                 {
1563                     view.internalSize = new Size(view.OnSizeChanged, 0, 0, 0);
1564                 }
1565                 tmpProperty?.Get(view.internalSize);
1566                 tmpProperty?.Dispose();
1567
1568                 return view.internalSize;
1569             }
1570         );
1571
1572         /// <summary>
1573         /// MinimumSizeProperty
1574         /// </summary>
1575         [EditorBrowsable(EditorBrowsableState.Never)]
1576         public static readonly BindableProperty MinimumSizeProperty = BindableProperty.Create(nameof(MinimumSize), typeof(Size2D), typeof(View), null,
1577             propertyChanged: (bindable, oldValue, newValue) =>
1578             {
1579                 var view = (View)bindable;
1580                 if (newValue != null)
1581                 {
1582                     view.SetMinimumSize((Size2D)newValue);
1583                 }
1584             },
1585             defaultValueCreator: (bindable) =>
1586             {
1587                 var view = (View)bindable;
1588                 if (view.internalMinimumSize == null)
1589                 {
1590                     view.internalMinimumSize = new Size2D(view.OnMinimumSizeChanged, 0, 0);
1591                 }
1592                 var tmp = Object.GetProperty(view.SwigCPtr, Property.MinimumSize);
1593                 tmp?.Get(view.internalMinimumSize);
1594                 tmp?.Dispose();
1595
1596                 return view.internalMinimumSize;
1597             }
1598         );
1599
1600         /// <summary>
1601         /// MaximumSizeProperty
1602         /// </summary>
1603         [EditorBrowsable(EditorBrowsableState.Never)]
1604         public static readonly BindableProperty MaximumSizeProperty = BindableProperty.Create(nameof(MaximumSize), typeof(Size2D), typeof(View), null,
1605             propertyChanged: (bindable, oldValue, newValue) =>
1606             {
1607                 var view = (View)bindable;
1608                 if (newValue != null)
1609                 {
1610                     view.SetMaximumSize((Size2D)newValue);
1611                 }
1612             },
1613             defaultValueCreator: (bindable) =>
1614             {
1615                 var view = (View)bindable;
1616                 if (view.internalMaximumSize == null)
1617                 {
1618                     view.internalMaximumSize = new Size2D(view.OnMaximumSizeChanged, 0, 0);
1619                 }
1620                 var tmp = Object.GetProperty(view.SwigCPtr, Property.MaximumSize);
1621                 tmp?.Get(view.internalMaximumSize);
1622                 tmp?.Dispose();
1623
1624                 return view.internalMaximumSize;
1625             }
1626         );
1627
1628         /// <summary>
1629         /// InheritPositionProperty
1630         /// </summary>
1631         [EditorBrowsable(EditorBrowsableState.Never)]
1632         public static readonly BindableProperty InheritPositionProperty = BindableProperty.Create(nameof(InheritPosition), typeof(bool), typeof(View), false, propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
1633         {
1634             var view = (View)bindable;
1635             if (newValue != null)
1636             {
1637                 Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.InheritPosition, new Tizen.NUI.PropertyValue((bool)newValue));
1638             }
1639         }),
1640         defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
1641         {
1642             var view = (View)bindable;
1643             bool temp = false;
1644             Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.InheritPosition).Get(out temp);
1645             return temp;
1646         }));
1647
1648         /// <summary>
1649         /// ClippingModeProperty
1650         /// </summary>
1651         [EditorBrowsable(EditorBrowsableState.Never)]
1652         public static readonly BindableProperty ClippingModeProperty = BindableProperty.Create(nameof(ClippingMode), typeof(ClippingModeType), typeof(View), ClippingModeType.Disabled, propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
1653         {
1654             var view = (View)bindable;
1655             if (newValue != null)
1656             {
1657                 Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.ClippingMode, new Tizen.NUI.PropertyValue((int)newValue));
1658             }
1659         }),
1660         defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
1661         {
1662             var view = (View)bindable;
1663             int temp = 0;
1664             if (Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.ClippingMode).Get(out temp) == false)
1665             {
1666                 NUILog.Error("ClippingMode get error!");
1667             }
1668             return (ClippingModeType)temp;
1669         }));
1670
1671         /// <summary>
1672         /// InheritLayoutDirectionProperty
1673         /// </summary>
1674         [EditorBrowsable(EditorBrowsableState.Never)]
1675         public static readonly BindableProperty InheritLayoutDirectionProperty = BindableProperty.Create(nameof(InheritLayoutDirection), typeof(bool), typeof(View), false, propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
1676         {
1677             var view = (View)bindable;
1678             if (newValue != null)
1679             {
1680                 Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.InheritLayoutDirection, new Tizen.NUI.PropertyValue((bool)newValue));
1681             }
1682         }),
1683         defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
1684         {
1685             var view = (View)bindable;
1686             bool temp = false;
1687             Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.InheritLayoutDirection).Get(out temp);
1688             return temp;
1689         }));
1690
1691         /// <summary>
1692         /// LayoutDirectionProperty
1693         /// </summary>
1694         [EditorBrowsable(EditorBrowsableState.Never)]
1695         public static readonly BindableProperty LayoutDirectionProperty = BindableProperty.Create(nameof(LayoutDirection), typeof(ViewLayoutDirectionType), typeof(View), ViewLayoutDirectionType.LTR, propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
1696         {
1697             var view = (View)bindable;
1698             if (newValue != null)
1699             {
1700                 Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.LayoutDirection, new Tizen.NUI.PropertyValue((int)newValue));
1701             }
1702         }),
1703         defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
1704         {
1705             var view = (View)bindable;
1706             int temp;
1707             if (false == Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.LayoutDirection).Get(out temp))
1708             {
1709                 NUILog.Error("LAYOUT_DIRECTION get error!");
1710             }
1711             return (ViewLayoutDirectionType)temp;
1712         }));
1713
1714         /// <summary>
1715         /// MarginProperty
1716         /// </summary>
1717         [EditorBrowsable(EditorBrowsableState.Never)]
1718         public static readonly BindableProperty MarginProperty = BindableProperty.Create(nameof(Margin), typeof(Extents), typeof(View), null,
1719             propertyChanged: (bindable, oldValue, newValue) =>
1720             {
1721                 var view = (View)bindable;
1722                 if (newValue != null)
1723                 {
1724                     var tmp = new PropertyValue((Extents)newValue);
1725                     Object.SetProperty(view.SwigCPtr, Property.MARGIN, tmp);
1726                     tmp?.Dispose();
1727                 }
1728             },
1729             defaultValueCreator: (bindable) =>
1730             {
1731                 var view = (View)bindable;
1732                 if (view.internalMargin == null)
1733                 {
1734                     view.internalMargin = new Extents(view.OnMarginChanged, 0, 0, 0, 0);
1735                 }
1736                 var tmp = Object.GetProperty(view.SwigCPtr, Property.MARGIN);
1737                 tmp?.Get(view.internalMargin);
1738                 tmp?.Dispose();
1739
1740                 return view.internalMargin;
1741             }
1742         );
1743
1744         /// <summary>
1745         /// UpdateSizeHintProperty
1746         /// </summary>
1747         [EditorBrowsable(EditorBrowsableState.Never)]
1748         public static readonly BindableProperty UpdateSizeHintProperty = BindableProperty.Create(nameof(UpdateSizeHint), typeof(Vector2), typeof(View), null, propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
1749         {
1750             var view = (View)bindable;
1751             if (newValue != null)
1752             {
1753                 Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, Interop.ViewProperty.UpdateSizeHintGet(), new Tizen.NUI.PropertyValue((Vector2)newValue));
1754             }
1755         }),
1756         defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
1757         {
1758             var view = (View)bindable;
1759
1760             Vector2 temp = new Vector2(0.0f, 0.0f);
1761             Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, Interop.ViewProperty.UpdateSizeHintGet()).Get(temp);
1762             return temp;
1763         }));
1764
1765         /// <summary>
1766         /// ImageShadow Property
1767         /// </summary>
1768         [EditorBrowsable(EditorBrowsableState.Never)]
1769         public static readonly BindableProperty ImageShadowProperty = BindableProperty.Create(nameof(ImageShadow), typeof(ImageShadow), typeof(View), null, propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
1770         {
1771             var view = (View)bindable;
1772
1773             view.themeData?.selectorData?.ClearShadow(view);
1774
1775             if (newValue is Selector<ImageShadow> selector)
1776             {
1777                 if (selector.HasAll()) view.SetShadow(selector.All);
1778                 else view.EnsureSelectorData().ImageShadow = new TriggerableSelector<ImageShadow>(view, selector, view.SetShadow, true);
1779             }
1780             else
1781             {
1782                 view.SetShadow((ImageShadow)newValue);
1783             }
1784         }),
1785         defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
1786         {
1787             var view = (View)bindable;
1788
1789             PropertyMap map = new PropertyMap();
1790             Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.SHADOW).Get(map);
1791
1792             var shadow = new ImageShadow(map);
1793             return shadow.IsEmpty() ? null : shadow;
1794         }));
1795
1796         /// <summary>
1797         /// Shadow Property
1798         /// </summary>
1799         [EditorBrowsable(EditorBrowsableState.Never)]
1800         public static readonly BindableProperty BoxShadowProperty = BindableProperty.Create(nameof(BoxShadow), typeof(Shadow), typeof(View), null, propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
1801         {
1802             var view = (View)bindable;
1803
1804             view.themeData?.selectorData?.ClearShadow(view);
1805
1806             if (newValue is Selector<Shadow> selector)
1807             {
1808                 if (selector.HasAll()) view.SetShadow(selector.All);
1809                 else view.EnsureSelectorData().BoxShadow = new TriggerableSelector<Shadow>(view, selector, view.SetShadow, true);
1810             }
1811             else
1812             {
1813                 view.SetShadow((Shadow)newValue);
1814             }
1815         }),
1816         defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
1817         {
1818             var view = (View)bindable;
1819
1820             PropertyMap map = new PropertyMap();
1821             Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.SHADOW).Get(map);
1822
1823             var shadow = new Shadow(map);
1824             return shadow.IsEmpty() ? null : shadow;
1825         }));
1826
1827         /// <summary>
1828         /// CornerRadius Property
1829         /// </summary>
1830         [EditorBrowsable(EditorBrowsableState.Never)]
1831         public static readonly BindableProperty CornerRadiusProperty = BindableProperty.Create(nameof(CornerRadius), typeof(Vector4), typeof(View), null, propertyChanged: (bindable, oldValue, newValue) =>
1832         {
1833             var view = (View)bindable;
1834             (view.backgroundExtraData ?? (view.backgroundExtraData = new BackgroundExtraData())).CornerRadius = (Vector4)newValue;
1835             view.ApplyCornerRadius();
1836         },
1837         defaultValueCreator: (bindable) =>
1838         {
1839             var view = (View)bindable;
1840             return view.backgroundExtraData == null ? 0.0f : view.backgroundExtraData.CornerRadius;
1841         });
1842
1843         /// <summary>
1844         /// CornerRadiusPolicy Property
1845         /// </summary>
1846         [EditorBrowsable(EditorBrowsableState.Never)]
1847         public static readonly BindableProperty CornerRadiusPolicyProperty = BindableProperty.Create(nameof(CornerRadiusPolicy), typeof(VisualTransformPolicyType), typeof(View), VisualTransformPolicyType.Absolute, propertyChanged: (bindable, oldValue, newValue) =>
1848         {
1849             var view = (View)bindable;
1850             (view.backgroundExtraData ?? (view.backgroundExtraData = new BackgroundExtraData())).CornerRadiusPolicy = (VisualTransformPolicyType)newValue;
1851
1852             if (view.backgroundExtraData.CornerRadius != null)
1853             {
1854                 view.ApplyCornerRadius();
1855             }
1856         },
1857         defaultValueCreator: (bindable) =>
1858         {
1859             var view = (View)bindable;
1860             return view.backgroundExtraData == null ? VisualTransformPolicyType.Absolute : view.backgroundExtraData.CornerRadiusPolicy;
1861         });
1862
1863         /// <summary>
1864         /// BorderlineWidth Property
1865         /// </summary>
1866         [EditorBrowsable(EditorBrowsableState.Never)]
1867         public static readonly BindableProperty BorderlineWidthProperty = BindableProperty.Create(nameof(BorderlineWidth), typeof(float), typeof(View), default(float), propertyChanged: (bindable, oldValue, newValue) =>
1868         {
1869             var view = (View)bindable;
1870             (view.backgroundExtraData ?? (view.backgroundExtraData = new BackgroundExtraData())).BorderlineWidth = (float)newValue;
1871             view.ApplyBorderline();
1872         },
1873         defaultValueCreator: (bindable) =>
1874         {
1875             var view = (View)bindable;
1876             return view.backgroundExtraData == null ? 0.0f : view.backgroundExtraData.BorderlineWidth;
1877         });
1878
1879         /// <summary>
1880         /// BorderlineColor Property
1881         /// </summary>
1882         [EditorBrowsable(EditorBrowsableState.Never)]
1883         public static readonly BindableProperty BorderlineColorProperty = BindableProperty.Create(nameof(BorderlineColor), typeof(Color), typeof(View), null, propertyChanged: (bindable, oldValue, newValue) =>
1884         {
1885             var view = (View)bindable;
1886             (view.backgroundExtraData ?? (view.backgroundExtraData = new BackgroundExtraData())).BorderlineColor = (Color)newValue;
1887             view.ApplyBorderline();
1888         },
1889         defaultValueCreator: (bindable) =>
1890         {
1891             var view = (View)bindable;
1892             return view.backgroundExtraData == null ? Color.Black : view.backgroundExtraData.BorderlineColor;
1893         });
1894
1895         /// <summary>
1896         /// BorderlineOffset Property
1897         /// </summary>
1898         [EditorBrowsable(EditorBrowsableState.Never)]
1899         public static readonly BindableProperty BorderlineOffsetProperty = BindableProperty.Create(nameof(BorderlineOffset), typeof(float), typeof(View), default(float), propertyChanged: (bindable, oldValue, newValue) =>
1900         {
1901             var view = (View)bindable;
1902             (view.backgroundExtraData ?? (view.backgroundExtraData = new BackgroundExtraData())).BorderlineOffset = (float)newValue;
1903             view.ApplyBorderline();
1904         },
1905         defaultValueCreator: (bindable) =>
1906         {
1907             var view = (View)bindable;
1908             return view.backgroundExtraData == null ? 0.0f : view.backgroundExtraData.BorderlineOffset;
1909         });
1910
1911         /// <summary>
1912         /// EnableControlState property
1913         /// </summary>
1914         [EditorBrowsable(EditorBrowsableState.Never)]
1915         public static readonly BindableProperty EnableControlStateProperty = BindableProperty.Create(nameof(EnableControlState), typeof(bool), typeof(View), false, propertyChanged: (bindable, oldValue, newValue) =>
1916         {
1917             var view = (View)bindable;
1918             bool prev = view.enableControlState;
1919             view.enableControlState = (bool)newValue;
1920
1921             if (prev != view.enableControlState)
1922             {
1923                 if (prev)
1924                 {
1925                     view.TouchEvent -= view.EmptyOnTouch;
1926                 }
1927                 else
1928                 {
1929                     view.TouchEvent += view.EmptyOnTouch;
1930                 }
1931             }
1932         },
1933         defaultValueCreator: (bindable) =>
1934         {
1935             return ((View)bindable).enableControlState;
1936         });
1937
1938         /// <summary>
1939         /// ThemeChangeSensitive property
1940         /// </summary>
1941         [EditorBrowsable(EditorBrowsableState.Never)]
1942         public static readonly BindableProperty ThemeChangeSensitiveProperty = BindableProperty.Create(nameof(ThemeChangeSensitive), typeof(bool), typeof(View), false, propertyChanged: (bindable, oldValue, newValue) =>
1943         {
1944             var view = (View)bindable;
1945
1946             if (view.ThemeChangeSensitive == (bool)newValue) return;
1947
1948             if (view.themeData == null) view.themeData = new ThemeData();
1949
1950             view.themeData.ThemeChangeSensitive = (bool)newValue;
1951
1952             if (!view.themeData.ThemeApplied) return;
1953
1954             if (view.themeData.ThemeChangeSensitive && !view.themeData.ListeningThemeChangeEvent)
1955             {
1956                 view.themeData.ListeningThemeChangeEvent = true;
1957                 ThemeManager.ThemeChangedInternal.Add(view.OnThemeChanged);
1958             }
1959             else if (!view.themeData.ThemeChangeSensitive && view.themeData.ListeningThemeChangeEvent)
1960             {
1961                 view.themeData.ListeningThemeChangeEvent = false;
1962                 ThemeManager.ThemeChangedInternal.Remove(view.OnThemeChanged);
1963             }
1964         },
1965         defaultValueCreator: (bindable) =>
1966         {
1967             return ((View)bindable).themeData?.ThemeChangeSensitive ?? ThemeManager.ApplicationThemeChangeSensitive;
1968         });
1969
1970         /// <summary>
1971         /// AccessibilityNameProperty
1972         /// </summary>
1973         [EditorBrowsable(EditorBrowsableState.Never)]
1974         public static readonly BindableProperty AccessibilityNameProperty = BindableProperty.Create(nameof(AccessibilityName), typeof(string), typeof(View), string.Empty, propertyChanged: (bindable, oldValue, newValue) =>
1975         {
1976             var view = (View)bindable;
1977             if (newValue != null)
1978             {
1979                 Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.AccessibilityName, new Tizen.NUI.PropertyValue((string)newValue));
1980             }
1981         },
1982         defaultValueCreator: (bindable) =>
1983         {
1984             var view = (View)bindable;
1985
1986             string temp;
1987             Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.AccessibilityName).Get(out temp);
1988             return temp;
1989         });
1990
1991         /// <summary>
1992         /// AccessibilityDescriptionProperty
1993         /// </summary>
1994         [EditorBrowsable(EditorBrowsableState.Never)]
1995         public static readonly BindableProperty AccessibilityDescriptionProperty = BindableProperty.Create(nameof(AccessibilityDescription), typeof(string), typeof(View), string.Empty, propertyChanged: (bindable, oldValue, newValue) =>
1996         {
1997             var view = (View)bindable;
1998             if (newValue != null)
1999             {
2000                 Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.AccessibilityDescription, new Tizen.NUI.PropertyValue((string)newValue));
2001             }
2002         },
2003         defaultValueCreator: (bindable) =>
2004         {
2005             var view = (View)bindable;
2006
2007             string temp;
2008             Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.AccessibilityDescription).Get(out temp);
2009             return temp;
2010         });
2011
2012         /// <summary>
2013         /// AccessibilityTranslationDomainProperty
2014         /// </summary>
2015         [EditorBrowsable(EditorBrowsableState.Never)]
2016         public static readonly BindableProperty AccessibilityTranslationDomainProperty = BindableProperty.Create(nameof(AccessibilityTranslationDomain), typeof(string), typeof(View), string.Empty, propertyChanged: (bindable, oldValue, newValue) =>
2017         {
2018             var view = (View)bindable;
2019             if (newValue != null)
2020             {
2021                 Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.AccessibilityTranslationDomain, new Tizen.NUI.PropertyValue((string)newValue));
2022             }
2023         },
2024         defaultValueCreator: (bindable) =>
2025         {
2026             var view = (View)bindable;
2027
2028             string temp;
2029             Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.AccessibilityTranslationDomain).Get(out temp);
2030             return temp;
2031         });
2032
2033         /// <summary>
2034         /// AccessibilityRoleProperty
2035         /// </summary>
2036         [EditorBrowsable(EditorBrowsableState.Never)]
2037         public static readonly BindableProperty AccessibilityRoleProperty = BindableProperty.Create(nameof(AccessibilityRole), typeof(Role), typeof(View), default(Role), propertyChanged: (bindable, oldValue, newValue) =>
2038         {
2039             var view = (View)bindable;
2040             if (newValue != null)
2041             {
2042                 Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.AccessibilityRole, new Tizen.NUI.PropertyValue((int)newValue));
2043             }
2044         },
2045         defaultValueCreator: (bindable) =>
2046         {
2047             var view = (View)bindable;
2048
2049             int temp = 0;
2050             Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.AccessibilityRole).Get(out temp);
2051             return (Role)temp;
2052         });
2053
2054         /// <summary>
2055         /// AccessibilityHighlightableProperty
2056         /// </summary>
2057         [EditorBrowsable(EditorBrowsableState.Never)]
2058         public static readonly BindableProperty AccessibilityHighlightableProperty = BindableProperty.Create(nameof(AccessibilityHighlightable), typeof(bool), typeof(View), false, propertyChanged: (bindable, oldValue, newValue) =>
2059         {
2060             var view = (View)bindable;
2061             if (newValue != null)
2062             {
2063                 Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.AccessibilityHighlightable, new Tizen.NUI.PropertyValue((bool)newValue));
2064             }
2065         },
2066         defaultValueCreator: (bindable) =>
2067         {
2068             var view = (View)bindable;
2069             bool temp = false;
2070             Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.AccessibilityHighlightable).Get(out temp);
2071             return temp;
2072         });
2073
2074         /// <summary>
2075         /// AccessibilityHiddenProperty
2076         /// </summary>
2077         [EditorBrowsable(EditorBrowsableState.Never)]
2078         public static readonly BindableProperty AccessibilityHiddenProperty = BindableProperty.Create(nameof(AccessibilityHidden), typeof(bool), typeof(View), false, propertyChanged: (bindable, oldValue, newValue) =>
2079         {
2080             var view = (View)bindable;
2081             if (newValue != null)
2082             {
2083                 Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.AccessibilityHidden, new Tizen.NUI.PropertyValue((bool)newValue));
2084             }
2085         },
2086         defaultValueCreator: (bindable) =>
2087         {
2088             var view = (View)bindable;
2089             bool temp = false;
2090             Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.AccessibilityHidden).Get(out temp);
2091             return temp;
2092         });
2093
2094         /// <summary>
2095         /// ExcludeLayoutingProperty
2096         /// </summary>
2097         [EditorBrowsable(EditorBrowsableState.Never)]
2098         public static readonly BindableProperty ExcludeLayoutingProperty = BindableProperty.Create(nameof(ExcludeLayouting), typeof(bool), typeof(View), false, propertyChanged: (bindable, oldValue, newValue) =>
2099         {
2100             var instance = (Tizen.NUI.BaseComponents.View)bindable;
2101             if (newValue != null)
2102             {
2103                 instance.InternalExcludeLayouting = (bool)newValue;
2104             }
2105         },
2106         defaultValueCreator: (bindable) =>
2107         {
2108             var instance = (Tizen.NUI.BaseComponents.View)bindable;
2109             return instance.InternalExcludeLayouting;
2110         });
2111
2112         /// <summary>
2113         /// TooltipTextProperty
2114         /// </summary>
2115         [EditorBrowsable(EditorBrowsableState.Never)]
2116         public static readonly BindableProperty TooltipTextProperty = BindableProperty.Create(nameof(TooltipText), typeof(string), typeof(View), string.Empty, propertyChanged: (bindable, oldValue, newValue) =>
2117         {
2118             var instance = (Tizen.NUI.BaseComponents.View)bindable;
2119             if (newValue != null)
2120             {
2121                 instance.InternalTooltipText = (string)newValue;
2122             }
2123         },
2124         defaultValueCreator: (bindable) =>
2125         {
2126             var instance = (Tizen.NUI.BaseComponents.View)bindable;
2127             return instance.InternalTooltipText;
2128         });
2129
2130         /// <summary>
2131         /// PositionUsesAnchorPointProperty
2132         /// </summary>
2133         [EditorBrowsable(EditorBrowsableState.Never)]
2134         public static readonly BindableProperty PositionUsesAnchorPointProperty = BindableProperty.Create(nameof(PositionUsesAnchorPoint), typeof(bool), typeof(View), false, propertyChanged: (bindable, oldValue, newValue) =>
2135         {
2136             var instance = (Tizen.NUI.BaseComponents.View)bindable;
2137             if (newValue != null)
2138             {
2139                 instance.InternalPositionUsesAnchorPoint = (bool)newValue;
2140             }
2141         },
2142         defaultValueCreator: (bindable) =>
2143         {
2144             var instance = (Tizen.NUI.BaseComponents.View)bindable;
2145             return instance.InternalPositionUsesAnchorPoint;
2146         });
2147
2148         /// <summary>
2149         /// AnchorPointProperty
2150         /// </summary>
2151         [EditorBrowsable(EditorBrowsableState.Never)]
2152         public static readonly BindableProperty AnchorPointProperty = BindableProperty.Create(nameof(AnchorPoint), typeof(Tizen.NUI.Position), typeof(View), null, propertyChanged: (bindable, oldValue, newValue) =>
2153         {
2154             var instance = (Tizen.NUI.BaseComponents.View)bindable;
2155             if (newValue != null)
2156             {
2157                 instance.InternalAnchorPoint = (Tizen.NUI.Position)newValue;
2158             }
2159         },
2160         defaultValueCreator: (bindable) =>
2161         {
2162             var instance = (Tizen.NUI.BaseComponents.View)bindable;
2163             return instance.InternalAnchorPoint;
2164         });
2165
2166         /// <summary>
2167         /// WidthSpecificationProperty
2168         /// </summary>
2169         [EditorBrowsable(EditorBrowsableState.Never)]
2170         public static readonly BindableProperty WidthSpecificationProperty = BindableProperty.Create(nameof(WidthSpecification), typeof(int), typeof(View), 0, propertyChanged: (bindable, oldValue, newValue) =>
2171         {
2172             var instance = (Tizen.NUI.BaseComponents.View)bindable;
2173             if (newValue != null)
2174             {
2175                 instance.InternalWidthSpecification = (int)newValue;
2176             }
2177         },
2178         defaultValueCreator: (bindable) =>
2179         {
2180             var instance = (Tizen.NUI.BaseComponents.View)bindable;
2181             return instance.InternalWidthSpecification;
2182         });
2183
2184         /// <summary>
2185         /// HeightSpecificationProperty
2186         /// </summary>
2187         [EditorBrowsable(EditorBrowsableState.Never)]
2188         public static readonly BindableProperty HeightSpecificationProperty = BindableProperty.Create(nameof(HeightSpecification), typeof(int), typeof(View), 0, propertyChanged: (bindable, oldValue, newValue) =>
2189         {
2190             var instance = (Tizen.NUI.BaseComponents.View)bindable;
2191             if (newValue != null)
2192             {
2193                 instance.InternalHeightSpecification = (int)newValue;
2194             }
2195         },
2196         defaultValueCreator: (bindable) =>
2197         {
2198             var instance = (Tizen.NUI.BaseComponents.View)bindable;
2199             return instance.InternalHeightSpecification;
2200         });
2201
2202         /// <summary>
2203         /// LayoutTransitionProperty
2204         /// </summary>
2205         [EditorBrowsable(EditorBrowsableState.Never)]
2206         public static readonly BindableProperty LayoutTransitionProperty = BindableProperty.Create(nameof(LayoutTransition), typeof(Tizen.NUI.LayoutTransition), typeof(View), null, propertyChanged: (bindable, oldValue, newValue) =>
2207         {
2208             var instance = (Tizen.NUI.BaseComponents.View)bindable;
2209             if (newValue != null)
2210             {
2211                 instance.InternalLayoutTransition = (Tizen.NUI.LayoutTransition)newValue;
2212             }
2213         },
2214         defaultValueCreator: (bindable) =>
2215         {
2216             var instance = (Tizen.NUI.BaseComponents.View)bindable;
2217             return instance.InternalLayoutTransition;
2218         });
2219
2220         /// <summary>
2221         /// PaddingEXProperty
2222         /// </summary>
2223         [EditorBrowsable(EditorBrowsableState.Never)]
2224         public static readonly BindableProperty PaddingEXProperty = BindableProperty.Create(nameof(PaddingEX), typeof(Tizen.NUI.Extents), typeof(View), null, propertyChanged: (bindable, oldValue, newValue) =>
2225         {
2226             var instance = (Tizen.NUI.BaseComponents.View)bindable;
2227             if (newValue != null)
2228             {
2229                 instance.InternalPaddingEX = (Tizen.NUI.Extents)newValue;
2230             }
2231         },
2232         defaultValueCreator: (bindable) =>
2233         {
2234             var instance = (Tizen.NUI.BaseComponents.View)bindable;
2235             return instance.InternalPaddingEX;
2236         });
2237
2238         /// <summary>
2239         /// LayoutProperty
2240         /// </summary>
2241         [EditorBrowsable(EditorBrowsableState.Never)]
2242         public static readonly BindableProperty LayoutProperty = BindableProperty.Create(nameof(Layout), typeof(Tizen.NUI.LayoutItem), typeof(View), null, propertyChanged: (bindable, oldValue, newValue) =>
2243         {
2244             var instance = (Tizen.NUI.BaseComponents.View)bindable;
2245             if (newValue != null)
2246             {
2247                 instance.InternalLayout = (Tizen.NUI.LayoutItem)newValue;
2248             }
2249         },
2250         defaultValueCreator: (bindable) =>
2251         {
2252             var instance = (Tizen.NUI.BaseComponents.View)bindable;
2253             return instance.InternalLayout;
2254         });
2255
2256         /// <summary>
2257         /// BackgroundImageSynchronosLoadingProperty
2258         /// </summary>
2259         [EditorBrowsable(EditorBrowsableState.Never)]
2260         public static readonly BindableProperty BackgroundImageSynchronosLoadingProperty = BindableProperty.Create(nameof(BackgroundImageSynchronosLoading), typeof(bool), typeof(View), false, propertyChanged: (bindable, oldValue, newValue) =>
2261         {
2262             var instance = (Tizen.NUI.BaseComponents.View)bindable;
2263             if (newValue != null)
2264             {
2265                 instance.InternalBackgroundImageSynchronosLoading = (bool)newValue;
2266             }
2267         },
2268         defaultValueCreator: (bindable) =>
2269         {
2270             var instance = (Tizen.NUI.BaseComponents.View)bindable;
2271             return instance.InternalBackgroundImageSynchronosLoading;
2272         });
2273
2274         /// <summary>
2275         /// BackgroundImageSynchronousLoadingProperty
2276         /// </summary>
2277         [EditorBrowsable(EditorBrowsableState.Never)]
2278         public static readonly BindableProperty BackgroundImageSynchronousLoadingProperty = BindableProperty.Create(nameof(BackgroundImageSynchronousLoading), typeof(bool), typeof(View), false, propertyChanged: (bindable, oldValue, newValue) =>
2279         {
2280             var instance = (Tizen.NUI.BaseComponents.View)bindable;
2281             if (newValue != null)
2282             {
2283                 instance.InternalBackgroundImageSynchronousLoading = (bool)newValue;
2284             }
2285         },
2286         defaultValueCreator: (bindable) =>
2287         {
2288             var instance = (Tizen.NUI.BaseComponents.View)bindable;
2289             return instance.InternalBackgroundImageSynchronousLoading;
2290         });
2291
2292         /// <summary>
2293         /// EnableControlStatePropagationProperty
2294         /// </summary>
2295         [EditorBrowsable(EditorBrowsableState.Never)]
2296         public static readonly BindableProperty EnableControlStatePropagationProperty = BindableProperty.Create(nameof(EnableControlStatePropagation), typeof(bool), typeof(View), false, propertyChanged: (bindable, oldValue, newValue) =>
2297         {
2298             var instance = (Tizen.NUI.BaseComponents.View)bindable;
2299             if (newValue != null)
2300             {
2301                 instance.InternalEnableControlStatePropagation = (bool)newValue;
2302             }
2303         },
2304         defaultValueCreator: (bindable) =>
2305         {
2306             var instance = (Tizen.NUI.BaseComponents.View)bindable;
2307             return instance.InternalEnableControlStatePropagation;
2308         });
2309
2310         /// <summary>
2311         /// GrabTouchAfterLeaveProperty
2312         /// </summary>
2313         [EditorBrowsable(EditorBrowsableState.Never)]
2314         public static readonly BindableProperty GrabTouchAfterLeaveProperty = BindableProperty.Create(nameof(GrabTouchAfterLeave), typeof(bool), typeof(View), false, propertyChanged: (bindable, oldValue, newValue) =>
2315         {
2316             var instance = (Tizen.NUI.BaseComponents.View)bindable;
2317             if (newValue != null)
2318             {
2319                 instance.InternalGrabTouchAfterLeave = (bool)newValue;
2320             }
2321         },
2322         defaultValueCreator: (bindable) =>
2323         {
2324             var instance = (Tizen.NUI.BaseComponents.View)bindable;
2325             return instance.InternalGrabTouchAfterLeave;
2326         });
2327
2328         /// <summary>
2329         /// BlendEquationProperty
2330         /// </summary>
2331         [EditorBrowsable(EditorBrowsableState.Never)]
2332         public static readonly BindableProperty BlendEquationProperty = BindableProperty.Create(nameof(BlendEquation), typeof(BlendEquationType), typeof(View), default(BlendEquationType), propertyChanged: (bindable, oldValue, newValue) =>
2333         {
2334             var instance = (Tizen.NUI.BaseComponents.View)bindable;
2335             if (newValue != null)
2336             {
2337                 instance.InternalBlendEquation = (Tizen.NUI.BlendEquationType)newValue;
2338             }
2339         },
2340         defaultValueCreator: (bindable) =>
2341         {
2342             var instance = (Tizen.NUI.BaseComponents.View)bindable;
2343             return instance.InternalBlendEquation;
2344         });
2345
2346         /// <summary>
2347         /// TransitionOptionsProperty
2348         /// </summary>
2349         [EditorBrowsable(EditorBrowsableState.Never)]
2350         public static readonly BindableProperty TransitionOptionsProperty = BindableProperty.Create(nameof(TransitionOptions), typeof(TransitionOptions), typeof(View), default(TransitionOptions), propertyChanged: (bindable, oldValue, newValue) =>
2351         {
2352             var instance = (Tizen.NUI.BaseComponents.View)bindable;
2353             if (newValue != null)
2354             {
2355                 instance.InternalTransitionOptions = (Tizen.NUI.TransitionOptions)newValue;
2356             }
2357         },
2358         defaultValueCreator: (bindable) =>
2359         {
2360             var instance = (Tizen.NUI.BaseComponents.View)bindable;
2361             return instance.InternalTransitionOptions;
2362         });
2363
2364         /// <summary>
2365         /// AutomationIdProperty
2366         /// </summary>
2367         [EditorBrowsable(EditorBrowsableState.Never)]
2368         public static readonly BindableProperty AutomationIdProperty = BindableProperty.Create(nameof(AutomationId), typeof(string), typeof(View), string.Empty, propertyChanged: (bindable, oldValue, newValue) =>
2369         {
2370             var instance = (Tizen.NUI.BaseComponents.View)bindable;
2371             if (newValue != null)
2372             {
2373                 instance.InternalAutomationId = (string)newValue;
2374             }
2375         },
2376         defaultValueCreator: (bindable) =>
2377         {
2378             var instance = (Tizen.NUI.BaseComponents.View)bindable;
2379             return instance.InternalAutomationId;
2380         });
2381
2382         /// <summary>
2383         /// TouchAreaOffsetProperty
2384         /// </summary>
2385         [EditorBrowsable(EditorBrowsableState.Never)]
2386         public static readonly BindableProperty TouchAreaOffsetProperty = BindableProperty.Create(nameof(TouchAreaOffset), typeof(Offset), typeof(View), default(Offset), propertyChanged: (bindable, oldValue, newValue) =>
2387         {
2388             var instance = (Tizen.NUI.BaseComponents.View)bindable;
2389             if (newValue != null)
2390             {
2391                 instance.InternalTouchAreaOffset = (Tizen.NUI.Offset)newValue;
2392             }
2393         },
2394         defaultValueCreator: (bindable) =>
2395         {
2396             var instance = (Tizen.NUI.BaseComponents.View)bindable;
2397             return instance.InternalTouchAreaOffset;
2398         });
2399
2400         private void SetBackgroundImage(string value)
2401         {
2402             if (string.IsNullOrEmpty(value))
2403             {
2404                 var empty = new PropertyValue();
2405                 // Clear background
2406                 Object.SetProperty(SwigCPtr, Property.BACKGROUND, empty);
2407                 empty.Dispose();
2408                 return;
2409             }
2410
2411             if (value.StartsWith("*Resource*"))
2412             {
2413                 string resource = Tizen.Applications.Application.Current.DirectoryInfo.Resource;
2414                 value = value.Replace("*Resource*", resource);
2415             }
2416
2417             if (backgroundExtraData == null)
2418             {
2419                 var propertyValue = new PropertyValue(value);
2420                 Object.SetProperty(SwigCPtr, Property.BACKGROUND, propertyValue);
2421                 BackgroundImageSynchronousLoading = backgroundImageSynchronousLoading;
2422                 propertyValue?.Dispose();
2423                 return;
2424             }
2425
2426             var map = new PropertyMap();
2427             var url = new PropertyValue(value);
2428             var cornerRadiusValue = backgroundExtraData.CornerRadius == null ? new PropertyValue() : new PropertyValue(backgroundExtraData.CornerRadius);
2429             var cornerRadius = new PropertyValue(cornerRadiusValue);
2430             var cornerRadiusPolicy = new PropertyValue((int)(backgroundExtraData.CornerRadiusPolicy));
2431             var borderlineWidth = new PropertyValue(backgroundExtraData.BorderlineWidth);
2432             var borderlineColorValue = backgroundExtraData.BorderlineColor == null ? new PropertyValue(Color.Black) : new PropertyValue(backgroundExtraData.BorderlineColor);
2433             var borderlineColor = new PropertyValue(borderlineColorValue);
2434             var borderlineOffset = new PropertyValue(backgroundExtraData.BorderlineOffset);
2435             var synchronousLoading = new PropertyValue(backgroundImageSynchronousLoading);
2436             var npatchType = new PropertyValue((int)Visual.Type.NPatch);
2437             var border = (backgroundExtraData.BackgroundImageBorder != null) ? new PropertyValue(backgroundExtraData.BackgroundImageBorder) : null;
2438             var imageType = new PropertyValue((int)Visual.Type.Image);
2439
2440             map.Add(ImageVisualProperty.URL, url)
2441                .Add(Visual.Property.CornerRadius, cornerRadius)
2442                .Add(Visual.Property.CornerRadiusPolicy, cornerRadiusPolicy)
2443                .Add(Visual.Property.BorderlineWidth, borderlineWidth)
2444                .Add(Visual.Property.BorderlineColor, borderlineColor)
2445                .Add(Visual.Property.BorderlineOffset, borderlineOffset)
2446                .Add(ImageVisualProperty.SynchronousLoading, synchronousLoading);
2447
2448             if (backgroundExtraData.BackgroundImageBorder != null)
2449             {
2450                 map.Add(Visual.Property.Type, npatchType)
2451                    .Add(NpatchImageVisualProperty.Border, border);
2452             }
2453             else
2454             {
2455                 map.Add(Visual.Property.Type, imageType);
2456             }
2457
2458             var mapValue = new PropertyValue(map);
2459             Object.SetProperty(SwigCPtr, Property.BACKGROUND, mapValue);
2460
2461             imageType?.Dispose();
2462             border?.Dispose();
2463             npatchType?.Dispose();
2464             synchronousLoading?.Dispose();
2465             borderlineOffset?.Dispose();
2466             borderlineColor?.Dispose();
2467             borderlineColorValue?.Dispose();
2468             borderlineWidth?.Dispose();
2469             cornerRadiusPolicy?.Dispose();
2470             cornerRadius?.Dispose();
2471             cornerRadiusValue?.Dispose();
2472             url?.Dispose();
2473             map?.Dispose();
2474             mapValue?.Dispose();
2475         }
2476
2477         private void SetBackgroundImageBorder(Rectangle value)
2478         {
2479             bool isEmptyValue = Rectangle.IsNullOrZero(value);
2480
2481             var backgroundImageBorder = isEmptyValue ? null : value;
2482
2483             (backgroundExtraData ?? (backgroundExtraData = new BackgroundExtraData())).BackgroundImageBorder = backgroundImageBorder;
2484
2485             if (isEmptyValue)
2486             {
2487                 return;
2488             }
2489
2490             PropertyMap map = Background;
2491
2492             if (map.Empty())
2493             {
2494                 return;
2495             }
2496
2497             map[NpatchImageVisualProperty.Border] = new PropertyValue(backgroundImageBorder);
2498
2499             int visualType = 0;
2500
2501             map.Find(Visual.Property.Type)?.Get(out visualType);
2502
2503             if (visualType == (int)Visual.Type.Image)
2504             {
2505                 map[Visual.Property.Type] = new PropertyValue((int)Visual.Type.NPatch);
2506             }
2507
2508             Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)SwigCPtr, View.Property.BACKGROUND, new PropertyValue(map));
2509         }
2510
2511         private void SetBackgroundColor(Color value)
2512         {
2513             if (value == null)
2514             {
2515                 return;
2516             }
2517
2518             if (backgroundExtraData == null)
2519             {
2520                 var background = new PropertyValue(value);
2521                 Object.SetProperty(SwigCPtr, Property.BACKGROUND, background);
2522                 background?.Dispose();
2523                 return;
2524             }
2525
2526             var map = new PropertyMap();
2527             var colorType = new PropertyValue((int)Visual.Type.Color);
2528             var mixColor = new PropertyValue(value);
2529             var cornerRadiusValue = backgroundExtraData.CornerRadius == null ? new PropertyValue() : new PropertyValue(backgroundExtraData.CornerRadius);
2530             var cornerRadius = new PropertyValue(cornerRadiusValue);
2531             var cornerRadiusPolicy = new PropertyValue((int)(backgroundExtraData.CornerRadiusPolicy));
2532             var borderlineWidth = new PropertyValue(backgroundExtraData.BorderlineWidth);
2533             var borderlineColorValue = backgroundExtraData.BorderlineColor == null ? new PropertyValue(Color.Black) : new PropertyValue(backgroundExtraData.BorderlineColor);
2534             var borderlineColor = new PropertyValue(borderlineColorValue);
2535             var borderlineOffset = new PropertyValue(backgroundExtraData.BorderlineOffset);
2536
2537             map.Add(Visual.Property.Type, colorType)
2538                .Add(ColorVisualProperty.MixColor, mixColor)
2539                .Add(Visual.Property.CornerRadius, cornerRadius)
2540                .Add(Visual.Property.CornerRadiusPolicy, cornerRadiusPolicy)
2541                .Add(Visual.Property.BorderlineWidth, borderlineWidth)
2542                .Add(Visual.Property.BorderlineColor, borderlineColor)
2543                .Add(Visual.Property.BorderlineOffset, borderlineOffset);
2544
2545             var mapValue = new PropertyValue(map);
2546             Object.SetProperty(SwigCPtr, Property.BACKGROUND, mapValue);
2547
2548             borderlineOffset?.Dispose();
2549             borderlineColor?.Dispose();
2550             borderlineColorValue?.Dispose();
2551             borderlineWidth?.Dispose();
2552             cornerRadiusPolicy?.Dispose();
2553             cornerRadius?.Dispose();
2554             cornerRadiusValue?.Dispose();
2555             mixColor?.Dispose();
2556             colorType?.Dispose();
2557             map?.Dispose();
2558             mapValue?.Dispose();
2559         }
2560
2561         private void SetColor(Color value)
2562         {
2563             if (value == null)
2564             {
2565                 return;
2566             }
2567
2568             Interop.ActorInternal.SetColor(SwigCPtr, value.SwigCPtr);
2569             if (NDalicPINVOKE.SWIGPendingException.Pending)
2570                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
2571         }
2572
2573         private void SetOpacity(float? value)
2574         {
2575             if (value == null)
2576             {
2577                 return;
2578             }
2579
2580             Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)SwigCPtr, View.Property.OPACITY, new Tizen.NUI.PropertyValue((float)value));
2581         }
2582
2583         private void SetShadow(ShadowBase value)
2584         {
2585             Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)SwigCPtr, View.Property.SHADOW, value == null ? new PropertyValue() : value.ToPropertyValue(this));
2586         }
2587     }
2588 }