[NUI] Apply CornerRadius to View (#1463)
[platform/core/csapi/tizenfx.git] / src / Tizen.NUI / src / public / BaseComponents / ViewBindableProperty.cs
1 /*
2  * Copyright(c) 2019 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 System.ComponentModel;
19 using Tizen.NUI.Binding;
20
21 namespace Tizen.NUI.BaseComponents
22 {
23     /// <summary>
24     /// View is the base class for all views.
25     /// </summary>
26     /// <since_tizen> 3 </since_tizen>
27     public partial class View
28     {
29         /// <summary>
30         /// StyleNameProperty
31         /// </summary>
32         [EditorBrowsable(EditorBrowsableState.Never)]
33         public static readonly BindableProperty StyleNameProperty = BindableProperty.Create("StyleName", typeof(string), typeof(View), string.Empty, propertyChanged: (bindable, oldValue, newValue) =>
34         {
35             var view = (View)bindable;
36             if (newValue != null)
37             {
38                 Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.STYLE_NAME, new Tizen.NUI.PropertyValue((string)newValue));
39             }
40         },
41         defaultValueCreator: (bindable) =>
42         {
43             var view = (View)bindable;
44             string temp;
45             Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.STYLE_NAME).Get(out temp);
46             return temp;
47         });
48
49         /// <summary>
50         /// BackgroundColorProperty
51         /// </summary>
52         [EditorBrowsable(EditorBrowsableState.Never)]
53         public static readonly BindableProperty BackgroundColorProperty = BindableProperty.Create("BackgroundColor", typeof(Color), typeof(View), null, propertyChanged: (bindable, oldValue, newValue) =>
54         {
55             var view = (View)bindable;
56             if (newValue != null)
57             {
58                 Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.BACKGROUND, new Tizen.NUI.PropertyValue((Color)newValue));
59
60                 // Apply CornerRadius if needs
61                 if (view.cornerRadius != null && view.cornerRadius.GetValue() != 0)
62                 {
63                     view.ApplyCornerRadius();
64                 }
65             }
66         },
67         defaultValueCreator: (bindable) =>
68         {
69             var view = (View)bindable;
70             Color backgroundColor = new Color(0.0f, 0.0f, 0.0f, 0.0f);
71
72             Tizen.NUI.PropertyMap background = view.Background;
73             int visualType = 0;
74             background.Find(Visual.Property.Type)?.Get(out visualType);
75             if (visualType == (int)Visual.Type.Color)
76             {
77                 background.Find(ColorVisualProperty.MixColor)?.Get(backgroundColor);
78             }
79
80             return backgroundColor;
81         });
82
83         /// <summary> BackgroundImageProperty </summary>
84         [EditorBrowsable(EditorBrowsableState.Never)]
85         public static readonly BindableProperty BackgroundImageProperty = BindableProperty.Create("BackgroundImage", typeof(string), typeof(View), default(string), propertyChanged: (bindable, oldValue, newValue) =>
86         {
87             var view = (View)bindable;
88             if (newValue != null)
89             {
90                 string url = (string)newValue;
91
92                 if (Rectangle.IsNullOrZero(view.backgroundImageBorder))
93                 {
94                     Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.BACKGROUND, string.IsNullOrEmpty(url) ? new PropertyValue() : new PropertyValue(url));
95
96                     // Apply CornerRadius if needs
97                     if (view.cornerRadius != null && view.cornerRadius.GetValue() != 0)
98                     {
99                         view.ApplyCornerRadius();
100                     }
101                 }
102                 else
103                 {
104                     var visual = new NPatchVisual();
105                     visual.URL = url;
106                     visual.Border = view.backgroundImageBorder;
107                     Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.BACKGROUND, new PropertyValue(visual.OutputVisualMap));
108                 }
109
110                 view.BackgroundImageSynchronosLoading = view._backgroundImageSynchronosLoading;
111             }
112         },
113         defaultValueCreator: (bindable) =>
114         {
115             var view = (View)bindable;
116             string backgroundImage = "";
117
118             Tizen.NUI.PropertyMap background = view.Background;
119             int visualType = 0;
120             background.Find(Visual.Property.Type)?.Get(out visualType);
121             if ((visualType == (int)Visual.Type.Image) || (visualType == (int)Visual.Type.NPatch))
122             {
123                 background.Find(ImageVisualProperty.URL)?.Get(out backgroundImage);
124             }
125
126             return backgroundImage;
127         });
128         /// <summary>BackgroundImageBorderProperty</summary>
129         [EditorBrowsable(EditorBrowsableState.Never)]
130         public static readonly BindableProperty BackgroundImageBorderProperty = BindableProperty.Create(nameof(BackgroundImageBorder), typeof(Rectangle), typeof(View), default(Rectangle), propertyChanged: (bindable, oldValue, newValue) =>
131         {
132             var view = (View)bindable;
133             string url = view.BackgroundImage;
134             view.backgroundImageBorder = (Rectangle)newValue;
135
136             if (string.IsNullOrEmpty(url))
137             {
138                 return;
139             }
140
141             if (Rectangle.IsNullOrZero(view.backgroundImageBorder))
142             {
143                 Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.BACKGROUND, new PropertyValue(url));
144
145                 // Apply CornerRadius if needs
146                 if (view.cornerRadius != null && view.cornerRadius.GetValue() != 0)
147                 {
148                     view.ApplyCornerRadius();
149                 }
150             }
151             else
152             {
153                 var visual = new NPatchVisual();
154                 visual.URL = url;
155                 visual.Border = view.backgroundImageBorder;
156                 Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.BACKGROUND, new PropertyValue(visual.OutputVisualMap));
157             }
158         },
159         defaultValueCreator: (bindable) =>
160         {
161             var view = (View)bindable;
162             return view.backgroundImageBorder == null ? new Rectangle(view.OnBackgroundImageBorderChanged) : new Rectangle(view.OnBackgroundImageBorderChanged, view.backgroundImageBorder);
163         });
164         /// <summary>
165         /// BackgroundProperty
166         /// </summary>
167         [EditorBrowsable(EditorBrowsableState.Never)]
168         public static readonly BindableProperty BackgroundProperty = BindableProperty.Create("Background", typeof(PropertyMap), typeof(View), null, propertyChanged: (bindable, oldValue, newValue) =>
169         {
170             var view = (View)bindable;
171             if (newValue != null)
172             {
173                 Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.BACKGROUND, new Tizen.NUI.PropertyValue((PropertyMap)newValue));
174             }
175         },
176         defaultValueCreator: (bindable) =>
177         {
178             var view = (View)bindable;
179             Tizen.NUI.PropertyMap temp = new Tizen.NUI.PropertyMap();
180             Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.BACKGROUND).Get(temp);
181             return temp;
182         });
183
184         /// <summary>
185         /// StateProperty
186         /// </summary>
187         [EditorBrowsable(EditorBrowsableState.Never)]
188         public static readonly BindableProperty StateProperty = BindableProperty.Create("State", typeof(States), typeof(View), States.Normal, propertyChanged: (bindable, oldValue, newValue) =>
189         {
190             var view = (View)bindable;
191             if (newValue != null)
192             {
193                 Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.STATE, new Tizen.NUI.PropertyValue((int)newValue));
194             }
195         },
196         defaultValueCreator: (bindable) =>
197         {
198             var view = (View)bindable;
199             int temp = 0;
200             if (Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.STATE).Get(out temp) == false)
201             {
202                 NUILog.Error("State get error!");
203             }
204             switch (temp)
205             {
206                 case 0: return States.Normal;
207                 case 1: return States.Focused;
208                 case 2: return States.Disabled;
209                 default: return States.Normal;
210             }
211         });
212
213         /// <summary>
214         /// SubStateProperty
215         /// </summary>
216         [EditorBrowsable(EditorBrowsableState.Never)]
217         public static readonly BindableProperty SubStateProperty = BindableProperty.Create("SubState", typeof(States), typeof(View), States.Normal, propertyChanged: (bindable, oldValue, newValue) =>
218         {
219             var view = (View)bindable;
220             string valueToString = "";
221             if (newValue != null)
222             {
223                 valueToString = ((States)newValue).GetDescription<States>();
224                 Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.SUB_STATE, new Tizen.NUI.PropertyValue(valueToString));
225             }
226         },
227         defaultValueCreator: (bindable) =>
228         {
229             var view = (View)bindable;
230             string temp;
231             if (Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.SUB_STATE).Get(out temp) == false)
232             {
233                 NUILog.Error("subState get error!");
234             }
235             return temp.GetValueByDescription<States>();
236         });
237
238         /// <summary>
239         /// TooltipProperty
240         /// </summary>
241         [EditorBrowsable(EditorBrowsableState.Never)]
242         public static readonly BindableProperty TooltipProperty = BindableProperty.Create("Tooltip", typeof(PropertyMap), typeof(View), null, propertyChanged: (bindable, oldValue, newValue) =>
243         {
244             var view = (View)bindable;
245             if (newValue != null)
246             {
247                 Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.TOOLTIP, new Tizen.NUI.PropertyValue((PropertyMap)newValue));
248             }
249         },
250         defaultValueCreator: (bindable) =>
251         {
252             var view = (View)bindable;
253             Tizen.NUI.PropertyMap temp = new Tizen.NUI.PropertyMap();
254             Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.TOOLTIP).Get(temp);
255             return temp;
256         });
257
258         /// <summary>
259         /// FlexProperty
260         /// </summary>
261         [EditorBrowsable(EditorBrowsableState.Never)]
262         public static readonly BindableProperty FlexProperty = BindableProperty.Create("Flex", typeof(float), typeof(View), default(float), propertyChanged: (bindable, oldValue, newValue) =>
263         {
264             var view = (View)bindable;
265             if (newValue != null)
266             {
267                 Tizen.NUI.Object.SetProperty(view.swigCPtr, FlexContainer.ChildProperty.FLEX, new Tizen.NUI.PropertyValue((float)newValue));
268             }
269         },
270         defaultValueCreator: (bindable) =>
271         {
272             var view = (View)bindable;
273             float temp = 0.0f;
274             Tizen.NUI.Object.GetProperty(view.swigCPtr, FlexContainer.ChildProperty.FLEX).Get(out temp);
275             return temp;
276         });
277
278         /// <summary>
279         /// AlignSelfProperty
280         /// </summary>
281         [EditorBrowsable(EditorBrowsableState.Never)]
282         public static readonly BindableProperty AlignSelfProperty = BindableProperty.Create("AlignSelf", typeof(int), typeof(View), default(int), propertyChanged: (bindable, oldValue, newValue) =>
283         {
284             var view = (View)bindable;
285             if (newValue != null)
286             {
287                 Tizen.NUI.Object.SetProperty(view.swigCPtr, FlexContainer.ChildProperty.ALIGN_SELF, new Tizen.NUI.PropertyValue((int)newValue));
288             }
289         },
290         defaultValueCreator: (bindable) =>
291         {
292             var view = (View)bindable;
293             int temp = 0;
294             Tizen.NUI.Object.GetProperty(view.swigCPtr, FlexContainer.ChildProperty.ALIGN_SELF).Get(out temp);
295             return temp;
296         });
297
298         /// <summary>
299         /// FlexMarginProperty
300         /// </summary>
301         [EditorBrowsable(EditorBrowsableState.Never)]
302         public static readonly BindableProperty FlexMarginProperty = BindableProperty.Create("FlexMargin", typeof(Vector4), typeof(View), null, propertyChanged: (bindable, oldValue, newValue) =>
303         {
304             var view = (View)bindable;
305             if (newValue != null)
306             {
307                 Tizen.NUI.Object.SetProperty(view.swigCPtr, FlexContainer.ChildProperty.FLEX_MARGIN, new Tizen.NUI.PropertyValue((Vector4)newValue));
308             }
309         },
310         defaultValueCreator: (bindable) =>
311         {
312             var view = (View)bindable;
313             Vector4 temp = new Vector4(0.0f, 0.0f, 0.0f, 0.0f);
314             Tizen.NUI.Object.GetProperty(view.swigCPtr, FlexContainer.ChildProperty.FLEX_MARGIN).Get(temp);
315             return temp;
316         });
317
318         /// <summary>
319         /// CellIndexProperty
320         /// </summary>
321         [EditorBrowsable(EditorBrowsableState.Never)]
322         public static readonly BindableProperty CellIndexProperty = BindableProperty.Create("CellIndex", typeof(Vector2), typeof(View), null, propertyChanged: (bindable, oldValue, newValue) =>
323         {
324             var view = (View)bindable;
325             if (newValue != null)
326             {
327                 Tizen.NUI.Object.SetProperty(view.swigCPtr, TableView.ChildProperty.CELL_INDEX, new Tizen.NUI.PropertyValue((Vector2)newValue));
328             }
329         },
330         defaultValueCreator: (bindable) =>
331         {
332             var view = (View)bindable;
333             Vector2 temp = new Vector2(0.0f, 0.0f);
334             Tizen.NUI.Object.GetProperty(view.swigCPtr, TableView.ChildProperty.CELL_INDEX).Get(temp);
335             return temp;
336         });
337
338         /// <summary>
339         /// RowSpanProperty
340         /// </summary>
341         [EditorBrowsable(EditorBrowsableState.Never)]
342         public static readonly BindableProperty RowSpanProperty = BindableProperty.Create("RowSpan", typeof(float), typeof(View), default(float), propertyChanged: (bindable, oldValue, newValue) =>
343         {
344             var view = (View)bindable;
345             if (newValue != null)
346             {
347                 Tizen.NUI.Object.SetProperty(view.swigCPtr, TableView.ChildProperty.ROW_SPAN, new Tizen.NUI.PropertyValue((float)newValue));
348             }
349         },
350         defaultValueCreator: (bindable) =>
351         {
352             var view = (View)bindable;
353             float temp = 0.0f;
354             Tizen.NUI.Object.GetProperty(view.swigCPtr, TableView.ChildProperty.ROW_SPAN).Get(out temp);
355             return temp;
356         });
357
358         /// <summary>
359         /// ColumnSpanProperty
360         /// </summary>
361         [EditorBrowsable(EditorBrowsableState.Never)]
362         public static readonly BindableProperty ColumnSpanProperty = BindableProperty.Create("ColumnSpan", typeof(float), typeof(View), default(float), propertyChanged: (bindable, oldValue, newValue) =>
363         {
364             var view = (View)bindable;
365             if (newValue != null)
366             {
367                 Tizen.NUI.Object.SetProperty(view.swigCPtr, TableView.ChildProperty.COLUMN_SPAN, new Tizen.NUI.PropertyValue((float)newValue));
368             }
369         },
370         defaultValueCreator: (bindable) =>
371         {
372             var view = (View)bindable;
373             float temp = 0.0f;
374             Tizen.NUI.Object.GetProperty(view.swigCPtr, TableView.ChildProperty.COLUMN_SPAN).Get(out temp);
375             return temp;
376         });
377
378         /// <summary>
379         /// CellHorizontalAlignmentProperty
380         /// </summary>
381         [EditorBrowsable(EditorBrowsableState.Never)]
382         public static readonly BindableProperty CellHorizontalAlignmentProperty = BindableProperty.Create("CellHorizontalAlignment", typeof(HorizontalAlignmentType), typeof(View), HorizontalAlignmentType.Left, propertyChanged: (bindable, oldValue, newValue) =>
383         {
384             var view = (View)bindable;
385             string valueToString = "";
386
387             if (newValue != null)
388             {
389                 valueToString = ((HorizontalAlignmentType)newValue).GetDescription<HorizontalAlignmentType>();
390                 Tizen.NUI.Object.SetProperty(view.swigCPtr, TableView.ChildProperty.CELL_HORIZONTAL_ALIGNMENT, new Tizen.NUI.PropertyValue(valueToString));
391             }
392         },
393         defaultValueCreator: (bindable) =>
394         {
395             var view = (View)bindable;
396             string temp;
397             if (Tizen.NUI.Object.GetProperty(view.swigCPtr, TableView.ChildProperty.CELL_HORIZONTAL_ALIGNMENT).Get(out temp) == false)
398             {
399                 NUILog.Error("CellHorizontalAlignment get error!");
400             }
401
402             return temp.GetValueByDescription<HorizontalAlignmentType>();
403         });
404
405         /// <summary>
406         /// CellVerticalAlignmentProperty
407         /// </summary>
408         [EditorBrowsable(EditorBrowsableState.Never)]
409         public static readonly BindableProperty CellVerticalAlignmentProperty = BindableProperty.Create("CellVerticalAlignment", typeof(VerticalAlignmentType), typeof(View), VerticalAlignmentType.Top, propertyChanged: (bindable, oldValue, newValue) =>
410         {
411             var view = (View)bindable;
412             string valueToString = "";
413
414             if (newValue != null)
415             {
416                 valueToString = ((VerticalAlignmentType)newValue).GetDescription<VerticalAlignmentType>();
417                 Tizen.NUI.Object.SetProperty(view.swigCPtr, TableView.ChildProperty.CELL_VERTICAL_ALIGNMENT, new Tizen.NUI.PropertyValue(valueToString));
418             }
419         },
420         defaultValueCreator: (bindable) =>
421         {
422             var view = (View)bindable;
423             string temp;
424             Tizen.NUI.Object.GetProperty(view.swigCPtr, TableView.ChildProperty.CELL_VERTICAL_ALIGNMENT).Get(out temp);
425             {
426                 NUILog.Error("CellVerticalAlignment get error!");
427             }
428
429             return temp.GetValueByDescription<VerticalAlignmentType>();
430         });
431
432         /// <summary>
433         /// "Please DO NOT use! This will be deprecated! Please use 'View Weight' instead of BindableProperty"
434         /// This needs to be hidden as inhouse API until all applications using it have been updated.  Do not make public.
435         /// </summary>
436         [EditorBrowsable(EditorBrowsableState.Never)]
437         public static readonly BindableProperty WeightProperty = BindableProperty.Create("Weight", typeof(float), typeof(View), default(float), propertyChanged: (bindable, oldValue, newValue) =>
438         {
439             var view = (View)bindable;
440             if (newValue != null)
441             {
442                 view.Weight = (float)newValue;
443             }
444         },
445
446         defaultValueCreator: (bindable) =>
447         {
448             var view = (View)bindable;
449             return view.Weight;
450         });
451
452         /// <summary>
453         /// LeftFocusableViewProperty
454         /// </summary>
455         [EditorBrowsable(EditorBrowsableState.Never)]
456         public static readonly BindableProperty LeftFocusableViewProperty = BindableProperty.Create(nameof(View.LeftFocusableView), typeof(View), typeof(View), null, propertyChanged: (bindable, oldValue, newValue) =>
457         {
458             var view = (View)bindable;
459             if (newValue != null) { view.LeftFocusableViewId = (int)(newValue as View)?.GetId(); }
460             else { view.LeftFocusableViewId = -1; }
461         },
462         defaultValueCreator: (bindable) =>
463         {
464             var view = (View)bindable;
465             if (view.LeftFocusableViewId >= 0) { return view.ConvertIdToView((uint)view.LeftFocusableViewId); }
466             return null;
467         });
468
469         /// <summary>
470         /// RightFocusableViewProperty
471         /// </summary>
472         [EditorBrowsable(EditorBrowsableState.Never)]
473         public static readonly BindableProperty RightFocusableViewProperty = BindableProperty.Create(nameof(View.RightFocusableView), typeof(View), typeof(View), null, propertyChanged: (bindable, oldValue, newValue) =>
474         {
475             var view = (View)bindable;
476             if (newValue != null) { view.RightFocusableViewId = (int)(newValue as View)?.GetId(); }
477             else { view.RightFocusableViewId = -1; }
478         },
479         defaultValueCreator: (bindable) =>
480         {
481             var view = (View)bindable;
482             if (view.RightFocusableViewId >= 0) { return view.ConvertIdToView((uint)view.RightFocusableViewId); }
483             return null;
484         });
485
486         /// <summary>
487         /// UpFocusableViewProperty
488         /// </summary>
489         [EditorBrowsable(EditorBrowsableState.Never)]
490         public static readonly BindableProperty UpFocusableViewProperty = BindableProperty.Create(nameof(View.UpFocusableView), typeof(View), typeof(View), null, propertyChanged: (bindable, oldValue, newValue) =>
491         {
492             var view = (View)bindable;
493             if (newValue != null) { view.UpFocusableViewId = (int)(newValue as View)?.GetId(); }
494             else { view.UpFocusableViewId = -1; }
495         },
496         defaultValueCreator: (bindable) =>
497         {
498             var view = (View)bindable;
499             if (view.UpFocusableViewId >= 0) { return view.ConvertIdToView((uint)view.UpFocusableViewId); }
500             return null;
501         });
502
503         /// <summary>
504         /// DownFocusableViewProperty
505         /// </summary>
506         [EditorBrowsable(EditorBrowsableState.Never)]
507         public static readonly BindableProperty DownFocusableViewProperty = BindableProperty.Create(nameof(View.DownFocusableView), typeof(View), typeof(View), null, propertyChanged: (bindable, oldValue, newValue) =>
508         {
509             var view = (View)bindable;
510             if (newValue != null) { view.DownFocusableViewId = (int)(newValue as View)?.GetId(); }
511             else { view.DownFocusableViewId = -1; }
512         },
513         defaultValueCreator: (bindable) =>
514         {
515             var view = (View)bindable;
516             if (view.DownFocusableViewId >= 0) { return view.ConvertIdToView((uint)view.DownFocusableViewId); }
517             return null;
518         });
519
520         /// <summary>
521         /// FocusableProperty
522         /// </summary>
523         [EditorBrowsable(EditorBrowsableState.Never)]
524         public static readonly BindableProperty FocusableProperty = BindableProperty.Create("Focusable", typeof(bool), typeof(View), false, propertyChanged: (bindable, oldValue, newValue) =>
525         {
526             var view = (View)bindable;
527             if (newValue != null) { view.SetKeyboardFocusable((bool)newValue); }
528         },
529         defaultValueCreator: (bindable) =>
530         {
531             var view = (View)bindable;
532             return view.IsKeyboardFocusable();
533         });
534
535         /// <summary>
536         /// Size2DProperty
537         /// </summary>
538         [EditorBrowsable(EditorBrowsableState.Never)]
539         public static readonly BindableProperty Size2DProperty = BindableProperty.Create("Size2D", typeof(Size2D), typeof(View), null, propertyChanged: (bindable, oldValue, newValue) =>
540         {
541             var view = (View)bindable;
542             if (newValue != null)
543             {
544                 Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.SIZE, new Tizen.NUI.PropertyValue(new Size((Size2D)newValue)));
545             }
546         },
547         defaultValueCreator: (bindable) =>
548         {
549             var view = (View)bindable;
550             Size temp = new Size(0.0f, 0.0f, 0.0f);
551             Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.SIZE).Get(temp);
552             Size2D size = new Size2D((int)temp.Width, (int)temp.Height);
553             return size;
554         });
555
556         /// <summary>
557         /// OpacityProperty
558         /// </summary>
559         [EditorBrowsable(EditorBrowsableState.Never)]
560         public static readonly BindableProperty OpacityProperty = BindableProperty.Create("Opacity", typeof(float), typeof(View), default(float), propertyChanged: (bindable, oldValue, newValue) =>
561         {
562             var view = (View)bindable;
563             if (newValue != null)
564             {
565                 Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.OPACITY, new Tizen.NUI.PropertyValue((float)newValue));
566             }
567         },
568         defaultValueCreator: (bindable) =>
569         {
570             var view = (View)bindable;
571             float temp = 0.0f;
572             Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.OPACITY).Get(out temp);
573             return temp;
574         });
575
576         /// <summary>
577         /// Position2DProperty
578         /// </summary>
579         [EditorBrowsable(EditorBrowsableState.Never)]
580         public static readonly BindableProperty Position2DProperty = BindableProperty.Create("Position2D", typeof(Position2D), typeof(View), null, propertyChanged: (bindable, oldValue, newValue) =>
581         {
582             var view = (View)bindable;
583             if (newValue != null)
584             {
585                 Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.POSITION, new Tizen.NUI.PropertyValue(new Position((Position2D)newValue)));
586             }
587         },
588         defaultValueCreator: (bindable) =>
589         {
590             var view = (View)bindable;
591             Position temp = new Position(0.0f, 0.0f, 0.0f);
592             Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.POSITION).Get(temp);
593             return new Position2D(temp);
594         });
595
596         /// <summary>
597         /// PositionUsesPivotPointProperty
598         /// </summary>
599         [EditorBrowsable(EditorBrowsableState.Never)]
600         public static readonly BindableProperty PositionUsesPivotPointProperty = BindableProperty.Create("PositionUsesPivotPoint", typeof(bool), typeof(View), true, propertyChanged: (bindable, oldValue, newValue) =>
601         {
602             var view = (View)bindable;
603             if (newValue != null)
604             {
605                 Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.POSITION_USES_ANCHOR_POINT, new Tizen.NUI.PropertyValue((bool)newValue));
606             }
607         },
608         defaultValueCreator: (bindable) =>
609         {
610             var view = (View)bindable;
611             bool temp = false;
612             Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.POSITION_USES_ANCHOR_POINT).Get(out temp);
613             return temp;
614         });
615
616         /// <summary>
617         /// SiblingOrderProperty
618         /// </summary>
619         [EditorBrowsable(EditorBrowsableState.Never)]
620         public static readonly BindableProperty SiblingOrderProperty = BindableProperty.Create("SiblingOrder", typeof(int), typeof(View), default(int), propertyChanged: (bindable, oldValue, newValue) =>
621         {
622             var view = (View)bindable;
623             int value;
624             if (newValue != null)
625             {
626                 value = (int)newValue;
627                 if (value < 0)
628                 {
629                     NUILog.Error("SiblingOrder should be bigger than 0 or equal to 0.");
630                     return;
631                 }
632                 var siblings = view.GetParent()?.Children;
633                 if (siblings != null)
634                 {
635                     int currentOrder = siblings.IndexOf(view);
636                     if (value != currentOrder)
637                     {
638                         if (value == 0) { view.LowerToBottom(); }
639                         else if (value < siblings.Count - 1)
640                         {
641                             if (value > currentOrder) { view.RaiseAbove(siblings[value]); }
642                             else { view.LowerBelow(siblings[value]); }
643                         }
644                         else { view.RaiseToTop(); }
645                     }
646                 }
647             }
648         },
649         defaultValueCreator: (bindable) =>
650         {
651             var view = (View)bindable;
652             var parentChildren = view.GetParent()?.Children;
653             int currentOrder = 0;
654             if (parentChildren != null)
655             {
656                 currentOrder = parentChildren.IndexOf(view);
657
658                 if (currentOrder < 0) { return 0; }
659                 else if (currentOrder < parentChildren.Count) { return currentOrder; }
660             }
661
662             return 0;
663         });
664
665         /// <summary>
666         /// ParentOriginProperty
667         /// </summary>
668         [EditorBrowsable(EditorBrowsableState.Never)]
669         public static readonly BindableProperty ParentOriginProperty = BindableProperty.Create("ParentOrigin", typeof(Position), typeof(View), null, propertyChanged: (bindable, oldValue, newValue) =>
670         {
671             var view = (View)bindable;
672             if (newValue != null)
673             {
674                 Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.PARENT_ORIGIN, new Tizen.NUI.PropertyValue((Position)newValue));
675             }
676         },
677         defaultValueCreator: (bindable) =>
678         {
679             var view = (View)bindable;
680             Position temp = new Position(0.0f, 0.0f, 0.0f);
681             Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.PARENT_ORIGIN).Get(temp);
682             return temp;
683         }
684         );
685
686         /// <summary>
687         /// PivotPointProperty
688         /// </summary>
689         [EditorBrowsable(EditorBrowsableState.Never)]
690         public static readonly BindableProperty PivotPointProperty = BindableProperty.Create("PivotPoint", typeof(Position), typeof(View), null, propertyChanged: (bindable, oldValue, newValue) =>
691         {
692             var view = (View)bindable;
693             if (newValue != null)
694             {
695                 Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.ANCHOR_POINT, new Tizen.NUI.PropertyValue((Position)newValue));
696             }
697         },
698         defaultValueCreator: (bindable) =>
699         {
700             var view = (View)bindable;
701             Position temp = new Position(0.0f, 0.0f, 0.0f);
702             Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.ANCHOR_POINT).Get(temp);
703             return temp;
704         });
705
706         /// <summary>
707         /// SizeWidthProperty
708         /// </summary>
709         [EditorBrowsable(EditorBrowsableState.Never)]
710         public static readonly BindableProperty SizeWidthProperty = BindableProperty.Create("SizeWidth", typeof(float), typeof(View), default(float), propertyChanged: (bindable, oldValue, newValue) =>
711         {
712             var view = (View)bindable;
713             if (newValue != null)
714             {
715                 Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.SIZE_WIDTH, new Tizen.NUI.PropertyValue((float)newValue));
716             }
717         },
718         defaultValueCreator: (bindable) =>
719         {
720             var view = (View)bindable;
721             float temp = 0.0f;
722             Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.SIZE_WIDTH).Get(out temp);
723             return temp;
724         });
725
726         /// <summary>
727         /// SizeHeightProperty
728         /// </summary>
729         [EditorBrowsable(EditorBrowsableState.Never)]
730         public static readonly BindableProperty SizeHeightProperty = BindableProperty.Create("SizeHeight", typeof(float), typeof(View), default(float), propertyChanged: (bindable, oldValue, newValue) =>
731         {
732             var view = (View)bindable;
733             if (newValue != null)
734             {
735                 Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.SIZE_HEIGHT, new Tizen.NUI.PropertyValue((float)newValue));
736             }
737         },
738         defaultValueCreator: (bindable) =>
739         {
740             var view = (View)bindable;
741             float temp = 0.0f;
742             Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.SIZE_HEIGHT).Get(out temp);
743             return temp;
744         });
745
746         /// <summary>
747         /// PositionProperty
748         /// </summary>
749         [EditorBrowsable(EditorBrowsableState.Never)]
750         public static readonly BindableProperty PositionProperty = BindableProperty.Create("Position", typeof(Position), typeof(View), null, propertyChanged: (bindable, oldValue, newValue) =>
751         {
752             var view = (View)bindable;
753             if (newValue != null)
754             {
755                 Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.POSITION, new Tizen.NUI.PropertyValue((Position)newValue));
756             }
757         },
758         defaultValueCreator: (bindable) =>
759         {
760             var view = (View)bindable;
761             Position temp = new Position(0.0f, 0.0f, 0.0f);
762             Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.POSITION).Get(temp);
763             return temp;
764         });
765
766         /// <summary>
767         /// PositionXProperty
768         /// </summary>
769         [EditorBrowsable(EditorBrowsableState.Never)]
770         public static readonly BindableProperty PositionXProperty = BindableProperty.Create("PositionX", typeof(float), typeof(View), default(float), propertyChanged: (bindable, oldValue, newValue) =>
771         {
772             var view = (View)bindable;
773             if (newValue != null)
774             {
775                 Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.POSITION_X, new Tizen.NUI.PropertyValue((float)newValue));
776             }
777         },
778         defaultValueCreator: (bindable) =>
779         {
780             var view = (View)bindable;
781             float temp = 0.0f;
782             Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.POSITION_X).Get(out temp);
783             return temp;
784         });
785
786         /// <summary>
787         /// PositionYProperty
788         /// </summary>
789         [EditorBrowsable(EditorBrowsableState.Never)]
790         public static readonly BindableProperty PositionYProperty = BindableProperty.Create("PositionY", typeof(float), typeof(View), default(float), propertyChanged: (bindable, oldValue, newValue) =>
791         {
792             var view = (View)bindable;
793             if (newValue != null)
794             {
795                 Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.POSITION_Y, new Tizen.NUI.PropertyValue((float)newValue));
796             }
797         },
798         defaultValueCreator: (bindable) =>
799         {
800             var view = (View)bindable;
801             float temp = 0.0f;
802             Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.POSITION_Y).Get(out temp);
803             return temp;
804         });
805
806         /// <summary>
807         /// PositionZProperty
808         /// </summary>
809         [EditorBrowsable(EditorBrowsableState.Never)]
810         public static readonly BindableProperty PositionZProperty = BindableProperty.Create("PositionZ", typeof(float), typeof(View), default(float), propertyChanged: (bindable, oldValue, newValue) =>
811         {
812             var view = (View)bindable;
813             if (newValue != null)
814             {
815                 Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.POSITION_Z, new Tizen.NUI.PropertyValue((float)newValue));
816             }
817         },
818         defaultValueCreator: (bindable) =>
819         {
820             var view = (View)bindable;
821             float temp = 0.0f;
822             Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.POSITION_Z).Get(out temp);
823             return temp;
824         });
825
826         /// <summary>
827         /// OrientationProperty
828         /// </summary>
829         [EditorBrowsable(EditorBrowsableState.Never)]
830         public static readonly BindableProperty OrientationProperty = BindableProperty.Create("Orientation", typeof(Rotation), typeof(View), null, propertyChanged: (bindable, oldValue, newValue) =>
831         {
832             var view = (View)bindable;
833             if (newValue != null)
834             {
835                 Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.ORIENTATION, new Tizen.NUI.PropertyValue((Rotation)newValue));
836             }
837         },
838         defaultValueCreator: (bindable) =>
839         {
840             var view = (View)bindable;
841             Rotation temp = new Rotation();
842             Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.ORIENTATION).Get(temp);
843             return temp;
844         });
845
846         /// <summary>
847         /// ScaleProperty
848         /// </summary>
849         [EditorBrowsable(EditorBrowsableState.Never)]
850         public static readonly BindableProperty ScaleProperty = BindableProperty.Create("Scale", typeof(Vector3), typeof(View), null, propertyChanged: (bindable, oldValue, newValue) =>
851         {
852             var view = (View)bindable;
853             if (newValue != null)
854             {
855                 Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.SCALE, new Tizen.NUI.PropertyValue((Vector3)newValue));
856             }
857         },
858         defaultValueCreator: (bindable) =>
859         {
860             var view = (View)bindable;
861             Vector3 temp = new Vector3(0.0f, 0.0f, 0.0f);
862             Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.SCALE).Get(temp);
863             return temp;
864         });
865
866         /// <summary>
867         /// ScaleXProperty
868         /// </summary>
869         [EditorBrowsable(EditorBrowsableState.Never)]
870         public static readonly BindableProperty ScaleXProperty = BindableProperty.Create("ScaleX", typeof(float), typeof(View), default(float), propertyChanged: (bindable, oldValue, newValue) =>
871         {
872             var view = (View)bindable;
873             if (newValue != null)
874             {
875                 Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.SCALE_X, new Tizen.NUI.PropertyValue((float)newValue));
876             }
877         },
878         defaultValueCreator: (bindable) =>
879         {
880             var view = (View)bindable;
881             float temp = 0.0f;
882             Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.SCALE_X).Get(out temp);
883             return temp;
884         });
885
886         /// <summary>
887         /// ScaleYProperty
888         /// </summary>
889         [EditorBrowsable(EditorBrowsableState.Never)]
890         public static readonly BindableProperty ScaleYProperty = BindableProperty.Create("ScaleY", typeof(float), typeof(View), default(float), propertyChanged: (bindable, oldValue, newValue) =>
891         {
892             var view = (View)bindable;
893             if (newValue != null)
894             {
895                 Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.SCALE_Y, new Tizen.NUI.PropertyValue((float)newValue));
896             }
897         },
898         defaultValueCreator: (bindable) =>
899         {
900             var view = (View)bindable;
901             float temp = 0.0f;
902             Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.SCALE_Y).Get(out temp);
903             return temp;
904         });
905
906         /// <summary>
907         /// ScaleZProperty
908         /// </summary>
909         [EditorBrowsable(EditorBrowsableState.Never)]
910         public static readonly BindableProperty ScaleZProperty = BindableProperty.Create("ScaleZ", typeof(float), typeof(View), default(float), propertyChanged: (bindable, oldValue, newValue) =>
911         {
912             var view = (View)bindable;
913             if (newValue != null)
914             {
915                 Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.SCALE_Z, new Tizen.NUI.PropertyValue((float)newValue));
916             }
917         },
918         defaultValueCreator: (bindable) =>
919         {
920             var view = (View)bindable;
921             float temp = 0.0f;
922             Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.SCALE_Z).Get(out temp);
923             return temp;
924         });
925
926         /// <summary>
927         /// NameProperty
928         /// </summary>
929         [EditorBrowsable(EditorBrowsableState.Never)]
930         public static readonly BindableProperty NameProperty = BindableProperty.Create("Name", typeof(string), typeof(View), string.Empty, propertyChanged: (bindable, oldValue, newValue) =>
931         {
932             var view = (View)bindable;
933             if (newValue != null)
934             {
935                 Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.NAME, new Tizen.NUI.PropertyValue((string)newValue));
936             }
937         },
938         defaultValueCreator: (bindable) =>
939         {
940             var view = (View)bindable;
941             string temp;
942             Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.NAME).Get(out temp);
943             return temp;
944         });
945
946         /// <summary>
947         /// SensitiveProperty
948         /// </summary>
949         [EditorBrowsable(EditorBrowsableState.Never)]
950         public static readonly BindableProperty SensitiveProperty = BindableProperty.Create("Sensitive", typeof(bool), typeof(View), false, propertyChanged: (bindable, oldValue, newValue) =>
951         {
952             var view = (View)bindable;
953             if (newValue != null)
954             {
955                 Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.SENSITIVE, new Tizen.NUI.PropertyValue((bool)newValue));
956             }
957         },
958         defaultValueCreator: (bindable) =>
959         {
960             var view = (View)bindable;
961             bool temp = false;
962             Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.SENSITIVE).Get(out temp);
963             return temp;
964         });
965
966         /// <summary>
967         /// LeaveRequiredProperty
968         /// </summary>
969         [EditorBrowsable(EditorBrowsableState.Never)]
970         public static readonly BindableProperty LeaveRequiredProperty = BindableProperty.Create("LeaveRequired", typeof(bool), typeof(View), false, propertyChanged: (bindable, oldValue, newValue) =>
971         {
972             var view = (View)bindable;
973             if (newValue != null)
974             {
975                 Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.LEAVE_REQUIRED, new Tizen.NUI.PropertyValue((bool)newValue));
976             }
977         },
978         defaultValueCreator: (bindable) =>
979         {
980             var view = (View)bindable;
981             bool temp = false;
982             Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.LEAVE_REQUIRED).Get(out temp);
983             return temp;
984         });
985
986         /// <summary>
987         /// InheritOrientationProperty
988         /// </summary>
989         [EditorBrowsable(EditorBrowsableState.Never)]
990         public static readonly BindableProperty InheritOrientationProperty = BindableProperty.Create("InheritOrientation", typeof(bool), typeof(View), false, propertyChanged: (bindable, oldValue, newValue) =>
991         {
992             var view = (View)bindable;
993             if (newValue != null)
994             {
995                 Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.INHERIT_ORIENTATION, new Tizen.NUI.PropertyValue((bool)newValue));
996             }
997         },
998         defaultValueCreator: (bindable) =>
999         {
1000             var view = (View)bindable;
1001             bool temp = false;
1002             Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.INHERIT_ORIENTATION).Get(out temp);
1003             return temp;
1004         });
1005
1006         /// <summary>
1007         /// InheritScaleProperty
1008         /// </summary>
1009         [EditorBrowsable(EditorBrowsableState.Never)]
1010         public static readonly BindableProperty InheritScaleProperty = BindableProperty.Create("InheritScale", typeof(bool), typeof(View), false, propertyChanged: (bindable, oldValue, newValue) =>
1011         {
1012             var view = (View)bindable;
1013             if (newValue != null)
1014             {
1015                 Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.INHERIT_SCALE, new Tizen.NUI.PropertyValue((bool)newValue));
1016             }
1017         },
1018         defaultValueCreator: (bindable) =>
1019         {
1020             var view = (View)bindable;
1021             bool temp = false;
1022             Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.INHERIT_SCALE).Get(out temp);
1023             return temp;
1024         });
1025
1026         /// <summary>
1027         /// DrawModeProperty
1028         /// </summary>
1029         [EditorBrowsable(EditorBrowsableState.Never)]
1030         public static readonly BindableProperty DrawModeProperty = BindableProperty.Create("DrawMode", typeof(DrawModeType), typeof(View), DrawModeType.Normal, propertyChanged: (bindable, oldValue, newValue) =>
1031         {
1032             var view = (View)bindable;
1033             if (newValue != null)
1034             {
1035                 Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.DRAW_MODE, new Tizen.NUI.PropertyValue((int)newValue));
1036             }
1037         },
1038         defaultValueCreator: (bindable) =>
1039         {
1040             var view = (View)bindable;
1041             string temp;
1042             if (Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.DRAW_MODE).Get(out temp) == false)
1043             {
1044                 NUILog.Error("DrawMode get error!");
1045             }
1046             return temp.GetValueByDescription<DrawModeType>();
1047         });
1048
1049         /// <summary>
1050         /// SizeModeFactorProperty
1051         /// </summary>
1052         [EditorBrowsable(EditorBrowsableState.Never)]
1053         public static readonly BindableProperty SizeModeFactorProperty = BindableProperty.Create("SizeModeFactor", typeof(Vector3), typeof(View), null, propertyChanged: (bindable, oldValue, newValue) =>
1054         {
1055             var view = (View)bindable;
1056             if (newValue != null)
1057             {
1058                 Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.SIZE_MODE_FACTOR, new Tizen.NUI.PropertyValue((Vector3)newValue));
1059             }
1060         },
1061         defaultValueCreator: (bindable) =>
1062         {
1063             var view = (View)bindable;
1064             Vector3 temp = new Vector3(0.0f, 0.0f, 0.0f);
1065             Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.SIZE_MODE_FACTOR).Get(temp);
1066             return temp;
1067         });
1068
1069         /// <summary>
1070         /// WidthResizePolicyProperty
1071         /// </summary>
1072         [EditorBrowsable(EditorBrowsableState.Never)]
1073         public static readonly BindableProperty WidthResizePolicyProperty = BindableProperty.Create("WidthResizePolicy", typeof(ResizePolicyType), typeof(View), ResizePolicyType.Fixed, propertyChanged: (bindable, oldValue, newValue) =>
1074         {
1075             var view = (View)bindable;
1076             if (newValue != null)
1077             {
1078                 Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.WIDTH_RESIZE_POLICY, new Tizen.NUI.PropertyValue((int)newValue));
1079             }
1080         },
1081         defaultValueCreator: (bindable) =>
1082         {
1083             var view = (View)bindable;
1084             string temp;
1085             if (Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.WIDTH_RESIZE_POLICY).Get(out temp) == false)
1086             {
1087                 NUILog.Error("WidthResizePolicy get error!");
1088             }
1089             return temp.GetValueByDescription<ResizePolicyType>();
1090         });
1091
1092         /// <summary>
1093         /// HeightResizePolicyProperty
1094         /// </summary>
1095         [EditorBrowsable(EditorBrowsableState.Never)]
1096         public static readonly BindableProperty HeightResizePolicyProperty = BindableProperty.Create("HeightResizePolicy", typeof(ResizePolicyType), typeof(View), ResizePolicyType.Fixed, propertyChanged: (bindable, oldValue, newValue) =>
1097         {
1098             var view = (View)bindable;
1099             if (newValue != null)
1100             {
1101                 Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.HEIGHT_RESIZE_POLICY, new Tizen.NUI.PropertyValue((int)newValue));
1102             }
1103         },
1104         defaultValueCreator: (bindable) =>
1105         {
1106             var view = (View)bindable;
1107             string temp;
1108             if (Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.HEIGHT_RESIZE_POLICY).Get(out temp) == false)
1109             {
1110                 NUILog.Error("HeightResizePolicy get error!");
1111             }
1112             return temp.GetValueByDescription<ResizePolicyType>();
1113         });
1114
1115         /// <summary>
1116         /// SizeScalePolicyProperty
1117         /// </summary>
1118         [EditorBrowsable(EditorBrowsableState.Never)]
1119         public static readonly BindableProperty SizeScalePolicyProperty = BindableProperty.Create("SizeScalePolicy", typeof(SizeScalePolicyType), typeof(View), SizeScalePolicyType.UseSizeSet, propertyChanged: (bindable, oldValue, newValue) =>
1120         {
1121             var view = (View)bindable;
1122             string valueToString = "";
1123             if (newValue != null)
1124             {
1125                 valueToString = ((SizeScalePolicyType)newValue).GetDescription<SizeScalePolicyType>();
1126                 Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.SIZE_SCALE_POLICY, new Tizen.NUI.PropertyValue(valueToString));
1127             }
1128         },
1129         defaultValueCreator: (bindable) =>
1130         {
1131             var view = (View)bindable;
1132             string temp;
1133             if (Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.SIZE_SCALE_POLICY).Get(out temp) == false)
1134             {
1135                 NUILog.Error("SizeScalePolicy get error!");
1136             }
1137             return temp.GetValueByDescription<SizeScalePolicyType>();
1138         });
1139
1140         /// <summary>
1141         /// WidthForHeightProperty
1142         /// </summary>
1143         [EditorBrowsable(EditorBrowsableState.Never)]
1144         public static readonly BindableProperty WidthForHeightProperty = BindableProperty.Create("WidthForHeight", typeof(bool), typeof(View), false, propertyChanged: (bindable, oldValue, newValue) =>
1145         {
1146             var view = (View)bindable;
1147             if (newValue != null)
1148             {
1149                 Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.WIDTH_FOR_HEIGHT, new Tizen.NUI.PropertyValue((bool)newValue));
1150             }
1151         },
1152         defaultValueCreator: (bindable) =>
1153         {
1154             var view = (View)bindable;
1155             bool temp = false;
1156             Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.WIDTH_FOR_HEIGHT).Get(out temp);
1157             return temp;
1158         });
1159
1160         /// <summary>
1161         /// HeightForWidthProperty
1162         /// </summary>
1163         [EditorBrowsable(EditorBrowsableState.Never)]
1164         public static readonly BindableProperty HeightForWidthProperty = BindableProperty.Create("HeightForWidth", typeof(bool), typeof(View), false, propertyChanged: (bindable, oldValue, newValue) =>
1165         {
1166             var view = (View)bindable;
1167             if (newValue != null)
1168             {
1169                 Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.HEIGHT_FOR_WIDTH, new Tizen.NUI.PropertyValue((bool)newValue));
1170             }
1171         },
1172         defaultValueCreator: (bindable) =>
1173         {
1174             var view = (View)bindable;
1175             bool temp = false;
1176             Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.HEIGHT_FOR_WIDTH).Get(out temp);
1177             return temp;
1178         });
1179
1180         /// <summary>
1181         /// PaddingProperty
1182         /// </summary>
1183         [EditorBrowsable(EditorBrowsableState.Never)]
1184         public static readonly BindableProperty PaddingProperty = BindableProperty.Create("Padding", typeof(Extents), typeof(View), null, propertyChanged: (bindable, oldValue, newValue) =>
1185         {
1186             var view = (View)bindable;
1187             if (newValue != null)
1188             {
1189                 Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.PADDING, new Tizen.NUI.PropertyValue((Extents)newValue));
1190             }
1191         },
1192         defaultValueCreator: (bindable) =>
1193         {
1194             var view = (View)bindable;
1195             Extents temp = new Extents(0, 0, 0, 0);
1196             Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.PADDING).Get(temp);
1197             return temp;
1198         });
1199
1200         /// <summary>
1201         /// SizeProperty
1202         /// </summary>
1203         [EditorBrowsable(EditorBrowsableState.Never)]
1204         public static readonly BindableProperty SizeProperty = BindableProperty.Create("Size", typeof(Size), typeof(View), null, propertyChanged: (bindable, oldValue, newValue) =>
1205         {
1206             var view = (View)bindable;
1207             if (newValue != null)
1208             {
1209                 Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.SIZE, new Tizen.NUI.PropertyValue((Size)newValue));
1210             }
1211         },
1212         defaultValueCreator: (bindable) =>
1213         {
1214             var view = (View)bindable;
1215             Size temp = new Size(0, 0, 0);
1216             Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.SIZE).Get(temp);
1217             return temp;
1218         });
1219
1220         /// <summary>
1221         /// MinimumSizeProperty
1222         /// </summary>
1223         [EditorBrowsable(EditorBrowsableState.Never)]
1224         public static readonly BindableProperty MinimumSizeProperty = BindableProperty.Create("MinimumSize", typeof(Size2D), typeof(View), null, propertyChanged: (bindable, oldValue, newValue) =>
1225         {
1226             var view = (View)bindable;
1227             Size2D temp = newValue as Size2D;
1228             if (temp != null)
1229             {
1230                 Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.MINIMUM_SIZE, new Tizen.NUI.PropertyValue(temp));
1231             }
1232             else
1233             {
1234                 Tizen.Log.Fatal("NUI", $"[ERROR] can't set MinimumSizeProperty!");
1235             }
1236         },
1237         defaultValueCreator: (bindable) =>
1238         {
1239             var view = (View)bindable;
1240             Size2D temp = new Size2D(0, 0);
1241             Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.MINIMUM_SIZE).Get(temp);
1242             return temp;
1243         });
1244
1245         /// <summary>
1246         /// MaximumSizeProperty
1247         /// </summary>
1248         [EditorBrowsable(EditorBrowsableState.Never)]
1249         public static readonly BindableProperty MaximumSizeProperty = BindableProperty.Create("MaximumSize", typeof(Size2D), typeof(View), null, propertyChanged: (bindable, oldValue, newValue) =>
1250         {
1251             var view = (View)bindable;
1252             Size2D temp = newValue as Size2D;
1253             if (temp != null)
1254             {
1255                 Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.MAXIMUM_SIZE, new Tizen.NUI.PropertyValue(temp));
1256             }
1257             else
1258             {
1259                 Tizen.Log.Fatal("NUI", $"[ERROR] can't set MaximumSizeProperty!");
1260             }
1261         },
1262         defaultValueCreator: (bindable) =>
1263         {
1264             var view = (View)bindable;
1265             Size2D temp = new Size2D(0, 0);
1266             Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.MAXIMUM_SIZE).Get(temp);
1267             return temp;
1268         });
1269
1270         /// <summary>
1271         /// InheritPositionProperty
1272         /// </summary>
1273         [EditorBrowsable(EditorBrowsableState.Never)]
1274         public static readonly BindableProperty InheritPositionProperty = BindableProperty.Create("InheritPosition", typeof(bool), typeof(View), false, propertyChanged: (bindable, oldValue, newValue) =>
1275         {
1276             var view = (View)bindable;
1277             if (newValue != null)
1278             {
1279                 Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.INHERIT_POSITION, new Tizen.NUI.PropertyValue((bool)newValue));
1280             }
1281         },
1282         defaultValueCreator: (bindable) =>
1283         {
1284             var view = (View)bindable;
1285             bool temp = false;
1286             Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.INHERIT_POSITION).Get(out temp);
1287             return temp;
1288         });
1289
1290         /// <summary>
1291         /// ClippingModeProperty
1292         /// </summary>
1293         [EditorBrowsable(EditorBrowsableState.Never)]
1294         public static readonly BindableProperty ClippingModeProperty = BindableProperty.Create("ClippingMode", typeof(ClippingModeType), typeof(View), ClippingModeType.Disabled, propertyChanged: (bindable, oldValue, newValue) =>
1295         {
1296             var view = (View)bindable;
1297             if (newValue != null)
1298             {
1299                 Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.CLIPPING_MODE, new Tizen.NUI.PropertyValue((int)newValue));
1300             }
1301         },
1302         defaultValueCreator: (bindable) =>
1303         {
1304             var view = (View)bindable;
1305             int temp = 0;
1306             if (Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.CLIPPING_MODE).Get(out temp) == false)
1307             {
1308                 NUILog.Error("ClippingMode get error!");
1309             }
1310             return (ClippingModeType)temp;
1311         });
1312
1313         /// <summary>
1314         /// InheritLayoutDirectionProperty
1315         /// </summary>
1316         [EditorBrowsable(EditorBrowsableState.Never)]
1317         public static readonly BindableProperty InheritLayoutDirectionProperty = BindableProperty.Create("InheritLayoutDirection", typeof(bool), typeof(View), false, propertyChanged: (bindable, oldValue, newValue) =>
1318         {
1319             var view = (View)bindable;
1320             if (newValue != null)
1321             {
1322                 Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.INHERIT_LAYOUT_DIRECTION, new Tizen.NUI.PropertyValue((bool)newValue));
1323             }
1324         },
1325         defaultValueCreator: (bindable) =>
1326         {
1327             var view = (View)bindable;
1328             bool temp = false;
1329             Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.INHERIT_LAYOUT_DIRECTION).Get(out temp);
1330             return temp;
1331         });
1332
1333         /// <summary>
1334         /// LayoutDirectionProperty
1335         /// </summary>
1336         [EditorBrowsable(EditorBrowsableState.Never)]
1337         public static readonly BindableProperty LayoutDirectionProperty = BindableProperty.Create("LayoutDirection", typeof(ViewLayoutDirectionType), typeof(View), ViewLayoutDirectionType.LTR, propertyChanged: (bindable, oldValue, newValue) =>
1338         {
1339             var view = (View)bindable;
1340             if (newValue != null)
1341             {
1342                 Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.LAYOUT_DIRECTION, new Tizen.NUI.PropertyValue((int)newValue));
1343             }
1344         },
1345         defaultValueCreator: (bindable) =>
1346         {
1347             var view = (View)bindable;
1348             int temp;
1349             if (false == Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.LAYOUT_DIRECTION).Get(out temp))
1350             {
1351                 NUILog.Error("LAYOUT_DIRECTION get error!");
1352             }
1353             return (ViewLayoutDirectionType)temp;
1354         });
1355
1356         /// <summary>
1357         /// MarginProperty
1358         /// </summary>
1359         [EditorBrowsable(EditorBrowsableState.Never)]
1360         public static readonly BindableProperty MarginProperty = BindableProperty.Create("Margin", typeof(Extents), typeof(View), null, propertyChanged: (bindable, oldValue, newValue) =>
1361         {
1362             var view = (View)bindable;
1363             if (newValue != null)
1364             {
1365                 Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.MARGIN, new Tizen.NUI.PropertyValue((Extents)newValue));
1366             }
1367         },
1368         defaultValueCreator: (bindable) =>
1369         {
1370             var view = (View)bindable;
1371             Extents temp = new Extents(0, 0, 0, 0);
1372             Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.MARGIN).Get(temp);
1373             return temp;
1374         });
1375
1376         /// <summary>
1377         /// UpdateSizeHintProperty
1378         /// </summary>
1379         [EditorBrowsable(EditorBrowsableState.Never)]
1380         public static readonly BindableProperty UpdateSizeHintProperty = BindableProperty.Create("UpdateSizeHint", typeof(Vector2), typeof(View), null, propertyChanged: (bindable, oldValue, newValue) =>
1381         {
1382             var view = (View)bindable;
1383             if (newValue != null)
1384             {
1385                 Tizen.NUI.Object.SetProperty(view.swigCPtr, Interop.ViewProperty.View_Property_UPDATE_SIZE_HINT_get(), new Tizen.NUI.PropertyValue((Vector2)newValue));
1386             }
1387         },
1388         defaultValueCreator: (bindable) =>
1389         {
1390             var view = (View)bindable;
1391
1392             Vector2 temp = new Vector2(0.0f, 0.0f);
1393             Tizen.NUI.Object.GetProperty(view.swigCPtr, Interop.ViewProperty.View_Property_UPDATE_SIZE_HINT_get()).Get(temp);
1394             return temp;
1395         });
1396
1397         /// <summary>
1398         /// ImageShadow Property
1399         /// </summary>
1400         [EditorBrowsable(EditorBrowsableState.Never)]
1401         public static readonly BindableProperty ImageShadowProperty = BindableProperty.Create(nameof(ImageShadow), typeof(ImageShadow), typeof(View), null, propertyChanged: (bindable, oldValue, newValue) =>
1402         {
1403             var view = (View)bindable;
1404             bool hadShadowExtents = view.HasShadowExtents();
1405
1406             (view.imageShadow ?? (view.imageShadow = new CloneableViewSelector<ImageShadow>(view, view.OnControlStateChangedForShadow))).Set(newValue);
1407             Tizen.NUI.Object.SetProperty(view.swigCPtr, Interop.ViewProperty.View_Property_SHADOW_get(), ImageShadow.ToPropertyValue(view.imageShadow.GetValue(), view));
1408
1409             view.boxShadow?.Clear();
1410             view.UpdateRelayoutCallbackForShadow(hadShadowExtents);
1411         },
1412         defaultValueCreator: (bindable) =>
1413         {
1414             var view = (View)bindable;
1415             return view.imageShadow?.GetValue();
1416         });
1417
1418         /// <summary>
1419         /// Shadow Property
1420         /// </summary>
1421         [EditorBrowsable(EditorBrowsableState.Never)]
1422         public static readonly BindableProperty BoxShadowProperty = BindableProperty.Create(nameof(BoxShadow), typeof(Shadow), typeof(View), null, propertyChanged: (bindable, oldValue, newValue) =>
1423         {
1424             var view = (View)bindable;
1425             bool hadShadowExtents = view.HasShadowExtents();
1426
1427             (view.boxShadow ?? (view.boxShadow = new CloneableViewSelector<Shadow>(view, view.OnControlStateChangedForShadow))).Set(newValue);
1428             Tizen.NUI.Object.SetProperty(view.swigCPtr, Interop.ViewProperty.View_Property_SHADOW_get(), Shadow.ToPropertyValue(view.boxShadow.GetValue(), view));
1429
1430             view.imageShadow?.Clear();
1431             view.UpdateRelayoutCallbackForShadow(hadShadowExtents);
1432         },
1433         defaultValueCreator: (bindable) =>
1434         {
1435             var view = (View)bindable;
1436             return view.boxShadow?.GetValue();
1437         });
1438
1439         /// <summary>
1440         /// CornerRadius Property
1441         /// </summary>
1442         [EditorBrowsable(EditorBrowsableState.Never)]
1443         public static readonly BindableProperty CornerRadiusProperty = BindableProperty.Create(nameof(CornerRadius), typeof(float), typeof(View), default(float), propertyChanged: (bindable, oldValue, newValue) =>
1444         {
1445             var view = (View)bindable;
1446
1447             (view.cornerRadius ?? (view.cornerRadius = new ViewSelector<float?>(view, view.OnControlStateChangedForCornerRadius))).Set(newValue);
1448
1449             view.ApplyCornerRadius();
1450
1451             // Update shadow visual
1452             view.ApplyShadow();
1453         },
1454         defaultValueCreator: (bindable) =>
1455         {
1456             var view = (View)bindable;
1457             return view.cornerRadius?.GetValue();
1458         });
1459
1460         /// <summary>
1461         /// XamlStyleProperty
1462         /// </summary>
1463         [EditorBrowsable(EditorBrowsableState.Never)]
1464         public static readonly BindableProperty XamlStyleProperty = BindableProperty.Create("XamlStyle", typeof(Style), typeof(View), default(Style), propertyChanged: (bindable, oldvalue, newvalue) => ((View)bindable)._mergedStyle.Style = (Style)newvalue);
1465     }
1466 }