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