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