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