[NUI] Add Color in ViewStyle (#1545)
[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 ImageShadowProperty = BindableProperty.Create(nameof(ImageShadow), typeof(Selector<ImageShadow>), typeof(ViewStyle), null, propertyChanged: (bindable, oldValue, newValue) =>
764         {
765             var viewStyle = (ViewStyle)bindable;
766             viewStyle.imageShadow = SelectorHelper.CopyCloneable<ImageShadow>(newValue);
767
768             if (viewStyle.imageShadow != null) viewStyle.boxShadow = null;
769         },
770         defaultValueCreator: (bindable) =>
771         {
772             var viewStyle = (ViewStyle)bindable;
773             return viewStyle.imageShadow;
774         });
775
776         /// A BindableProperty for BoxShadow
777         [EditorBrowsable(EditorBrowsableState.Never)]
778         public static readonly BindableProperty BoxShadowProperty = BindableProperty.Create(nameof(BoxShadow), typeof(Selector<ImageShadow>), typeof(ViewStyle), null, propertyChanged: (bindable, oldValue, newValue) =>
779         {
780             var viewStyle = (ViewStyle)bindable;
781             viewStyle.boxShadow = SelectorHelper.CopyCloneable<Shadow>(newValue);
782
783             if (viewStyle.boxShadow != null) viewStyle.imageShadow = null;
784         },
785         defaultValueCreator: (bindable) =>
786         {
787             var viewStyle = (ViewStyle)bindable;
788             return viewStyle.boxShadow;
789         });
790
791         /// A BindableProperty for CornerRadius
792         [EditorBrowsable(EditorBrowsableState.Never)]
793         public static readonly BindableProperty CornerRadiusProperty = BindableProperty.Create(nameof(CornerRadius), typeof(Selector<float?>), typeof(ViewStyle), null, propertyChanged: (bindable, oldValue, newValue) =>
794         {
795             var viewStyle = (ViewStyle)bindable;
796             viewStyle.cornerRadius = SelectorHelper.CopyValue<float?>(newValue);
797         },
798         defaultValueCreator: (bindable) =>
799         {
800             var viewStyle = (ViewStyle)bindable;
801             return viewStyle.cornerRadius;
802         });
803
804         private string styleName;
805         private string backgroundImage;
806         private View.States? state;
807         private View.States? subState;
808         private float? flex;
809         private int? alignSelf;
810         private Vector4 flexMargin;
811         private Vector2 cellIndex;
812         private float? rowSpan;
813         private float? columnSpan;
814         private HorizontalAlignmentType? cellHorizontalAlignment;
815         private VerticalAlignmentType? cellVerticalAlignment;
816         private View leftFocusableView;
817         private View rightFocusableView;
818         private View upFocusableView;
819         private View downFocusableView;
820         private bool? focusable;
821         private Size2D size2D;
822         private Position2D position2D;
823         private bool? positionUsesPivotPoint;
824         private int? siblingOrder;
825         private Position parentOrigin;
826         private Position pivotPoint;
827         private float? sizeWidth;
828         private float? sizeHeight;
829         private Position position;
830         private float? positionX;
831         private float? positionY;
832         private float? positionZ;
833         private Rotation orientation;
834         private Vector3 scale;
835         private float? scaleX;
836         private float? scaleY;
837         private float? scaleZ;
838         private string name;
839         private bool? sensitive;
840         private bool? leaveRequired;
841         private bool? inheritOrientation;
842         private bool? inheritScale;
843         private DrawModeType? drawMode;
844         private Vector3 sizeModeFactor;
845         private ResizePolicyType? widthResizePolicy;
846         private ResizePolicyType? heightResizePolicy;
847         private SizeScalePolicyType? sizeScalePolicy;
848         private bool? widthForHeight;
849         private bool? heightForWidth;
850         private Extents padding;
851         private Size2D minimumSize;
852         private Size2D maximumSize;
853         private bool? inheritPosition;
854         private ClippingModeType? clippingMode;
855         private Size size;
856         private bool? inheritLayoutDirection;
857         private ViewLayoutDirectionType? layoutDirection;
858         private Extents margin;
859         private float? weight;
860
861         private Selector<ImageShadow> imageShadow;
862         private Selector<Shadow> boxShadow;
863         private Selector<string> backgroundImageSelector;
864         private Selector<float?> cornerRadius;
865         private Selector<float?> opacitySelector;
866         private Selector<Color> backgroundColorSelector;
867         private Selector<Rectangle> backgroundImageBorderSelector;
868         private Selector<Color> colorSelector;
869
870         static ViewStyle() {}
871
872         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
873         [EditorBrowsable(EditorBrowsableState.Never)]
874         public ViewStyle() { }
875
876         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
877         [EditorBrowsable(EditorBrowsableState.Never)]
878         public ViewStyle(ViewStyle viewAttributes)
879         {
880             if (null != viewAttributes)
881             {
882                 this.CopyFrom(viewAttributes);
883             }
884         }
885
886         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
887         [EditorBrowsable(EditorBrowsableState.Never)]
888         public string StyleName
889         {
890             get => (string)GetValue(StyleNameProperty);
891             set => SetValue(StyleNameProperty, value);
892         }
893
894         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
895         [EditorBrowsable(EditorBrowsableState.Never)]
896         public Selector<string> BackgroundImage
897         {
898             get
899             {
900                 Selector<string> image = (Selector<string>)GetValue(BackgroundImageSelectorProperty);
901                 return (null != image) ? image : backgroundImageSelector = new Selector<string>();
902             }
903             set => SetValue(BackgroundImageSelectorProperty, value);
904         }
905
906         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
907         [EditorBrowsable(EditorBrowsableState.Never)]
908         public View.States? State
909         {
910             get => (View.States?)GetValue(StateProperty);
911             set => SetValue(StateProperty, value);
912         }
913
914         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
915         [EditorBrowsable(EditorBrowsableState.Never)]
916         public View.States? SubState
917         {
918             get => (View.States?)GetValue(SubStateProperty);
919             set => SetValue(SubStateProperty, value);
920         }
921
922         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
923         [EditorBrowsable(EditorBrowsableState.Never)]
924         public float? Flex
925         {
926             get => (float?)GetValue(FlexProperty);
927             set => SetValue(FlexProperty, value);
928         }
929
930         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
931         [EditorBrowsable(EditorBrowsableState.Never)]
932         public int? AlignSelf
933         {
934             get => (int?)GetValue(AlignSelfProperty);
935             set => SetValue(AlignSelfProperty, value);
936         }
937
938         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
939         [EditorBrowsable(EditorBrowsableState.Never)]
940         public Vector4 FlexMargin
941         {
942             get => (Vector4)GetValue(FlexMarginProperty);
943             set => SetValue(FlexMarginProperty, value);
944         }
945
946         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
947         [EditorBrowsable(EditorBrowsableState.Never)]
948         public Vector2 CellIndex
949         {
950             get => (Vector2)GetValue(CellIndexProperty);
951             set => SetValue(CellIndexProperty, value);
952         }
953
954         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
955         [EditorBrowsable(EditorBrowsableState.Never)]
956         public float? RowSpan
957         {
958             get => (float?)GetValue(RowSpanProperty);
959             set => SetValue(RowSpanProperty, value);
960         }
961
962         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
963         [EditorBrowsable(EditorBrowsableState.Never)]
964         public float? ColumnSpan
965         {
966             get => (float?)GetValue(ColumnSpanProperty);
967             set => SetValue(ColumnSpanProperty, value);
968         }
969
970         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
971         [EditorBrowsable(EditorBrowsableState.Never)]
972         public HorizontalAlignmentType? CellHorizontalAlignment
973         {
974             get => (HorizontalAlignmentType?)GetValue(CellHorizontalAlignmentProperty);
975             set => SetValue(CellHorizontalAlignmentProperty, value);
976         }
977
978         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
979         [EditorBrowsable(EditorBrowsableState.Never)]
980         public VerticalAlignmentType? CellVerticalAlignment
981         {
982             get => (VerticalAlignmentType?)GetValue(CellVerticalAlignmentProperty);
983             set => SetValue(CellVerticalAlignmentProperty, value);
984         }
985
986         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
987         [EditorBrowsable(EditorBrowsableState.Never)]
988         public View LeftFocusableView
989         {
990             get => (View)GetValue(LeftFocusableViewProperty);
991             set => SetValue(LeftFocusableViewProperty, value);
992         }
993
994         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
995         [EditorBrowsable(EditorBrowsableState.Never)]
996         public View RightFocusableView
997         {
998             get => (View)GetValue(RightFocusableViewProperty);
999             set => SetValue(RightFocusableViewProperty, value);
1000         }
1001
1002         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
1003         [EditorBrowsable(EditorBrowsableState.Never)]
1004         public View UpFocusableView
1005         {
1006             get => (View)GetValue(UpFocusableViewProperty);
1007             set => SetValue(UpFocusableViewProperty, value);
1008         }
1009
1010         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
1011         [EditorBrowsable(EditorBrowsableState.Never)]
1012         public View DownFocusableView
1013         {
1014             get => (View)GetValue(DownFocusableViewProperty);
1015             set => SetValue(DownFocusableViewProperty, value);
1016         }
1017
1018         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
1019         [EditorBrowsable(EditorBrowsableState.Never)]
1020         public bool? Focusable
1021         {
1022             get => (bool?)GetValue(FocusableProperty);
1023             set => SetValue(FocusableProperty, value);
1024         }
1025
1026         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
1027         [EditorBrowsable(EditorBrowsableState.Never)]
1028         public Size2D Size2D
1029         {
1030             get => (Size2D)GetValue(Size2DProperty);
1031             set => SetValue(Size2DProperty, value);
1032         }
1033
1034         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
1035         [EditorBrowsable(EditorBrowsableState.Never)]
1036         public Selector<float?> Opacity
1037         {
1038             get
1039             {
1040                 Selector<float?> opacity = (Selector<float?>)GetValue(OpacitySelectorProperty);
1041                 return (null != opacity) ? opacity : opacitySelector = new Selector<float?>();
1042             }
1043             set => SetValue(OpacitySelectorProperty, value);
1044         }
1045
1046         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
1047         [EditorBrowsable(EditorBrowsableState.Never)]
1048         public Position2D Position2D
1049         {
1050             get => (Position2D)GetValue(Position2DProperty);
1051             set => SetValue(Position2DProperty, value);
1052         }
1053
1054         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
1055         [EditorBrowsable(EditorBrowsableState.Never)]
1056         public bool? PositionUsesPivotPoint
1057         {
1058             get => (bool?)GetValue(PositionUsesPivotPointProperty);
1059             set => SetValue(PositionUsesPivotPointProperty, value);
1060         }
1061
1062         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
1063         [EditorBrowsable(EditorBrowsableState.Never)]
1064         public int? SiblingOrder
1065         {
1066             get => (int?)GetValue(SiblingOrderProperty);
1067             set => SetValue(SiblingOrderProperty, value);
1068         }
1069
1070         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
1071         [EditorBrowsable(EditorBrowsableState.Never)]
1072         public Position ParentOrigin
1073         {
1074             get => (Position)GetValue(ParentOriginProperty);
1075             set => SetValue(ParentOriginProperty, value);
1076         }
1077
1078         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
1079         [EditorBrowsable(EditorBrowsableState.Never)]
1080         public Position PivotPoint
1081         {
1082             get => (Position)GetValue(PivotPointProperty);
1083             set => SetValue(PivotPointProperty, value);
1084         }
1085
1086         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
1087         [EditorBrowsable(EditorBrowsableState.Never)]
1088         public float? SizeWidth
1089         {
1090             get => (float?)GetValue(SizeWidthProperty);
1091             set => SetValue(SizeWidthProperty, value);
1092         }
1093
1094         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
1095         [EditorBrowsable(EditorBrowsableState.Never)]
1096         public float? SizeHeight
1097         {
1098             get => (float?)GetValue(SizeHeightProperty);
1099             set => SetValue(SizeHeightProperty, value);
1100         }
1101
1102         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
1103         [EditorBrowsable(EditorBrowsableState.Never)]
1104         public Position Position
1105         {
1106             get => (Position)GetValue(PositionProperty);
1107             set => SetValue(PositionProperty, value);
1108         }
1109
1110         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
1111         [EditorBrowsable(EditorBrowsableState.Never)]
1112         public float? PositionX
1113         {
1114             get => (float?)GetValue(PositionXProperty);
1115             set => SetValue(PositionXProperty, value);
1116         }
1117
1118         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
1119         [EditorBrowsable(EditorBrowsableState.Never)]
1120         public float? PositionY
1121         {
1122             get => (float?)GetValue(PositionYProperty);
1123             set => SetValue(PositionYProperty, value);
1124         }
1125
1126         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
1127         [EditorBrowsable(EditorBrowsableState.Never)]
1128         public float? PositionZ
1129         {
1130             get => (float?)GetValue(PositionZProperty);
1131             set => SetValue(PositionZProperty, value);
1132         }
1133
1134         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
1135         [EditorBrowsable(EditorBrowsableState.Never)]
1136         public Rotation Orientation
1137         {
1138             get => (Rotation)GetValue(OrientationProperty);
1139             set => SetValue(OrientationProperty, value);
1140         }
1141
1142         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
1143         [EditorBrowsable(EditorBrowsableState.Never)]
1144         public Vector3 Scale
1145         {
1146             get => (Vector3)GetValue(ScaleProperty);
1147             set => SetValue(ScaleProperty, value);
1148         }
1149
1150         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
1151         [EditorBrowsable(EditorBrowsableState.Never)]
1152         public float? ScaleX
1153         {
1154             get => (float?)GetValue(ScaleXProperty);
1155             set => SetValue(ScaleXProperty, value);
1156         }
1157
1158         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
1159         [EditorBrowsable(EditorBrowsableState.Never)]
1160         public float? ScaleY
1161         {
1162             get => (float?)GetValue(ScaleYProperty);
1163             set => SetValue(ScaleYProperty, value);
1164         }
1165
1166         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
1167         [EditorBrowsable(EditorBrowsableState.Never)]
1168         public float? ScaleZ
1169         {
1170             get => (float?)GetValue(ScaleZProperty);
1171             set => SetValue(ScaleZProperty, value);
1172         }
1173
1174         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
1175         [EditorBrowsable(EditorBrowsableState.Never)]
1176         public string Name
1177         {
1178             get => (string)GetValue(NameProperty);
1179             set => SetValue(NameProperty, value);
1180         }
1181
1182         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
1183         [EditorBrowsable(EditorBrowsableState.Never)]
1184         public bool? Sensitive
1185         {
1186             get => (bool?)GetValue(SensitiveProperty);
1187             set => SetValue(SensitiveProperty, value);
1188         }
1189
1190         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
1191         [EditorBrowsable(EditorBrowsableState.Never)]
1192         public bool? LeaveRequired
1193         {
1194             get => (bool?)GetValue(LeaveRequiredProperty);
1195             set => SetValue(LeaveRequiredProperty, value);
1196         }
1197
1198         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
1199         [EditorBrowsable(EditorBrowsableState.Never)]
1200         public bool? InheritOrientation
1201         {
1202             get => (bool?)GetValue(InheritOrientationProperty);
1203             set => SetValue(InheritOrientationProperty, value);
1204         }
1205
1206         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
1207         [EditorBrowsable(EditorBrowsableState.Never)]
1208         public bool? InheritScale
1209         {
1210             get => (bool?)GetValue(InheritScaleProperty);
1211             set => SetValue(InheritScaleProperty, value);
1212         }
1213
1214         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
1215         [EditorBrowsable(EditorBrowsableState.Never)]
1216         public DrawModeType? DrawMode
1217         {
1218             get => (DrawModeType?)GetValue(DrawModeProperty);
1219             set => SetValue(DrawModeProperty, value);
1220         }
1221
1222         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
1223         [EditorBrowsable(EditorBrowsableState.Never)]
1224         public Vector3 SizeModeFactor
1225         {
1226             get => (Vector3)GetValue(SizeModeFactorProperty);
1227             set => SetValue(SizeModeFactorProperty, value);
1228         }
1229
1230         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
1231         [EditorBrowsable(EditorBrowsableState.Never)]
1232         public ResizePolicyType? WidthResizePolicy
1233         {
1234             get => (ResizePolicyType?)GetValue(WidthResizePolicyProperty);
1235             set => SetValue(WidthResizePolicyProperty, value);
1236         }
1237
1238         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
1239         [EditorBrowsable(EditorBrowsableState.Never)]
1240         public ResizePolicyType? HeightResizePolicy
1241         {
1242             get => (ResizePolicyType?)GetValue(HeightResizePolicyProperty);
1243             set => SetValue(HeightResizePolicyProperty, value);
1244         }
1245
1246         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
1247         [EditorBrowsable(EditorBrowsableState.Never)]
1248         public SizeScalePolicyType? SizeScalePolicy
1249         {
1250             get => (SizeScalePolicyType?)GetValue(SizeScalePolicyProperty);
1251             set => SetValue(SizeScalePolicyProperty, value);
1252         }
1253
1254         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
1255         [EditorBrowsable(EditorBrowsableState.Never)]
1256         public bool? WidthForHeight
1257         {
1258             get => (bool?)GetValue(WidthForHeightProperty);
1259             set => SetValue(WidthForHeightProperty, value);
1260         }
1261
1262         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
1263         [EditorBrowsable(EditorBrowsableState.Never)]
1264         public bool? HeightForWidth
1265         {
1266             get => (bool?)GetValue(HeightForWidthProperty);
1267             set => SetValue(HeightForWidthProperty, value);
1268         }
1269
1270         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
1271         [EditorBrowsable(EditorBrowsableState.Never)]
1272         public Extents Padding
1273         {
1274             get
1275             {
1276                 Extents tmp = (Extents)GetValue(PaddingProperty);
1277                 return (null != tmp) ? tmp : padding = new Extents(OnPaddingChanged, 0, 0, 0, 0);
1278             }
1279             set => SetValue(PaddingProperty, value);
1280         }
1281
1282         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
1283         [EditorBrowsable(EditorBrowsableState.Never)]
1284         public Size2D MinimumSize
1285         {
1286             get => (Size2D)GetValue(MinimumSizeProperty);
1287             set => SetValue(MinimumSizeProperty, value);
1288         }
1289
1290         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
1291         [EditorBrowsable(EditorBrowsableState.Never)]
1292         public Size2D MaximumSize
1293         {
1294             get => (Size2D)GetValue(MaximumSizeProperty);
1295             set => SetValue(MaximumSizeProperty, value);
1296         }
1297
1298         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
1299         [EditorBrowsable(EditorBrowsableState.Never)]
1300         public bool? InheritPosition
1301         {
1302             get => (bool?)GetValue(InheritPositionProperty);
1303             set => SetValue(InheritPositionProperty, value);
1304         }
1305
1306         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
1307         [EditorBrowsable(EditorBrowsableState.Never)]
1308         public ClippingModeType? ClippingMode
1309         {
1310             get => (ClippingModeType?)GetValue(ClippingModeProperty);
1311             set => SetValue(ClippingModeProperty, value);
1312         }
1313
1314         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
1315         [EditorBrowsable(EditorBrowsableState.Never)]
1316         public Size Size
1317         {
1318             get
1319             {
1320                 Size tmp = (Size)GetValue(SizeProperty);
1321                 return (null != tmp) ? tmp : size = new Size((float width, float height, float depth) => { Size = new Size(width, height, depth); }, 0, 0, 0);
1322             }
1323             set => SetValue(SizeProperty, value);
1324         }
1325
1326         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
1327         [EditorBrowsable(EditorBrowsableState.Never)]
1328         public bool? InheritLayoutDirection
1329         {
1330             get => (bool?)GetValue(InheritLayoutDirectionProperty);
1331             set => SetValue(InheritLayoutDirectionProperty, value);
1332         }
1333
1334         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
1335         [EditorBrowsable(EditorBrowsableState.Never)]
1336         public ViewLayoutDirectionType? LayoutDirection
1337         {
1338             get => (ViewLayoutDirectionType?)GetValue(LayoutDirectionProperty);
1339             set => SetValue(LayoutDirectionProperty, value);
1340         }
1341
1342         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
1343         [EditorBrowsable(EditorBrowsableState.Never)]
1344         public Extents Margin
1345         {
1346             get
1347             {
1348                 Extents tmp = (Extents)GetValue(MarginProperty);
1349                 return (null != tmp) ? tmp : margin = new Extents(OnMarginChanged, 0, 0, 0, 0);
1350             }
1351             set => SetValue(MarginProperty, value);
1352         }
1353
1354         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
1355         [EditorBrowsable(EditorBrowsableState.Never)]
1356         public float? Weight
1357         {
1358             get => (float?)GetValue(WeightProperty);
1359             set => SetValue(WeightProperty, value);
1360         }
1361
1362         /// <summary> View BackgroundColor </summary>
1363         /// This will be public opened in tizen_5.5 after ACR done. Before ACR, need to be hidden as inhouse API.
1364         [EditorBrowsable(EditorBrowsableState.Never)]
1365         public Selector<Color> BackgroundColor
1366         {
1367             get
1368             {
1369                 Selector<Color> color = (Selector<Color>)GetValue(BackgroundColorSelectorProperty);
1370                 return (null != color) ? color : backgroundColorSelector = new Selector<Color>();
1371             }
1372             set => SetValue(BackgroundColorSelectorProperty, value);
1373         }
1374
1375         /// <summary>
1376         /// Color
1377         /// </summary>
1378         [EditorBrowsable(EditorBrowsableState.Never)]
1379         public Selector<Color> Color
1380         {
1381             get
1382             {
1383                 Selector<Color> color = (Selector<Color>)GetValue(ColorSelectorProperty);
1384                 return (null != color) ? color : colorSelector = new Selector<Color>();
1385             }
1386             set => SetValue(ColorSelectorProperty, value);
1387         }
1388
1389         /// <summary>View BackgroundBorder</summary>
1390         /// This will be public opened in tizen_5.5 after ACR done. Before ACR, need to be hidden as inhouse API.
1391         [EditorBrowsable(EditorBrowsableState.Never)]
1392         public Selector<Rectangle> BackgroundImageBorder
1393         {
1394             get
1395             {
1396                 Selector<Rectangle> border = (Selector<Rectangle>)GetValue(BackgroundImageBorderSelectorProperty);
1397                 return (null != border) ? border : backgroundImageBorderSelector = new Selector<Rectangle>();
1398             }
1399             set => SetValue(BackgroundImageBorderSelectorProperty, value);
1400         }
1401
1402         /// <summary>
1403         /// Describes a shadow as an image for a View.
1404         /// It is null by default.
1405         /// </summary>
1406         /// <remarks>
1407         /// The mutually exclusive with "BoxShadow".
1408         /// </remarks>
1409         [EditorBrowsable(EditorBrowsableState.Never)]
1410         public Selector<ImageShadow> ImageShadow
1411         {
1412             get => (Selector<ImageShadow>)GetValue(ImageShadowProperty);
1413             set => SetValue(ImageShadowProperty, value);
1414         }
1415
1416         /// <summary>
1417         /// Describes a box shaped shadow drawing for a View.
1418         /// It is null by default.
1419         /// </summary>
1420         /// <remarks>
1421         /// The mutually exclusive with "ImageShadow".
1422         /// </remarks>
1423         [EditorBrowsable(EditorBrowsableState.Never)]
1424         public Selector<Shadow> BoxShadow
1425         {
1426             get => (Selector<Shadow>)GetValue(BoxShadowProperty);
1427             set => SetValue(BoxShadowProperty, value);
1428         }
1429
1430         /// <summary>
1431         /// The radius for the rounded corners of the View
1432         /// </summary>
1433         [EditorBrowsable(EditorBrowsableState.Never)]
1434         public Selector<float?> CornerRadius
1435         {
1436             get => (Selector<float?>)GetValue(CornerRadiusProperty);
1437             set => SetValue(CornerRadiusProperty, value);
1438         }
1439
1440         internal ViewStyle CreateInstance()
1441         {
1442             return (ViewStyle)Activator.CreateInstance(GetType());;
1443         }
1444
1445         internal ViewStyle Clone()
1446         {
1447             var cloned = CreateInstance();
1448             cloned.CopyFrom(this);
1449
1450             return cloned;
1451         }
1452
1453         private void OnPaddingChanged(ushort start, ushort end, ushort top, ushort bottom)
1454         {
1455             Padding = new Extents(start, end, top, bottom);
1456         }
1457
1458         private void OnMarginChanged(ushort start, ushort end, ushort top, ushort bottom)
1459         {
1460             Margin = new Extents(start, end, top, bottom);
1461         }
1462     }
1463 }