Release 10.0.0.16997
[platform/core/csapi/tizenfx.git] / src / Tizen.NUI / src / public / BaseComponents / ViewBindableProperty.cs
1 /*
2  * Copyright(c) 2019-2021 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         /// DispatchKeyEventsProperty
1170         /// </summary>
1171         [EditorBrowsable(EditorBrowsableState.Never)]
1172         public static readonly BindableProperty DispatchKeyEventsProperty = BindableProperty.Create(nameof(DispatchKeyEvents), 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.DispatchKeyEvents, new Tizen.NUI.PropertyValue((bool)newValue));
1178             }
1179         }),
1180         defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
1181         {
1182             var view = (View)bindable;
1183             bool temp = false;
1184             Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.DispatchKeyEvents).Get(out temp);
1185             return temp;
1186         }));
1187
1188         /// <summary>
1189         /// LeaveRequiredProperty
1190         /// </summary>
1191         [EditorBrowsable(EditorBrowsableState.Never)]
1192         public static readonly BindableProperty LeaveRequiredProperty = BindableProperty.Create(nameof(LeaveRequired), typeof(bool), typeof(View), false, propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
1193         {
1194             var view = (View)bindable;
1195             if (newValue != null)
1196             {
1197                 Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.LeaveRequired, new Tizen.NUI.PropertyValue((bool)newValue));
1198             }
1199         }),
1200         defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
1201         {
1202             var view = (View)bindable;
1203             bool temp = false;
1204             Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.LeaveRequired).Get(out temp);
1205             return temp;
1206         }));
1207
1208         /// <summary>
1209         /// InheritOrientationProperty
1210         /// </summary>
1211         [EditorBrowsable(EditorBrowsableState.Never)]
1212         public static readonly BindableProperty InheritOrientationProperty = BindableProperty.Create(nameof(InheritOrientation), typeof(bool), typeof(View), false, propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
1213         {
1214             var view = (View)bindable;
1215             if (newValue != null)
1216             {
1217                 Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.InheritOrientation, new Tizen.NUI.PropertyValue((bool)newValue));
1218             }
1219         }),
1220         defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
1221         {
1222             var view = (View)bindable;
1223             bool temp = false;
1224             Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.InheritOrientation).Get(out temp);
1225             return temp;
1226         }));
1227
1228         /// <summary>
1229         /// InheritScaleProperty
1230         /// </summary>
1231         [EditorBrowsable(EditorBrowsableState.Never)]
1232         public static readonly BindableProperty InheritScaleProperty = BindableProperty.Create(nameof(InheritScale), typeof(bool), typeof(View), false, propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
1233         {
1234             var view = (View)bindable;
1235             if (newValue != null)
1236             {
1237                 Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.InheritScale, new Tizen.NUI.PropertyValue((bool)newValue));
1238             }
1239         }),
1240         defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
1241         {
1242             var view = (View)bindable;
1243             bool temp = false;
1244             Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.InheritScale).Get(out temp);
1245             return temp;
1246         }));
1247
1248         /// <summary>
1249         /// DrawModeProperty
1250         /// </summary>
1251         [EditorBrowsable(EditorBrowsableState.Never)]
1252         public static readonly BindableProperty DrawModeProperty = BindableProperty.Create(nameof(DrawMode), typeof(DrawModeType), typeof(View), DrawModeType.Normal, propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
1253         {
1254             var view = (View)bindable;
1255             if (newValue != null)
1256             {
1257                 Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.DrawMode, new Tizen.NUI.PropertyValue((int)newValue));
1258             }
1259         }),
1260         defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
1261         {
1262             var view = (View)bindable;
1263             int temp;
1264             if (Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.DrawMode).Get(out temp) == false)
1265             {
1266                 NUILog.Error("DrawMode get error!");
1267             }
1268             return (DrawModeType)temp;
1269         }));
1270
1271         /// <summary>
1272         /// SizeModeFactorProperty
1273         /// </summary>
1274         [EditorBrowsable(EditorBrowsableState.Never)]
1275         public static readonly BindableProperty SizeModeFactorProperty = BindableProperty.Create(nameof(SizeModeFactor), typeof(Vector3), typeof(View), null,
1276             propertyChanged: (bindable, oldValue, newValue) =>
1277             {
1278                 var view = (View)bindable;
1279                 if (newValue != null)
1280                 {
1281                     var tmp = new PropertyValue((Vector3)newValue);
1282                     Object.SetProperty(view.SwigCPtr, Property.SizeModeFactor, tmp);
1283                     tmp?.Dispose();
1284                 }
1285             },
1286             defaultValueCreator: (bindable) =>
1287             {
1288                 var view = (View)bindable;
1289                 if (view.internalSizeModeFactor == null)
1290                 {
1291                     view.internalSizeModeFactor = new Vector3(view.OnSizeModeFactorChanged, 0, 0, 0);
1292                 }
1293                 var tmp = Object.GetProperty(view.SwigCPtr, Property.SizeModeFactor);
1294                 tmp?.Get(view.internalSizeModeFactor);
1295                 tmp?.Dispose();
1296
1297                 return view.internalSizeModeFactor;
1298             }
1299         );
1300
1301         /// <summary>
1302         /// WidthResizePolicyProperty
1303         /// </summary>
1304         [EditorBrowsable(EditorBrowsableState.Never)]
1305         public static readonly BindableProperty WidthResizePolicyProperty = BindableProperty.Create(nameof(WidthResizePolicy), typeof(ResizePolicyType), typeof(View), ResizePolicyType.Fixed, propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
1306         {
1307             var view = (View)bindable;
1308             if (newValue != null)
1309             {
1310                 if ((ResizePolicyType)newValue == ResizePolicyType.KeepSizeFollowingParent)
1311                 {
1312                     if (view.widthConstraint == null)
1313                     {
1314                         view.widthConstraint = new EqualConstraintWithParentFloat((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.SizeWidth, View.Property.SizeWidth);
1315                         view.widthConstraint.Apply();
1316                     }
1317                     Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.WidthResizePolicy, new Tizen.NUI.PropertyValue((int)ResizePolicyType.FillToParent));
1318                 }
1319                 else
1320                 {
1321                     view.widthConstraint?.Remove();
1322                     view.widthConstraint?.Dispose();
1323                     view.widthConstraint = null;
1324                     Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.WidthResizePolicy, new Tizen.NUI.PropertyValue((int)newValue));
1325                 }
1326                 // Match ResizePolicy to new Layouting.
1327                 // Parent relative policies can not be mapped at this point as parent size unknown.
1328                 switch ((ResizePolicyType)newValue)
1329                 {
1330                     case ResizePolicyType.UseNaturalSize:
1331                         {
1332                             view.WidthSpecification = LayoutParamPolicies.WrapContent;
1333                             break;
1334                         }
1335                     case ResizePolicyType.FillToParent:
1336                         {
1337                             view.WidthSpecification = LayoutParamPolicies.MatchParent;
1338                             break;
1339                         }
1340                     case ResizePolicyType.FitToChildren:
1341                         {
1342                             view.WidthSpecification = LayoutParamPolicies.WrapContent;
1343                             break;
1344                         }
1345                     default:
1346                         break;
1347                 }
1348             }
1349         }),
1350         defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
1351         {
1352             var view = (View)bindable;
1353             string temp;
1354             if (Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.WidthResizePolicy).Get(out temp) == false)
1355             {
1356                 NUILog.Error("WidthResizePolicy get error!");
1357             }
1358             return temp.GetValueByDescription<ResizePolicyType>();
1359         }));
1360
1361         /// <summary>
1362         /// HeightResizePolicyProperty
1363         /// </summary>
1364         [EditorBrowsable(EditorBrowsableState.Never)]
1365         public static readonly BindableProperty HeightResizePolicyProperty = BindableProperty.Create(nameof(HeightResizePolicy), typeof(ResizePolicyType), typeof(View), ResizePolicyType.Fixed, propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
1366         {
1367             var view = (View)bindable;
1368             if (newValue != null)
1369             {
1370                 if ((ResizePolicyType)newValue == ResizePolicyType.KeepSizeFollowingParent)
1371                 {
1372                     if (view.heightConstraint == null)
1373                     {
1374                         view.heightConstraint = new EqualConstraintWithParentFloat((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.SizeHeight, View.Property.SizeHeight);
1375                         view.heightConstraint.Apply();
1376                     }
1377                     Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.HeightResizePolicy, new Tizen.NUI.PropertyValue((int)ResizePolicyType.FillToParent));
1378                 }
1379                 else
1380                 {
1381                     view.heightConstraint?.Remove();
1382                     view.heightConstraint?.Dispose();
1383                     view.heightConstraint = null;
1384                     Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.HeightResizePolicy, new Tizen.NUI.PropertyValue((int)newValue));
1385                 }
1386                 // Match ResizePolicy to new Layouting.
1387                 // Parent relative policies can not be mapped at this point as parent size unknown.
1388                 switch ((ResizePolicyType)newValue)
1389                 {
1390                     case ResizePolicyType.UseNaturalSize:
1391                         {
1392                             view.HeightSpecification = LayoutParamPolicies.WrapContent;
1393                             break;
1394                         }
1395                     case ResizePolicyType.FillToParent:
1396                         {
1397                             view.HeightSpecification = LayoutParamPolicies.MatchParent;
1398                             break;
1399                         }
1400                     case ResizePolicyType.FitToChildren:
1401                         {
1402                             view.HeightSpecification = LayoutParamPolicies.WrapContent;
1403                             break;
1404                         }
1405                     default:
1406                         break;
1407                 }
1408             }
1409         }),
1410         defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
1411         {
1412             var view = (View)bindable;
1413             string temp;
1414             if (Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.HeightResizePolicy).Get(out temp) == false)
1415             {
1416                 NUILog.Error("HeightResizePolicy get error!");
1417             }
1418             return temp.GetValueByDescription<ResizePolicyType>();
1419         }));
1420
1421         /// <summary>
1422         /// SizeScalePolicyProperty
1423         /// </summary>
1424         [EditorBrowsable(EditorBrowsableState.Never)]
1425         public static readonly BindableProperty SizeScalePolicyProperty = BindableProperty.Create(nameof(SizeScalePolicy), typeof(SizeScalePolicyType), typeof(View), SizeScalePolicyType.UseSizeSet, propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
1426         {
1427             var view = (View)bindable;
1428             string valueToString = "";
1429             if (newValue != null)
1430             {
1431                 valueToString = ((SizeScalePolicyType)newValue).GetDescription();
1432                 Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.SizeScalePolicy, new Tizen.NUI.PropertyValue(valueToString));
1433             }
1434         }),
1435         defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
1436         {
1437             var view = (View)bindable;
1438             int temp;
1439             if (Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.SizeScalePolicy).Get(out temp) == false)
1440             {
1441                 NUILog.Error("SizeScalePolicy get error!");
1442             }
1443             return (SizeScalePolicyType)temp;
1444         }));
1445
1446         /// <summary>
1447         /// WidthForHeightProperty
1448         /// </summary>
1449         [EditorBrowsable(EditorBrowsableState.Never)]
1450         public static readonly BindableProperty WidthForHeightProperty = BindableProperty.Create(nameof(WidthForHeight), typeof(bool), typeof(View), false, propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
1451         {
1452             var view = (View)bindable;
1453             if (newValue != null)
1454             {
1455                 Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.WidthForHeight, new Tizen.NUI.PropertyValue((bool)newValue));
1456             }
1457         }),
1458         defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
1459         {
1460             var view = (View)bindable;
1461             bool temp = false;
1462             Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.WidthForHeight).Get(out temp);
1463             return temp;
1464         }));
1465
1466         /// <summary>
1467         /// HeightForWidthProperty
1468         /// </summary>
1469         [EditorBrowsable(EditorBrowsableState.Never)]
1470         public static readonly BindableProperty HeightForWidthProperty = BindableProperty.Create(nameof(HeightForWidth), typeof(bool), typeof(View), false, propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
1471         {
1472             var view = (View)bindable;
1473             if (newValue != null)
1474             {
1475                 Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.HeightForWidth, new Tizen.NUI.PropertyValue((bool)newValue));
1476             }
1477         }),
1478         defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
1479         {
1480             var view = (View)bindable;
1481             bool temp = false;
1482             Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.HeightForWidth).Get(out temp);
1483             return temp;
1484         }));
1485
1486         /// <summary>
1487         /// PaddingProperty
1488         /// </summary>
1489         [EditorBrowsable(EditorBrowsableState.Never)]
1490         public static readonly BindableProperty PaddingProperty = BindableProperty.Create(nameof(Padding), typeof(Extents), typeof(View), null,
1491             propertyChanged: (bindable, oldValue, newValue) =>
1492             {
1493                 var view = (View)bindable;
1494                 if (newValue != null)
1495                 {
1496                     var tmp = new PropertyValue((Extents)newValue);
1497                     Object.SetProperty(view.SwigCPtr, View.Property.PADDING, tmp);
1498                     tmp?.Dispose();
1499                 }
1500             },
1501             defaultValueCreator: (bindable) =>
1502             {
1503                 var view = (View)bindable;
1504                 if (view.internalPadding == null)
1505                 {
1506                     view.internalPadding = new Extents(view.OnPaddingChanged, 0, 0, 0, 0);
1507                 }
1508
1509                 var tmp = Object.GetProperty(view.SwigCPtr, Property.PADDING);
1510                 tmp?.Get(view.internalPadding);
1511                 tmp?.Dispose();
1512
1513                 return view.internalPadding;
1514             }
1515         );
1516
1517         /// <summary>
1518         /// SizeProperty
1519         /// </summary>
1520         [EditorBrowsable(EditorBrowsableState.Never)]
1521         public static readonly BindableProperty SizeProperty = BindableProperty.Create(nameof(Size), typeof(Size), typeof(View), null,
1522             propertyChanged: (bindable, oldValue, newValue) =>
1523             {
1524                 var view = (View)bindable;
1525                 if (newValue != null)
1526                 {
1527                     // Set Specification so when layouts measure this View it matches the value set here.
1528                     // All Views are currently Layouts.
1529                     view.WidthSpecification = (int)System.Math.Ceiling(((Size)newValue).Width);
1530                     view.HeightSpecification = (int)System.Math.Ceiling(((Size)newValue).Height);
1531
1532                     view.SetSize(((Size)newValue).Width, ((Size)newValue).Height, ((Size)newValue).Depth);
1533                 }
1534             },
1535             defaultValueCreator: (bindable) =>
1536             {
1537                 var view = (View)bindable;
1538
1539                 var tmpProperty = Object.GetProperty(view.SwigCPtr, Property.SIZE);
1540                 if (view.internalSize == null)
1541                 {
1542                     view.internalSize = new Size(view.OnSizeChanged, 0, 0, 0);
1543                 }
1544                 tmpProperty?.Get(view.internalSize);
1545                 tmpProperty?.Dispose();
1546
1547                 return view.internalSize;
1548             }
1549         );
1550
1551         /// <summary>
1552         /// MinimumSizeProperty
1553         /// </summary>
1554         [EditorBrowsable(EditorBrowsableState.Never)]
1555         public static readonly BindableProperty MinimumSizeProperty = BindableProperty.Create(nameof(MinimumSize), typeof(Size2D), typeof(View), null,
1556             propertyChanged: (bindable, oldValue, newValue) =>
1557             {
1558                 var view = (View)bindable;
1559                 if (newValue != null)
1560                 {
1561                     view.SetMinimumSize((Size2D)newValue);
1562                 }
1563             },
1564             defaultValueCreator: (bindable) =>
1565             {
1566                 var view = (View)bindable;
1567                 if (view.internalMinimumSize == null)
1568                 {
1569                     view.internalMinimumSize = new Size2D(view.OnMinimumSizeChanged, 0, 0);
1570                 }
1571                 var tmp = Object.GetProperty(view.SwigCPtr, Property.MinimumSize);
1572                 tmp?.Get(view.internalMinimumSize);
1573                 tmp?.Dispose();
1574
1575                 return view.internalMinimumSize;
1576             }
1577         );
1578
1579         /// <summary>
1580         /// MaximumSizeProperty
1581         /// </summary>
1582         [EditorBrowsable(EditorBrowsableState.Never)]
1583         public static readonly BindableProperty MaximumSizeProperty = BindableProperty.Create(nameof(MaximumSize), typeof(Size2D), typeof(View), null,
1584             propertyChanged: (bindable, oldValue, newValue) =>
1585             {
1586                 var view = (View)bindable;
1587                 if (newValue != null)
1588                 {
1589                     view.SetMaximumSize((Size2D)newValue);
1590                 }
1591             },
1592             defaultValueCreator: (bindable) =>
1593             {
1594                 var view = (View)bindable;
1595                 if (view.internalMaximumSize == null)
1596                 {
1597                     view.internalMaximumSize = new Size2D(view.OnMaximumSizeChanged, 0, 0);
1598                 }
1599                 var tmp = Object.GetProperty(view.SwigCPtr, Property.MaximumSize);
1600                 tmp?.Get(view.internalMaximumSize);
1601                 tmp?.Dispose();
1602
1603                 return view.internalMaximumSize;
1604             }
1605         );
1606
1607         /// <summary>
1608         /// InheritPositionProperty
1609         /// </summary>
1610         [EditorBrowsable(EditorBrowsableState.Never)]
1611         public static readonly BindableProperty InheritPositionProperty = BindableProperty.Create(nameof(InheritPosition), typeof(bool), typeof(View), false, propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
1612         {
1613             var view = (View)bindable;
1614             if (newValue != null)
1615             {
1616                 Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.InheritPosition, new Tizen.NUI.PropertyValue((bool)newValue));
1617             }
1618         }),
1619         defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
1620         {
1621             var view = (View)bindable;
1622             bool temp = false;
1623             Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.InheritPosition).Get(out temp);
1624             return temp;
1625         }));
1626
1627         /// <summary>
1628         /// ClippingModeProperty
1629         /// </summary>
1630         [EditorBrowsable(EditorBrowsableState.Never)]
1631         public static readonly BindableProperty ClippingModeProperty = BindableProperty.Create(nameof(ClippingMode), typeof(ClippingModeType), typeof(View), ClippingModeType.Disabled, propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
1632         {
1633             var view = (View)bindable;
1634             if (newValue != null)
1635             {
1636                 Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.ClippingMode, new Tizen.NUI.PropertyValue((int)newValue));
1637             }
1638         }),
1639         defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
1640         {
1641             var view = (View)bindable;
1642             int temp = 0;
1643             if (Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.ClippingMode).Get(out temp) == false)
1644             {
1645                 NUILog.Error("ClippingMode get error!");
1646             }
1647             return (ClippingModeType)temp;
1648         }));
1649
1650         /// <summary>
1651         /// InheritLayoutDirectionProperty
1652         /// </summary>
1653         [EditorBrowsable(EditorBrowsableState.Never)]
1654         public static readonly BindableProperty InheritLayoutDirectionProperty = BindableProperty.Create(nameof(InheritLayoutDirection), typeof(bool), typeof(View), false, propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
1655         {
1656             var view = (View)bindable;
1657             if (newValue != null)
1658             {
1659                 Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.InheritLayoutDirection, new Tizen.NUI.PropertyValue((bool)newValue));
1660             }
1661         }),
1662         defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
1663         {
1664             var view = (View)bindable;
1665             bool temp = false;
1666             Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.InheritLayoutDirection).Get(out temp);
1667             return temp;
1668         }));
1669
1670         /// <summary>
1671         /// LayoutDirectionProperty
1672         /// </summary>
1673         [EditorBrowsable(EditorBrowsableState.Never)]
1674         public static readonly BindableProperty LayoutDirectionProperty = BindableProperty.Create(nameof(LayoutDirection), typeof(ViewLayoutDirectionType), typeof(View), ViewLayoutDirectionType.LTR, propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
1675         {
1676             var view = (View)bindable;
1677             if (newValue != null)
1678             {
1679                 Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.LayoutDirection, new Tizen.NUI.PropertyValue((int)newValue));
1680             }
1681         }),
1682         defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
1683         {
1684             var view = (View)bindable;
1685             int temp;
1686             if (false == Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.LayoutDirection).Get(out temp))
1687             {
1688                 NUILog.Error("LAYOUT_DIRECTION get error!");
1689             }
1690             return (ViewLayoutDirectionType)temp;
1691         }));
1692
1693         /// <summary>
1694         /// MarginProperty
1695         /// </summary>
1696         [EditorBrowsable(EditorBrowsableState.Never)]
1697         public static readonly BindableProperty MarginProperty = BindableProperty.Create(nameof(Margin), typeof(Extents), typeof(View), null,
1698             propertyChanged: (bindable, oldValue, newValue) =>
1699             {
1700                 var view = (View)bindable;
1701                 if (newValue != null)
1702                 {
1703                     var tmp = new PropertyValue((Extents)newValue);
1704                     Object.SetProperty(view.SwigCPtr, Property.MARGIN, tmp);
1705                     tmp?.Dispose();
1706                 }
1707             },
1708             defaultValueCreator: (bindable) =>
1709             {
1710                 var view = (View)bindable;
1711                 if (view.internalMargin == null)
1712                 {
1713                     view.internalMargin = new Extents(view.OnMarginChanged, 0, 0, 0, 0);
1714                 }
1715                 var tmp = Object.GetProperty(view.SwigCPtr, Property.MARGIN);
1716                 tmp?.Get(view.internalMargin);
1717                 tmp?.Dispose();
1718
1719                 return view.internalMargin;
1720             }
1721         );
1722
1723         /// <summary>
1724         /// UpdateSizeHintProperty
1725         /// </summary>
1726         [EditorBrowsable(EditorBrowsableState.Never)]
1727         public static readonly BindableProperty UpdateSizeHintProperty = BindableProperty.Create(nameof(UpdateSizeHint), typeof(Vector2), typeof(View), null, propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
1728         {
1729             var view = (View)bindable;
1730             if (newValue != null)
1731             {
1732                 Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, Interop.ViewProperty.UpdateSizeHintGet(), new Tizen.NUI.PropertyValue((Vector2)newValue));
1733             }
1734         }),
1735         defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
1736         {
1737             var view = (View)bindable;
1738
1739             Vector2 temp = new Vector2(0.0f, 0.0f);
1740             Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, Interop.ViewProperty.UpdateSizeHintGet()).Get(temp);
1741             return temp;
1742         }));
1743
1744         /// <summary>
1745         /// ImageShadow Property
1746         /// </summary>
1747         [EditorBrowsable(EditorBrowsableState.Never)]
1748         public static readonly BindableProperty ImageShadowProperty = BindableProperty.Create(nameof(ImageShadow), typeof(ImageShadow), typeof(View), null, propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
1749         {
1750             var view = (View)bindable;
1751
1752             view.themeData?.selectorData?.ClearShadow(view);
1753
1754             if (newValue is Selector<ImageShadow> selector)
1755             {
1756                 if (selector.HasAll()) view.SetShadow(selector.All);
1757                 else view.EnsureSelectorData().ImageShadow = new TriggerableSelector<ImageShadow>(view, selector, view.SetShadow, true);
1758             }
1759             else
1760             {
1761                 view.SetShadow((ImageShadow)newValue);
1762             }
1763         }),
1764         defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
1765         {
1766             var view = (View)bindable;
1767
1768             PropertyMap map = new PropertyMap();
1769             Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.SHADOW).Get(map);
1770
1771             var shadow = new ImageShadow(map);
1772             return shadow.IsEmpty() ? null : shadow;
1773         }));
1774
1775         /// <summary>
1776         /// Shadow Property
1777         /// </summary>
1778         [EditorBrowsable(EditorBrowsableState.Never)]
1779         public static readonly BindableProperty BoxShadowProperty = BindableProperty.Create(nameof(BoxShadow), typeof(Shadow), typeof(View), null, propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
1780         {
1781             var view = (View)bindable;
1782
1783             view.themeData?.selectorData?.ClearShadow(view);
1784
1785             if (newValue is Selector<Shadow> selector)
1786             {
1787                 if (selector.HasAll()) view.SetShadow(selector.All);
1788                 else view.EnsureSelectorData().BoxShadow = new TriggerableSelector<Shadow>(view, selector, view.SetShadow, true);
1789             }
1790             else
1791             {
1792                 view.SetShadow((Shadow)newValue);
1793             }
1794         }),
1795         defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
1796         {
1797             var view = (View)bindable;
1798
1799             PropertyMap map = new PropertyMap();
1800             Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.SHADOW).Get(map);
1801
1802             var shadow = new Shadow(map);
1803             return shadow.IsEmpty() ? null : shadow;
1804         }));
1805
1806         /// <summary>
1807         /// CornerRadius Property
1808         /// </summary>
1809         [EditorBrowsable(EditorBrowsableState.Never)]
1810         public static readonly BindableProperty CornerRadiusProperty = BindableProperty.Create(nameof(CornerRadius), typeof(Vector4), typeof(View), null, propertyChanged: (bindable, oldValue, newValue) =>
1811         {
1812             var view = (View)bindable;
1813             (view.backgroundExtraData ?? (view.backgroundExtraData = new BackgroundExtraData())).CornerRadius = (Vector4)newValue;
1814             view.ApplyCornerRadius();
1815         },
1816         defaultValueCreator: (bindable) =>
1817         {
1818             var view = (View)bindable;
1819             return view.backgroundExtraData == null ? 0.0f : view.backgroundExtraData.CornerRadius;
1820         });
1821
1822         /// <summary>
1823         /// CornerRadiusPolicy Property
1824         /// </summary>
1825         [EditorBrowsable(EditorBrowsableState.Never)]
1826         public static readonly BindableProperty CornerRadiusPolicyProperty = BindableProperty.Create(nameof(CornerRadiusPolicy), typeof(VisualTransformPolicyType), typeof(View), VisualTransformPolicyType.Absolute, propertyChanged: (bindable, oldValue, newValue) =>
1827         {
1828             var view = (View)bindable;
1829             (view.backgroundExtraData ?? (view.backgroundExtraData = new BackgroundExtraData())).CornerRadiusPolicy = (VisualTransformPolicyType)newValue;
1830
1831             if (view.backgroundExtraData.CornerRadius != null)
1832             {
1833                 view.ApplyCornerRadius();
1834             }
1835         },
1836         defaultValueCreator: (bindable) =>
1837         {
1838             var view = (View)bindable;
1839             return view.backgroundExtraData == null ? VisualTransformPolicyType.Absolute : view.backgroundExtraData.CornerRadiusPolicy;
1840         });
1841
1842         /// <summary>
1843         /// BorderlineWidth Property
1844         /// </summary>
1845         [EditorBrowsable(EditorBrowsableState.Never)]
1846         public static readonly BindableProperty BorderlineWidthProperty = BindableProperty.Create(nameof(BorderlineWidth), typeof(float), typeof(View), default(float), propertyChanged: (bindable, oldValue, newValue) =>
1847         {
1848             var view = (View)bindable;
1849             (view.backgroundExtraData ?? (view.backgroundExtraData = new BackgroundExtraData())).BorderlineWidth = (float)newValue;
1850             view.ApplyBorderline();
1851         },
1852         defaultValueCreator: (bindable) =>
1853         {
1854             var view = (View)bindable;
1855             return view.backgroundExtraData == null ? 0.0f : view.backgroundExtraData.BorderlineWidth;
1856         });
1857
1858         /// <summary>
1859         /// BorderlineColor Property
1860         /// </summary>
1861         [EditorBrowsable(EditorBrowsableState.Never)]
1862         public static readonly BindableProperty BorderlineColorProperty = BindableProperty.Create(nameof(BorderlineColor), typeof(Color), typeof(View), null, propertyChanged: (bindable, oldValue, newValue) =>
1863         {
1864             var view = (View)bindable;
1865             (view.backgroundExtraData ?? (view.backgroundExtraData = new BackgroundExtraData())).BorderlineColor = (Color)newValue;
1866             view.ApplyBorderline();
1867         },
1868         defaultValueCreator: (bindable) =>
1869         {
1870             var view = (View)bindable;
1871             return view.backgroundExtraData == null ? Color.Black : view.backgroundExtraData.BorderlineColor;
1872         });
1873
1874         /// <summary>
1875         /// BorderlineOffset Property
1876         /// </summary>
1877         [EditorBrowsable(EditorBrowsableState.Never)]
1878         public static readonly BindableProperty BorderlineOffsetProperty = BindableProperty.Create(nameof(BorderlineOffset), typeof(float), typeof(View), default(float), propertyChanged: (bindable, oldValue, newValue) =>
1879         {
1880             var view = (View)bindable;
1881             (view.backgroundExtraData ?? (view.backgroundExtraData = new BackgroundExtraData())).BorderlineOffset = (float)newValue;
1882             view.ApplyBorderline();
1883         },
1884         defaultValueCreator: (bindable) =>
1885         {
1886             var view = (View)bindable;
1887             return view.backgroundExtraData == null ? 0.0f : view.backgroundExtraData.BorderlineOffset;
1888         });
1889
1890         /// <summary>
1891         /// XamlStyleProperty
1892         /// </summary>
1893         [EditorBrowsable(EditorBrowsableState.Never)]
1894         public static readonly BindableProperty XamlStyleProperty = BindableProperty.Create(nameof(XamlStyle), typeof(XamlStyle), typeof(View), default(XamlStyle), propertyChanged: (bindable, oldvalue, newvalue) => ((View)bindable).MergedStyle.Style = (XamlStyle)newvalue);
1895
1896         /// <summary>
1897         /// EnableControlState property
1898         /// </summary>
1899         [EditorBrowsable(EditorBrowsableState.Never)]
1900         public static readonly BindableProperty EnableControlStateProperty = BindableProperty.Create(nameof(EnableControlState), typeof(bool), typeof(View), false, propertyChanged: (bindable, oldValue, newValue) =>
1901         {
1902             var view = (View)bindable;
1903             bool prev = view.enableControlState;
1904             view.enableControlState = (bool)newValue;
1905
1906             if (prev != view.enableControlState)
1907             {
1908                 if (prev)
1909                 {
1910                     view.TouchEvent -= view.EmptyOnTouch;
1911                 }
1912                 else
1913                 {
1914                     view.TouchEvent += view.EmptyOnTouch;
1915                 }
1916             }
1917         },
1918         defaultValueCreator: (bindable) =>
1919         {
1920             return ((View)bindable).enableControlState;
1921         });
1922
1923         /// <summary>
1924         /// ThemeChangeSensitive property
1925         /// </summary>
1926         [EditorBrowsable(EditorBrowsableState.Never)]
1927         public static readonly BindableProperty ThemeChangeSensitiveProperty = BindableProperty.Create(nameof(ThemeChangeSensitive), typeof(bool), typeof(View), false, propertyChanged: (bindable, oldValue, newValue) =>
1928         {
1929             var view = (View)bindable;
1930
1931             if (view.ThemeChangeSensitive == (bool)newValue) return;
1932
1933             if (view.themeData == null) view.themeData = new ThemeData();
1934
1935             view.themeData.ThemeChangeSensitive = (bool)newValue;
1936
1937             if (!view.themeData.ThemeApplied) return;
1938
1939             if (view.themeData.ThemeChangeSensitive && !view.themeData.ListeningThemeChangeEvent)
1940             {
1941                 view.themeData.ListeningThemeChangeEvent = true;
1942                 ThemeManager.ThemeChangedInternal.Add(view.OnThemeChanged);
1943             }
1944             else if (!view.themeData.ThemeChangeSensitive && view.themeData.ListeningThemeChangeEvent)
1945             {
1946                 view.themeData.ListeningThemeChangeEvent = false;
1947                 ThemeManager.ThemeChangedInternal.Remove(view.OnThemeChanged);
1948             }
1949         },
1950         defaultValueCreator: (bindable) =>
1951         {
1952             return ((View)bindable).themeData?.ThemeChangeSensitive ?? ThemeManager.ApplicationThemeChangeSensitive;
1953         });
1954
1955         /// <summary>
1956         /// AccessibilityNameProperty
1957         /// </summary>
1958         [EditorBrowsable(EditorBrowsableState.Never)]
1959         public static readonly BindableProperty AccessibilityNameProperty = BindableProperty.Create(nameof(AccessibilityName), typeof(string), typeof(View), string.Empty, propertyChanged: (bindable, oldValue, newValue) =>
1960         {
1961             var view = (View)bindable;
1962             if (newValue != null)
1963             {
1964                 Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.AccessibilityName, new Tizen.NUI.PropertyValue((string)newValue));
1965             }
1966         },
1967         defaultValueCreator: (bindable) =>
1968         {
1969             var view = (View)bindable;
1970
1971             string temp;
1972             Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.AccessibilityName).Get(out temp);
1973             return temp;
1974         });
1975
1976         /// <summary>
1977         /// AccessibilityDescriptionProperty
1978         /// </summary>
1979         [EditorBrowsable(EditorBrowsableState.Never)]
1980         public static readonly BindableProperty AccessibilityDescriptionProperty = BindableProperty.Create(nameof(AccessibilityDescription), typeof(string), typeof(View), string.Empty, propertyChanged: (bindable, oldValue, newValue) =>
1981         {
1982             var view = (View)bindable;
1983             if (newValue != null)
1984             {
1985                 Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.AccessibilityDescription, new Tizen.NUI.PropertyValue((string)newValue));
1986             }
1987         },
1988         defaultValueCreator: (bindable) =>
1989         {
1990             var view = (View)bindable;
1991
1992             string temp;
1993             Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.AccessibilityDescription).Get(out temp);
1994             return temp;
1995         });
1996
1997         /// <summary>
1998         /// AccessibilityTranslationDomainProperty
1999         /// </summary>
2000         [EditorBrowsable(EditorBrowsableState.Never)]
2001         public static readonly BindableProperty AccessibilityTranslationDomainProperty = BindableProperty.Create(nameof(AccessibilityTranslationDomain), typeof(string), typeof(View), string.Empty, propertyChanged: (bindable, oldValue, newValue) =>
2002         {
2003             var view = (View)bindable;
2004             if (newValue != null)
2005             {
2006                 Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.AccessibilityTranslationDomain, new Tizen.NUI.PropertyValue((string)newValue));
2007             }
2008         },
2009         defaultValueCreator: (bindable) =>
2010         {
2011             var view = (View)bindable;
2012
2013             string temp;
2014             Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.AccessibilityTranslationDomain).Get(out temp);
2015             return temp;
2016         });
2017
2018         /// <summary>
2019         /// AccessibilityRoleProperty
2020         /// </summary>
2021         [EditorBrowsable(EditorBrowsableState.Never)]
2022         public static readonly BindableProperty AccessibilityRoleProperty = BindableProperty.Create(nameof(AccessibilityRole), typeof(Role), typeof(View), default(Role), propertyChanged: (bindable, oldValue, newValue) =>
2023         {
2024             var view = (View)bindable;
2025             if (newValue != null)
2026             {
2027                 Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.AccessibilityRole, new Tizen.NUI.PropertyValue((int)newValue));
2028             }
2029         },
2030         defaultValueCreator: (bindable) =>
2031         {
2032             var view = (View)bindable;
2033
2034             int temp = 0;
2035             Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.AccessibilityRole).Get(out temp);
2036             return (Role)temp;
2037         });
2038
2039         /// <summary>
2040         /// AccessibilityHighlightableProperty
2041         /// </summary>
2042         [EditorBrowsable(EditorBrowsableState.Never)]
2043         public static readonly BindableProperty AccessibilityHighlightableProperty = BindableProperty.Create(nameof(AccessibilityHighlightable), typeof(bool), typeof(View), false, propertyChanged: (bindable, oldValue, newValue) =>
2044         {
2045             var view = (View)bindable;
2046             if (newValue != null)
2047             {
2048                 Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.AccessibilityHighlightable, new Tizen.NUI.PropertyValue((bool)newValue));
2049             }
2050         },
2051         defaultValueCreator: (bindable) =>
2052         {
2053             var view = (View)bindable;
2054             bool temp = false;
2055             Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.AccessibilityHighlightable).Get(out temp);
2056             return temp;
2057         });
2058
2059         /// <summary>
2060         /// AccessibilityHiddenProperty
2061         /// </summary>
2062         [EditorBrowsable(EditorBrowsableState.Never)]
2063         public static readonly BindableProperty AccessibilityHiddenProperty = BindableProperty.Create(nameof(AccessibilityHidden), typeof(bool), typeof(View), false, propertyChanged: (bindable, oldValue, newValue) =>
2064         {
2065             var view = (View)bindable;
2066             if (newValue != null)
2067             {
2068                 Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.AccessibilityHidden, new Tizen.NUI.PropertyValue((bool)newValue));
2069             }
2070         },
2071         defaultValueCreator: (bindable) =>
2072         {
2073             var view = (View)bindable;
2074             bool temp = false;
2075             Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.AccessibilityHidden).Get(out temp);
2076             return temp;
2077         });
2078
2079         /// <summary>
2080         /// ExcludeLayoutingProperty
2081         /// </summary>
2082         [EditorBrowsable(EditorBrowsableState.Never)]
2083         public static readonly BindableProperty ExcludeLayoutingProperty = BindableProperty.Create(nameof(ExcludeLayouting), typeof(bool), typeof(View), false, propertyChanged: (bindable, oldValue, newValue) =>
2084         {
2085             var instance = (Tizen.NUI.BaseComponents.View)bindable;
2086             if (newValue != null)
2087             {
2088                 instance.InternalExcludeLayouting = (bool)newValue;
2089             }
2090         },
2091         defaultValueCreator: (bindable) =>
2092         {
2093             var instance = (Tizen.NUI.BaseComponents.View)bindable;
2094             return instance.InternalExcludeLayouting;
2095         });
2096
2097         /// <summary>
2098         /// TooltipTextProperty
2099         /// </summary>
2100         [EditorBrowsable(EditorBrowsableState.Never)]
2101         public static readonly BindableProperty TooltipTextProperty = BindableProperty.Create(nameof(TooltipText), typeof(string), typeof(View), string.Empty, propertyChanged: (bindable, oldValue, newValue) =>
2102         {
2103             var instance = (Tizen.NUI.BaseComponents.View)bindable;
2104             if (newValue != null)
2105             {
2106                 instance.InternalTooltipText = (string)newValue;
2107             }
2108         },
2109         defaultValueCreator: (bindable) =>
2110         {
2111             var instance = (Tizen.NUI.BaseComponents.View)bindable;
2112             return instance.InternalTooltipText;
2113         });
2114
2115         /// <summary>
2116         /// PositionUsesAnchorPointProperty
2117         /// </summary>
2118         [EditorBrowsable(EditorBrowsableState.Never)]
2119         public static readonly BindableProperty PositionUsesAnchorPointProperty = BindableProperty.Create(nameof(PositionUsesAnchorPoint), typeof(bool), typeof(View), false, propertyChanged: (bindable, oldValue, newValue) =>
2120         {
2121             var instance = (Tizen.NUI.BaseComponents.View)bindable;
2122             if (newValue != null)
2123             {
2124                 instance.InternalPositionUsesAnchorPoint = (bool)newValue;
2125             }
2126         },
2127         defaultValueCreator: (bindable) =>
2128         {
2129             var instance = (Tizen.NUI.BaseComponents.View)bindable;
2130             return instance.InternalPositionUsesAnchorPoint;
2131         });
2132
2133         /// <summary>
2134         /// AnchorPointProperty
2135         /// </summary>
2136         [EditorBrowsable(EditorBrowsableState.Never)]
2137         public static readonly BindableProperty AnchorPointProperty = BindableProperty.Create(nameof(AnchorPoint), typeof(Tizen.NUI.Position), typeof(View), null, propertyChanged: (bindable, oldValue, newValue) =>
2138         {
2139             var instance = (Tizen.NUI.BaseComponents.View)bindable;
2140             if (newValue != null)
2141             {
2142                 instance.InternalAnchorPoint = (Tizen.NUI.Position)newValue;
2143             }
2144         },
2145         defaultValueCreator: (bindable) =>
2146         {
2147             var instance = (Tizen.NUI.BaseComponents.View)bindable;
2148             return instance.InternalAnchorPoint;
2149         });
2150
2151         /// <summary>
2152         /// WidthSpecificationProperty
2153         /// </summary>
2154         [EditorBrowsable(EditorBrowsableState.Never)]
2155         public static readonly BindableProperty WidthSpecificationProperty = BindableProperty.Create(nameof(WidthSpecification), typeof(int), typeof(View), 0, propertyChanged: (bindable, oldValue, newValue) =>
2156         {
2157             var instance = (Tizen.NUI.BaseComponents.View)bindable;
2158             if (newValue != null)
2159             {
2160                 instance.InternalWidthSpecification = (int)newValue;
2161             }
2162         },
2163         defaultValueCreator: (bindable) =>
2164         {
2165             var instance = (Tizen.NUI.BaseComponents.View)bindable;
2166             return instance.InternalWidthSpecification;
2167         });
2168
2169         /// <summary>
2170         /// HeightSpecificationProperty
2171         /// </summary>
2172         [EditorBrowsable(EditorBrowsableState.Never)]
2173         public static readonly BindableProperty HeightSpecificationProperty = BindableProperty.Create(nameof(HeightSpecification), typeof(int), typeof(View), 0, propertyChanged: (bindable, oldValue, newValue) =>
2174         {
2175             var instance = (Tizen.NUI.BaseComponents.View)bindable;
2176             if (newValue != null)
2177             {
2178                 instance.InternalHeightSpecification = (int)newValue;
2179             }
2180         },
2181         defaultValueCreator: (bindable) =>
2182         {
2183             var instance = (Tizen.NUI.BaseComponents.View)bindable;
2184             return instance.InternalHeightSpecification;
2185         });
2186
2187         /// <summary>
2188         /// LayoutTransitionProperty
2189         /// </summary>
2190         [EditorBrowsable(EditorBrowsableState.Never)]
2191         public static readonly BindableProperty LayoutTransitionProperty = BindableProperty.Create(nameof(LayoutTransition), typeof(Tizen.NUI.LayoutTransition), typeof(View), null, propertyChanged: (bindable, oldValue, newValue) =>
2192         {
2193             var instance = (Tizen.NUI.BaseComponents.View)bindable;
2194             if (newValue != null)
2195             {
2196                 instance.InternalLayoutTransition = (Tizen.NUI.LayoutTransition)newValue;
2197             }
2198         },
2199         defaultValueCreator: (bindable) =>
2200         {
2201             var instance = (Tizen.NUI.BaseComponents.View)bindable;
2202             return instance.InternalLayoutTransition;
2203         });
2204
2205         /// <summary>
2206         /// PaddingEXProperty
2207         /// </summary>
2208         [EditorBrowsable(EditorBrowsableState.Never)]
2209         public static readonly BindableProperty PaddingEXProperty = BindableProperty.Create(nameof(PaddingEX), typeof(Tizen.NUI.Extents), typeof(View), null, propertyChanged: (bindable, oldValue, newValue) =>
2210         {
2211             var instance = (Tizen.NUI.BaseComponents.View)bindable;
2212             if (newValue != null)
2213             {
2214                 instance.InternalPaddingEX = (Tizen.NUI.Extents)newValue;
2215             }
2216         },
2217         defaultValueCreator: (bindable) =>
2218         {
2219             var instance = (Tizen.NUI.BaseComponents.View)bindable;
2220             return instance.InternalPaddingEX;
2221         });
2222
2223         /// <summary>
2224         /// LayoutProperty
2225         /// </summary>
2226         [EditorBrowsable(EditorBrowsableState.Never)]
2227         public static readonly BindableProperty LayoutProperty = BindableProperty.Create(nameof(Layout), typeof(Tizen.NUI.LayoutItem), typeof(View), null, propertyChanged: (bindable, oldValue, newValue) =>
2228         {
2229             var instance = (Tizen.NUI.BaseComponents.View)bindable;
2230             if (newValue != null)
2231             {
2232                 instance.InternalLayout = (Tizen.NUI.LayoutItem)newValue;
2233             }
2234         },
2235         defaultValueCreator: (bindable) =>
2236         {
2237             var instance = (Tizen.NUI.BaseComponents.View)bindable;
2238             return instance.InternalLayout;
2239         });
2240
2241         /// <summary>
2242         /// BackgroundImageSynchronosLoadingProperty
2243         /// </summary>
2244         [EditorBrowsable(EditorBrowsableState.Never)]
2245         public static readonly BindableProperty BackgroundImageSynchronosLoadingProperty = BindableProperty.Create(nameof(BackgroundImageSynchronosLoading), typeof(bool), typeof(View), false, propertyChanged: (bindable, oldValue, newValue) =>
2246         {
2247             var instance = (Tizen.NUI.BaseComponents.View)bindable;
2248             if (newValue != null)
2249             {
2250                 instance.InternalBackgroundImageSynchronosLoading = (bool)newValue;
2251             }
2252         },
2253         defaultValueCreator: (bindable) =>
2254         {
2255             var instance = (Tizen.NUI.BaseComponents.View)bindable;
2256             return instance.InternalBackgroundImageSynchronosLoading;
2257         });
2258
2259         /// <summary>
2260         /// BackgroundImageSynchronousLoadingProperty
2261         /// </summary>
2262         [EditorBrowsable(EditorBrowsableState.Never)]
2263         public static readonly BindableProperty BackgroundImageSynchronousLoadingProperty = BindableProperty.Create(nameof(BackgroundImageSynchronousLoading), typeof(bool), typeof(View), false, propertyChanged: (bindable, oldValue, newValue) =>
2264         {
2265             var instance = (Tizen.NUI.BaseComponents.View)bindable;
2266             if (newValue != null)
2267             {
2268                 instance.InternalBackgroundImageSynchronousLoading = (bool)newValue;
2269             }
2270         },
2271         defaultValueCreator: (bindable) =>
2272         {
2273             var instance = (Tizen.NUI.BaseComponents.View)bindable;
2274             return instance.InternalBackgroundImageSynchronousLoading;
2275         });
2276
2277         /// <summary>
2278         /// EnableControlStatePropagationProperty
2279         /// </summary>
2280         [EditorBrowsable(EditorBrowsableState.Never)]
2281         public static readonly BindableProperty EnableControlStatePropagationProperty = BindableProperty.Create(nameof(EnableControlStatePropagation), typeof(bool), typeof(View), false, propertyChanged: (bindable, oldValue, newValue) =>
2282         {
2283             var instance = (Tizen.NUI.BaseComponents.View)bindable;
2284             if (newValue != null)
2285             {
2286                 instance.InternalEnableControlStatePropagation = (bool)newValue;
2287             }
2288         },
2289         defaultValueCreator: (bindable) =>
2290         {
2291             var instance = (Tizen.NUI.BaseComponents.View)bindable;
2292             return instance.InternalEnableControlStatePropagation;
2293         });
2294
2295         /// <summary>
2296         /// GrabTouchAfterLeaveProperty
2297         /// </summary>
2298         [EditorBrowsable(EditorBrowsableState.Never)]
2299         public static readonly BindableProperty GrabTouchAfterLeaveProperty = BindableProperty.Create(nameof(GrabTouchAfterLeave), typeof(bool), typeof(View), false, propertyChanged: (bindable, oldValue, newValue) =>
2300         {
2301             var instance = (Tizen.NUI.BaseComponents.View)bindable;
2302             if (newValue != null)
2303             {
2304                 instance.InternalGrabTouchAfterLeave = (bool)newValue;
2305             }
2306         },
2307         defaultValueCreator: (bindable) =>
2308         {
2309             var instance = (Tizen.NUI.BaseComponents.View)bindable;
2310             return instance.InternalGrabTouchAfterLeave;
2311         });
2312
2313         /// <summary>
2314         /// BlendEquationProperty
2315         /// </summary>
2316         [EditorBrowsable(EditorBrowsableState.Never)]
2317         public static readonly BindableProperty BlendEquationProperty = BindableProperty.Create(nameof(BlendEquation), typeof(BlendEquationType), typeof(View), default(BlendEquationType), propertyChanged: (bindable, oldValue, newValue) =>
2318         {
2319             var instance = (Tizen.NUI.BaseComponents.View)bindable;
2320             if (newValue != null)
2321             {
2322                 instance.InternalBlendEquation = (Tizen.NUI.BlendEquationType)newValue;
2323             }
2324         },
2325         defaultValueCreator: (bindable) =>
2326         {
2327             var instance = (Tizen.NUI.BaseComponents.View)bindable;
2328             return instance.InternalBlendEquation;
2329         });
2330
2331         /// <summary>
2332         /// TransitionOptionsProperty
2333         /// </summary>
2334         [EditorBrowsable(EditorBrowsableState.Never)]
2335         public static readonly BindableProperty TransitionOptionsProperty = BindableProperty.Create(nameof(TransitionOptions), typeof(TransitionOptions), typeof(View), default(TransitionOptions), propertyChanged: (bindable, oldValue, newValue) =>
2336         {
2337             var instance = (Tizen.NUI.BaseComponents.View)bindable;
2338             if (newValue != null)
2339             {
2340                 instance.InternalTransitionOptions = (Tizen.NUI.TransitionOptions)newValue;
2341             }
2342         },
2343         defaultValueCreator: (bindable) =>
2344         {
2345             var instance = (Tizen.NUI.BaseComponents.View)bindable;
2346             return instance.InternalTransitionOptions;
2347         });
2348
2349         /// <summary>
2350         /// AutomationIdProperty
2351         /// </summary>
2352         [EditorBrowsable(EditorBrowsableState.Never)]
2353         public static readonly BindableProperty AutomationIdProperty = BindableProperty.Create(nameof(AutomationId), typeof(string), typeof(View), string.Empty, propertyChanged: (bindable, oldValue, newValue) =>
2354         {
2355             var instance = (Tizen.NUI.BaseComponents.View)bindable;
2356             if (newValue != null)
2357             {
2358                 instance.InternalAutomationId = (string)newValue;
2359             }
2360         },
2361         defaultValueCreator: (bindable) =>
2362         {
2363             var instance = (Tizen.NUI.BaseComponents.View)bindable;
2364             return instance.InternalAutomationId;
2365         });
2366
2367         /// <summary>
2368         /// TouchAreaOffsetProperty
2369         /// </summary>
2370         [EditorBrowsable(EditorBrowsableState.Never)]
2371         public static readonly BindableProperty TouchAreaOffsetProperty = BindableProperty.Create(nameof(TouchAreaOffset), typeof(Offset), typeof(View), default(Offset), propertyChanged: (bindable, oldValue, newValue) =>
2372         {
2373             var instance = (Tizen.NUI.BaseComponents.View)bindable;
2374             if (newValue != null)
2375             {
2376                 instance.InternalTouchAreaOffset = (Tizen.NUI.Offset)newValue;
2377             }
2378         },
2379         defaultValueCreator: (bindable) =>
2380         {
2381             var instance = (Tizen.NUI.BaseComponents.View)bindable;
2382             return instance.InternalTouchAreaOffset;
2383         });
2384
2385         private void SetBackgroundImage(string value)
2386         {
2387             if (string.IsNullOrEmpty(value))
2388             {
2389                 var empty = new PropertyValue();
2390                 // Clear background
2391                 Object.SetProperty(SwigCPtr, Property.BACKGROUND, empty);
2392                 empty.Dispose();
2393                 return;
2394             }
2395
2396             if (value.StartsWith("*Resource*"))
2397             {
2398                 string resource = Tizen.Applications.Application.Current.DirectoryInfo.Resource;
2399                 value = value.Replace("*Resource*", resource);
2400             }
2401
2402             if (backgroundExtraData == null)
2403             {
2404                 var propertyValue = new PropertyValue(value);
2405                 Object.SetProperty(SwigCPtr, Property.BACKGROUND, propertyValue);
2406                 BackgroundImageSynchronousLoading = backgroundImageSynchronousLoading;
2407                 propertyValue?.Dispose();
2408                 return;
2409             }
2410
2411             var map = new PropertyMap();
2412             var url = new PropertyValue(value);
2413             var cornerRadiusValue = backgroundExtraData.CornerRadius == null ? new PropertyValue() : new PropertyValue(backgroundExtraData.CornerRadius);
2414             var cornerRadius = new PropertyValue(cornerRadiusValue);
2415             var cornerRadiusPolicy = new PropertyValue((int)(backgroundExtraData.CornerRadiusPolicy));
2416             var borderlineWidth = new PropertyValue(backgroundExtraData.BorderlineWidth);
2417             var borderlineColorValue = backgroundExtraData.BorderlineColor == null ? new PropertyValue(Color.Black) : new PropertyValue(backgroundExtraData.BorderlineColor);
2418             var borderlineColor = new PropertyValue(borderlineColorValue);
2419             var borderlineOffset = new PropertyValue(backgroundExtraData.BorderlineOffset);
2420             var synchronousLoading = new PropertyValue(backgroundImageSynchronousLoading);
2421             var npatchType = new PropertyValue((int)Visual.Type.NPatch);
2422             var border = (backgroundExtraData.BackgroundImageBorder != null) ? new PropertyValue(backgroundExtraData.BackgroundImageBorder) : null;
2423             var imageType = new PropertyValue((int)Visual.Type.Image);
2424
2425             map.Add(ImageVisualProperty.URL, url)
2426                .Add(Visual.Property.CornerRadius, cornerRadius)
2427                .Add(Visual.Property.CornerRadiusPolicy, cornerRadiusPolicy)
2428                .Add(Visual.Property.BorderlineWidth, borderlineWidth)
2429                .Add(Visual.Property.BorderlineColor, borderlineColor)
2430                .Add(Visual.Property.BorderlineOffset, borderlineOffset)
2431                .Add(ImageVisualProperty.SynchronousLoading, synchronousLoading);
2432
2433             if (backgroundExtraData.BackgroundImageBorder != null)
2434             {
2435                 map.Add(Visual.Property.Type, npatchType)
2436                    .Add(NpatchImageVisualProperty.Border, border);
2437             }
2438             else
2439             {
2440                 map.Add(Visual.Property.Type, imageType);
2441             }
2442
2443             var mapValue = new PropertyValue(map);
2444             Object.SetProperty(SwigCPtr, Property.BACKGROUND, mapValue);
2445
2446             imageType?.Dispose();
2447             border?.Dispose();
2448             npatchType?.Dispose();
2449             synchronousLoading?.Dispose();
2450             borderlineOffset?.Dispose();
2451             borderlineColor?.Dispose();
2452             borderlineColorValue?.Dispose();
2453             borderlineWidth?.Dispose();
2454             cornerRadiusPolicy?.Dispose();
2455             cornerRadius?.Dispose();
2456             cornerRadiusValue?.Dispose();
2457             url?.Dispose();
2458             map?.Dispose();
2459             mapValue?.Dispose();
2460         }
2461
2462         private void SetBackgroundImageBorder(Rectangle value)
2463         {
2464             bool isEmptyValue = Rectangle.IsNullOrZero(value);
2465
2466             var backgroundImageBorder = isEmptyValue ? null : value;
2467
2468             (backgroundExtraData ?? (backgroundExtraData = new BackgroundExtraData())).BackgroundImageBorder = backgroundImageBorder;
2469
2470             if (isEmptyValue)
2471             {
2472                 return;
2473             }
2474
2475             PropertyMap map = Background;
2476
2477             if (map.Empty())
2478             {
2479                 return;
2480             }
2481
2482             map[NpatchImageVisualProperty.Border] = new PropertyValue(backgroundImageBorder);
2483
2484             int visualType = 0;
2485
2486             map.Find(Visual.Property.Type)?.Get(out visualType);
2487
2488             if (visualType == (int)Visual.Type.Image)
2489             {
2490                 map[Visual.Property.Type] = new PropertyValue((int)Visual.Type.NPatch);
2491             }
2492
2493             Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)SwigCPtr, View.Property.BACKGROUND, new PropertyValue(map));
2494         }
2495
2496         private void SetBackgroundColor(Color value)
2497         {
2498             if (value == null)
2499             {
2500                 return;
2501             }
2502
2503             if (backgroundExtraData == null)
2504             {
2505                 var background = new PropertyValue(value);
2506                 Object.SetProperty(SwigCPtr, Property.BACKGROUND, background);
2507                 background?.Dispose();
2508                 return;
2509             }
2510
2511             var map = new PropertyMap();
2512             var colorType = new PropertyValue((int)Visual.Type.Color);
2513             var mixColor = new PropertyValue(value);
2514             var cornerRadiusValue = backgroundExtraData.CornerRadius == null ? new PropertyValue() : new PropertyValue(backgroundExtraData.CornerRadius);
2515             var cornerRadius = new PropertyValue(cornerRadiusValue);
2516             var cornerRadiusPolicy = new PropertyValue((int)(backgroundExtraData.CornerRadiusPolicy));
2517             var borderlineWidth = new PropertyValue(backgroundExtraData.BorderlineWidth);
2518             var borderlineColorValue = backgroundExtraData.BorderlineColor == null ? new PropertyValue(Color.Black) : new PropertyValue(backgroundExtraData.BorderlineColor);
2519             var borderlineColor = new PropertyValue(borderlineColorValue);
2520             var borderlineOffset = new PropertyValue(backgroundExtraData.BorderlineOffset);
2521
2522             map.Add(Visual.Property.Type, colorType)
2523                .Add(ColorVisualProperty.MixColor, mixColor)
2524                .Add(Visual.Property.CornerRadius, cornerRadius)
2525                .Add(Visual.Property.CornerRadiusPolicy, cornerRadiusPolicy)
2526                .Add(Visual.Property.BorderlineWidth, borderlineWidth)
2527                .Add(Visual.Property.BorderlineColor, borderlineColor)
2528                .Add(Visual.Property.BorderlineOffset, borderlineOffset);
2529
2530             var mapValue = new PropertyValue(map);
2531             Object.SetProperty(SwigCPtr, Property.BACKGROUND, mapValue);
2532
2533             borderlineOffset?.Dispose();
2534             borderlineColor?.Dispose();
2535             borderlineColorValue?.Dispose();
2536             borderlineWidth?.Dispose();
2537             cornerRadiusPolicy?.Dispose();
2538             cornerRadius?.Dispose();
2539             cornerRadiusValue?.Dispose();
2540             mixColor?.Dispose();
2541             colorType?.Dispose();
2542             map?.Dispose();
2543             mapValue?.Dispose();
2544         }
2545
2546         private void SetColor(Color value)
2547         {
2548             if (value == null)
2549             {
2550                 return;
2551             }
2552
2553             Interop.ActorInternal.SetColor(SwigCPtr, value.SwigCPtr);
2554             if (NDalicPINVOKE.SWIGPendingException.Pending)
2555                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
2556         }
2557
2558         private void SetOpacity(float? value)
2559         {
2560             if (value == null)
2561             {
2562                 return;
2563             }
2564
2565             Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)SwigCPtr, View.Property.OPACITY, new Tizen.NUI.PropertyValue((float)value));
2566         }
2567
2568         private void SetShadow(ShadowBase value)
2569         {
2570             Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)SwigCPtr, View.Property.SHADOW, value == null ? new PropertyValue() : value.ToPropertyValue(this));
2571         }
2572     }
2573 }