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