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