1499912a8645917ed07a5e3c96a17e11e7b28fdf
[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 #if NUI_PROPERTY_CHANGE_1
44                 Interop.Actor.InternalSetPropertyString(view.SwigCPtr, View.Property.StyleName, styleName);
45 #else
46                 Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.StyleName, new Tizen.NUI.PropertyValue(styleName));
47 #endif
48                 view.styleName = styleName;
49
50                 if (string.IsNullOrEmpty(styleName)) return;
51
52                 var style = ThemeManager.GetUpdateStyleWithoutClone(styleName);
53
54                 if (style == null) return;
55
56                 view.ApplyStyle(style);
57                 view.SetThemeApplied();
58             }
59         }),
60         defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
61         {
62             var view = (View)bindable;
63
64             if (!string.IsNullOrEmpty(view.styleName)) return view.styleName;
65
66 #if NUI_PROPERTY_CHANGE_1
67             return Interop.Actor.InternalGetPropertyString(view.SwigCPtr, View.Property.StyleName);
68 #else
69             string temp;
70             Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.StyleName).Get(out temp);
71             return temp;
72 #endif            
73         }));
74
75         /// <summary>
76         /// KeyInputFocusProperty
77         /// </summary>
78         [EditorBrowsable(EditorBrowsableState.Never)]
79         public static readonly BindableProperty KeyInputFocusProperty = BindableProperty.Create(nameof(KeyInputFocus), typeof(bool), typeof(View), false, propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
80         {
81             var view = (View)bindable;
82             if (newValue != null)
83             {
84 #if NUI_PROPERTY_CHANGE_1
85                 Interop.Actor.InternalSetPropertyBool(view.SwigCPtr, View.Property.KeyInputFocus, (bool)newValue);
86 #else
87                 Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.KeyInputFocus, new Tizen.NUI.PropertyValue((bool)newValue));
88 #endif                
89             }
90         }),
91         defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
92         {
93             var view = (View)bindable;
94 #if NUI_PROPERTY_CHANGE_1
95             return Interop.Actor.InternalGetPropertyBool(view.SwigCPtr, View.Property.KeyInputFocus);
96 #else
97             bool temp = false;
98             Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.KeyInputFocus).Get(out temp);
99             return temp;
100 #endif            
101         }));
102
103         /// <summary>
104         /// BackgroundColorProperty
105         /// </summary>
106         [EditorBrowsable(EditorBrowsableState.Never)]
107         public static readonly BindableProperty BackgroundColorProperty = BindableProperty.Create(nameof(BackgroundColor), typeof(Color), typeof(View), null,
108             propertyChanged: (bindable, oldValue, newValue) =>
109             {
110                 var view = (View)bindable;
111
112                 view.themeData?.selectorData?.ClearBackground(view);
113
114                 if (newValue is Selector<Color> selector)
115                 {
116                     if (selector.HasAll()) view.SetBackgroundColor(selector.All);
117                     else view.EnsureSelectorData().BackgroundColor = new TriggerableSelector<Color>(view, selector, view.SetBackgroundColor, true);
118                 }
119                 else
120                 {
121                     view.SetBackgroundColor((Color)newValue);
122                 }
123             },
124             defaultValueCreator: (bindable) =>
125             {
126                 var view = (View)bindable;
127
128                 if (view.internalBackgroundColor == null)
129                 {
130                     view.internalBackgroundColor = new Color(view.OnBackgroundColorChanged, 0, 0, 0, 0);
131                 }
132
133                 PropertyMap background = view.Background;
134                 int visualType = 0;
135                 background.Find(Visual.Property.Type)?.Get(out visualType);
136                 if (visualType == (int)Visual.Type.Color)
137                 {
138                     background.Find(ColorVisualProperty.MixColor)?.Get(view.internalBackgroundColor);
139                 }
140
141                 background?.Dispose();
142                 background = null;
143
144                 return view.internalBackgroundColor;
145             }
146         );
147
148         /// <summary>
149         /// ColorProperty
150         /// </summary>
151         [EditorBrowsable(EditorBrowsableState.Never)]
152         public static readonly BindableProperty ColorProperty = BindableProperty.Create(nameof(Color), typeof(Color), typeof(View), null,
153             propertyChanged: (bindable, oldValue, newValue) =>
154             {
155                 var view = (View)bindable;
156
157                 view.themeData?.selectorData?.Color?.Reset(view);
158
159                 if (newValue is Selector<Color> selector)
160                 {
161                     if (selector.HasAll()) view.SetColor(selector.All);
162                     else view.EnsureSelectorData().Color = new TriggerableSelector<Color>(view, selector, view.SetColor, true);
163                 }
164                 else
165                 {
166                     view.SetColor((Color)newValue);
167                 }
168             },
169             defaultValueCreator: (bindable) =>
170             {
171                 var view = (View)bindable;
172 #if NUI_PROPERTY_CHANGE_1
173                 if (view.internalColor == null)
174                 {
175                     view.internalColor = new Color(view.OnColorChanged, 0, 0, 0, 0);
176                 }
177                 Interop.Actor.InternalRetrievingPropertyVector4(view.SwigCPtr, View.Property.COLOR, view.internalColor.SwigCPtr);
178 #else
179                 var tmpProperty = view.GetProperty(View.Property.COLOR);
180
181                 if (view.internalColor == null)
182                 {
183                     view.internalColor = new Color(view.OnColorChanged, 0, 0, 0, 0);
184                 }
185
186                 tmpProperty?.Get(view.internalColor);
187                 tmpProperty?.Dispose();
188 #endif
189                 return view.internalColor;
190             }
191         );
192
193         /// <summary>
194         /// ColorRedProperty
195         /// </summary>
196         [EditorBrowsable(EditorBrowsableState.Never)]
197         public static readonly BindableProperty ColorRedProperty = BindableProperty.Create(nameof(ColorRed), typeof(float), typeof(View), default(float),
198             propertyChanged: (bindable, oldValue, newValue) =>
199             {
200                 var view = (View)bindable;
201                 view.SetColorRed((float?)newValue);
202             },
203             defaultValueCreator: (bindable) =>
204             {
205                 var view = (View)bindable;
206 #if NUI_PROPERTY_CHANGE_1
207                 return Interop.Actor.InternalGetPropertyFloat(view.SwigCPtr, View.Property.ColorRed);
208 #else
209                 float temp = 0.0f;
210                 Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.ColorRed).Get(out temp);
211                 return temp;
212 #endif                
213             }
214         );
215
216         /// <summary>
217         /// ColorGreenProperty
218         /// </summary>
219         [EditorBrowsable(EditorBrowsableState.Never)]
220         public static readonly BindableProperty ColorGreenProperty = BindableProperty.Create(nameof(ColorGreen), typeof(float), typeof(View), default(float),
221             propertyChanged: (bindable, oldValue, newValue) =>
222             {
223                 var view = (View)bindable;
224                 view.SetColorGreen((float?)newValue);
225             },
226             defaultValueCreator: (bindable) =>
227             {
228                 var view = (View)bindable;
229 #if NUI_PROPERTY_CHANGE_1
230                 return Interop.Actor.InternalGetPropertyFloat(view.SwigCPtr, View.Property.ColorGreen);
231 #else
232                 float temp = 0.0f;
233                 Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.ColorGreen).Get(out temp);
234                 return temp;
235 #endif                
236             }
237         );
238
239         /// <summary>
240         /// ColorBlueProperty
241         /// </summary>
242         [EditorBrowsable(EditorBrowsableState.Never)]
243         public static readonly BindableProperty ColorBlueProperty = BindableProperty.Create(nameof(ColorBlue), typeof(float), typeof(View), default(float),
244             propertyChanged: (bindable, oldValue, newValue) =>
245             {
246                 var view = (View)bindable;
247                 view.SetColorBlue((float?)newValue);
248             },
249             defaultValueCreator: (bindable) =>
250             {
251                 var view = (View)bindable;
252 #if NUI_PROPERTY_CHANGE_1
253                 return Interop.Actor.InternalGetPropertyFloat(view.SwigCPtr, View.Property.ColorBlue);
254 #else
255                 float temp = 0.0f;
256                 Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.ColorBlue).Get(out temp);
257                 return temp;
258 #endif
259             }
260         );
261
262         /// <summary> BackgroundImageProperty </summary>
263         [EditorBrowsable(EditorBrowsableState.Never)]
264         public static readonly BindableProperty BackgroundImageProperty = BindableProperty.Create(nameof(BackgroundImage), typeof(string), typeof(View), default(string),
265             propertyChanged: (bindable, oldValue, newValue) =>
266             {
267                 var view = (View)bindable;
268
269                 if (view.themeData?.selectorData != null)
270                 {
271                     view.themeData.selectorData.BackgroundColor?.Reset(view);
272                     view.themeData.selectorData.BackgroundImage?.Reset(view);
273                 }
274
275                 if (newValue is Selector<string> selector)
276                 {
277                     if (selector.HasAll()) view.SetBackgroundImage(selector.All);
278                     else view.EnsureSelectorData().BackgroundImage = new TriggerableSelector<string>(view, selector, view.SetBackgroundImage, true);
279                 }
280                 else
281                 {
282                     view.SetBackgroundImage((string)newValue);
283                 }
284             },
285             defaultValueCreator: (bindable) =>
286             {
287                 var view = (View)bindable;
288                 string backgroundImage = "";
289
290                 PropertyMap background = view.Background;
291                 background.Find(ImageVisualProperty.URL)?.Get(out backgroundImage);
292
293                 background.Dispose();
294                 background = null;
295
296                 return backgroundImage;
297             }
298         );
299
300
301         /// <summary>BackgroundImageBorderProperty</summary>
302         [EditorBrowsable(EditorBrowsableState.Never)]
303         public static readonly BindableProperty BackgroundImageBorderProperty = BindableProperty.Create(nameof(BackgroundImageBorder), typeof(Rectangle), typeof(View), default(Rectangle), propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
304         {
305             var view = (View)bindable;
306
307             view.themeData?.selectorData?.BackgroundImageBorder?.Reset(view);
308
309             if (newValue is Selector<Rectangle> selector)
310             {
311                 if (selector.HasAll()) view.SetBackgroundImageBorder(selector.All);
312                 else view.EnsureSelectorData().BackgroundImageBorder = new TriggerableSelector<Rectangle>(view, selector, view.SetBackgroundImageBorder, true);
313             }
314             else
315             {
316                 view.SetBackgroundImageBorder((Rectangle)newValue);
317             }
318         }),
319         defaultValueCreator: (bindable) =>
320         {
321             var view = (View)bindable;
322
323             return view.backgroundExtraData?.BackgroundImageBorder;
324         });
325
326         /// <summary>
327         /// BackgroundProperty
328         /// </summary>
329         [EditorBrowsable(EditorBrowsableState.Never)]
330         public static readonly BindableProperty BackgroundProperty = BindableProperty.Create(nameof(Background), typeof(PropertyMap), typeof(View), null,
331             propertyChanged: (bindable, oldValue, newValue) =>
332             {
333                 var view = (View)bindable;
334                 if (newValue != null)
335                 {
336                     var propertyValue = new PropertyValue((PropertyMap)newValue);
337                     Object.SetProperty(view.SwigCPtr, Property.BACKGROUND, propertyValue);
338
339                     view.backgroundExtraData = null;
340
341                     propertyValue.Dispose();
342                     propertyValue = null;
343                 }
344             },
345             defaultValueCreator: (bindable) =>
346             {
347                 var view = (View)bindable;
348                 PropertyMap tmp = new PropertyMap();
349                 var propertyValue = Object.GetProperty(view.SwigCPtr, Property.BACKGROUND);
350                 propertyValue.Get(tmp);
351                 propertyValue.Dispose();
352                 propertyValue = null;
353                 return tmp;
354             }
355         );
356
357         /// <summary>
358         /// StateProperty
359         /// </summary>
360         [EditorBrowsable(EditorBrowsableState.Never)]
361         public static readonly BindableProperty StateProperty = BindableProperty.Create(nameof(State), typeof(States), typeof(View), States.Normal, propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
362         {
363             var view = (View)bindable;
364             if (newValue != null)
365             {
366 #if NUI_PROPERTY_CHANGE_1
367                 Interop.Actor.InternalSetPropertyInt(view.SwigCPtr, View.Property.STATE, (int)newValue);
368 #else
369                 Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.STATE, new Tizen.NUI.PropertyValue((int)newValue));
370 #endif                
371             }
372         }),
373         defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
374         {
375             var view = (View)bindable;
376             int temp = 0;
377 #if NUI_PROPERTY_CHANGE_1
378             temp = Interop.Actor.InternalGetPropertyInt(view.SwigCPtr, View.Property.STATE);
379 #else
380             if (Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.STATE).Get(out temp) == false)
381             {
382                 NUILog.Error("State get error!");
383             }
384 #endif            
385             switch (temp)
386             {
387                 case 0: return States.Normal;
388                 case 1: return States.Focused;
389                 case 2: return States.Disabled;
390                 default: return States.Normal;
391             }
392         }));
393
394         /// <summary>
395         /// SubStateProperty
396         /// </summary>
397         [EditorBrowsable(EditorBrowsableState.Never)]
398         public static readonly BindableProperty SubStateProperty = BindableProperty.Create(nameof(SubState), typeof(States), typeof(View), States.Normal, propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
399         {
400             var view = (View)bindable;
401             string valueToString = "";
402             if (newValue != null)
403             {
404                 valueToString = ((States)newValue).GetDescription();
405 #if NUI_PROPERTY_CHANGE_1
406                 Interop.Actor.InternalSetPropertyString(view.SwigCPtr, View.Property.SubState, valueToString);
407 #else
408                 Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.SubState, new Tizen.NUI.PropertyValue(valueToString));
409 #endif                
410             }
411         }),
412         defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
413         {
414             var view = (View)bindable;
415             string temp;
416 #if NUI_PROPERTY_CHANGE_1
417             temp = Interop.Actor.InternalGetPropertyString(view.SwigCPtr, View.Property.SubState);
418 #else
419             if (Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.SubState).Get(out temp) == false)
420             {
421                 NUILog.Error("subState get error!");
422             }
423 #endif            
424             return temp.GetValueByDescription<States>();
425         }));
426
427         /// <summary>
428         /// TooltipProperty
429         /// </summary>
430         [EditorBrowsable(EditorBrowsableState.Never)]
431         public static readonly BindableProperty TooltipProperty = BindableProperty.Create(nameof(Tooltip), typeof(PropertyMap), typeof(View), null, propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
432         {
433             var view = (View)bindable;
434             if (newValue != null)
435             {
436                 Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.TOOLTIP, new Tizen.NUI.PropertyValue((PropertyMap)newValue));
437             }
438         }),
439         defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
440         {
441             var view = (View)bindable;
442             Tizen.NUI.PropertyMap temp = new Tizen.NUI.PropertyMap();
443             Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.TOOLTIP).Get(temp);
444             return temp;
445         }));
446
447         /// <summary>
448         /// FlexProperty
449         /// </summary>
450         [EditorBrowsable(EditorBrowsableState.Never)]
451         public static readonly BindableProperty FlexProperty = BindableProperty.Create(nameof(Flex), typeof(float), typeof(View), default(float), propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
452         {
453             var view = (View)bindable;
454             if (newValue != null)
455             {
456 #if NUI_PROPERTY_CHANGE_1
457                 Interop.Actor.InternalSetPropertyFloat(view.SwigCPtr, FlexContainer.ChildProperty.FLEX, (float)newValue);
458 #else
459                 Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, FlexContainer.ChildProperty.FLEX, new Tizen.NUI.PropertyValue((float)newValue));
460 #endif
461             }
462         }),
463         defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
464         {
465             var view = (View)bindable;
466 #if NUI_PROPERTY_CHANGE_1
467             return Interop.Actor.InternalGetPropertyFloat(view.SwigCPtr, FlexContainer.ChildProperty.FLEX);
468 #else
469             float temp = 0.0f;
470             Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, FlexContainer.ChildProperty.FLEX).Get(out temp);
471             return temp;
472 #endif
473         }));
474
475         /// <summary>
476         /// AlignSelfProperty
477         /// </summary>
478         [EditorBrowsable(EditorBrowsableState.Never)]
479         public static readonly BindableProperty AlignSelfProperty = BindableProperty.Create(nameof(AlignSelf), typeof(int), typeof(View), default(int), propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
480         {
481             var view = (View)bindable;
482             if (newValue != null)
483             {
484 #if NUI_PROPERTY_CHANGE_1
485                 Interop.Actor.InternalSetPropertyInt(view.SwigCPtr, FlexContainer.ChildProperty.AlignSelf, (int)newValue);
486 #else
487                 Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, FlexContainer.ChildProperty.AlignSelf, new Tizen.NUI.PropertyValue((int)newValue));
488 #endif
489             }
490         }),
491         defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
492         {
493             var view = (View)bindable;
494 #if NUI_PROPERTY_CHANGE_1
495             return Interop.Actor.InternalGetPropertyInt(view.SwigCPtr, FlexContainer.ChildProperty.AlignSelf);
496 #else
497             int temp = 0;
498             Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, FlexContainer.ChildProperty.AlignSelf).Get(out temp);
499             return temp;
500 #endif
501         }));
502
503         /// <summary>
504         /// FlexMarginProperty
505         /// </summary>
506         [EditorBrowsable(EditorBrowsableState.Never)]
507         public static readonly BindableProperty FlexMarginProperty = BindableProperty.Create(nameof(FlexMargin), typeof(Vector4), typeof(View), null, propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
508         {
509             var view = (View)bindable;
510             if (newValue != null)
511             {
512 #if NUI_PROPERTY_CHANGE_1
513                 Interop.Actor.InternalSetPropertyVector4(view.SwigCPtr, FlexContainer.ChildProperty.FlexMargin, ((Vector4)newValue).SwigCPtr);
514 #else
515                 Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, FlexContainer.ChildProperty.FlexMargin, new Tizen.NUI.PropertyValue((Vector4)newValue));
516 #endif
517             }
518         }),
519         defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
520         {
521             var view = (View)bindable;
522             Vector4 temp = new Vector4(0.0f, 0.0f, 0.0f, 0.0f);
523 #if NUI_PROPERTY_CHANGE_1
524             Interop.Actor.InternalRetrievingPropertyVector4(view.SwigCPtr, FlexContainer.ChildProperty.FlexMargin, temp.SwigCPtr);
525 #else
526             Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, FlexContainer.ChildProperty.FlexMargin).Get(temp);
527 #endif
528             return temp;
529         }));
530
531         /// <summary>
532         /// CellIndexProperty
533         /// </summary>
534         [EditorBrowsable(EditorBrowsableState.Never)]
535         public static readonly BindableProperty CellIndexProperty = BindableProperty.Create(nameof(CellIndex), typeof(Vector2), typeof(View), null,
536             propertyChanged: (bindable, oldValue, newValue) =>
537             {
538                 var view = (View)bindable;
539                 if (newValue != null)
540                 {
541 #if NUI_PROPERTY_CHANGE_1
542                     Interop.Actor.InternalSetPropertyVector2(view.SwigCPtr, TableView.ChildProperty.CellIndex, ((Vector2)newValue).SwigCPtr);
543 #else
544                     var tmp = new PropertyValue((Vector2)newValue);
545                     Object.SetProperty(view.SwigCPtr, TableView.ChildProperty.CellIndex, tmp);
546                     tmp.Dispose();
547 #endif
548                 }
549             },
550             defaultValueCreator: (bindable) =>
551             {
552                 var view = (View)bindable;
553 #if NUI_PROPERTY_CHANGE_1
554                 if (view.internalCellIndex == null)
555                 {
556                     view.internalCellIndex = new Vector2(view.OnCellIndexChanged, 0, 0);
557                 }
558                 Interop.Actor.InternalRetrievingPropertyVector2(view.SwigCPtr, TableView.ChildProperty.CellIndex, view.internalCellIndex.SwigCPtr);
559 #else
560                 if (view.internalCellIndex == null)
561                 {
562                     view.internalCellIndex = new Vector2(view.OnCellIndexChanged, 0, 0);
563                 }
564
565                 var tmp = Object.GetProperty(view.SwigCPtr, TableView.ChildProperty.CellIndex);
566                 tmp?.Get(view.internalCellIndex);
567                 tmp?.Dispose();
568 #endif
569                 return view.internalCellIndex;
570             }
571         );
572
573         /// <summary>
574         /// RowSpanProperty
575         /// </summary>
576         [EditorBrowsable(EditorBrowsableState.Never)]
577         public static readonly BindableProperty RowSpanProperty = BindableProperty.Create(nameof(RowSpan), typeof(float), typeof(View), default(float), propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
578         {
579             var view = (View)bindable;
580             if (newValue != null)
581             {
582 #if NUI_PROPERTY_CHANGE_1
583                 Interop.Actor.InternalSetPropertyFloat(view.SwigCPtr, TableView.ChildProperty.RowSpan, (float)newValue);
584 #else
585                 Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, TableView.ChildProperty.RowSpan, new Tizen.NUI.PropertyValue((float)newValue));
586 #endif
587             }
588         }),
589         defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
590         {
591             var view = (View)bindable;
592 #if NUI_PROPERTY_CHANGE_1
593             return Interop.Actor.InternalGetPropertyFloat(view.SwigCPtr, TableView.ChildProperty.RowSpan);
594 #else
595             float temp = 0.0f;
596             Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, TableView.ChildProperty.RowSpan).Get(out temp);
597             return temp;
598 #endif
599         }));
600
601         /// <summary>
602         /// ColumnSpanProperty
603         /// </summary>
604         [EditorBrowsable(EditorBrowsableState.Never)]
605         public static readonly BindableProperty ColumnSpanProperty = BindableProperty.Create(nameof(ColumnSpan), typeof(float), typeof(View), default(float), propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
606         {
607             var view = (View)bindable;
608             if (newValue != null)
609             {
610 #if NUI_PROPERTY_CHANGE_1
611                 Interop.Actor.InternalSetPropertyFloat(view.SwigCPtr, TableView.ChildProperty.ColumnSpan, (float)newValue);
612 #else
613                 Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, TableView.ChildProperty.ColumnSpan, new Tizen.NUI.PropertyValue((float)newValue));
614 #endif
615             }
616         }),
617         defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
618         {
619             var view = (View)bindable;
620 #if NUI_PROPERTY_CHANGE_1
621             return Interop.Actor.InternalGetPropertyFloat(view.SwigCPtr, TableView.ChildProperty.ColumnSpan);
622 #else
623             float temp = 0.0f;
624             Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, TableView.ChildProperty.ColumnSpan).Get(out temp);
625             return temp;
626 #endif
627         }));
628
629         /// <summary>
630         /// CellHorizontalAlignmentProperty
631         /// </summary>
632         [EditorBrowsable(EditorBrowsableState.Never)]
633         public static readonly BindableProperty CellHorizontalAlignmentProperty = BindableProperty.Create(nameof(CellHorizontalAlignment), typeof(HorizontalAlignmentType), typeof(View), HorizontalAlignmentType.Left, propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
634         {
635             var view = (View)bindable;
636             string valueToString = "";
637
638             if (newValue != null)
639             {
640                 valueToString = ((HorizontalAlignmentType)newValue).GetDescription();
641 #if NUI_PROPERTY_CHANGE_1
642                 Interop.Actor.InternalSetPropertyString(view.SwigCPtr, TableView.ChildProperty.CellHorizontalAlignment, valueToString);
643 #else
644                 Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, TableView.ChildProperty.CellHorizontalAlignment, new Tizen.NUI.PropertyValue(valueToString));
645 #endif
646             }
647         }),
648         defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
649         {
650             var view = (View)bindable;
651             string temp;
652 #if NUI_PROPERTY_CHANGE_1
653             temp = Interop.Actor.InternalGetPropertyString(view.SwigCPtr, TableView.ChildProperty.CellHorizontalAlignment);
654 #else
655             if (Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, TableView.ChildProperty.CellHorizontalAlignment).Get(out temp) == false)
656             {
657                 NUILog.Error("CellHorizontalAlignment get error!");
658             }
659 #endif
660             return temp.GetValueByDescription<HorizontalAlignmentType>();
661         }));
662
663         /// <summary>
664         /// CellVerticalAlignmentProperty
665         /// </summary>
666         [EditorBrowsable(EditorBrowsableState.Never)]
667         public static readonly BindableProperty CellVerticalAlignmentProperty = BindableProperty.Create(nameof(CellVerticalAlignment), typeof(VerticalAlignmentType), typeof(View), VerticalAlignmentType.Top, propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
668         {
669             var view = (View)bindable;
670             string valueToString = "";
671
672             if (newValue != null)
673             {
674                 valueToString = ((VerticalAlignmentType)newValue).GetDescription();
675 #if NUI_PROPERTY_CHANGE_1
676                 Interop.Actor.InternalSetPropertyString(view.SwigCPtr, TableView.ChildProperty.CellVerticalAlignment, valueToString);
677 #else
678                 Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, TableView.ChildProperty.CellVerticalAlignment, new Tizen.NUI.PropertyValue(valueToString));
679 #endif
680             }
681         }),
682         defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
683         {
684             var view = (View)bindable;
685             string temp;
686 #if NUI_PROPERTY_CHANGE_1
687             temp = Interop.Actor.InternalGetPropertyString(view.SwigCPtr, TableView.ChildProperty.CellVerticalAlignment);
688 #else
689             Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, TableView.ChildProperty.CellVerticalAlignment).Get(out temp);
690             {
691                 NUILog.Error("CellVerticalAlignment get error!");
692             }
693 #endif
694             return temp.GetValueByDescription<VerticalAlignmentType>();
695         }));
696
697         /// <summary>
698         /// "DO not use this, that will be deprecated. Use 'View Weight' instead of BindableProperty"
699         /// This needs to be hidden as inhouse API until all applications using it have been updated.  Do not make public.
700         /// </summary>
701         [EditorBrowsable(EditorBrowsableState.Never)]
702         public static readonly BindableProperty WeightProperty = BindableProperty.Create(nameof(Weight), typeof(float), typeof(View), default(float), propertyChanged: (bindable, oldValue, newValue) =>
703         {
704             var view = (View)bindable;
705             if (newValue != null)
706             {
707                 view.Weight = (float)newValue;
708             }
709         },
710
711         defaultValueCreator: (bindable) =>
712         {
713             var view = (View)bindable;
714             return view.Weight;
715         });
716
717         /// <summary>
718         /// LeftFocusableViewProperty
719         /// </summary>
720         [EditorBrowsable(EditorBrowsableState.Never)]
721         public static readonly BindableProperty LeftFocusableViewProperty = BindableProperty.Create(nameof(View.LeftFocusableView), typeof(View), typeof(View), null, propertyChanged: (bindable, oldValue, newValue) =>
722         {
723             var view = (View)bindable;
724             if (newValue != null) { view.LeftFocusableViewId = (int)(newValue as View)?.GetId(); }
725             else { view.LeftFocusableViewId = -1; }
726         },
727         defaultValueCreator: (bindable) =>
728         {
729             var view = (View)bindable;
730             if (view.LeftFocusableViewId >= 0) { return view.ConvertIdToView((uint)view.LeftFocusableViewId); }
731             return null;
732         });
733
734         /// <summary>
735         /// RightFocusableViewProperty
736         /// </summary>
737         [EditorBrowsable(EditorBrowsableState.Never)]
738         public static readonly BindableProperty RightFocusableViewProperty = BindableProperty.Create(nameof(View.RightFocusableView), typeof(View), typeof(View), null, propertyChanged: (bindable, oldValue, newValue) =>
739         {
740             var view = (View)bindable;
741             if (newValue != null) { view.RightFocusableViewId = (int)(newValue as View)?.GetId(); }
742             else { view.RightFocusableViewId = -1; }
743         },
744         defaultValueCreator: (bindable) =>
745         {
746             var view = (View)bindable;
747             if (view.RightFocusableViewId >= 0) { return view.ConvertIdToView((uint)view.RightFocusableViewId); }
748             return null;
749         });
750
751         /// <summary>
752         /// UpFocusableViewProperty
753         /// </summary>
754         [EditorBrowsable(EditorBrowsableState.Never)]
755         public static readonly BindableProperty UpFocusableViewProperty = BindableProperty.Create(nameof(View.UpFocusableView), typeof(View), typeof(View), null, propertyChanged: (bindable, oldValue, newValue) =>
756         {
757             var view = (View)bindable;
758             if (newValue != null) { view.UpFocusableViewId = (int)(newValue as View)?.GetId(); }
759             else { view.UpFocusableViewId = -1; }
760         },
761         defaultValueCreator: (bindable) =>
762         {
763             var view = (View)bindable;
764             if (view.UpFocusableViewId >= 0) { return view.ConvertIdToView((uint)view.UpFocusableViewId); }
765             return null;
766         });
767
768         /// <summary>
769         /// DownFocusableViewProperty
770         /// </summary>
771         [EditorBrowsable(EditorBrowsableState.Never)]
772         public static readonly BindableProperty DownFocusableViewProperty = BindableProperty.Create(nameof(View.DownFocusableView), typeof(View), typeof(View), null, propertyChanged: (bindable, oldValue, newValue) =>
773         {
774             var view = (View)bindable;
775             if (newValue != null) { view.DownFocusableViewId = (int)(newValue as View)?.GetId(); }
776             else { view.DownFocusableViewId = -1; }
777         },
778         defaultValueCreator: (bindable) =>
779         {
780             var view = (View)bindable;
781             if (view.DownFocusableViewId >= 0) { return view.ConvertIdToView((uint)view.DownFocusableViewId); }
782             return null;
783         });
784
785         /// <summary>
786         /// ClockwiseFocusableViewProperty
787         /// </summary>
788         [EditorBrowsable(EditorBrowsableState.Never)]
789         public static readonly BindableProperty ClockwiseFocusableViewProperty = BindableProperty.Create(nameof(View.ClockwiseFocusableView), typeof(View), typeof(View), null, propertyChanged: (bindable, oldValue, newValue) =>
790         {
791             var view = (View)bindable;
792             if (newValue != null && (newValue is View)) { view.ClockwiseFocusableViewId = (int)(newValue as View)?.GetId(); }
793             else { view.ClockwiseFocusableViewId = -1; }
794         },
795         defaultValueCreator: (bindable) =>
796         {
797             var view = (View)bindable;
798             if (view.ClockwiseFocusableViewId >= 0) { return view.ConvertIdToView((uint)view.ClockwiseFocusableViewId); }
799             return null;
800         });
801
802         /// <summary>
803         /// CounterClockwiseFocusableViewProperty
804         /// </summary>
805         [EditorBrowsable(EditorBrowsableState.Never)]
806         public static readonly BindableProperty CounterClockwiseFocusableViewProperty = BindableProperty.Create(nameof(View.CounterClockwiseFocusableView), typeof(View), typeof(View), null, propertyChanged: (bindable, oldValue, newValue) =>
807         {
808             var view = (View)bindable;
809             if (newValue != null && (newValue is View)) { view.CounterClockwiseFocusableViewId = (int)(newValue as View)?.GetId(); }
810             else { view.CounterClockwiseFocusableViewId = -1; }
811         },
812         defaultValueCreator: (bindable) =>
813         {
814             var view = (View)bindable;
815             if (view.CounterClockwiseFocusableViewId >= 0) { return view.ConvertIdToView((uint)view.CounterClockwiseFocusableViewId); }
816             return null;
817         });
818
819         /// <summary>
820         /// FocusableProperty
821         /// </summary>
822         [EditorBrowsable(EditorBrowsableState.Never)]
823         public static readonly BindableProperty FocusableProperty = BindableProperty.Create(nameof(Focusable), typeof(bool), typeof(View), false, propertyChanged: (bindable, oldValue, newValue) =>
824         {
825             var view = (View)bindable;
826             if (newValue != null) { view.SetKeyboardFocusable((bool)newValue); }
827         },
828         defaultValueCreator: (bindable) =>
829         {
830             var view = (View)bindable;
831             return view.IsKeyboardFocusable();
832         });
833
834         /// <summary>
835         /// FocusableChildrenProperty
836         /// </summary>
837         [EditorBrowsable(EditorBrowsableState.Never)]
838         public static readonly BindableProperty FocusableChildrenProperty = BindableProperty.Create(nameof(FocusableChildren), typeof(bool), typeof(View), true, propertyChanged: (bindable, oldValue, newValue) =>
839         {
840             var view = (View)bindable;
841             if (newValue != null) { view.SetKeyboardFocusableChildren((bool)newValue); }
842         },
843         defaultValueCreator: (bindable) =>
844         {
845             var view = (View)bindable;
846             return view.AreChildrenKeyBoardFocusable();
847         });
848
849         /// <summary>
850         /// FocusableInTouchProperty
851         /// </summary>
852         [EditorBrowsable(EditorBrowsableState.Never)]
853         public static readonly BindableProperty FocusableInTouchProperty = BindableProperty.Create(nameof(FocusableInTouch), typeof(bool), typeof(View), false, propertyChanged: (bindable, oldValue, newValue) =>
854         {
855             var view = (View)bindable;
856             if (newValue != null) { view.SetFocusableInTouch((bool)newValue); }
857         },
858         defaultValueCreator: (bindable) =>
859         {
860             var view = (View)bindable;
861             return view.IsFocusableInTouch();
862         });
863
864         /// <summary>
865         /// Size2DProperty
866         /// </summary>
867         [EditorBrowsable(EditorBrowsableState.Never)]
868         public static readonly BindableProperty Size2DProperty = BindableProperty.Create(nameof(Size2D), typeof(Size2D), typeof(View), null,
869             propertyChanged: (bindable, oldValue, newValue) =>
870             {
871                 var view = (View)bindable;
872                 if (newValue != null)
873                 {
874                     // Size property setter is only used by user.
875                     // Framework code uses SetSize() instead of Size property setter.
876                     // Size set by user is returned by GetUserSize2D() for SuggestedMinimumWidth/Height.
877                     // SuggestedMinimumWidth/Height is used by Layout calculation.
878                     view.userSizeWidth = ((Size2D)newValue).Width;
879                     view.userSizeHeight = ((Size2D)newValue).Height;
880
881 #if NUI_PROPERTY_CHANGE_1
882                     Interop.Actor.InternalSetPropertyVector2ActualVector3(view.SwigCPtr, View.Property.SIZE, ((Size2D)newValue).SwigCPtr);
883 #else
884                     view.SetSize(((Size2D)newValue).Width, ((Size2D)newValue).Height, 0);
885 #endif
886                     view.widthPolicy = ((Size2D)newValue).Width;
887                     view.heightPolicy = ((Size2D)newValue).Height;
888
889                     view.layout?.RequestLayout();
890                 }
891             },
892             defaultValueCreator: (bindable) =>
893             {
894                 var view = (View)bindable;
895 #if NUI_PROPERTY_CHANGE_1
896                 if (view.internalSize2D == null)
897                 {
898                     view.internalSize2D = new Size2D(view.OnSize2DChanged, 0, 0);
899                 }
900                 Interop.Actor.InternalRetrievingPropertyVector2ActualVector3(view.SwigCPtr, View.Property.SIZE, view.internalSize2D.SwigCPtr);
901 #else
902                 var tmp = new Size(0, 0, 0);
903                 var tmpProperty = Object.GetProperty(view.SwigCPtr, Property.SIZE);
904                 tmpProperty?.Get(tmp);
905
906                 if (view.internalSize2D == null)
907                 {
908                     view.internalSize2D = new Size2D(view.OnSize2DChanged, (int)tmp?.Width, (int)tmp?.Height);
909                 }
910                 else
911                 {
912                     if (view.internalSize2D.SwigCPtr.Handle != global::System.IntPtr.Zero)
913                     {
914                         Interop.Vector2.WidthSet(view.internalSize2D.SwigCPtr, (float)tmp?.Width);
915                         Interop.Vector2.HeightSet(view.internalSize2D.SwigCPtr, (float)tmp?.Height);
916                     }
917                 }
918
919                 tmpProperty?.Dispose();
920                 tmp?.Dispose();
921 #endif
922                 return view.internalSize2D;
923             }
924         );
925
926         /// <summary>
927         /// OpacityProperty
928         /// </summary>
929         [EditorBrowsable(EditorBrowsableState.Never)]
930         public static readonly BindableProperty OpacityProperty = BindableProperty.Create(nameof(Opacity), typeof(float), typeof(View), default(float), propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
931         {
932             var view = (View)bindable;
933
934             view.themeData?.selectorData?.Opacity?.Reset(view);
935
936             if (newValue is Selector<float?> selector)
937             {
938                 if (selector.HasAll()) view.SetOpacity(selector.All);
939                 else view.EnsureSelectorData().Opacity = new TriggerableSelector<float?>(view, selector, view.SetOpacity, true);
940             }
941             else
942             {
943                 view.SetOpacity((float?)newValue);
944             }
945         }),
946         defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
947         {
948             var view = (View)bindable;
949 #if NUI_PROPERTY_CHANGE_1
950             return Interop.Actor.InternalGetPropertyFloat(view.SwigCPtr, View.Property.OPACITY);
951 #else
952             float temp = 0.0f;
953             Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.OPACITY).Get(out temp);
954             return temp;
955 #endif
956         }));
957
958         /// <summary>
959         /// Position2DProperty
960         /// </summary>
961         [EditorBrowsable(EditorBrowsableState.Never)]
962         public static readonly BindableProperty Position2DProperty = BindableProperty.Create(nameof(Position2D), typeof(Position2D), typeof(View), null,
963             propertyChanged: (bindable, oldValue, newValue) =>
964             {
965                 var view = (View)bindable;
966                 if (newValue != null)
967                 {
968 #if NUI_PROPERTY_CHANGE_1
969                     Interop.Actor.InternalSetPropertyVector2ActualVector3(view.SwigCPtr, View.Property.POSITION, ((Position2D)newValue).SwigCPtr);
970 #else
971                     view.SetPosition(((Position2D)newValue).X, ((Position2D)newValue).Y, 0);
972 #endif
973                 }
974             },
975             defaultValueCreator: (bindable) =>
976             {
977                 var view = (View)bindable;
978 #if NUI_PROPERTY_CHANGE_1
979                 if (view.internalPosition2D == null)
980                 {
981                     view.internalPosition2D = new Position2D(view.OnPosition2DChanged, 0, 0);
982                 }
983                 Interop.Actor.InternalRetrievingPropertyVector2ActualVector3(view.SwigCPtr, View.Property.POSITION, view.internalPosition2D.SwigCPtr);
984 #else
985                 var tmp = new Position(0, 0, 0);
986                 var tmpProperty = Object.GetProperty(view.SwigCPtr, Property.POSITION);
987                 tmpProperty?.Get(tmp);
988
989                 if (view.internalPosition2D == null)
990                 {
991                     view.internalPosition2D = new Position2D(view.OnPosition2DChanged, (int)tmp?.X, (int)tmp?.Y);
992                 }
993                 else
994                 {
995                     if (view.internalPosition2D.SwigCPtr.Handle != IntPtr.Zero)
996                     {
997                         Interop.Vector2.XSet(view.internalPosition2D.SwigCPtr, (float)tmp?.X);
998                         Interop.Vector2.YSet(view.internalPosition2D.SwigCPtr, (float)tmp?.Y);
999                     }
1000                 }
1001
1002                 tmpProperty?.Dispose();
1003                 tmp?.Dispose();
1004 #endif
1005                 return view.internalPosition2D;
1006             }
1007         );
1008
1009         /// <summary>
1010         /// PositionUsesPivotPointProperty
1011         /// </summary>
1012         [EditorBrowsable(EditorBrowsableState.Never)]
1013         public static readonly BindableProperty PositionUsesPivotPointProperty = BindableProperty.Create(nameof(PositionUsesPivotPoint), typeof(bool), typeof(View), true, propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
1014         {
1015             var view = (View)bindable;
1016             if (newValue != null)
1017             {
1018 #if NUI_PROPERTY_CHANGE_1
1019                 Interop.Actor.InternalSetPropertyBool(view.SwigCPtr, View.Property.PositionUsesAnchorPoint, (bool)newValue);
1020 #else
1021                 Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.PositionUsesAnchorPoint, new Tizen.NUI.PropertyValue((bool)newValue));
1022 #endif
1023             }
1024         }),
1025         defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
1026         {
1027             var view = (View)bindable;
1028 #if NUI_PROPERTY_CHANGE_1
1029             return Interop.Actor.InternalGetPropertyBool(view.SwigCPtr, View.Property.PositionUsesAnchorPoint);
1030 #else
1031             bool temp = false;
1032             Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.PositionUsesAnchorPoint).Get(out temp);
1033             return temp;
1034 #endif
1035         }));
1036
1037         /// <summary>
1038         /// SiblingOrderProperty
1039         /// </summary>
1040         [EditorBrowsable(EditorBrowsableState.Never)]
1041         public static readonly BindableProperty SiblingOrderProperty = BindableProperty.Create(nameof(SiblingOrder), typeof(int), typeof(View), default(int), propertyChanged: (bindable, oldValue, newValue) =>
1042         {
1043             var view = (View)bindable;
1044             int value;
1045             if (newValue != null)
1046             {
1047                 value = (int)newValue;
1048                 if (value < 0)
1049                 {
1050                     NUILog.Error("SiblingOrder should be bigger than 0 or equal to 0.");
1051                     return;
1052                 }
1053                 var siblings = view.GetParent()?.Children;
1054                 if (siblings != null)
1055                 {
1056                     int currentOrder = siblings.IndexOf(view);
1057                     if (value != currentOrder)
1058                     {
1059                         if (value == 0) { view.LowerToBottom(); }
1060                         else if (value < siblings.Count - 1)
1061                         {
1062                             if (value > currentOrder) { view.RaiseAbove(siblings[value]); }
1063                             else { view.LowerBelow(siblings[value]); }
1064                         }
1065                         else { view.RaiseToTop(); }
1066                     }
1067                 }
1068             }
1069         },
1070         defaultValueCreator: (bindable) =>
1071         {
1072             var view = (View)bindable;
1073             var parentChildren = view.GetParent()?.Children;
1074             int currentOrder = 0;
1075             if (parentChildren != null)
1076             {
1077                 currentOrder = parentChildren.IndexOf(view);
1078
1079                 if (currentOrder < 0) { return 0; }
1080                 else if (currentOrder < parentChildren.Count) { return currentOrder; }
1081             }
1082
1083             return 0;
1084         });
1085
1086         /// <summary>
1087         /// ParentOriginProperty
1088         /// </summary>
1089         [EditorBrowsable(EditorBrowsableState.Never)]
1090         public static readonly BindableProperty ParentOriginProperty = BindableProperty.Create(nameof(ParentOrigin), typeof(Position), typeof(View), null, propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
1091         {
1092             var view = (View)bindable;
1093             if (newValue != null)
1094             {
1095 #if NUI_PROPERTY_CHANGE_1
1096                 Interop.Actor.InternalSetPropertyVector3(view.SwigCPtr, View.Property.ParentOrigin, ((Position)newValue).SwigCPtr);
1097 #else
1098                 Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.ParentOrigin, new Tizen.NUI.PropertyValue((Position)newValue));
1099 #endif
1100             }
1101         }),
1102         defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
1103         {
1104             var view = (View)bindable;
1105             Position temp = new Position(0.0f, 0.0f, 0.0f);
1106 #if NUI_PROPERTY_CHANGE_1
1107             Interop.Actor.InternalRetrievingPropertyVector3(view.SwigCPtr, View.Property.ParentOrigin, temp.SwigCPtr);
1108 #else
1109
1110             Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.ParentOrigin).Get(temp);
1111 #endif
1112             return temp;
1113         })
1114         );
1115
1116         /// <summary>
1117         /// PivotPointProperty
1118         /// </summary>
1119         [EditorBrowsable(EditorBrowsableState.Never)]
1120         public static readonly BindableProperty PivotPointProperty = BindableProperty.Create(nameof(PivotPoint), typeof(Position), typeof(View), null,
1121             propertyChanged: (bindable, oldValue, newValue) =>
1122             {
1123                 var view = (View)bindable;
1124                 if (newValue != null)
1125                 {
1126                     view.SetAnchorPoint((Position)newValue);
1127                 }
1128             },
1129             defaultValueCreator: (bindable) =>
1130             {
1131                 var view = (View)bindable;
1132 #if NUI_PROPERTY_CHANGE_1
1133                 if (view.internalPivotPoint == null)
1134                 {
1135                     view.internalPivotPoint = new Position(view.OnPivotPointChanged, 0, 0, 0);
1136                 }
1137                 Interop.Actor.InternalRetrievingPropertyVector3(view.SwigCPtr, View.Property.AnchorPoint, view.internalPivotPoint.SwigCPtr);
1138 #else
1139                 if (view.internalPivotPoint == null)
1140                 {
1141                     view.internalPivotPoint = new Position(view.OnPivotPointChanged, 0, 0, 0);
1142                 }
1143                 var tmp = Object.GetProperty(view.SwigCPtr, Property.AnchorPoint);
1144                 tmp?.Get(view.internalPivotPoint);
1145                 tmp?.Dispose();
1146 #endif
1147                 return view.internalPivotPoint;
1148             }
1149         );
1150
1151         /// <summary>
1152         /// SizeWidthProperty
1153         /// </summary>
1154         [EditorBrowsable(EditorBrowsableState.Never)]
1155         public static readonly BindableProperty SizeWidthProperty = BindableProperty.Create(nameof(SizeWidth), typeof(float), typeof(View), default(float), propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
1156         {
1157             var view = (View)bindable;
1158             if (newValue != null)
1159             {
1160                 // Size property setter is only used by user.
1161                 // Framework code uses SetSize() instead of Size property setter.
1162                 // Size set by user is returned by GetUserSize2D() for SuggestedMinimumWidth/Height.
1163                 // SuggestedMinimumWidth/Height is used by Layout calculation.
1164                 view.userSizeWidth = (float)newValue;
1165 #if NUI_PROPERTY_CHANGE_1
1166                 Interop.Actor.InternalSetPropertyFloat(view.SwigCPtr, View.Property.SizeWidth, (float)newValue);
1167 #else
1168                 Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.SizeWidth, new Tizen.NUI.PropertyValue((float)newValue));
1169 #endif
1170                 view.WidthSpecification = (int)System.Math.Ceiling((float)newValue);
1171             }
1172         }),
1173         defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
1174         {
1175             var view = (View)bindable;
1176 #if NUI_PROPERTY_CHANGE_1
1177             return Interop.Actor.InternalGetPropertyFloat(view.SwigCPtr, View.Property.SizeWidth);
1178 #else
1179             float temp = 0.0f;
1180             Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.SizeWidth).Get(out temp);
1181             return temp;
1182 #endif
1183         }));
1184
1185         /// <summary>
1186         /// SizeHeightProperty
1187         /// </summary>
1188         [EditorBrowsable(EditorBrowsableState.Never)]
1189         public static readonly BindableProperty SizeHeightProperty = BindableProperty.Create(nameof(SizeHeight), typeof(float), typeof(View), default(float), propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
1190         {
1191             var view = (View)bindable;
1192             if (newValue != null)
1193             {
1194                 // Size property setter is only used by user.
1195                 // Framework code uses SetSize() instead of Size property setter.
1196                 // Size set by user is returned by GetUserSize2D() for SuggestedMinimumWidth/Height.
1197                 // SuggestedMinimumWidth/Height is used by Layout calculation.
1198                 view.userSizeHeight = (float)newValue;
1199 #if NUI_PROPERTY_CHANGE_1
1200                 Interop.Actor.InternalSetPropertyFloat(view.SwigCPtr, View.Property.SizeHeight, (float)newValue);
1201 #else
1202                 Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.SizeHeight, new Tizen.NUI.PropertyValue((float)newValue));
1203 #endif
1204                 view.HeightSpecification = (int)System.Math.Ceiling((float)newValue);
1205             }
1206         }),
1207         defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
1208         {
1209             var view = (View)bindable;
1210 #if NUI_PROPERTY_CHANGE_1
1211             return Interop.Actor.InternalGetPropertyFloat(view.SwigCPtr, View.Property.SizeHeight);
1212 #else
1213             float temp = 0.0f;
1214             Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.SizeHeight).Get(out temp);
1215             return temp;
1216 #endif
1217         }));
1218
1219         /// <summary>
1220         /// PositionProperty
1221         /// </summary>
1222         [EditorBrowsable(EditorBrowsableState.Never)]
1223         public static readonly BindableProperty PositionProperty = BindableProperty.Create(nameof(Position), typeof(Position), typeof(View), null,
1224             propertyChanged: (bindable, oldValue, newValue) =>
1225             {
1226                 var view = (View)bindable;
1227                 if (newValue != null)
1228                 {
1229 #if NUI_PROPERTY_CHANGE_1
1230                     Interop.Actor.InternalSetPropertyVector3(view.SwigCPtr, View.Property.POSITION, ((Position)newValue).SwigCPtr);
1231 #else
1232                     view.SetPosition(((Position)newValue).X, ((Position)newValue).Y, ((Position)newValue).Z);
1233 #endif
1234                 }
1235             },
1236             defaultValueCreator: (bindable) =>
1237             {
1238                 var view = (View)bindable;
1239 #if NUI_PROPERTY_CHANGE_1
1240                 if (view.internalPosition == null)
1241                 {
1242                     view.internalPosition = new Position(view.OnPositionChanged, 0, 0, 0);
1243                 }
1244                 Interop.Actor.InternalRetrievingPropertyVector3(view.SwigCPtr, View.Property.POSITION, view.internalPosition.SwigCPtr);
1245 #else
1246                 var tmpProperty = Object.GetProperty(view.SwigCPtr, Property.POSITION);
1247
1248                 if (view.internalPosition == null)
1249                 {
1250                     view.internalPosition = new Position(view.OnPositionChanged, 0, 0, 0);
1251                 }
1252                 tmpProperty?.Get(view.internalPosition);
1253                 tmpProperty?.Dispose();
1254 #endif
1255                 return view.internalPosition;
1256             }
1257         );
1258
1259         /// <summary>
1260         /// PositionXProperty
1261         /// </summary>
1262         [EditorBrowsable(EditorBrowsableState.Never)]
1263         public static readonly BindableProperty PositionXProperty = BindableProperty.Create(nameof(PositionX), typeof(float), typeof(View), default(float), propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
1264         {
1265             var view = (View)bindable;
1266             if (newValue != null)
1267             {
1268 #if NUI_PROPERTY_CHANGE_1
1269                 Interop.Actor.InternalSetPropertyFloat(view.SwigCPtr, View.Property.PositionX, (float)newValue);
1270 #else
1271                 Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.PositionX, new Tizen.NUI.PropertyValue((float)newValue));
1272 #endif
1273             }
1274         }),
1275         defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
1276         {
1277             var view = (View)bindable;
1278 #if NUI_PROPERTY_CHANGE_1
1279             return Interop.Actor.InternalGetPropertyFloat(view.SwigCPtr, View.Property.PositionX);
1280 #else
1281             float temp = 0.0f;
1282             Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.PositionX).Get(out temp);
1283             return temp;
1284 #endif
1285         }));
1286
1287         /// <summary>
1288         /// PositionYProperty
1289         /// </summary>
1290         [EditorBrowsable(EditorBrowsableState.Never)]
1291         public static readonly BindableProperty PositionYProperty = BindableProperty.Create(nameof(PositionY), typeof(float), typeof(View), default(float), propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
1292         {
1293             var view = (View)bindable;
1294             if (newValue != null)
1295             {
1296 #if NUI_PROPERTY_CHANGE_1
1297                 Interop.Actor.InternalSetPropertyFloat(view.SwigCPtr, View.Property.PositionY, (float)newValue);
1298 #else
1299                 Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.PositionY, new Tizen.NUI.PropertyValue((float)newValue));
1300 #endif
1301             }
1302         }),
1303         defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
1304         {
1305             var view = (View)bindable;
1306 #if NUI_PROPERTY_CHANGE_1
1307             return Interop.Actor.InternalGetPropertyFloat(view.SwigCPtr, View.Property.PositionY);
1308 #else
1309             float temp = 0.0f;
1310             Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.PositionY).Get(out temp);
1311             return temp;
1312 #endif
1313         }));
1314
1315         /// <summary>
1316         /// PositionZProperty
1317         /// </summary>
1318         [EditorBrowsable(EditorBrowsableState.Never)]
1319         public static readonly BindableProperty PositionZProperty = BindableProperty.Create(nameof(PositionZ), typeof(float), typeof(View), default(float), propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
1320         {
1321             var view = (View)bindable;
1322             if (newValue != null)
1323             {
1324 #if NUI_PROPERTY_CHANGE_1
1325                 Interop.Actor.InternalSetPropertyFloat(view.SwigCPtr, View.Property.PositionZ, (float)newValue);
1326 #else
1327                 Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.PositionZ, new Tizen.NUI.PropertyValue((float)newValue));
1328 #endif
1329             }
1330         }),
1331         defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
1332         {
1333             var view = (View)bindable;
1334 #if NUI_PROPERTY_CHANGE_1
1335             return Interop.Actor.InternalGetPropertyFloat(view.SwigCPtr, View.Property.PositionZ);
1336 #else
1337             float temp = 0.0f;
1338             Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.PositionZ).Get(out temp);
1339             return temp;
1340 #endif
1341         }));
1342
1343         /// <summary>
1344         /// OrientationProperty
1345         /// </summary>
1346         [EditorBrowsable(EditorBrowsableState.Never)]
1347         public static readonly BindableProperty OrientationProperty = BindableProperty.Create(nameof(Orientation), typeof(Rotation), typeof(View), null, propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
1348         {
1349             var view = (View)bindable;
1350             if (newValue != null)
1351             {
1352                 Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.ORIENTATION, new Tizen.NUI.PropertyValue((Rotation)newValue));
1353             }
1354         }),
1355         defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
1356         {
1357             var view = (View)bindable;
1358             Rotation temp = new Rotation();
1359             Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.ORIENTATION).Get(temp);
1360             return temp;
1361         }));
1362
1363         /// <summary>
1364         /// ScaleProperty
1365         /// </summary>
1366         [EditorBrowsable(EditorBrowsableState.Never)]
1367         public static readonly BindableProperty ScaleProperty = BindableProperty.Create(nameof(Scale), typeof(Vector3), typeof(View), null,
1368             propertyChanged: (bindable, oldValue, newValue) =>
1369             {
1370                 var view = (View)bindable;
1371                 if (newValue != null)
1372                 {
1373                     view.SetScale((Vector3)newValue);
1374                 }
1375             },
1376             defaultValueCreator: (bindable) =>
1377             {
1378                 var view = (View)bindable;
1379 #if NUI_PROPERTY_CHANGE_1
1380                 if (view.internalScale == null)
1381                 {
1382                     view.internalScale = new Vector3(view.OnScaleChanged, 0, 0, 0);
1383                 }
1384                 Interop.Actor.InternalRetrievingPropertyVector3(view.SwigCPtr, View.Property.SCALE, view.internalScale.SwigCPtr);
1385 #else
1386                 if (view.internalScale == null)
1387                 {
1388                     view.internalScale = new Vector3(view.OnScaleChanged, 0, 0, 0);
1389                 }
1390
1391                 var tmpPropery = Object.GetProperty(view.SwigCPtr, Property.SCALE);
1392                 tmpPropery?.Get(view.internalScale);
1393                 tmpPropery?.Dispose();
1394 #endif
1395                 return view.internalScale;
1396             }
1397         );
1398
1399         /// <summary>
1400         /// ScaleXProperty
1401         /// </summary>
1402         [EditorBrowsable(EditorBrowsableState.Never)]
1403         public static readonly BindableProperty ScaleXProperty = BindableProperty.Create(nameof(ScaleX), typeof(float), typeof(View), default(float), propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
1404         {
1405             var view = (View)bindable;
1406             if (newValue != null)
1407             {
1408 #if NUI_PROPERTY_CHANGE_1
1409                 Interop.Actor.InternalSetPropertyFloat(view.SwigCPtr, View.Property.ScaleX, (float)newValue);
1410 #else
1411                 Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.ScaleX, new Tizen.NUI.PropertyValue((float)newValue));
1412 #endif
1413             }
1414         }),
1415         defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
1416         {
1417             var view = (View)bindable;
1418 #if NUI_PROPERTY_CHANGE_1
1419             return Interop.Actor.InternalGetPropertyFloat(view.SwigCPtr, View.Property.ScaleX);
1420 #else
1421             float temp = 0.0f;
1422             Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.ScaleX).Get(out temp);
1423             return temp;
1424 #endif        
1425         }));
1426
1427         /// <summary>
1428         /// ScaleYProperty
1429         /// </summary>
1430         [EditorBrowsable(EditorBrowsableState.Never)]
1431         public static readonly BindableProperty ScaleYProperty = BindableProperty.Create(nameof(ScaleY), typeof(float), typeof(View), default(float), propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
1432         {
1433             var view = (View)bindable;
1434             if (newValue != null)
1435             {
1436 #if NUI_PROPERTY_CHANGE_1
1437                 Interop.Actor.InternalSetPropertyFloat(view.SwigCPtr, View.Property.ScaleY, (float)newValue);
1438 #else
1439                 Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.ScaleY, new Tizen.NUI.PropertyValue((float)newValue));
1440 #endif
1441             }
1442         }),
1443         defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
1444         {
1445             var view = (View)bindable;
1446 #if NUI_PROPERTY_CHANGE_1
1447             return Interop.Actor.InternalGetPropertyFloat(view.SwigCPtr, View.Property.ScaleY);
1448 #else
1449             float temp = 0.0f;
1450             Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.ScaleY).Get(out temp);
1451             return temp;
1452 #endif
1453         }));
1454
1455         /// <summary>
1456         /// ScaleZProperty
1457         /// </summary>
1458         [EditorBrowsable(EditorBrowsableState.Never)]
1459         public static readonly BindableProperty ScaleZProperty = BindableProperty.Create(nameof(ScaleZ), typeof(float), typeof(View), default(float), propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
1460         {
1461             var view = (View)bindable;
1462             if (newValue != null)
1463             {
1464 #if NUI_PROPERTY_CHANGE_1
1465                 Interop.Actor.InternalSetPropertyFloat(view.SwigCPtr, View.Property.ScaleZ, (float)newValue);
1466 #else
1467                 Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.ScaleZ, new Tizen.NUI.PropertyValue((float)newValue));
1468 #endif
1469             }
1470         }),
1471         defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
1472         {
1473             var view = (View)bindable;
1474 #if NUI_PROPERTY_CHANGE_1
1475             return Interop.Actor.InternalGetPropertyFloat(view.SwigCPtr, View.Property.ScaleZ);
1476 #else
1477             float temp = 0.0f;
1478             Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.ScaleZ).Get(out temp);
1479             return temp;
1480 #endif
1481         }));
1482
1483         /// <summary>
1484         /// NameProperty
1485         /// </summary>
1486         [EditorBrowsable(EditorBrowsableState.Never)]
1487         public static readonly BindableProperty NameProperty = BindableProperty.Create(nameof(Name), typeof(string), typeof(View), string.Empty,
1488             propertyChanged: (bindable, oldValue, newValue) =>
1489             {
1490                 var view = (View)bindable;
1491                 if (newValue != null)
1492                 {
1493 #if NUI_PROPERTY_CHANGE_1
1494                     Interop.Actor.InternalSetPropertyString(view.SwigCPtr, View.Property.NAME, (string)newValue);
1495 #else
1496                     view.SetName((string)newValue);
1497 #endif                    
1498                 }
1499             },
1500             defaultValueCreator: (bindable) =>
1501             {
1502                 var view = (View)bindable;
1503 #if NUI_PROPERTY_CHANGE_1
1504                 return Interop.Actor.InternalGetPropertyString(view.SwigCPtr, View.Property.NAME);
1505 #else
1506                 string temp;
1507                 temp = view.GetName();
1508                 return temp;
1509 #endif
1510             }
1511         );
1512
1513         /// <summary>
1514         /// SensitiveProperty
1515         /// </summary>
1516         [EditorBrowsable(EditorBrowsableState.Never)]
1517         public static readonly BindableProperty SensitiveProperty = BindableProperty.Create(nameof(Sensitive), typeof(bool), typeof(View), false, propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
1518         {
1519             var view = (View)bindable;
1520             if (newValue != null)
1521             {
1522 #if NUI_PROPERTY_CHANGE_1
1523                 Interop.Actor.InternalSetPropertyBool(view.SwigCPtr, View.Property.SENSITIVE, (bool)newValue);
1524 #else
1525                 Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.SENSITIVE, new Tizen.NUI.PropertyValue((bool)newValue));
1526 #endif
1527             }
1528         }),
1529         defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
1530         {
1531             var view = (View)bindable;
1532 #if NUI_PROPERTY_CHANGE_1
1533             return Interop.Actor.InternalGetPropertyBool(view.SwigCPtr, View.Property.SENSITIVE);
1534 #else
1535             bool temp = false;
1536             Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.SENSITIVE).Get(out temp);
1537             return temp;
1538 #endif
1539         }));
1540
1541         /// <summary>
1542         /// IsEnabledProperty
1543         /// </summary>
1544         [EditorBrowsable(EditorBrowsableState.Never)]
1545         public static readonly BindableProperty IsEnabledProperty = BindableProperty.Create(nameof(IsEnabled), typeof(bool), typeof(View), false, propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
1546         {
1547             var view = (View)bindable;
1548             if (newValue != null)
1549             {
1550 #if NUI_PROPERTY_CHANGE_1
1551                 Interop.Actor.InternalSetPropertyBool(view.SwigCPtr, View.Property.UserInteractionEnabled, (bool)newValue);
1552 #else
1553                 Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.UserInteractionEnabled, new Tizen.NUI.PropertyValue((bool)newValue));
1554 #endif
1555                 view.OnEnabled((bool)newValue);
1556             }
1557         }),
1558         defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
1559         {
1560             var view = (View)bindable;
1561 #if NUI_PROPERTY_CHANGE_1
1562             return Interop.Actor.InternalGetPropertyBool(view.SwigCPtr, View.Property.UserInteractionEnabled);
1563 #else
1564             bool temp = false;
1565             Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.UserInteractionEnabled).Get(out temp);
1566             return temp;
1567 #endif
1568         }));
1569
1570         /// <summary>
1571         /// DispatchKeyEventsProperty
1572         /// </summary>
1573         [EditorBrowsable(EditorBrowsableState.Never)]
1574         public static readonly BindableProperty DispatchKeyEventsProperty = BindableProperty.Create(nameof(DispatchKeyEvents), typeof(bool), typeof(View), false, propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
1575         {
1576             var view = (View)bindable;
1577             if (newValue != null)
1578             {
1579 #if NUI_PROPERTY_CHANGE_1
1580                 Interop.Actor.InternalSetPropertyBool(view.SwigCPtr, View.Property.DispatchKeyEvents, (bool)newValue);
1581 #else
1582                 Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.DispatchKeyEvents, new Tizen.NUI.PropertyValue((bool)newValue));
1583 #endif
1584             }
1585         }),
1586         defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
1587         {
1588             var view = (View)bindable;
1589 #if NUI_PROPERTY_CHANGE_1
1590             return Interop.Actor.InternalGetPropertyBool(view.SwigCPtr, View.Property.DispatchKeyEvents);
1591 #else
1592             bool temp = false;
1593             Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.DispatchKeyEvents).Get(out temp);
1594             return temp;
1595 #endif
1596         }));
1597
1598         /// <summary>
1599         /// LeaveRequiredProperty
1600         /// </summary>
1601         [EditorBrowsable(EditorBrowsableState.Never)]
1602         public static readonly BindableProperty LeaveRequiredProperty = BindableProperty.Create(nameof(LeaveRequired), typeof(bool), typeof(View), false, propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
1603         {
1604             var view = (View)bindable;
1605             if (newValue != null)
1606             {
1607 #if NUI_PROPERTY_CHANGE_1
1608                 Interop.Actor.InternalSetPropertyBool(view.SwigCPtr, View.Property.LeaveRequired, (bool)newValue);
1609 #else
1610                 Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.LeaveRequired, new Tizen.NUI.PropertyValue((bool)newValue));
1611 #endif
1612             }
1613         }),
1614         defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
1615         {
1616             var view = (View)bindable;
1617 #if NUI_PROPERTY_CHANGE_1
1618             return Interop.Actor.InternalGetPropertyBool(view.SwigCPtr, View.Property.LeaveRequired);
1619 #else
1620             bool temp = false;
1621             Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.LeaveRequired).Get(out temp);
1622             return temp;
1623 #endif
1624         }));
1625
1626         /// <summary>
1627         /// InheritOrientationProperty
1628         /// </summary>
1629         [EditorBrowsable(EditorBrowsableState.Never)]
1630         public static readonly BindableProperty InheritOrientationProperty = BindableProperty.Create(nameof(InheritOrientation), typeof(bool), typeof(View), false, propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
1631         {
1632             var view = (View)bindable;
1633             if (newValue != null)
1634             {
1635 #if NUI_PROPERTY_CHANGE_1
1636                 Interop.Actor.InternalSetPropertyBool(view.SwigCPtr, View.Property.InheritOrientation, (bool)newValue);
1637 #else
1638                 Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.InheritOrientation, new Tizen.NUI.PropertyValue((bool)newValue));
1639 #endif
1640             }
1641         }),
1642         defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
1643         {
1644             var view = (View)bindable;
1645 #if NUI_PROPERTY_CHANGE_1
1646             return Interop.Actor.InternalGetPropertyBool(view.SwigCPtr, View.Property.InheritOrientation);
1647 #else
1648             bool temp = false;
1649             Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.InheritOrientation).Get(out temp);
1650             return temp;
1651 #endif
1652         }));
1653
1654         /// <summary>
1655         /// InheritScaleProperty
1656         /// </summary>
1657         [EditorBrowsable(EditorBrowsableState.Never)]
1658         public static readonly BindableProperty InheritScaleProperty = BindableProperty.Create(nameof(InheritScale), typeof(bool), typeof(View), false, propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
1659         {
1660             var view = (View)bindable;
1661             if (newValue != null)
1662             {
1663 #if NUI_PROPERTY_CHANGE_1
1664                 Interop.Actor.InternalSetPropertyBool(view.SwigCPtr, View.Property.InheritScale, (bool)newValue);
1665 #else
1666                 Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.InheritScale, new Tizen.NUI.PropertyValue((bool)newValue));
1667 #endif
1668             }
1669         }),
1670         defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
1671         {
1672             var view = (View)bindable;
1673 #if NUI_PROPERTY_CHANGE_1
1674             return Interop.Actor.InternalGetPropertyBool(view.SwigCPtr, View.Property.InheritScale);
1675 #else
1676             bool temp = false;
1677             Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.InheritScale).Get(out temp);
1678             return temp;
1679 #endif
1680         }));
1681
1682         /// <summary>
1683         /// DrawModeProperty
1684         /// </summary>
1685         [EditorBrowsable(EditorBrowsableState.Never)]
1686         public static readonly BindableProperty DrawModeProperty = BindableProperty.Create(nameof(DrawMode), typeof(DrawModeType), typeof(View), DrawModeType.Normal, propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
1687         {
1688             var view = (View)bindable;
1689             if (newValue != null)
1690             {
1691 #if NUI_PROPERTY_CHANGE_1
1692                 Interop.Actor.InternalSetPropertyInt(view.SwigCPtr, View.Property.DrawMode, (int)newValue);
1693 #else
1694                 Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.DrawMode, new Tizen.NUI.PropertyValue((int)newValue));
1695 #endif
1696             }
1697         }),
1698         defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
1699         {
1700             var view = (View)bindable;
1701 #if NUI_PROPERTY_CHANGE_1
1702             return (DrawModeType)Interop.Actor.InternalGetPropertyInt(view.SwigCPtr, View.Property.DrawMode);
1703 #else
1704             int temp;
1705             if (Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.DrawMode).Get(out temp) == false)
1706             {
1707                 NUILog.Error("DrawMode get error!");
1708             }
1709             return (DrawModeType)temp;
1710 #endif
1711         }));
1712
1713         /// <summary>
1714         /// SizeModeFactorProperty
1715         /// </summary>
1716         [EditorBrowsable(EditorBrowsableState.Never)]
1717         public static readonly BindableProperty SizeModeFactorProperty = BindableProperty.Create(nameof(SizeModeFactor), typeof(Vector3), typeof(View), null,
1718             propertyChanged: (bindable, oldValue, newValue) =>
1719             {
1720                 var view = (View)bindable;
1721                 if (newValue != null)
1722                 {
1723 #if NUI_PROPERTY_CHANGE_1
1724                     Interop.Actor.InternalSetPropertyVector3(view.SwigCPtr, View.Property.SizeModeFactor, ((Vector3)newValue).SwigCPtr);
1725 #else
1726                     var tmp = new PropertyValue((Vector3)newValue);
1727                     Object.SetProperty(view.SwigCPtr, Property.SizeModeFactor, tmp);
1728                     tmp?.Dispose();
1729 #endif
1730                 }
1731             },
1732             defaultValueCreator: (bindable) =>
1733             {
1734                 var view = (View)bindable;
1735 #if NUI_PROPERTY_CHANGE_1
1736                 if (view.internalSizeModeFactor == null)
1737                 {
1738                     view.internalSizeModeFactor = new Vector3(view.OnSizeModeFactorChanged, 0, 0, 0);
1739                 }
1740                 Interop.Actor.InternalRetrievingPropertyVector3(view.SwigCPtr, View.Property.SizeModeFactor, view.internalSizeModeFactor.SwigCPtr);
1741 #else
1742                 if (view.internalSizeModeFactor == null)
1743                 {
1744                     view.internalSizeModeFactor = new Vector3(view.OnSizeModeFactorChanged, 0, 0, 0);
1745                 }
1746                 var tmp = Object.GetProperty(view.SwigCPtr, Property.SizeModeFactor);
1747                 tmp?.Get(view.internalSizeModeFactor);
1748                 tmp?.Dispose();
1749 #endif
1750                 return view.internalSizeModeFactor;
1751             }
1752         );
1753
1754         /// <summary>
1755         /// WidthResizePolicyProperty
1756         /// </summary>
1757         [EditorBrowsable(EditorBrowsableState.Never)]
1758         public static readonly BindableProperty WidthResizePolicyProperty = BindableProperty.Create(nameof(WidthResizePolicy), typeof(ResizePolicyType), typeof(View), ResizePolicyType.Fixed, propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
1759         {
1760             var view = (View)bindable;
1761             if (newValue != null)
1762             {
1763                 if ((ResizePolicyType)newValue == ResizePolicyType.KeepSizeFollowingParent)
1764                 {
1765                     if (view.widthConstraint == null)
1766                     {
1767                         view.widthConstraint = new EqualConstraintWithParentFloat((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.SizeWidth, View.Property.SizeWidth);
1768                         view.widthConstraint.Apply();
1769                     }
1770 #if NUI_PROPERTY_CHANGE_1
1771                     Interop.Actor.InternalSetPropertyInt(view.SwigCPtr, View.Property.WidthResizePolicy, (int)ResizePolicyType.FillToParent);
1772 #else
1773                     Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.WidthResizePolicy, new Tizen.NUI.PropertyValue((int)ResizePolicyType.FillToParent));
1774 #endif
1775                 }
1776                 else
1777                 {
1778                     view.widthConstraint?.Remove();
1779                     view.widthConstraint?.Dispose();
1780                     view.widthConstraint = null;
1781 #if NUI_PROPERTY_CHANGE_1
1782                     Interop.Actor.InternalSetPropertyInt(view.SwigCPtr, View.Property.WidthResizePolicy, (int)newValue);
1783 #else
1784                     Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.WidthResizePolicy, new Tizen.NUI.PropertyValue((int)newValue));
1785 #endif
1786                 }
1787                 // Match ResizePolicy to new Layouting.
1788                 // Parent relative policies can not be mapped at this point as parent size unknown.
1789                 switch ((ResizePolicyType)newValue)
1790                 {
1791                     case ResizePolicyType.UseNaturalSize:
1792                         {
1793                             view.WidthSpecification = LayoutParamPolicies.WrapContent;
1794                             break;
1795                         }
1796                     case ResizePolicyType.FillToParent:
1797                         {
1798                             view.WidthSpecification = LayoutParamPolicies.MatchParent;
1799                             break;
1800                         }
1801                     case ResizePolicyType.FitToChildren:
1802                         {
1803                             view.WidthSpecification = LayoutParamPolicies.WrapContent;
1804                             break;
1805                         }
1806                     default:
1807                         break;
1808                 }
1809             }
1810         }),
1811         defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
1812         {
1813             var view = (View)bindable;
1814             string temp;
1815 #if NUI_PROPERTY_CHANGE_1
1816             temp = Interop.Actor.InternalGetPropertyString(view.SwigCPtr, View.Property.WidthResizePolicy);
1817 #else
1818             if (Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.WidthResizePolicy).Get(out temp) == false)
1819             {
1820                 NUILog.Error("WidthResizePolicy get error!");
1821             }
1822 #endif
1823             return temp.GetValueByDescription<ResizePolicyType>();
1824         }));
1825
1826         /// <summary>
1827         /// HeightResizePolicyProperty
1828         /// </summary>
1829         [EditorBrowsable(EditorBrowsableState.Never)]
1830         public static readonly BindableProperty HeightResizePolicyProperty = BindableProperty.Create(nameof(HeightResizePolicy), typeof(ResizePolicyType), typeof(View), ResizePolicyType.Fixed, propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
1831         {
1832             var view = (View)bindable;
1833             if (newValue != null)
1834             {
1835                 if ((ResizePolicyType)newValue == ResizePolicyType.KeepSizeFollowingParent)
1836                 {
1837                     if (view.heightConstraint == null)
1838                     {
1839                         view.heightConstraint = new EqualConstraintWithParentFloat((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.SizeHeight, View.Property.SizeHeight);
1840                         view.heightConstraint.Apply();
1841                     }
1842 #if NUI_PROPERTY_CHANGE_1
1843                     Interop.Actor.InternalSetPropertyInt(view.SwigCPtr, View.Property.HeightResizePolicy, (int)ResizePolicyType.FillToParent);
1844 #else
1845                     Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.HeightResizePolicy, new Tizen.NUI.PropertyValue((int)ResizePolicyType.FillToParent));
1846 #endif
1847                 }
1848                 else
1849                 {
1850                     view.heightConstraint?.Remove();
1851                     view.heightConstraint?.Dispose();
1852                     view.heightConstraint = null;
1853 #if NUI_PROPERTY_CHANGE_1
1854                     Interop.Actor.InternalSetPropertyInt(view.SwigCPtr, View.Property.HeightResizePolicy, (int)newValue);
1855 #else
1856                     Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.HeightResizePolicy, new Tizen.NUI.PropertyValue((int)newValue));
1857 #endif
1858                 }
1859                 // Match ResizePolicy to new Layouting.
1860                 // Parent relative policies can not be mapped at this point as parent size unknown.
1861                 switch ((ResizePolicyType)newValue)
1862                 {
1863                     case ResizePolicyType.UseNaturalSize:
1864                         {
1865                             view.HeightSpecification = LayoutParamPolicies.WrapContent;
1866                             break;
1867                         }
1868                     case ResizePolicyType.FillToParent:
1869                         {
1870                             view.HeightSpecification = LayoutParamPolicies.MatchParent;
1871                             break;
1872                         }
1873                     case ResizePolicyType.FitToChildren:
1874                         {
1875                             view.HeightSpecification = LayoutParamPolicies.WrapContent;
1876                             break;
1877                         }
1878                     default:
1879                         break;
1880                 }
1881             }
1882         }),
1883         defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
1884         {
1885             var view = (View)bindable;
1886             string temp;
1887 #if NUI_PROPERTY_CHANGE_1
1888             temp = Interop.Actor.InternalGetPropertyString(view.SwigCPtr, View.Property.HeightResizePolicy);
1889 #else
1890             if (Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.HeightResizePolicy).Get(out temp) == false)
1891             {
1892                 NUILog.Error("HeightResizePolicy get error!");
1893             }
1894 #endif
1895             return temp.GetValueByDescription<ResizePolicyType>();
1896         }));
1897
1898         /// <summary>
1899         /// SizeScalePolicyProperty
1900         /// </summary>
1901         [EditorBrowsable(EditorBrowsableState.Never)]
1902         public static readonly BindableProperty SizeScalePolicyProperty = BindableProperty.Create(nameof(SizeScalePolicy), typeof(SizeScalePolicyType), typeof(View), SizeScalePolicyType.UseSizeSet, propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
1903         {
1904             var view = (View)bindable;
1905             string valueToString = "";
1906             if (newValue != null)
1907             {
1908                 valueToString = ((SizeScalePolicyType)newValue).GetDescription();
1909 #if NUI_PROPERTY_CHANGE_1
1910                 Interop.Actor.InternalSetPropertyString(view.SwigCPtr, View.Property.SizeScalePolicy, valueToString);
1911 #else
1912                 Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.SizeScalePolicy, new Tizen.NUI.PropertyValue(valueToString));
1913 #endif
1914             }
1915         }),
1916         defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
1917         {
1918             var view = (View)bindable;
1919 #if NUI_PROPERTY_CHANGE_1
1920             return (SizeScalePolicyType)Interop.Actor.InternalGetPropertyInt(view.SwigCPtr, View.Property.SizeScalePolicy);
1921 #else
1922             int temp;
1923             if (Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.SizeScalePolicy).Get(out temp) == false)
1924             {
1925                 NUILog.Error("SizeScalePolicy get error!");
1926             }
1927             return (SizeScalePolicyType)temp;
1928 #endif
1929         }));
1930
1931         /// <summary>
1932         /// WidthForHeightProperty
1933         /// </summary>
1934         [EditorBrowsable(EditorBrowsableState.Never)]
1935         public static readonly BindableProperty WidthForHeightProperty = BindableProperty.Create(nameof(WidthForHeight), typeof(bool), typeof(View), false, propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
1936         {
1937             var view = (View)bindable;
1938             if (newValue != null)
1939             {
1940 #if NUI_PROPERTY_CHANGE_1
1941                 Interop.Actor.InternalSetPropertyBool(view.SwigCPtr, View.Property.WidthForHeight, (bool)newValue);
1942 #else
1943                 Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.WidthForHeight, new Tizen.NUI.PropertyValue((bool)newValue));
1944 #endif
1945             }
1946         }),
1947         defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
1948         {
1949             var view = (View)bindable;
1950 #if NUI_PROPERTY_CHANGE_1
1951             return Interop.Actor.InternalGetPropertyBool(view.SwigCPtr, View.Property.WidthForHeight);
1952 #else
1953             bool temp = false;
1954             Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.WidthForHeight).Get(out temp);
1955             return temp;
1956 #endif
1957         }));
1958
1959         /// <summary>
1960         /// HeightForWidthProperty
1961         /// </summary>
1962         [EditorBrowsable(EditorBrowsableState.Never)]
1963         public static readonly BindableProperty HeightForWidthProperty = BindableProperty.Create(nameof(HeightForWidth), typeof(bool), typeof(View), false, propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
1964         {
1965             var view = (View)bindable;
1966             if (newValue != null)
1967             {
1968 #if NUI_PROPERTY_CHANGE_1
1969                 Interop.Actor.InternalSetPropertyBool(view.SwigCPtr, View.Property.HeightForWidth, (bool)newValue);
1970 #else
1971                 Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.HeightForWidth, new Tizen.NUI.PropertyValue((bool)newValue));
1972 #endif
1973             }
1974         }),
1975         defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
1976         {
1977             var view = (View)bindable;
1978 #if NUI_PROPERTY_CHANGE_1
1979             return Interop.Actor.InternalGetPropertyBool(view.SwigCPtr, View.Property.HeightForWidth);
1980 #else
1981             bool temp = false;
1982             Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.HeightForWidth).Get(out temp);
1983             return temp;
1984 #endif
1985         }));
1986
1987         /// <summary>
1988         /// PaddingProperty
1989         /// </summary>
1990         [EditorBrowsable(EditorBrowsableState.Never)]
1991         public static readonly BindableProperty PaddingProperty = BindableProperty.Create(nameof(Padding), typeof(Extents), typeof(View), null,
1992             propertyChanged: (bindable, oldValue, newValue) =>
1993             {
1994                 var view = (View)bindable;
1995                 if (newValue != null)
1996                 {
1997                     if (view.Layout != null)
1998                     {
1999                         view.Layout.Padding = new Extents((Extents)newValue);
2000                         if ((view.Padding.Start != 0) || (view.Padding.End != 0) || (view.Padding.Top != 0) || (view.Padding.Bottom != 0))
2001                         {
2002                             var tmp = new PropertyValue(new Extents(0, 0, 0, 0));
2003                             Object.SetProperty(view.SwigCPtr, Property.PADDING, tmp);
2004                             tmp?.Dispose();
2005                         }
2006                         view.Layout.RequestLayout();
2007                     }
2008                     else
2009                     {
2010                         var tmp = new PropertyValue((Extents)newValue);
2011                         Object.SetProperty(view.SwigCPtr, Property.PADDING, tmp);
2012                         tmp?.Dispose();
2013                     }
2014                 }
2015             },
2016             defaultValueCreator: (bindable) =>
2017             {
2018                 var view = (View)bindable;
2019                 if ((view.internalPadding == null) || (view.Layout != null))
2020                 {
2021                     ushort start = 0, end = 0, top = 0, bottom = 0;
2022                     if (view.Layout != null)
2023                     {
2024                         if (view.Layout.Padding != null)
2025                         {
2026                             start = view.Layout.Padding.Start;
2027                             end = view.Layout.Padding.End;
2028                             top = view.Layout.Padding.Top;
2029                             bottom = view.Layout.Padding.Bottom;
2030                         }
2031                     }
2032                     view.internalPadding = new Extents(view.OnPaddingChanged, start, end, top, bottom);
2033                 }
2034
2035                 if (view.Layout == null)
2036                 {
2037                     var tmp = Object.GetProperty(view.SwigCPtr, Property.PADDING);
2038                     tmp?.Get(view.internalPadding);
2039                     tmp?.Dispose();
2040                 }
2041
2042                 return view.internalPadding;
2043             }
2044         );
2045
2046         /// <summary>
2047         /// SizeProperty
2048         /// </summary>
2049         [EditorBrowsable(EditorBrowsableState.Never)]
2050         public static readonly BindableProperty SizeProperty = BindableProperty.Create(nameof(Size), typeof(Size), typeof(View), null,
2051             propertyChanged: (bindable, oldValue, newValue) =>
2052             {
2053                 var view = (View)bindable;
2054                 if (newValue != null)
2055                 {
2056                     // Size property setter is only used by user.
2057                     // Framework code uses SetSize() instead of Size property setter.
2058                     // Size set by user is returned by GetUserSize2D() for SuggestedMinimumWidth/Height.
2059                     // SuggestedMinimumWidth/Height is used by Layout calculation.
2060                     view.userSizeWidth = ((Size)newValue).Width;
2061                     view.userSizeHeight = ((Size)newValue).Height;
2062
2063                     // Set Specification so when layouts measure this View it matches the value set here.
2064                     // All Views are currently Layouts.
2065                     view.WidthSpecification = (int)System.Math.Ceiling(((Size)newValue).Width);
2066                     view.HeightSpecification = (int)System.Math.Ceiling(((Size)newValue).Height);
2067
2068                     view.SetSize(((Size)newValue).Width, ((Size)newValue).Height, ((Size)newValue).Depth);
2069                 }
2070             },
2071             defaultValueCreator: (bindable) =>
2072             {
2073                 var view = (View)bindable;
2074 #if NUI_PROPERTY_CHANGE_1
2075                 if (view.internalSize == null)
2076                 {
2077                     view.internalSize = new Size(view.OnSizeChanged, 0, 0, 0);
2078                 }
2079                 Interop.Actor.InternalRetrievingPropertyVector3(view.SwigCPtr, View.Property.SIZE, view.internalSize.SwigCPtr);
2080 #else
2081                 var tmpProperty = Object.GetProperty(view.SwigCPtr, Property.SIZE);
2082                 if (view.internalSize == null)
2083                 {
2084                     view.internalSize = new Size(view.OnSizeChanged, 0, 0, 0);
2085                 }
2086                 tmpProperty?.Get(view.internalSize);
2087                 tmpProperty?.Dispose();
2088 #endif
2089                 return view.internalSize;
2090             }
2091         );
2092
2093         /// <summary>
2094         /// MinimumSizeProperty
2095         /// </summary>
2096         [EditorBrowsable(EditorBrowsableState.Never)]
2097         public static readonly BindableProperty MinimumSizeProperty = BindableProperty.Create(nameof(MinimumSize), typeof(Size2D), typeof(View), null,
2098             propertyChanged: (bindable, oldValue, newValue) =>
2099             {
2100                 var view = (View)bindable;
2101                 if (newValue != null)
2102                 {
2103 #if NUI_PROPERTY_CHANGE_1
2104                     Interop.Actor.InternalSetPropertyVector2(view.SwigCPtr, View.Property.MinimumSize, ((Size2D)newValue).SwigCPtr);
2105 #else
2106                     view.SetMinimumSize((Size2D)newValue);
2107 #endif                    
2108                 }
2109             },
2110             defaultValueCreator: (bindable) =>
2111             {
2112 #if NUI_PROPERTY_CHANGE_1
2113                 var view = (View)bindable;
2114                 if (view.internalMinimumSize == null)
2115                 {
2116                     view.internalMinimumSize = new Size2D(view.OnMinimumSizeChanged, 0, 0);
2117                 }
2118                 Interop.Actor.InternalRetrievingPropertyVector2(view.SwigCPtr, View.Property.MinimumSize, view.internalMinimumSize.SwigCPtr);
2119 #else
2120                 var view = (View)bindable;
2121                 if (view.internalMinimumSize == null)
2122                 {
2123                     view.internalMinimumSize = new Size2D(view.OnMinimumSizeChanged, 0, 0);
2124                 }
2125                 var tmp = Object.GetProperty(view.SwigCPtr, Property.MinimumSize);
2126                 tmp?.Get(view.internalMinimumSize);
2127                 tmp?.Dispose();
2128 #endif
2129                 return view.internalMinimumSize;
2130             }
2131         );
2132
2133         /// <summary>
2134         /// MaximumSizeProperty
2135         /// </summary>
2136         [EditorBrowsable(EditorBrowsableState.Never)]
2137         public static readonly BindableProperty MaximumSizeProperty = BindableProperty.Create(nameof(MaximumSize), typeof(Size2D), typeof(View), null,
2138             propertyChanged: (bindable, oldValue, newValue) =>
2139             {
2140                 var view = (View)bindable;
2141                 if (newValue != null)
2142                 {
2143 #if NUI_PROPERTY_CHANGE_1
2144                     Interop.Actor.InternalSetPropertyVector2(view.SwigCPtr, View.Property.MaximumSize, ((Size2D)newValue).SwigCPtr);
2145 #else
2146                     view.SetMaximumSize((Size2D)newValue);
2147 #endif                    
2148                 }
2149             },
2150             defaultValueCreator: (bindable) =>
2151             {
2152                 var view = (View)bindable;
2153 #if NUI_PROPERTY_CHANGE_1
2154                 if (view.internalMaximumSize == null)
2155                 {
2156                     view.internalMaximumSize = new Size2D(view.OnMaximumSizeChanged, 0, 0);
2157                 }
2158                 Interop.Actor.InternalRetrievingPropertyVector2(view.SwigCPtr, View.Property.MaximumSize, view.internalMaximumSize.SwigCPtr);
2159 #else
2160                 if (view.internalMaximumSize == null)
2161                 {
2162                     view.internalMaximumSize = new Size2D(view.OnMaximumSizeChanged, 0, 0);
2163                 }
2164
2165                 var tmp = Object.GetProperty(view.SwigCPtr, Property.MaximumSize);
2166                 tmp?.Get(view.internalMaximumSize);
2167                 tmp?.Dispose();
2168 #endif
2169                 return view.internalMaximumSize;
2170             }
2171         );
2172
2173         /// <summary>
2174         /// InheritPositionProperty
2175         /// </summary>
2176         [EditorBrowsable(EditorBrowsableState.Never)]
2177         public static readonly BindableProperty InheritPositionProperty = BindableProperty.Create(nameof(InheritPosition), typeof(bool), typeof(View), false, propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
2178         {
2179             var view = (View)bindable;
2180             if (newValue != null)
2181             {
2182 #if NUI_PROPERTY_CHANGE_1
2183                 Interop.Actor.InternalSetPropertyBool(view.SwigCPtr, View.Property.InheritPosition, (bool)newValue);
2184 #else
2185                 Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.InheritPosition, new Tizen.NUI.PropertyValue((bool)newValue));
2186 #endif
2187             }
2188         }),
2189         defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
2190         {
2191             var view = (View)bindable;
2192 #if NUI_PROPERTY_CHANGE_1
2193             return Interop.Actor.InternalGetPropertyBool(view.SwigCPtr, View.Property.InheritPosition);
2194 #else
2195             bool temp = false;
2196             Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.InheritPosition).Get(out temp);
2197             return temp;
2198 #endif
2199         }));
2200
2201         /// <summary>
2202         /// ClippingModeProperty
2203         /// </summary>
2204         [EditorBrowsable(EditorBrowsableState.Never)]
2205         public static readonly BindableProperty ClippingModeProperty = BindableProperty.Create(nameof(ClippingMode), typeof(ClippingModeType), typeof(View), ClippingModeType.Disabled, propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
2206         {
2207             var view = (View)bindable;
2208             if (newValue != null)
2209             {
2210 #if NUI_PROPERTY_CHANGE_1
2211                 Interop.Actor.InternalSetPropertyInt(view.SwigCPtr, View.Property.ClippingMode, (int)newValue);
2212 #else
2213                 Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.ClippingMode, new Tizen.NUI.PropertyValue((int)newValue));
2214 #endif
2215             }
2216         }),
2217         defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
2218         {
2219             var view = (View)bindable;
2220 #if NUI_PROPERTY_CHANGE_1
2221             return (ClippingModeType)Interop.Actor.InternalGetPropertyInt(view.SwigCPtr, View.Property.ClippingMode);
2222 #else
2223             int temp = 0;
2224             if (Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.ClippingMode).Get(out temp) == false)
2225             {
2226                 NUILog.Error("ClippingMode get error!");
2227             }
2228             return (ClippingModeType)temp;
2229 #endif
2230         }));
2231
2232         /// <summary>
2233         /// InheritLayoutDirectionProperty
2234         /// </summary>
2235         [EditorBrowsable(EditorBrowsableState.Never)]
2236         public static readonly BindableProperty InheritLayoutDirectionProperty = BindableProperty.Create(nameof(InheritLayoutDirection), typeof(bool), typeof(View), false, propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
2237         {
2238             var view = (View)bindable;
2239             if (newValue != null)
2240             {
2241 #if NUI_PROPERTY_CHANGE_1
2242                 Interop.Actor.InternalSetPropertyBool(view.SwigCPtr, View.Property.InheritLayoutDirection, (bool)newValue);
2243 #else
2244                 Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.InheritLayoutDirection, new Tizen.NUI.PropertyValue((bool)newValue));
2245 #endif
2246             }
2247         }),
2248         defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
2249         {
2250             var view = (View)bindable;
2251 #if NUI_PROPERTY_CHANGE_1
2252             return Interop.Actor.InternalGetPropertyBool(view.SwigCPtr, View.Property.InheritLayoutDirection);
2253 #else
2254             bool temp = false;
2255             Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.InheritLayoutDirection).Get(out temp);
2256             return temp;
2257 #endif
2258         }));
2259
2260         /// <summary>
2261         /// LayoutDirectionProperty
2262         /// </summary>
2263         [EditorBrowsable(EditorBrowsableState.Never)]
2264         public static readonly BindableProperty LayoutDirectionProperty = BindableProperty.Create(nameof(LayoutDirection), typeof(ViewLayoutDirectionType), typeof(View), ViewLayoutDirectionType.LTR, propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
2265         {
2266             var view = (View)bindable;
2267             if (newValue != null)
2268             {
2269 #if NUI_PROPERTY_CHANGE_1
2270                 Interop.Actor.InternalSetPropertyInt(view.SwigCPtr, View.Property.LayoutDirection, (int)newValue);
2271 #else
2272                 Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.LayoutDirection, new Tizen.NUI.PropertyValue((int)newValue));
2273 #endif
2274             }
2275         }),
2276         defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
2277         {
2278             var view = (View)bindable;
2279 #if NUI_PROPERTY_CHANGE_1
2280             return (ViewLayoutDirectionType)Interop.Actor.InternalGetPropertyInt(view.SwigCPtr, View.Property.LayoutDirection);
2281 #else
2282             int temp;
2283             if (false == Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.LayoutDirection).Get(out temp))
2284             {
2285                 NUILog.Error("LAYOUT_DIRECTION get error!");
2286             }
2287             return (ViewLayoutDirectionType)temp;
2288 #endif
2289         }));
2290
2291         /// <summary>
2292         /// MarginProperty
2293         /// </summary>
2294         [EditorBrowsable(EditorBrowsableState.Never)]
2295         public static readonly BindableProperty MarginProperty = BindableProperty.Create(nameof(Margin), typeof(Extents), typeof(View), null,
2296             propertyChanged: (bindable, oldValue, newValue) =>
2297             {
2298                 var view = (View)bindable;
2299                 if (newValue != null)
2300                 {
2301                     if (view.Layout != null)
2302                     {
2303                         view.Layout.Margin = new Extents((Extents)newValue);
2304                         if ((view.Margin.Start != 0) || (view.Margin.End != 0) || (view.Margin.Top != 0) || (view.Margin.Bottom != 0))
2305                         {
2306                             var tmp = new PropertyValue(new Extents(0, 0, 0, 0));
2307                             Object.SetProperty(view.SwigCPtr, Property.MARGIN, tmp);
2308                             tmp?.Dispose();
2309                         }
2310                         view.Layout.RequestLayout();
2311                     }
2312                     else
2313                     {
2314                         var tmp = new PropertyValue((Extents)newValue);
2315                         Object.SetProperty(view.SwigCPtr, Property.MARGIN, tmp);
2316                         tmp?.Dispose();
2317                     }
2318                 }
2319             },
2320             defaultValueCreator: (bindable) =>
2321             {
2322                 var view = (View)bindable;
2323                 if ((view.internalMargin == null) || (view.Layout != null))
2324                 {
2325                     ushort start = 0, end = 0, top = 0, bottom = 0;
2326                     if (view.Layout != null)
2327                     {
2328                         if (view.Layout.Margin != null)
2329                         {
2330                             start = view.Layout.Margin.Start;
2331                             end = view.Layout.Margin.End;
2332                             top = view.Layout.Margin.Top;
2333                             bottom = view.Layout.Margin.Bottom;
2334                         }
2335                     }
2336                     view.internalMargin = new Extents(view.OnMarginChanged, start, end, top, bottom);
2337                 }
2338
2339                 if (view.Layout == null)
2340                 {
2341                     
2342                     var tmp = Object.GetProperty(view.SwigCPtr, Property.MARGIN);
2343                     tmp?.Get(view.internalMargin);
2344                     tmp?.Dispose();
2345                 }
2346
2347                 return view.internalMargin;
2348             }
2349         );
2350
2351         /// <summary>
2352         /// UpdateAreaHintProperty
2353         /// </summary>
2354         [EditorBrowsable(EditorBrowsableState.Never)]
2355         public static readonly BindableProperty UpdateAreaHintProperty = BindableProperty.Create(nameof(UpdateAreaHint), typeof(Vector4), typeof(View), null, propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
2356         {
2357             var view = (View)bindable;
2358             if (newValue != null)
2359             {
2360 #if NUI_PROPERTY_CHANGE_1
2361                 Interop.Actor.InternalSetPropertyVector4(view.SwigCPtr, Interop.ActorProperty.UpdateAreaHintGet(), ((Vector4)newValue).SwigCPtr);
2362 #else
2363                 Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, Interop.ActorProperty.UpdateAreaHintGet(), new Tizen.NUI.PropertyValue((Vector4)newValue));
2364 #endif
2365             }
2366         }),
2367         defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
2368         {
2369             var view = (View)bindable;
2370             Vector4 temp = new Vector4(0.0f, 0.0f, 0.0f, 0.0f);
2371 #if NUI_PROPERTY_CHANGE_1
2372             Interop.Actor.InternalRetrievingPropertyVector4(view.SwigCPtr, Interop.ActorProperty.UpdateAreaHintGet(), temp.SwigCPtr);
2373 #else
2374             Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, Interop.ActorProperty.UpdateAreaHintGet()).Get(temp);
2375 #endif
2376             return temp;
2377         }));
2378
2379         /// <summary>
2380         /// ImageShadow Property
2381         /// </summary>
2382         [EditorBrowsable(EditorBrowsableState.Never)]
2383         public static readonly BindableProperty ImageShadowProperty = BindableProperty.Create(nameof(ImageShadow), typeof(ImageShadow), typeof(View), null, propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
2384         {
2385             var view = (View)bindable;
2386
2387             view.themeData?.selectorData?.ClearShadow(view);
2388
2389             if (newValue is Selector<ImageShadow> selector)
2390             {
2391                 if (selector.HasAll()) view.SetShadow(selector.All);
2392                 else view.EnsureSelectorData().ImageShadow = new TriggerableSelector<ImageShadow>(view, selector, view.SetShadow, true);
2393             }
2394             else
2395             {
2396                 view.SetShadow((ImageShadow)newValue);
2397             }
2398         }),
2399         defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
2400         {
2401             var view = (View)bindable;
2402
2403             PropertyMap map = new PropertyMap();
2404             Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.SHADOW).Get(map);
2405
2406             var shadow = new ImageShadow(map);
2407             return shadow.IsEmpty() ? null : shadow;
2408         }));
2409
2410         /// <summary>
2411         /// Shadow Property
2412         /// </summary>
2413         [EditorBrowsable(EditorBrowsableState.Never)]
2414         public static readonly BindableProperty BoxShadowProperty = BindableProperty.Create(nameof(BoxShadow), typeof(Shadow), typeof(View), null, propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
2415         {
2416             var view = (View)bindable;
2417
2418             view.themeData?.selectorData?.ClearShadow(view);
2419
2420             if (newValue is Selector<Shadow> selector)
2421             {
2422                 if (selector.HasAll()) view.SetShadow(selector.All);
2423                 else view.EnsureSelectorData().BoxShadow = new TriggerableSelector<Shadow>(view, selector, view.SetShadow, true);
2424             }
2425             else
2426             {
2427                 view.SetShadow((Shadow)newValue);
2428             }
2429         }),
2430         defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
2431         {
2432             var view = (View)bindable;
2433
2434             PropertyMap map = new PropertyMap();
2435             Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.SHADOW).Get(map);
2436
2437             var shadow = new Shadow(map);
2438             return shadow.IsEmpty() ? null : shadow;
2439         }));
2440
2441         /// <summary>
2442         /// CornerRadius Property
2443         /// </summary>
2444         [EditorBrowsable(EditorBrowsableState.Never)]
2445         public static readonly BindableProperty CornerRadiusProperty = BindableProperty.Create(nameof(CornerRadius), typeof(Vector4), typeof(View), null, propertyChanged: (bindable, oldValue, newValue) =>
2446         {
2447             var view = (View)bindable;
2448             (view.backgroundExtraData ?? (view.backgroundExtraData = new BackgroundExtraData())).CornerRadius = (Vector4)newValue;
2449             view.ApplyCornerRadius();
2450         },
2451         defaultValueCreator: (bindable) =>
2452         {
2453             var view = (View)bindable;
2454             return view.backgroundExtraData == null ? 0.0f : view.backgroundExtraData.CornerRadius;
2455         });
2456
2457         /// <summary>
2458         /// CornerRadiusPolicy Property
2459         /// </summary>
2460         [EditorBrowsable(EditorBrowsableState.Never)]
2461         public static readonly BindableProperty CornerRadiusPolicyProperty = BindableProperty.Create(nameof(CornerRadiusPolicy), typeof(VisualTransformPolicyType), typeof(View), VisualTransformPolicyType.Absolute, propertyChanged: (bindable, oldValue, newValue) =>
2462         {
2463             var view = (View)bindable;
2464             (view.backgroundExtraData ?? (view.backgroundExtraData = new BackgroundExtraData())).CornerRadiusPolicy = (VisualTransformPolicyType)newValue;
2465
2466             if (view.backgroundExtraData.CornerRadius != null)
2467             {
2468                 view.ApplyCornerRadius();
2469             }
2470         },
2471         defaultValueCreator: (bindable) =>
2472         {
2473             var view = (View)bindable;
2474             return view.backgroundExtraData == null ? VisualTransformPolicyType.Absolute : view.backgroundExtraData.CornerRadiusPolicy;
2475         });
2476
2477         /// <summary>
2478         /// BorderlineWidth Property
2479         /// </summary>
2480         [EditorBrowsable(EditorBrowsableState.Never)]
2481         public static readonly BindableProperty BorderlineWidthProperty = BindableProperty.Create(nameof(BorderlineWidth), typeof(float), typeof(View), default(float), propertyChanged: (bindable, oldValue, newValue) =>
2482         {
2483             var view = (View)bindable;
2484             (view.backgroundExtraData ?? (view.backgroundExtraData = new BackgroundExtraData())).BorderlineWidth = (float)newValue;
2485             view.ApplyBorderline();
2486         },
2487         defaultValueCreator: (bindable) =>
2488         {
2489             var view = (View)bindable;
2490             return view.backgroundExtraData == null ? 0.0f : view.backgroundExtraData.BorderlineWidth;
2491         });
2492
2493         /// <summary>
2494         /// BorderlineColor Property
2495         /// </summary>
2496         [EditorBrowsable(EditorBrowsableState.Never)]
2497         public static readonly BindableProperty BorderlineColorProperty = BindableProperty.Create(nameof(BorderlineColor), typeof(Color), typeof(View), null,
2498             propertyChanged: (bindable, oldValue, newValue) =>
2499             {
2500                 var view = (View)bindable;
2501
2502                 view.themeData?.selectorData?.BorderlineColor?.Reset(view);
2503
2504                 if (newValue is Selector<Color> selector)
2505                 {
2506                     if (selector.HasAll()) view.SetBorderlineColor(selector.All);
2507                     else view.EnsureSelectorData().BorderlineColor = new TriggerableSelector<Color>(view, selector, view.SetBorderlineColor, true);
2508                 }
2509                 else
2510                 {
2511                     view.SetBorderlineColor((Color)newValue);
2512                 }
2513             },
2514             defaultValueCreator: (bindable) =>
2515             {
2516                 var view = (View)bindable;
2517                 return view.backgroundExtraData == null ? Color.Black : view.backgroundExtraData.BorderlineColor;
2518             }
2519         );
2520
2521         /// <summary>
2522         /// BorderlineColorSelector Property
2523         /// Like BackgroundColor, color selector typed BorderlineColor should be used in ViewStyle only.
2524         /// So this API is internally used only.
2525         /// </summary>
2526         internal static readonly BindableProperty BorderlineColorSelectorProperty = BindableProperty.Create(nameof(BorderlineColorSelector), typeof(Selector<Color>), typeof(View), null,
2527             propertyChanged: (bindable, oldValue, newValue) =>
2528             {
2529                 var view = (View)bindable;
2530
2531                 view.themeData?.selectorData?.BorderlineColor?.Reset(view);
2532
2533                 if (newValue is Selector<Color> selector)
2534                 {
2535                     if (selector.HasAll()) view.SetBorderlineColor(selector.All);
2536                     else view.EnsureSelectorData().BorderlineColor = new TriggerableSelector<Color>(view, selector, view.SetBorderlineColor, true);
2537                 }
2538                 else
2539                 {
2540                     view.SetBorderlineColor((Color)newValue);
2541                 }
2542             },
2543             defaultValueCreator: (bindable) =>
2544             {
2545                 var view = (View)bindable;
2546                 var selector = view.themeData?.selectorData?.BorderlineColor?.Get();
2547                 return (null != selector) ? selector : new Selector<Color>();
2548             }
2549         );
2550
2551         /// <summary>
2552         /// BorderlineOffset Property
2553         /// </summary>
2554         [EditorBrowsable(EditorBrowsableState.Never)]
2555         public static readonly BindableProperty BorderlineOffsetProperty = BindableProperty.Create(nameof(BorderlineOffset), typeof(float), typeof(View), default(float), propertyChanged: (bindable, oldValue, newValue) =>
2556         {
2557             var view = (View)bindable;
2558             (view.backgroundExtraData ?? (view.backgroundExtraData = new BackgroundExtraData())).BorderlineOffset = (float)newValue;
2559             view.ApplyBorderline();
2560         },
2561         defaultValueCreator: (bindable) =>
2562         {
2563             var view = (View)bindable;
2564             return view.backgroundExtraData == null ? 0.0f : view.backgroundExtraData.BorderlineOffset;
2565         });
2566
2567         /// <summary>
2568         /// EnableControlState property
2569         /// </summary>
2570         [EditorBrowsable(EditorBrowsableState.Never)]
2571         public static readonly BindableProperty EnableControlStateProperty = BindableProperty.Create(nameof(EnableControlState), typeof(bool), typeof(View), false, propertyChanged: (bindable, oldValue, newValue) =>
2572         {
2573             var view = (View)bindable;
2574             bool prev = view.enableControlState;
2575             view.enableControlState = (bool)newValue;
2576
2577             if (prev != view.enableControlState)
2578             {
2579                 if (prev)
2580                 {
2581                     view.TouchEvent -= view.EmptyOnTouch;
2582                 }
2583                 else
2584                 {
2585                     view.TouchEvent += view.EmptyOnTouch;
2586                 }
2587             }
2588         },
2589         defaultValueCreator: (bindable) =>
2590         {
2591             return ((View)bindable).enableControlState;
2592         });
2593
2594         /// <summary>
2595         /// ThemeChangeSensitive property
2596         /// </summary>
2597         [EditorBrowsable(EditorBrowsableState.Never)]
2598         public static readonly BindableProperty ThemeChangeSensitiveProperty = BindableProperty.Create(nameof(ThemeChangeSensitive), typeof(bool), typeof(View), false, propertyChanged: (bindable, oldValue, newValue) =>
2599         {
2600             var view = (View)bindable;
2601
2602             if (view.ThemeChangeSensitive == (bool)newValue) return;
2603
2604             if (view.themeData == null) view.themeData = new ThemeData();
2605
2606             view.themeData.ThemeChangeSensitive = (bool)newValue;
2607
2608             if (!view.themeData.ThemeApplied) return;
2609
2610             if (view.themeData.ThemeChangeSensitive && !view.themeData.ListeningThemeChangeEvent)
2611             {
2612                 view.themeData.ListeningThemeChangeEvent = true;
2613                 ThemeManager.ThemeChangedInternal.Add(view.OnThemeChanged);
2614             }
2615             else if (!view.themeData.ThemeChangeSensitive && view.themeData.ListeningThemeChangeEvent)
2616             {
2617                 view.themeData.ListeningThemeChangeEvent = false;
2618                 ThemeManager.ThemeChangedInternal.Remove(view.OnThemeChanged);
2619             }
2620         },
2621         defaultValueCreator: (bindable) =>
2622         {
2623             return ((View)bindable).themeData?.ThemeChangeSensitive ?? ThemeManager.ApplicationThemeChangeSensitive;
2624         });
2625
2626         /// <summary>
2627         /// AccessibilityNameProperty
2628         /// </summary>
2629         [EditorBrowsable(EditorBrowsableState.Never)]
2630         public static readonly BindableProperty AccessibilityNameProperty = BindableProperty.Create(nameof(AccessibilityName), typeof(string), typeof(View), string.Empty, propertyChanged: (bindable, oldValue, newValue) =>
2631         {
2632             var view = (View)bindable;
2633             if (newValue != null)
2634             {
2635 #if NUI_PROPERTY_CHANGE_1
2636                 Interop.Actor.InternalSetPropertyString(view.SwigCPtr, View.Property.AccessibilityName, (string)newValue);
2637 #else
2638                 Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.AccessibilityName, new Tizen.NUI.PropertyValue((string)newValue));
2639 #endif
2640             }
2641         },
2642         defaultValueCreator: (bindable) =>
2643         {
2644             var view = (View)bindable;
2645 #if NUI_PROPERTY_CHANGE_1
2646             return Interop.Actor.InternalGetPropertyString(view.SwigCPtr, View.Property.AccessibilityName);
2647 #else
2648             string temp;
2649             Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.AccessibilityName).Get(out temp);
2650             return temp;
2651 #endif
2652         });
2653
2654         /// <summary>
2655         /// AccessibilityDescriptionProperty
2656         /// </summary>
2657         [EditorBrowsable(EditorBrowsableState.Never)]
2658         public static readonly BindableProperty AccessibilityDescriptionProperty = BindableProperty.Create(nameof(AccessibilityDescription), typeof(string), typeof(View), string.Empty, propertyChanged: (bindable, oldValue, newValue) =>
2659         {
2660             var view = (View)bindable;
2661             if (newValue != null)
2662             {
2663 #if NUI_PROPERTY_CHANGE_1
2664                 Interop.Actor.InternalSetPropertyString(view.SwigCPtr, View.Property.AccessibilityDescription, (string)newValue);
2665 #else
2666                 Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.AccessibilityDescription, new Tizen.NUI.PropertyValue((string)newValue));
2667 #endif
2668             }
2669         },
2670         defaultValueCreator: (bindable) =>
2671         {
2672             var view = (View)bindable;
2673 #if NUI_PROPERTY_CHANGE_1
2674             return Interop.Actor.InternalGetPropertyString(view.SwigCPtr, View.Property.AccessibilityDescription);
2675 #else
2676             string temp;
2677             Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.AccessibilityDescription).Get(out temp);
2678             return temp;
2679 #endif
2680         });
2681
2682         /// <summary>
2683         /// AccessibilityTranslationDomainProperty
2684         /// </summary>
2685         [EditorBrowsable(EditorBrowsableState.Never)]
2686         public static readonly BindableProperty AccessibilityTranslationDomainProperty = BindableProperty.Create(nameof(AccessibilityTranslationDomain), typeof(string), typeof(View), string.Empty, propertyChanged: (bindable, oldValue, newValue) =>
2687         {
2688             var view = (View)bindable;
2689             if (newValue != null)
2690             {
2691 #if NUI_PROPERTY_CHANGE_1
2692                 Interop.Actor.InternalSetPropertyString(view.SwigCPtr, View.Property.AccessibilityTranslationDomain, (string)newValue);
2693 #else
2694                 Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.AccessibilityTranslationDomain, new Tizen.NUI.PropertyValue((string)newValue));
2695 #endif
2696             }
2697         },
2698         defaultValueCreator: (bindable) =>
2699         {
2700             var view = (View)bindable;
2701 #if NUI_PROPERTY_CHANGE_1
2702             return Interop.Actor.InternalGetPropertyString(view.SwigCPtr, View.Property.AccessibilityTranslationDomain);
2703 #else
2704             string temp;
2705             Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.AccessibilityTranslationDomain).Get(out temp);
2706             return temp;
2707 #endif
2708         });
2709
2710         /// <summary>
2711         /// AccessibilityRoleProperty
2712         /// </summary>
2713         [EditorBrowsable(EditorBrowsableState.Never)]
2714         public static readonly BindableProperty AccessibilityRoleProperty = BindableProperty.Create(nameof(AccessibilityRole), typeof(Role), typeof(View), default(Role), propertyChanged: (bindable, oldValue, newValue) =>
2715         {
2716             var view = (View)bindable;
2717             if (newValue != null)
2718             {
2719 #if NUI_PROPERTY_CHANGE_1
2720                 Interop.Actor.InternalSetPropertyInt(view.SwigCPtr, View.Property.AccessibilityRole, (int)newValue);
2721 #else
2722                 Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.AccessibilityRole, new Tizen.NUI.PropertyValue((int)newValue));
2723 #endif
2724             }
2725         },
2726         defaultValueCreator: (bindable) =>
2727         {
2728             var view = (View)bindable;
2729 #if NUI_PROPERTY_CHANGE_1
2730             return (Role)Interop.Actor.InternalGetPropertyInt(view.SwigCPtr, View.Property.AccessibilityRole);
2731 #else
2732             int temp = 0;
2733             Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.AccessibilityRole).Get(out temp);
2734             return (Role)temp;
2735 #endif
2736         });
2737
2738         /// <summary>
2739         /// AccessibilityHighlightableProperty
2740         /// </summary>
2741         [EditorBrowsable(EditorBrowsableState.Never)]
2742         public static readonly BindableProperty AccessibilityHighlightableProperty = BindableProperty.Create(nameof(AccessibilityHighlightable), typeof(bool), typeof(View), false, propertyChanged: (bindable, oldValue, newValue) =>
2743         {
2744             var view = (View)bindable;
2745             if (newValue != null)
2746             {
2747 #if NUI_PROPERTY_CHANGE_1
2748                 Interop.Actor.InternalSetPropertyBool(view.SwigCPtr, View.Property.AccessibilityHighlightable, (bool)newValue);
2749 #else
2750                 Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.AccessibilityHighlightable, new Tizen.NUI.PropertyValue((bool)newValue));
2751 #endif
2752             }
2753         },
2754         defaultValueCreator: (bindable) =>
2755         {
2756             var view = (View)bindable;
2757 #if NUI_PROPERTY_CHANGE_1
2758             return Interop.Actor.InternalGetPropertyBool(view.SwigCPtr, View.Property.AccessibilityHighlightable);
2759 #else
2760             bool temp = false;
2761             Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.AccessibilityHighlightable).Get(out temp);
2762             return temp;
2763 #endif
2764         });
2765
2766         /// <summary>
2767         /// AccessibilityHiddenProperty
2768         /// </summary>
2769         [EditorBrowsable(EditorBrowsableState.Never)]
2770         public static readonly BindableProperty AccessibilityHiddenProperty = BindableProperty.Create(nameof(AccessibilityHidden), typeof(bool), typeof(View), false, propertyChanged: (bindable, oldValue, newValue) =>
2771         {
2772             var view = (View)bindable;
2773             if (newValue != null)
2774             {
2775 #if NUI_PROPERTY_CHANGE_1
2776                 Interop.Actor.InternalSetPropertyBool(view.SwigCPtr, View.Property.AccessibilityHidden, (bool)newValue);
2777 #else
2778                 Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.AccessibilityHidden, new Tizen.NUI.PropertyValue((bool)newValue));
2779 #endif
2780             }
2781         },
2782         defaultValueCreator: (bindable) =>
2783         {
2784             var view = (View)bindable;
2785 #if NUI_PROPERTY_CHANGE_1
2786             return Interop.Actor.InternalGetPropertyBool(view.SwigCPtr, View.Property.AccessibilityHidden);
2787 #else
2788             bool temp = false;
2789             Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)view.SwigCPtr, View.Property.AccessibilityHidden).Get(out temp);
2790             return temp;
2791 #endif
2792         });
2793
2794         /// <summary>
2795         /// ExcludeLayoutingProperty
2796         /// </summary>
2797         [EditorBrowsable(EditorBrowsableState.Never)]
2798         public static readonly BindableProperty ExcludeLayoutingProperty = BindableProperty.Create(nameof(ExcludeLayouting), typeof(bool), typeof(View), false, propertyChanged: (bindable, oldValue, newValue) =>
2799         {
2800             var instance = (Tizen.NUI.BaseComponents.View)bindable;
2801             if (newValue != null)
2802             {
2803                 instance.InternalExcludeLayouting = (bool)newValue;
2804             }
2805         },
2806         defaultValueCreator: (bindable) =>
2807         {
2808             var instance = (Tizen.NUI.BaseComponents.View)bindable;
2809             return instance.InternalExcludeLayouting;
2810         });
2811
2812         /// <summary>
2813         /// TooltipTextProperty
2814         /// </summary>
2815         [EditorBrowsable(EditorBrowsableState.Never)]
2816         public static readonly BindableProperty TooltipTextProperty = BindableProperty.Create(nameof(TooltipText), typeof(string), typeof(View), string.Empty, propertyChanged: (bindable, oldValue, newValue) =>
2817         {
2818             var instance = (Tizen.NUI.BaseComponents.View)bindable;
2819             if (newValue != null)
2820             {
2821                 instance.InternalTooltipText = (string)newValue;
2822             }
2823         },
2824         defaultValueCreator: (bindable) =>
2825         {
2826             var instance = (Tizen.NUI.BaseComponents.View)bindable;
2827             return instance.InternalTooltipText;
2828         });
2829
2830         /// <summary>
2831         /// PositionUsesAnchorPointProperty
2832         /// </summary>
2833         [EditorBrowsable(EditorBrowsableState.Never)]
2834         public static readonly BindableProperty PositionUsesAnchorPointProperty = BindableProperty.Create(nameof(PositionUsesAnchorPoint), typeof(bool), typeof(View), false, propertyChanged: (bindable, oldValue, newValue) =>
2835         {
2836             var instance = (Tizen.NUI.BaseComponents.View)bindable;
2837             if (newValue != null)
2838             {
2839                 instance.InternalPositionUsesAnchorPoint = (bool)newValue;
2840             }
2841         },
2842         defaultValueCreator: (bindable) =>
2843         {
2844             var instance = (Tizen.NUI.BaseComponents.View)bindable;
2845             return instance.InternalPositionUsesAnchorPoint;
2846         });
2847
2848         /// <summary>
2849         /// AnchorPointProperty
2850         /// </summary>
2851         [EditorBrowsable(EditorBrowsableState.Never)]
2852         public static readonly BindableProperty AnchorPointProperty = BindableProperty.Create(nameof(AnchorPoint), typeof(Tizen.NUI.Position), typeof(View), null, propertyChanged: (bindable, oldValue, newValue) =>
2853         {
2854             var instance = (Tizen.NUI.BaseComponents.View)bindable;
2855             if (newValue != null)
2856             {
2857                 instance.InternalAnchorPoint = (Tizen.NUI.Position)newValue;
2858             }
2859         },
2860         defaultValueCreator: (bindable) =>
2861         {
2862             var instance = (Tizen.NUI.BaseComponents.View)bindable;
2863             return instance.InternalAnchorPoint;
2864         });
2865
2866         /// <summary>
2867         /// WidthSpecificationProperty
2868         /// </summary>
2869         [EditorBrowsable(EditorBrowsableState.Never)]
2870         public static readonly BindableProperty WidthSpecificationProperty = BindableProperty.Create(nameof(WidthSpecification), typeof(int), typeof(View), 0, propertyChanged: (bindable, oldValue, newValue) =>
2871         {
2872             var instance = (Tizen.NUI.BaseComponents.View)bindable;
2873             if (newValue != null)
2874             {
2875                 instance.InternalWidthSpecification = (int)newValue;
2876             }
2877         },
2878         defaultValueCreator: (bindable) =>
2879         {
2880             var instance = (Tizen.NUI.BaseComponents.View)bindable;
2881             return instance.InternalWidthSpecification;
2882         });
2883
2884         /// <summary>
2885         /// HeightSpecificationProperty
2886         /// </summary>
2887         [EditorBrowsable(EditorBrowsableState.Never)]
2888         public static readonly BindableProperty HeightSpecificationProperty = BindableProperty.Create(nameof(HeightSpecification), typeof(int), typeof(View), 0, propertyChanged: (bindable, oldValue, newValue) =>
2889         {
2890             var instance = (Tizen.NUI.BaseComponents.View)bindable;
2891             if (newValue != null)
2892             {
2893                 instance.InternalHeightSpecification = (int)newValue;
2894             }
2895         },
2896         defaultValueCreator: (bindable) =>
2897         {
2898             var instance = (Tizen.NUI.BaseComponents.View)bindable;
2899             return instance.InternalHeightSpecification;
2900         });
2901
2902         /// <summary>
2903         /// LayoutTransitionProperty
2904         /// </summary>
2905         [EditorBrowsable(EditorBrowsableState.Never)]
2906         public static readonly BindableProperty LayoutTransitionProperty = BindableProperty.Create(nameof(LayoutTransition), typeof(Tizen.NUI.LayoutTransition), typeof(View), null, propertyChanged: (bindable, oldValue, newValue) =>
2907         {
2908             var instance = (Tizen.NUI.BaseComponents.View)bindable;
2909             if (newValue != null)
2910             {
2911                 instance.InternalLayoutTransition = (Tizen.NUI.LayoutTransition)newValue;
2912             }
2913         },
2914         defaultValueCreator: (bindable) =>
2915         {
2916             var instance = (Tizen.NUI.BaseComponents.View)bindable;
2917             return instance.InternalLayoutTransition;
2918         });
2919
2920         /// <summary>
2921         /// PaddingEXProperty
2922         /// </summary>
2923         [EditorBrowsable(EditorBrowsableState.Never)]
2924         public static readonly BindableProperty PaddingEXProperty = BindableProperty.Create(nameof(PaddingEX), typeof(Tizen.NUI.Extents), typeof(View), null, propertyChanged: (bindable, oldValue, newValue) =>
2925         {
2926             var instance = (Tizen.NUI.BaseComponents.View)bindable;
2927             if (newValue != null)
2928             {
2929                 instance.InternalPaddingEX = (Tizen.NUI.Extents)newValue;
2930             }
2931         },
2932         defaultValueCreator: (bindable) =>
2933         {
2934             var instance = (Tizen.NUI.BaseComponents.View)bindable;
2935             return instance.InternalPaddingEX;
2936         });
2937
2938         /// <summary>
2939         /// LayoutProperty
2940         /// </summary>
2941         [EditorBrowsable(EditorBrowsableState.Never)]
2942         public static readonly BindableProperty LayoutProperty = BindableProperty.Create(nameof(Layout), typeof(Tizen.NUI.LayoutItem), typeof(View), null, propertyChanged: (bindable, oldValue, newValue) =>
2943         {
2944             var instance = (Tizen.NUI.BaseComponents.View)bindable;
2945             if (newValue != null)
2946             {
2947                 instance.InternalLayout = (Tizen.NUI.LayoutItem)newValue;
2948             }
2949         },
2950         defaultValueCreator: (bindable) =>
2951         {
2952             var instance = (Tizen.NUI.BaseComponents.View)bindable;
2953             return instance.InternalLayout;
2954         });
2955
2956         /// <summary>
2957         /// BackgroundImageSynchronosLoadingProperty
2958         /// </summary>
2959         [EditorBrowsable(EditorBrowsableState.Never)]
2960         public static readonly BindableProperty BackgroundImageSynchronosLoadingProperty = BindableProperty.Create(nameof(BackgroundImageSynchronosLoading), typeof(bool), typeof(View), false, propertyChanged: (bindable, oldValue, newValue) =>
2961         {
2962             var instance = (Tizen.NUI.BaseComponents.View)bindable;
2963             if (newValue != null)
2964             {
2965                 instance.InternalBackgroundImageSynchronosLoading = (bool)newValue;
2966             }
2967         },
2968         defaultValueCreator: (bindable) =>
2969         {
2970             var instance = (Tizen.NUI.BaseComponents.View)bindable;
2971             return instance.InternalBackgroundImageSynchronosLoading;
2972         });
2973
2974         /// <summary>
2975         /// BackgroundImageSynchronousLoadingProperty
2976         /// </summary>
2977         [EditorBrowsable(EditorBrowsableState.Never)]
2978         public static readonly BindableProperty BackgroundImageSynchronousLoadingProperty = BindableProperty.Create(nameof(BackgroundImageSynchronousLoading), typeof(bool), typeof(View), false, propertyChanged: (bindable, oldValue, newValue) =>
2979         {
2980             var instance = (Tizen.NUI.BaseComponents.View)bindable;
2981             if (newValue != null)
2982             {
2983                 instance.InternalBackgroundImageSynchronousLoading = (bool)newValue;
2984             }
2985         },
2986         defaultValueCreator: (bindable) =>
2987         {
2988             var instance = (Tizen.NUI.BaseComponents.View)bindable;
2989             return instance.InternalBackgroundImageSynchronousLoading;
2990         });
2991
2992         /// <summary>
2993         /// EnableControlStatePropagationProperty
2994         /// </summary>
2995         [EditorBrowsable(EditorBrowsableState.Never)]
2996         public static readonly BindableProperty EnableControlStatePropagationProperty = BindableProperty.Create(nameof(EnableControlStatePropagation), typeof(bool), typeof(View), false, propertyChanged: (bindable, oldValue, newValue) =>
2997         {
2998             var instance = (Tizen.NUI.BaseComponents.View)bindable;
2999             if (newValue != null)
3000             {
3001                 instance.InternalEnableControlStatePropagation = (bool)newValue;
3002             }
3003         },
3004         defaultValueCreator: (bindable) =>
3005         {
3006             var instance = (Tizen.NUI.BaseComponents.View)bindable;
3007             return instance.InternalEnableControlStatePropagation;
3008         });
3009
3010         /// <summary>
3011         /// PropagatableControlStatesProperty
3012         /// </summary>
3013         [EditorBrowsable(EditorBrowsableState.Never)]
3014         public static readonly BindableProperty PropagatableControlStatesProperty = BindableProperty.Create(nameof(PropagatableControlStates), typeof(ControlState), typeof(View), ControlState.All, propertyChanged: (bindable, oldValue, newValue) =>
3015         {
3016             var instance = (Tizen.NUI.BaseComponents.View)bindable;
3017             if (newValue != null)
3018             {
3019                 instance.InternalPropagatableControlStates = (ControlState)newValue;
3020             }
3021         },
3022         defaultValueCreator: (bindable) =>
3023         {
3024             var instance = (Tizen.NUI.BaseComponents.View)bindable;
3025             return instance.InternalPropagatableControlStates;
3026         });
3027
3028         /// <summary>
3029         /// GrabTouchAfterLeaveProperty
3030         /// </summary>
3031         [EditorBrowsable(EditorBrowsableState.Never)]
3032         public static readonly BindableProperty GrabTouchAfterLeaveProperty = BindableProperty.Create(nameof(GrabTouchAfterLeave), typeof(bool), typeof(View), false, propertyChanged: (bindable, oldValue, newValue) =>
3033         {
3034             var instance = (Tizen.NUI.BaseComponents.View)bindable;
3035             if (newValue != null)
3036             {
3037                 instance.InternalGrabTouchAfterLeave = (bool)newValue;
3038             }
3039         },
3040         defaultValueCreator: (bindable) =>
3041         {
3042             var instance = (Tizen.NUI.BaseComponents.View)bindable;
3043             return instance.InternalGrabTouchAfterLeave;
3044         });
3045
3046         /// <summary>
3047         /// AllowOnlyOwnTouchProperty
3048         /// </summary>
3049         [EditorBrowsable(EditorBrowsableState.Never)]
3050         public static readonly BindableProperty AllowOnlyOwnTouchProperty = BindableProperty.Create(nameof(AllowOnlyOwnTouch), typeof(bool), typeof(View), false, propertyChanged: (bindable, oldValue, newValue) =>
3051         {
3052             var instance = (Tizen.NUI.BaseComponents.View)bindable;
3053             if (newValue != null)
3054             {
3055                 instance.InternalAllowOnlyOwnTouch = (bool)newValue;
3056             }
3057         },
3058         defaultValueCreator: (bindable) =>
3059         {
3060             var instance = (Tizen.NUI.BaseComponents.View)bindable;
3061             return instance.InternalAllowOnlyOwnTouch;
3062         });
3063
3064
3065         /// <summary>
3066         /// BlendEquationProperty
3067         /// </summary>
3068         [EditorBrowsable(EditorBrowsableState.Never)]
3069         public static readonly BindableProperty BlendEquationProperty = BindableProperty.Create(nameof(BlendEquation), typeof(BlendEquationType), typeof(View), default(BlendEquationType), propertyChanged: (bindable, oldValue, newValue) =>
3070         {
3071             var instance = (Tizen.NUI.BaseComponents.View)bindable;
3072             if (newValue != null)
3073             {
3074                 instance.InternalBlendEquation = (Tizen.NUI.BlendEquationType)newValue;
3075             }
3076         },
3077         defaultValueCreator: (bindable) =>
3078         {
3079             var instance = (Tizen.NUI.BaseComponents.View)bindable;
3080             return instance.InternalBlendEquation;
3081         });
3082
3083         /// <summary>
3084         /// TransitionOptionsProperty
3085         /// </summary>
3086         [EditorBrowsable(EditorBrowsableState.Never)]
3087         public static readonly BindableProperty TransitionOptionsProperty = BindableProperty.Create(nameof(TransitionOptions), typeof(TransitionOptions), typeof(View), default(TransitionOptions), propertyChanged: (bindable, oldValue, newValue) =>
3088         {
3089             var instance = (Tizen.NUI.BaseComponents.View)bindable;
3090             if (newValue != null)
3091             {
3092                 instance.InternalTransitionOptions = (Tizen.NUI.TransitionOptions)newValue;
3093             }
3094         },
3095         defaultValueCreator: (bindable) =>
3096         {
3097             var instance = (Tizen.NUI.BaseComponents.View)bindable;
3098             return instance.InternalTransitionOptions;
3099         });
3100
3101         /// <summary>
3102         /// AutomationIdProperty
3103         /// </summary>
3104         [EditorBrowsable(EditorBrowsableState.Never)]
3105         public static readonly BindableProperty AutomationIdProperty = BindableProperty.Create(nameof(AutomationId), typeof(string), typeof(View), string.Empty, propertyChanged: (bindable, oldValue, newValue) =>
3106         {
3107             var instance = (Tizen.NUI.BaseComponents.View)bindable;
3108             if (newValue != null)
3109             {
3110 #if NUI_PROPERTY_CHANGE_1
3111                 Interop.Actor.InternalSetPropertyString(instance.SwigCPtr, View.Property.AutomationId, (string)newValue);
3112 #else
3113                 Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)instance.SwigCPtr, View.Property.AutomationId, new Tizen.NUI.PropertyValue((string)newValue));
3114 #endif
3115             }
3116         },
3117         defaultValueCreator: (bindable) =>
3118         {
3119             var instance = (Tizen.NUI.BaseComponents.View)bindable;
3120 #if NUI_PROPERTY_CHANGE_1
3121             return Interop.Actor.InternalGetPropertyString(instance.SwigCPtr, View.Property.AutomationId);
3122 #else
3123             string temp = "";
3124             Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)instance.SwigCPtr, View.Property.AutomationId).Get(out temp);
3125             return temp;
3126 #endif
3127         });
3128
3129         /// <summary>
3130         /// TouchAreaOffsetProperty
3131         /// </summary>
3132         [EditorBrowsable(EditorBrowsableState.Never)]
3133         public static readonly BindableProperty TouchAreaOffsetProperty = BindableProperty.Create(nameof(TouchAreaOffset), typeof(Offset), typeof(View), default(Offset), propertyChanged: (bindable, oldValue, newValue) =>
3134         {
3135             var instance = (Tizen.NUI.BaseComponents.View)bindable;
3136             if (newValue != null)
3137             {
3138                 instance.InternalTouchAreaOffset = (Tizen.NUI.Offset)newValue;
3139             }
3140         },
3141         defaultValueCreator: (bindable) =>
3142         {
3143             var instance = (Tizen.NUI.BaseComponents.View)bindable;
3144             return instance.InternalTouchAreaOffset;
3145         });
3146
3147         /// <summary>
3148         /// Gets View's Size2D set by user.
3149         /// </summary>
3150         internal Size2D GetUserSize2D()
3151         {
3152             return new Size2D((int)userSizeWidth, (int)userSizeHeight);
3153         }
3154
3155         private void SetBackgroundImage(string value)
3156         {
3157             if (string.IsNullOrEmpty(value))
3158             {
3159                 var empty = new PropertyValue();
3160                 // Clear background
3161                 Object.SetProperty(SwigCPtr, Property.BACKGROUND, empty);
3162                 empty.Dispose();
3163                 return;
3164             }
3165
3166             if (value.StartsWith("*Resource*"))
3167             {
3168                 string resource = Tizen.Applications.Application.Current.DirectoryInfo.Resource;
3169                 value = value.Replace("*Resource*", resource);
3170             }
3171
3172             if (backgroundExtraData == null)
3173             {
3174 #if NUI_PROPERTY_CHANGE_1
3175                 Interop.Actor.InternalSetPropertyString(SwigCPtr, View.Property.BACKGROUND, value);
3176                 BackgroundImageSynchronousLoading = backgroundImageSynchronousLoading;
3177 #else
3178                 var propertyValue = new PropertyValue(value);
3179                 Object.SetProperty(SwigCPtr, Property.BACKGROUND, propertyValue);
3180                 BackgroundImageSynchronousLoading = backgroundImageSynchronousLoading;
3181                 propertyValue?.Dispose();
3182 #endif
3183                 return;
3184             }
3185
3186             var map = new PropertyMap();
3187             var url = new PropertyValue(value);
3188             var cornerRadiusValue = backgroundExtraData.CornerRadius == null ? new PropertyValue() : new PropertyValue(backgroundExtraData.CornerRadius);
3189             var cornerRadius = new PropertyValue(cornerRadiusValue);
3190             var cornerRadiusPolicy = new PropertyValue((int)(backgroundExtraData.CornerRadiusPolicy));
3191             var borderlineWidth = new PropertyValue(backgroundExtraData.BorderlineWidth);
3192             var borderlineColorValue = backgroundExtraData.BorderlineColor == null ? new PropertyValue(Color.Black) : new PropertyValue(backgroundExtraData.BorderlineColor);
3193             var borderlineColor = new PropertyValue(borderlineColorValue);
3194             var borderlineOffset = new PropertyValue(backgroundExtraData.BorderlineOffset);
3195             var synchronousLoading = new PropertyValue(backgroundImageSynchronousLoading);
3196             var npatchType = new PropertyValue((int)Visual.Type.NPatch);
3197             var border = (backgroundExtraData.BackgroundImageBorder != null) ? new PropertyValue(backgroundExtraData.BackgroundImageBorder) : null;
3198             var imageType = new PropertyValue((int)Visual.Type.Image);
3199
3200             map.Add(ImageVisualProperty.URL, url)
3201                .Add(Visual.Property.CornerRadius, cornerRadius)
3202                .Add(Visual.Property.CornerRadiusPolicy, cornerRadiusPolicy)
3203                .Add(Visual.Property.BorderlineWidth, borderlineWidth)
3204                .Add(Visual.Property.BorderlineColor, borderlineColor)
3205                .Add(Visual.Property.BorderlineOffset, borderlineOffset)
3206                .Add(ImageVisualProperty.SynchronousLoading, synchronousLoading);
3207
3208             if (backgroundExtraData.BackgroundImageBorder != null)
3209             {
3210                 map.Add(Visual.Property.Type, npatchType)
3211                    .Add(NpatchImageVisualProperty.Border, border);
3212             }
3213             else
3214             {
3215                 map.Add(Visual.Property.Type, imageType);
3216             }
3217
3218             var mapValue = new PropertyValue(map);
3219             Object.SetProperty(SwigCPtr, Property.BACKGROUND, mapValue);
3220
3221             imageType?.Dispose();
3222             border?.Dispose();
3223             npatchType?.Dispose();
3224             synchronousLoading?.Dispose();
3225             borderlineOffset?.Dispose();
3226             borderlineColor?.Dispose();
3227             borderlineColorValue?.Dispose();
3228             borderlineWidth?.Dispose();
3229             cornerRadiusPolicy?.Dispose();
3230             cornerRadius?.Dispose();
3231             cornerRadiusValue?.Dispose();
3232             url?.Dispose();
3233             map?.Dispose();
3234             mapValue?.Dispose();
3235         }
3236
3237         private void SetBackgroundImageBorder(Rectangle value)
3238         {
3239             bool isEmptyValue = Rectangle.IsNullOrZero(value);
3240
3241             var backgroundImageBorder = isEmptyValue ? null : value;
3242
3243             (backgroundExtraData ?? (backgroundExtraData = new BackgroundExtraData())).BackgroundImageBorder = backgroundImageBorder;
3244
3245             if (isEmptyValue)
3246             {
3247                 return;
3248             }
3249
3250             PropertyMap map = Background;
3251
3252             if (map.Empty())
3253             {
3254                 return;
3255             }
3256
3257             map[NpatchImageVisualProperty.Border] = new PropertyValue(backgroundImageBorder);
3258
3259             int visualType = 0;
3260
3261             map.Find(Visual.Property.Type)?.Get(out visualType);
3262
3263             if (visualType == (int)Visual.Type.Image)
3264             {
3265                 map[Visual.Property.Type] = new PropertyValue((int)Visual.Type.NPatch);
3266             }
3267
3268             Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)SwigCPtr, View.Property.BACKGROUND, new PropertyValue(map));
3269         }
3270
3271         private void SetBorderlineColor(Color value)
3272         {
3273             if (value == null)
3274             {
3275                 return;
3276             }
3277
3278             (backgroundExtraData ?? (backgroundExtraData = new BackgroundExtraData())).BorderlineColor = value;
3279
3280             ApplyBorderline();
3281         }
3282
3283         private void SetBackgroundColor(Color value)
3284         {
3285             if (value == null)
3286             {
3287                 return;
3288             }
3289
3290             if (backgroundExtraData == null)
3291             {
3292 #if NUI_PROPERTY_CHANGE_1
3293                 Interop.Actor.InternalSetPropertyVector4(SwigCPtr, View.Property.BACKGROUND, ((Color)value).SwigCPtr);
3294 #else
3295                 var background = new PropertyValue(value);
3296                 Object.SetProperty(SwigCPtr, Property.BACKGROUND, background);
3297                 background?.Dispose();
3298 #endif
3299                 return;
3300             }
3301
3302             var map = new PropertyMap();
3303             var colorType = new PropertyValue((int)Visual.Type.Color);
3304             var mixColor = new PropertyValue(value);
3305             var cornerRadiusValue = backgroundExtraData.CornerRadius == null ? new PropertyValue() : new PropertyValue(backgroundExtraData.CornerRadius);
3306             var cornerRadius = new PropertyValue(cornerRadiusValue);
3307             var cornerRadiusPolicy = new PropertyValue((int)(backgroundExtraData.CornerRadiusPolicy));
3308             var borderlineWidth = new PropertyValue(backgroundExtraData.BorderlineWidth);
3309             var borderlineColorValue = backgroundExtraData.BorderlineColor == null ? new PropertyValue(Color.Black) : new PropertyValue(backgroundExtraData.BorderlineColor);
3310             var borderlineColor = new PropertyValue(borderlineColorValue);
3311             var borderlineOffset = new PropertyValue(backgroundExtraData.BorderlineOffset);
3312
3313             map.Add(Visual.Property.Type, colorType)
3314                .Add(ColorVisualProperty.MixColor, mixColor)
3315                .Add(Visual.Property.CornerRadius, cornerRadius)
3316                .Add(Visual.Property.CornerRadiusPolicy, cornerRadiusPolicy)
3317                .Add(Visual.Property.BorderlineWidth, borderlineWidth)
3318                .Add(Visual.Property.BorderlineColor, borderlineColor)
3319                .Add(Visual.Property.BorderlineOffset, borderlineOffset);
3320
3321             var mapValue = new PropertyValue(map);
3322             Object.SetProperty(SwigCPtr, Property.BACKGROUND, mapValue);
3323
3324             borderlineOffset?.Dispose();
3325             borderlineColor?.Dispose();
3326             borderlineColorValue?.Dispose();
3327             borderlineWidth?.Dispose();
3328             cornerRadiusPolicy?.Dispose();
3329             cornerRadius?.Dispose();
3330             cornerRadiusValue?.Dispose();
3331             mixColor?.Dispose();
3332             colorType?.Dispose();
3333             map?.Dispose();
3334             mapValue?.Dispose();
3335         }
3336
3337         private void SetColor(Color value)
3338         {
3339             if (value == null)
3340             {
3341                 return;
3342             }
3343
3344             Interop.ActorInternal.SetColor(SwigCPtr, value.SwigCPtr);
3345             if (NDalicPINVOKE.SWIGPendingException.Pending)
3346                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
3347         }
3348
3349         private void SetColorRed(float? value)
3350         {
3351             if (value == null)
3352             {
3353                 return;
3354             }
3355 #if NUI_PROPERTY_CHANGE_1
3356             Interop.Actor.InternalSetPropertyFloat(SwigCPtr, View.Property.ColorRed, (float)value);
3357 #else
3358             using var propertyValue = new Tizen.NUI.PropertyValue((float)value);
3359             Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)SwigCPtr, View.Property.ColorRed, propertyValue);
3360 #endif
3361             if (NDalicPINVOKE.SWIGPendingException.Pending)
3362                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
3363         }
3364
3365         private void SetColorGreen(float? value)
3366         {
3367             if (value == null)
3368             {
3369                 return;
3370             }
3371 #if NUI_PROPERTY_CHANGE_1
3372             Interop.Actor.InternalSetPropertyFloat(SwigCPtr, View.Property.ColorGreen, (float)value);
3373 #else
3374             using var propertyValue = new Tizen.NUI.PropertyValue((float)value);
3375             Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)SwigCPtr, View.Property.ColorGreen, propertyValue);
3376 #endif
3377             if (NDalicPINVOKE.SWIGPendingException.Pending)
3378                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
3379         }
3380
3381         private void SetColorBlue(float? value)
3382         {
3383             if (value == null)
3384             {
3385                 return;
3386             }
3387 #if NUI_PROPERTY_CHANGE_1
3388             Interop.Actor.InternalSetPropertyFloat(SwigCPtr, View.Property.ColorBlue, (float)value);
3389 #else
3390             using var propertyValue = new Tizen.NUI.PropertyValue((float)value);
3391             Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)SwigCPtr, View.Property.ColorBlue, propertyValue);
3392 #endif
3393             if (NDalicPINVOKE.SWIGPendingException.Pending)
3394                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
3395         }
3396
3397         private void SetOpacity(float? value)
3398         {
3399             if (value == null)
3400             {
3401                 return;
3402             }
3403 #if NUI_PROPERTY_CHANGE_1
3404             Interop.Actor.InternalSetPropertyFloat(SwigCPtr, View.Property.OPACITY, (float)value);
3405 #else
3406             Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)SwigCPtr, View.Property.OPACITY, new Tizen.NUI.PropertyValue((float)value));
3407 #endif
3408         }
3409
3410         private void SetShadow(ShadowBase value)
3411         {
3412             Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)SwigCPtr, View.Property.SHADOW, value == null ? new PropertyValue() : value.ToPropertyValue(this));
3413         }
3414     }
3415 }