Merge remote-tracking branch 'origin/master' into tizen
[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         /// EnableControlState property
1892         /// </summary>
1893         [EditorBrowsable(EditorBrowsableState.Never)]
1894         public static readonly BindableProperty EnableControlStateProperty = BindableProperty.Create(nameof(EnableControlState), typeof(bool), typeof(View), false, propertyChanged: (bindable, oldValue, newValue) =>
1895         {
1896             var view = (View)bindable;
1897             bool prev = view.enableControlState;
1898             view.enableControlState = (bool)newValue;
1899
1900             if (prev != view.enableControlState)
1901             {
1902                 if (prev)
1903                 {
1904                     view.TouchEvent -= view.EmptyOnTouch;
1905                 }
1906                 else
1907                 {
1908                     view.TouchEvent += view.EmptyOnTouch;
1909                 }
1910             }
1911         },
1912         defaultValueCreator: (bindable) =>
1913         {
1914             return ((View)bindable).enableControlState;
1915         });
1916
1917         /// <summary>
1918         /// ThemeChangeSensitive property
1919         /// </summary>
1920         [EditorBrowsable(EditorBrowsableState.Never)]
1921         public static readonly BindableProperty ThemeChangeSensitiveProperty = BindableProperty.Create(nameof(ThemeChangeSensitive), typeof(bool), typeof(View), false, propertyChanged: (bindable, oldValue, newValue) =>
1922         {
1923             var view = (View)bindable;
1924
1925             if (view.ThemeChangeSensitive == (bool)newValue) return;
1926
1927             if (view.themeData == null) view.themeData = new ThemeData();
1928
1929             view.themeData.ThemeChangeSensitive = (bool)newValue;
1930
1931             if (!view.themeData.ThemeApplied) return;
1932
1933             if (view.themeData.ThemeChangeSensitive && !view.themeData.ListeningThemeChangeEvent)
1934             {
1935                 view.themeData.ListeningThemeChangeEvent = true;
1936                 ThemeManager.ThemeChangedInternal.Add(view.OnThemeChanged);
1937             }
1938             else if (!view.themeData.ThemeChangeSensitive && view.themeData.ListeningThemeChangeEvent)
1939             {
1940                 view.themeData.ListeningThemeChangeEvent = false;
1941                 ThemeManager.ThemeChangedInternal.Remove(view.OnThemeChanged);
1942             }
1943         },
1944         defaultValueCreator: (bindable) =>
1945         {
1946             return ((View)bindable).themeData?.ThemeChangeSensitive ?? ThemeManager.ApplicationThemeChangeSensitive;
1947         });
1948
1949         /// <summary>
1950         /// AccessibilityNameProperty
1951         /// </summary>
1952         [EditorBrowsable(EditorBrowsableState.Never)]
1953         public static readonly BindableProperty AccessibilityNameProperty = BindableProperty.Create(nameof(AccessibilityName), typeof(string), typeof(View), string.Empty, propertyChanged: (bindable, oldValue, newValue) =>
1954         {
1955             var view = (View)bindable;
1956             if (newValue != null)
1957             {
1958                 Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.AccessibilityName, new Tizen.NUI.PropertyValue((string)newValue));
1959             }
1960         },
1961         defaultValueCreator: (bindable) =>
1962         {
1963             var view = (View)bindable;
1964
1965             string temp;
1966             Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.AccessibilityName).Get(out temp);
1967             return temp;
1968         });
1969
1970         /// <summary>
1971         /// AccessibilityDescriptionProperty
1972         /// </summary>
1973         [EditorBrowsable(EditorBrowsableState.Never)]
1974         public static readonly BindableProperty AccessibilityDescriptionProperty = BindableProperty.Create(nameof(AccessibilityDescription), typeof(string), typeof(View), string.Empty, propertyChanged: (bindable, oldValue, newValue) =>
1975         {
1976             var view = (View)bindable;
1977             if (newValue != null)
1978             {
1979                 Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.AccessibilityDescription, new Tizen.NUI.PropertyValue((string)newValue));
1980             }
1981         },
1982         defaultValueCreator: (bindable) =>
1983         {
1984             var view = (View)bindable;
1985
1986             string temp;
1987             Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.AccessibilityDescription).Get(out temp);
1988             return temp;
1989         });
1990
1991         /// <summary>
1992         /// AccessibilityTranslationDomainProperty
1993         /// </summary>
1994         [EditorBrowsable(EditorBrowsableState.Never)]
1995         public static readonly BindableProperty AccessibilityTranslationDomainProperty = BindableProperty.Create(nameof(AccessibilityTranslationDomain), typeof(string), typeof(View), string.Empty, propertyChanged: (bindable, oldValue, newValue) =>
1996         {
1997             var view = (View)bindable;
1998             if (newValue != null)
1999             {
2000                 Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.AccessibilityTranslationDomain, new Tizen.NUI.PropertyValue((string)newValue));
2001             }
2002         },
2003         defaultValueCreator: (bindable) =>
2004         {
2005             var view = (View)bindable;
2006
2007             string temp;
2008             Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.AccessibilityTranslationDomain).Get(out temp);
2009             return temp;
2010         });
2011
2012         /// <summary>
2013         /// AccessibilityRoleProperty
2014         /// </summary>
2015         [EditorBrowsable(EditorBrowsableState.Never)]
2016         public static readonly BindableProperty AccessibilityRoleProperty = BindableProperty.Create(nameof(AccessibilityRole), typeof(Role), typeof(View), default(Role), propertyChanged: (bindable, oldValue, newValue) =>
2017         {
2018             var view = (View)bindable;
2019             if (newValue != null)
2020             {
2021                 Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.AccessibilityRole, new Tizen.NUI.PropertyValue((int)newValue));
2022             }
2023         },
2024         defaultValueCreator: (bindable) =>
2025         {
2026             var view = (View)bindable;
2027
2028             int temp = 0;
2029             Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.AccessibilityRole).Get(out temp);
2030             return (Role)temp;
2031         });
2032
2033         /// <summary>
2034         /// AccessibilityHighlightableProperty
2035         /// </summary>
2036         [EditorBrowsable(EditorBrowsableState.Never)]
2037         public static readonly BindableProperty AccessibilityHighlightableProperty = BindableProperty.Create(nameof(AccessibilityHighlightable), typeof(bool), typeof(View), false, propertyChanged: (bindable, oldValue, newValue) =>
2038         {
2039             var view = (View)bindable;
2040             if (newValue != null)
2041             {
2042                 Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.AccessibilityHighlightable, new Tizen.NUI.PropertyValue((bool)newValue));
2043             }
2044         },
2045         defaultValueCreator: (bindable) =>
2046         {
2047             var view = (View)bindable;
2048             bool temp = false;
2049             Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.AccessibilityHighlightable).Get(out temp);
2050             return temp;
2051         });
2052
2053         /// <summary>
2054         /// AccessibilityHiddenProperty
2055         /// </summary>
2056         [EditorBrowsable(EditorBrowsableState.Never)]
2057         public static readonly BindableProperty AccessibilityHiddenProperty = BindableProperty.Create(nameof(AccessibilityHidden), typeof(bool), typeof(View), false, propertyChanged: (bindable, oldValue, newValue) =>
2058         {
2059             var view = (View)bindable;
2060             if (newValue != null)
2061             {
2062                 Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.AccessibilityHidden, new Tizen.NUI.PropertyValue((bool)newValue));
2063             }
2064         },
2065         defaultValueCreator: (bindable) =>
2066         {
2067             var view = (View)bindable;
2068             bool temp = false;
2069             Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.AccessibilityHidden).Get(out temp);
2070             return temp;
2071         });
2072
2073         /// <summary>
2074         /// ExcludeLayoutingProperty
2075         /// </summary>
2076         [EditorBrowsable(EditorBrowsableState.Never)]
2077         public static readonly BindableProperty ExcludeLayoutingProperty = BindableProperty.Create(nameof(ExcludeLayouting), typeof(bool), typeof(View), false, propertyChanged: (bindable, oldValue, newValue) =>
2078         {
2079             var instance = (Tizen.NUI.BaseComponents.View)bindable;
2080             if (newValue != null)
2081             {
2082                 instance.InternalExcludeLayouting = (bool)newValue;
2083             }
2084         },
2085         defaultValueCreator: (bindable) =>
2086         {
2087             var instance = (Tizen.NUI.BaseComponents.View)bindable;
2088             return instance.InternalExcludeLayouting;
2089         });
2090
2091         /// <summary>
2092         /// TooltipTextProperty
2093         /// </summary>
2094         [EditorBrowsable(EditorBrowsableState.Never)]
2095         public static readonly BindableProperty TooltipTextProperty = BindableProperty.Create(nameof(TooltipText), typeof(string), typeof(View), string.Empty, propertyChanged: (bindable, oldValue, newValue) =>
2096         {
2097             var instance = (Tizen.NUI.BaseComponents.View)bindable;
2098             if (newValue != null)
2099             {
2100                 instance.InternalTooltipText = (string)newValue;
2101             }
2102         },
2103         defaultValueCreator: (bindable) =>
2104         {
2105             var instance = (Tizen.NUI.BaseComponents.View)bindable;
2106             return instance.InternalTooltipText;
2107         });
2108
2109         /// <summary>
2110         /// PositionUsesAnchorPointProperty
2111         /// </summary>
2112         [EditorBrowsable(EditorBrowsableState.Never)]
2113         public static readonly BindableProperty PositionUsesAnchorPointProperty = BindableProperty.Create(nameof(PositionUsesAnchorPoint), typeof(bool), typeof(View), false, propertyChanged: (bindable, oldValue, newValue) =>
2114         {
2115             var instance = (Tizen.NUI.BaseComponents.View)bindable;
2116             if (newValue != null)
2117             {
2118                 instance.InternalPositionUsesAnchorPoint = (bool)newValue;
2119             }
2120         },
2121         defaultValueCreator: (bindable) =>
2122         {
2123             var instance = (Tizen.NUI.BaseComponents.View)bindable;
2124             return instance.InternalPositionUsesAnchorPoint;
2125         });
2126
2127         /// <summary>
2128         /// AnchorPointProperty
2129         /// </summary>
2130         [EditorBrowsable(EditorBrowsableState.Never)]
2131         public static readonly BindableProperty AnchorPointProperty = BindableProperty.Create(nameof(AnchorPoint), typeof(Tizen.NUI.Position), typeof(View), null, propertyChanged: (bindable, oldValue, newValue) =>
2132         {
2133             var instance = (Tizen.NUI.BaseComponents.View)bindable;
2134             if (newValue != null)
2135             {
2136                 instance.InternalAnchorPoint = (Tizen.NUI.Position)newValue;
2137             }
2138         },
2139         defaultValueCreator: (bindable) =>
2140         {
2141             var instance = (Tizen.NUI.BaseComponents.View)bindable;
2142             return instance.InternalAnchorPoint;
2143         });
2144
2145         /// <summary>
2146         /// WidthSpecificationProperty
2147         /// </summary>
2148         [EditorBrowsable(EditorBrowsableState.Never)]
2149         public static readonly BindableProperty WidthSpecificationProperty = BindableProperty.Create(nameof(WidthSpecification), typeof(int), typeof(View), 0, propertyChanged: (bindable, oldValue, newValue) =>
2150         {
2151             var instance = (Tizen.NUI.BaseComponents.View)bindable;
2152             if (newValue != null)
2153             {
2154                 instance.InternalWidthSpecification = (int)newValue;
2155             }
2156         },
2157         defaultValueCreator: (bindable) =>
2158         {
2159             var instance = (Tizen.NUI.BaseComponents.View)bindable;
2160             return instance.InternalWidthSpecification;
2161         });
2162
2163         /// <summary>
2164         /// HeightSpecificationProperty
2165         /// </summary>
2166         [EditorBrowsable(EditorBrowsableState.Never)]
2167         public static readonly BindableProperty HeightSpecificationProperty = BindableProperty.Create(nameof(HeightSpecification), typeof(int), typeof(View), 0, propertyChanged: (bindable, oldValue, newValue) =>
2168         {
2169             var instance = (Tizen.NUI.BaseComponents.View)bindable;
2170             if (newValue != null)
2171             {
2172                 instance.InternalHeightSpecification = (int)newValue;
2173             }
2174         },
2175         defaultValueCreator: (bindable) =>
2176         {
2177             var instance = (Tizen.NUI.BaseComponents.View)bindable;
2178             return instance.InternalHeightSpecification;
2179         });
2180
2181         /// <summary>
2182         /// LayoutTransitionProperty
2183         /// </summary>
2184         [EditorBrowsable(EditorBrowsableState.Never)]
2185         public static readonly BindableProperty LayoutTransitionProperty = BindableProperty.Create(nameof(LayoutTransition), typeof(Tizen.NUI.LayoutTransition), typeof(View), null, propertyChanged: (bindable, oldValue, newValue) =>
2186         {
2187             var instance = (Tizen.NUI.BaseComponents.View)bindable;
2188             if (newValue != null)
2189             {
2190                 instance.InternalLayoutTransition = (Tizen.NUI.LayoutTransition)newValue;
2191             }
2192         },
2193         defaultValueCreator: (bindable) =>
2194         {
2195             var instance = (Tizen.NUI.BaseComponents.View)bindable;
2196             return instance.InternalLayoutTransition;
2197         });
2198
2199         /// <summary>
2200         /// PaddingEXProperty
2201         /// </summary>
2202         [EditorBrowsable(EditorBrowsableState.Never)]
2203         public static readonly BindableProperty PaddingEXProperty = BindableProperty.Create(nameof(PaddingEX), typeof(Tizen.NUI.Extents), typeof(View), null, propertyChanged: (bindable, oldValue, newValue) =>
2204         {
2205             var instance = (Tizen.NUI.BaseComponents.View)bindable;
2206             if (newValue != null)
2207             {
2208                 instance.InternalPaddingEX = (Tizen.NUI.Extents)newValue;
2209             }
2210         },
2211         defaultValueCreator: (bindable) =>
2212         {
2213             var instance = (Tizen.NUI.BaseComponents.View)bindable;
2214             return instance.InternalPaddingEX;
2215         });
2216
2217         /// <summary>
2218         /// LayoutProperty
2219         /// </summary>
2220         [EditorBrowsable(EditorBrowsableState.Never)]
2221         public static readonly BindableProperty LayoutProperty = BindableProperty.Create(nameof(Layout), typeof(Tizen.NUI.LayoutItem), typeof(View), null, propertyChanged: (bindable, oldValue, newValue) =>
2222         {
2223             var instance = (Tizen.NUI.BaseComponents.View)bindable;
2224             if (newValue != null)
2225             {
2226                 instance.InternalLayout = (Tizen.NUI.LayoutItem)newValue;
2227             }
2228         },
2229         defaultValueCreator: (bindable) =>
2230         {
2231             var instance = (Tizen.NUI.BaseComponents.View)bindable;
2232             return instance.InternalLayout;
2233         });
2234
2235         /// <summary>
2236         /// BackgroundImageSynchronosLoadingProperty
2237         /// </summary>
2238         [EditorBrowsable(EditorBrowsableState.Never)]
2239         public static readonly BindableProperty BackgroundImageSynchronosLoadingProperty = BindableProperty.Create(nameof(BackgroundImageSynchronosLoading), typeof(bool), typeof(View), false, propertyChanged: (bindable, oldValue, newValue) =>
2240         {
2241             var instance = (Tizen.NUI.BaseComponents.View)bindable;
2242             if (newValue != null)
2243             {
2244                 instance.InternalBackgroundImageSynchronosLoading = (bool)newValue;
2245             }
2246         },
2247         defaultValueCreator: (bindable) =>
2248         {
2249             var instance = (Tizen.NUI.BaseComponents.View)bindable;
2250             return instance.InternalBackgroundImageSynchronosLoading;
2251         });
2252
2253         /// <summary>
2254         /// BackgroundImageSynchronousLoadingProperty
2255         /// </summary>
2256         [EditorBrowsable(EditorBrowsableState.Never)]
2257         public static readonly BindableProperty BackgroundImageSynchronousLoadingProperty = BindableProperty.Create(nameof(BackgroundImageSynchronousLoading), typeof(bool), typeof(View), false, propertyChanged: (bindable, oldValue, newValue) =>
2258         {
2259             var instance = (Tizen.NUI.BaseComponents.View)bindable;
2260             if (newValue != null)
2261             {
2262                 instance.InternalBackgroundImageSynchronousLoading = (bool)newValue;
2263             }
2264         },
2265         defaultValueCreator: (bindable) =>
2266         {
2267             var instance = (Tizen.NUI.BaseComponents.View)bindable;
2268             return instance.InternalBackgroundImageSynchronousLoading;
2269         });
2270
2271         /// <summary>
2272         /// EnableControlStatePropagationProperty
2273         /// </summary>
2274         [EditorBrowsable(EditorBrowsableState.Never)]
2275         public static readonly BindableProperty EnableControlStatePropagationProperty = BindableProperty.Create(nameof(EnableControlStatePropagation), typeof(bool), typeof(View), false, propertyChanged: (bindable, oldValue, newValue) =>
2276         {
2277             var instance = (Tizen.NUI.BaseComponents.View)bindable;
2278             if (newValue != null)
2279             {
2280                 instance.InternalEnableControlStatePropagation = (bool)newValue;
2281             }
2282         },
2283         defaultValueCreator: (bindable) =>
2284         {
2285             var instance = (Tizen.NUI.BaseComponents.View)bindable;
2286             return instance.InternalEnableControlStatePropagation;
2287         });
2288
2289         /// <summary>
2290         /// GrabTouchAfterLeaveProperty
2291         /// </summary>
2292         [EditorBrowsable(EditorBrowsableState.Never)]
2293         public static readonly BindableProperty GrabTouchAfterLeaveProperty = BindableProperty.Create(nameof(GrabTouchAfterLeave), typeof(bool), typeof(View), false, propertyChanged: (bindable, oldValue, newValue) =>
2294         {
2295             var instance = (Tizen.NUI.BaseComponents.View)bindable;
2296             if (newValue != null)
2297             {
2298                 instance.InternalGrabTouchAfterLeave = (bool)newValue;
2299             }
2300         },
2301         defaultValueCreator: (bindable) =>
2302         {
2303             var instance = (Tizen.NUI.BaseComponents.View)bindable;
2304             return instance.InternalGrabTouchAfterLeave;
2305         });
2306
2307         /// <summary>
2308         /// BlendEquationProperty
2309         /// </summary>
2310         [EditorBrowsable(EditorBrowsableState.Never)]
2311         public static readonly BindableProperty BlendEquationProperty = BindableProperty.Create(nameof(BlendEquation), typeof(BlendEquationType), typeof(View), default(BlendEquationType), propertyChanged: (bindable, oldValue, newValue) =>
2312         {
2313             var instance = (Tizen.NUI.BaseComponents.View)bindable;
2314             if (newValue != null)
2315             {
2316                 instance.InternalBlendEquation = (Tizen.NUI.BlendEquationType)newValue;
2317             }
2318         },
2319         defaultValueCreator: (bindable) =>
2320         {
2321             var instance = (Tizen.NUI.BaseComponents.View)bindable;
2322             return instance.InternalBlendEquation;
2323         });
2324
2325         /// <summary>
2326         /// TransitionOptionsProperty
2327         /// </summary>
2328         [EditorBrowsable(EditorBrowsableState.Never)]
2329         public static readonly BindableProperty TransitionOptionsProperty = BindableProperty.Create(nameof(TransitionOptions), typeof(TransitionOptions), typeof(View), default(TransitionOptions), propertyChanged: (bindable, oldValue, newValue) =>
2330         {
2331             var instance = (Tizen.NUI.BaseComponents.View)bindable;
2332             if (newValue != null)
2333             {
2334                 instance.InternalTransitionOptions = (Tizen.NUI.TransitionOptions)newValue;
2335             }
2336         },
2337         defaultValueCreator: (bindable) =>
2338         {
2339             var instance = (Tizen.NUI.BaseComponents.View)bindable;
2340             return instance.InternalTransitionOptions;
2341         });
2342
2343         /// <summary>
2344         /// AutomationIdProperty
2345         /// </summary>
2346         [EditorBrowsable(EditorBrowsableState.Never)]
2347         public static readonly BindableProperty AutomationIdProperty = BindableProperty.Create(nameof(AutomationId), typeof(string), typeof(View), string.Empty, propertyChanged: (bindable, oldValue, newValue) =>
2348         {
2349             var instance = (Tizen.NUI.BaseComponents.View)bindable;
2350             if (newValue != null)
2351             {
2352                 instance.InternalAutomationId = (string)newValue;
2353             }
2354         },
2355         defaultValueCreator: (bindable) =>
2356         {
2357             var instance = (Tizen.NUI.BaseComponents.View)bindable;
2358             return instance.InternalAutomationId;
2359         });
2360
2361         /// <summary>
2362         /// TouchAreaOffsetProperty
2363         /// </summary>
2364         [EditorBrowsable(EditorBrowsableState.Never)]
2365         public static readonly BindableProperty TouchAreaOffsetProperty = BindableProperty.Create(nameof(TouchAreaOffset), typeof(Offset), typeof(View), default(Offset), propertyChanged: (bindable, oldValue, newValue) =>
2366         {
2367             var instance = (Tizen.NUI.BaseComponents.View)bindable;
2368             if (newValue != null)
2369             {
2370                 instance.InternalTouchAreaOffset = (Tizen.NUI.Offset)newValue;
2371             }
2372         },
2373         defaultValueCreator: (bindable) =>
2374         {
2375             var instance = (Tizen.NUI.BaseComponents.View)bindable;
2376             return instance.InternalTouchAreaOffset;
2377         });
2378
2379         private void SetBackgroundImage(string value)
2380         {
2381             if (string.IsNullOrEmpty(value))
2382             {
2383                 var empty = new PropertyValue();
2384                 // Clear background
2385                 Object.SetProperty(SwigCPtr, Property.BACKGROUND, empty);
2386                 empty.Dispose();
2387                 return;
2388             }
2389
2390             if (value.StartsWith("*Resource*"))
2391             {
2392                 string resource = Tizen.Applications.Application.Current.DirectoryInfo.Resource;
2393                 value = value.Replace("*Resource*", resource);
2394             }
2395
2396             if (backgroundExtraData == null)
2397             {
2398                 var propertyValue = new PropertyValue(value);
2399                 Object.SetProperty(SwigCPtr, Property.BACKGROUND, propertyValue);
2400                 BackgroundImageSynchronousLoading = backgroundImageSynchronousLoading;
2401                 propertyValue?.Dispose();
2402                 return;
2403             }
2404
2405             var map = new PropertyMap();
2406             var url = new PropertyValue(value);
2407             var cornerRadiusValue = backgroundExtraData.CornerRadius == null ? new PropertyValue() : new PropertyValue(backgroundExtraData.CornerRadius);
2408             var cornerRadius = new PropertyValue(cornerRadiusValue);
2409             var cornerRadiusPolicy = new PropertyValue((int)(backgroundExtraData.CornerRadiusPolicy));
2410             var borderlineWidth = new PropertyValue(backgroundExtraData.BorderlineWidth);
2411             var borderlineColorValue = backgroundExtraData.BorderlineColor == null ? new PropertyValue(Color.Black) : new PropertyValue(backgroundExtraData.BorderlineColor);
2412             var borderlineColor = new PropertyValue(borderlineColorValue);
2413             var borderlineOffset = new PropertyValue(backgroundExtraData.BorderlineOffset);
2414             var synchronousLoading = new PropertyValue(backgroundImageSynchronousLoading);
2415             var npatchType = new PropertyValue((int)Visual.Type.NPatch);
2416             var border = (backgroundExtraData.BackgroundImageBorder != null) ? new PropertyValue(backgroundExtraData.BackgroundImageBorder) : null;
2417             var imageType = new PropertyValue((int)Visual.Type.Image);
2418
2419             map.Add(ImageVisualProperty.URL, url)
2420                .Add(Visual.Property.CornerRadius, cornerRadius)
2421                .Add(Visual.Property.CornerRadiusPolicy, cornerRadiusPolicy)
2422                .Add(Visual.Property.BorderlineWidth, borderlineWidth)
2423                .Add(Visual.Property.BorderlineColor, borderlineColor)
2424                .Add(Visual.Property.BorderlineOffset, borderlineOffset)
2425                .Add(ImageVisualProperty.SynchronousLoading, synchronousLoading);
2426
2427             if (backgroundExtraData.BackgroundImageBorder != null)
2428             {
2429                 map.Add(Visual.Property.Type, npatchType)
2430                    .Add(NpatchImageVisualProperty.Border, border);
2431             }
2432             else
2433             {
2434                 map.Add(Visual.Property.Type, imageType);
2435             }
2436
2437             var mapValue = new PropertyValue(map);
2438             Object.SetProperty(SwigCPtr, Property.BACKGROUND, mapValue);
2439
2440             imageType?.Dispose();
2441             border?.Dispose();
2442             npatchType?.Dispose();
2443             synchronousLoading?.Dispose();
2444             borderlineOffset?.Dispose();
2445             borderlineColor?.Dispose();
2446             borderlineColorValue?.Dispose();
2447             borderlineWidth?.Dispose();
2448             cornerRadiusPolicy?.Dispose();
2449             cornerRadius?.Dispose();
2450             cornerRadiusValue?.Dispose();
2451             url?.Dispose();
2452             map?.Dispose();
2453             mapValue?.Dispose();
2454         }
2455
2456         private void SetBackgroundImageBorder(Rectangle value)
2457         {
2458             bool isEmptyValue = Rectangle.IsNullOrZero(value);
2459
2460             var backgroundImageBorder = isEmptyValue ? null : value;
2461
2462             (backgroundExtraData ?? (backgroundExtraData = new BackgroundExtraData())).BackgroundImageBorder = backgroundImageBorder;
2463
2464             if (isEmptyValue)
2465             {
2466                 return;
2467             }
2468
2469             PropertyMap map = Background;
2470
2471             if (map.Empty())
2472             {
2473                 return;
2474             }
2475
2476             map[NpatchImageVisualProperty.Border] = new PropertyValue(backgroundImageBorder);
2477
2478             int visualType = 0;
2479
2480             map.Find(Visual.Property.Type)?.Get(out visualType);
2481
2482             if (visualType == (int)Visual.Type.Image)
2483             {
2484                 map[Visual.Property.Type] = new PropertyValue((int)Visual.Type.NPatch);
2485             }
2486
2487             Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)SwigCPtr, View.Property.BACKGROUND, new PropertyValue(map));
2488         }
2489
2490         private void SetBackgroundColor(Color value)
2491         {
2492             if (value == null)
2493             {
2494                 return;
2495             }
2496
2497             if (backgroundExtraData == null)
2498             {
2499                 var background = new PropertyValue(value);
2500                 Object.SetProperty(SwigCPtr, Property.BACKGROUND, background);
2501                 background?.Dispose();
2502                 return;
2503             }
2504
2505             var map = new PropertyMap();
2506             var colorType = new PropertyValue((int)Visual.Type.Color);
2507             var mixColor = new PropertyValue(value);
2508             var cornerRadiusValue = backgroundExtraData.CornerRadius == null ? new PropertyValue() : new PropertyValue(backgroundExtraData.CornerRadius);
2509             var cornerRadius = new PropertyValue(cornerRadiusValue);
2510             var cornerRadiusPolicy = new PropertyValue((int)(backgroundExtraData.CornerRadiusPolicy));
2511             var borderlineWidth = new PropertyValue(backgroundExtraData.BorderlineWidth);
2512             var borderlineColorValue = backgroundExtraData.BorderlineColor == null ? new PropertyValue(Color.Black) : new PropertyValue(backgroundExtraData.BorderlineColor);
2513             var borderlineColor = new PropertyValue(borderlineColorValue);
2514             var borderlineOffset = new PropertyValue(backgroundExtraData.BorderlineOffset);
2515
2516             map.Add(Visual.Property.Type, colorType)
2517                .Add(ColorVisualProperty.MixColor, mixColor)
2518                .Add(Visual.Property.CornerRadius, cornerRadius)
2519                .Add(Visual.Property.CornerRadiusPolicy, cornerRadiusPolicy)
2520                .Add(Visual.Property.BorderlineWidth, borderlineWidth)
2521                .Add(Visual.Property.BorderlineColor, borderlineColor)
2522                .Add(Visual.Property.BorderlineOffset, borderlineOffset);
2523
2524             var mapValue = new PropertyValue(map);
2525             Object.SetProperty(SwigCPtr, Property.BACKGROUND, mapValue);
2526
2527             borderlineOffset?.Dispose();
2528             borderlineColor?.Dispose();
2529             borderlineColorValue?.Dispose();
2530             borderlineWidth?.Dispose();
2531             cornerRadiusPolicy?.Dispose();
2532             cornerRadius?.Dispose();
2533             cornerRadiusValue?.Dispose();
2534             mixColor?.Dispose();
2535             colorType?.Dispose();
2536             map?.Dispose();
2537             mapValue?.Dispose();
2538         }
2539
2540         private void SetColor(Color value)
2541         {
2542             if (value == null)
2543             {
2544                 return;
2545             }
2546
2547             Interop.ActorInternal.SetColor(SwigCPtr, value.SwigCPtr);
2548             if (NDalicPINVOKE.SWIGPendingException.Pending)
2549                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
2550         }
2551
2552         private void SetOpacity(float? value)
2553         {
2554             if (value == null)
2555             {
2556                 return;
2557             }
2558
2559             Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)SwigCPtr, View.Property.OPACITY, new Tizen.NUI.PropertyValue((float)value));
2560         }
2561
2562         private void SetShadow(ShadowBase value)
2563         {
2564             Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)SwigCPtr, View.Property.SHADOW, value == null ? new PropertyValue() : value.ToPropertyValue(this));
2565         }
2566     }
2567 }