[NUI] Add ThemeManager (#2034)
[platform/core/csapi/tizenfx.git] / src / Tizen.NUI / src / public / BaseComponents / Style / TextFieldStyle.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.ComponentModel;
19 using Tizen.NUI.Binding;
20
21 namespace Tizen.NUI.BaseComponents
22 {
23     /// <summary>
24     /// The base class for Children attributes in Components.
25     /// </summary>
26     /// This will be public opened in tizen_5.5 after ACR done. Before ACR, need to be hidden as inhouse API.
27     [EditorBrowsable(EditorBrowsableState.Never)]
28     public class TextFieldStyle : ViewStyle
29     {
30         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
31         [EditorBrowsable(EditorBrowsableState.Never)]
32         public static readonly BindableProperty TranslatableTextSelectorProperty = BindableProperty.Create("TranslatableTextSelector", typeof(Selector<string>), typeof(TextFieldStyle), null, propertyChanged: (bindable, oldValue, newValue) =>
33         {
34             var textFieldStyle = (TextFieldStyle)bindable;
35             textFieldStyle.translatableTextSelector = ((Selector<string>)newValue)?.Clone();
36         },
37         defaultValueCreator: (bindable) =>
38         {
39             var textFieldStyle = (TextFieldStyle)bindable;
40             return textFieldStyle.translatableTextSelector;
41         });
42         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
43         [EditorBrowsable(EditorBrowsableState.Never)]
44         public static readonly BindableProperty TranslatablePlaceholderTextSelectorProperty = BindableProperty.Create("TranslatablePlaceholderTextSelector", typeof(Selector<string>), typeof(TextFieldStyle), null, propertyChanged: (bindable, oldValue, newValue) =>
45         {
46             var textFieldStyle = (TextFieldStyle)bindable;
47             textFieldStyle.translatablePlaceholderTextSelector = ((Selector<string>)newValue)?.Clone();
48         },
49         defaultValueCreator: (bindable) =>
50         {
51             var textFieldStyle = (TextFieldStyle)bindable;
52             return textFieldStyle.translatablePlaceholderTextSelector;
53         });
54         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
55         [EditorBrowsable(EditorBrowsableState.Never)]
56         public static readonly BindableProperty TextSelectorProperty = BindableProperty.Create("TextSelector", typeof(Selector<string>), typeof(TextFieldStyle), null, propertyChanged: (bindable, oldValue, newValue) =>
57         {
58             var textFieldStyle = (TextFieldStyle)bindable;
59             textFieldStyle.textSelector = ((Selector<string>)newValue)?.Clone();
60         },
61         defaultValueCreator: (bindable) =>
62         {
63             var textFieldStyle = (TextFieldStyle)bindable;
64             return textFieldStyle.textSelector;
65         });
66         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
67         [EditorBrowsable(EditorBrowsableState.Never)]
68         public static readonly BindableProperty FontFamilySelectorProperty = BindableProperty.Create("FontFamilySelector", typeof(Selector<string>), typeof(TextFieldStyle), null, propertyChanged: (bindable, oldValue, newValue) =>
69         {
70             var textFieldStyle = (TextFieldStyle)bindable;
71             textFieldStyle.fontFamilySelector = ((Selector<string>)newValue)?.Clone();
72         },
73         defaultValueCreator: (bindable) =>
74         {
75             var textFieldStyle = (TextFieldStyle)bindable;
76             return textFieldStyle.fontFamilySelector;
77         });
78         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
79         [EditorBrowsable(EditorBrowsableState.Never)]
80         public static readonly BindableProperty PointSizeSelectorProperty = BindableProperty.Create("PointSizeSelector", typeof(Selector<float?>), typeof(TextFieldStyle), null, propertyChanged: (bindable, oldValue, newValue) =>
81         {
82             var textFieldStyle = (TextFieldStyle)bindable;
83             textFieldStyle.pointSizeSelector = ((Selector<float?>)newValue)?.Clone();
84         },
85         defaultValueCreator: (bindable) =>
86         {
87             var textFieldStyle = (TextFieldStyle)bindable;
88             return textFieldStyle.pointSizeSelector;
89         });
90         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
91         [EditorBrowsable(EditorBrowsableState.Never)]
92         public static readonly BindableProperty TextColorSelectorProperty = BindableProperty.Create("TextColorSelector", typeof(Selector<Color>), typeof(TextFieldStyle), null, propertyChanged: (bindable, oldValue, newValue) =>
93         {
94             var textFieldStyle = (TextFieldStyle)bindable;
95             textFieldStyle.textColorSelector = ((Selector<Color>)newValue)?.Clone();
96         },
97         defaultValueCreator: (bindable) =>
98         {
99             var textFieldStyle = (TextFieldStyle)bindable;
100             return textFieldStyle.textColorSelector;
101         });
102         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
103         [EditorBrowsable(EditorBrowsableState.Never)]
104         public static readonly BindableProperty PlaceholderTextColorSelectorProperty = BindableProperty.Create("PlaceholderTextColorSelector", typeof(Selector<Vector4>), typeof(TextFieldStyle), null, propertyChanged: (bindable, oldValue, newValue) =>
105         {
106             var textFieldStyle = (TextFieldStyle)bindable;
107             textFieldStyle.placeholderTextColorSelector = ((Selector<Vector4>)newValue)?.Clone();
108         },
109         defaultValueCreator: (bindable) =>
110         {
111             var textFieldStyle = (TextFieldStyle)bindable;
112             return textFieldStyle.placeholderTextColorSelector;
113         });
114         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
115         [EditorBrowsable(EditorBrowsableState.Never)]
116         public static readonly BindableProperty PrimaryCursorColorSelectorProperty = BindableProperty.Create("PrimaryCursorColorSelector", typeof(Selector<Vector4>), typeof(TextFieldStyle), null, propertyChanged: (bindable, oldValue, newValue) =>
117         {
118             var textFieldStyle = (TextFieldStyle)bindable;
119             textFieldStyle.primaryCursorColorSelector = ((Selector<Vector4>)newValue)?.Clone();
120         },
121         defaultValueCreator: (bindable) =>
122         {
123             var textFieldStyle = (TextFieldStyle)bindable;
124             return textFieldStyle.primaryCursorColorSelector;
125         });
126
127         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
128         [EditorBrowsable(EditorBrowsableState.Never)]
129         public static readonly BindableProperty PlaceholderTextProperty = BindableProperty.Create(nameof(PlaceholderText), typeof(string), typeof(TextFieldStyle), String.Empty, propertyChanged: (bindable, oldValue, newValue) =>
130         {
131             var textFieldStyle = (TextFieldStyle)bindable;
132             textFieldStyle.placeholderText = (string)newValue;
133         },
134         defaultValueCreator: (bindable) =>
135         {
136             var textFieldStyle = (TextFieldStyle)bindable;
137             return textFieldStyle.placeholderText;
138         });
139         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
140         [EditorBrowsable(EditorBrowsableState.Never)]
141         public static readonly BindableProperty PlaceholderTextFocusedProperty = BindableProperty.Create(nameof(PlaceholderTextFocused), typeof(string), typeof(TextFieldStyle), String.Empty, propertyChanged: (bindable, oldValue, newValue) =>
142         {
143             var textFieldStyle = (TextFieldStyle)bindable;
144             textFieldStyle.placeholderTextFocused = (string)newValue;
145         },
146         defaultValueCreator: (bindable) =>
147         {
148             var textFieldStyle = (TextFieldStyle)bindable;
149             return textFieldStyle.placeholderTextFocused;
150         });
151         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
152         [EditorBrowsable(EditorBrowsableState.Never)]
153         public static readonly BindableProperty MaxLengthProperty = BindableProperty.Create(nameof(MaxLength), typeof(int?), typeof(TextFieldStyle), null, propertyChanged: (bindable, oldValue, newValue) =>
154         {
155             var textFieldStyle = (TextFieldStyle)bindable;
156             textFieldStyle.maxLength = (int?)newValue;
157         },
158         defaultValueCreator: (bindable) =>
159         {
160             var textFieldStyle = (TextFieldStyle)bindable;
161             return textFieldStyle.maxLength;
162         });
163         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
164         [EditorBrowsable(EditorBrowsableState.Never)]
165         public static readonly BindableProperty ExceedPolicyProperty = BindableProperty.Create(nameof(ExceedPolicy), typeof(int?), typeof(TextFieldStyle), null, propertyChanged: (bindable, oldValue, newValue) =>
166         {
167             var textFieldStyle = (TextFieldStyle)bindable;
168             textFieldStyle.exceedPolicy = (int?)newValue;
169         },
170         defaultValueCreator: (bindable) =>
171         {
172             var textFieldStyle = (TextFieldStyle)bindable;
173             return textFieldStyle.exceedPolicy;
174         });
175         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
176         [EditorBrowsable(EditorBrowsableState.Never)]
177         public static readonly BindableProperty HorizontalAlignmentProperty = BindableProperty.Create(nameof(HorizontalAlignment), typeof(HorizontalAlignment?), typeof(TextFieldStyle), null, propertyChanged: (bindable, oldValue, newValue) =>
178         {
179             var textFieldStyle = (TextFieldStyle)bindable;
180             textFieldStyle.horizontalAlignment = (HorizontalAlignment?)newValue;
181         },
182         defaultValueCreator: (bindable) =>
183         {
184             var textFieldStyle = (TextFieldStyle)bindable;
185             return textFieldStyle.horizontalAlignment;
186         });
187         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
188         [EditorBrowsable(EditorBrowsableState.Never)]
189         public static readonly BindableProperty VerticalAlignmentProperty = BindableProperty.Create(nameof(VerticalAlignment), typeof(VerticalAlignment?), typeof(TextFieldStyle), null, propertyChanged: (bindable, oldValue, newValue) =>
190         {
191             var textFieldStyle = (TextFieldStyle)bindable;
192             textFieldStyle.verticalAlignment = (VerticalAlignment?)newValue;
193         },
194         defaultValueCreator: (bindable) =>
195         {
196             var textFieldStyle = (TextFieldStyle)bindable;
197             return textFieldStyle.verticalAlignment;
198         });
199         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
200         [EditorBrowsable(EditorBrowsableState.Never)]
201         public static readonly BindableProperty SecondaryCursorColorProperty = BindableProperty.Create(nameof(SecondaryCursorColor), typeof(Vector4), typeof(TextFieldStyle), null, propertyChanged: (bindable, oldValue, newValue) =>
202         {
203             var textFieldStyle = (TextFieldStyle)bindable;
204             textFieldStyle.secondaryCursorColor = (Vector4)newValue;
205         },
206         defaultValueCreator: (bindable) =>
207         {
208             var textFieldStyle = (TextFieldStyle)bindable;
209             return textFieldStyle.secondaryCursorColor;
210         });
211         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
212         [EditorBrowsable(EditorBrowsableState.Never)]
213         public static readonly BindableProperty EnableCursorBlinkProperty = BindableProperty.Create(nameof(EnableCursorBlink), typeof(bool?), typeof(TextFieldStyle), null, propertyChanged: (bindable, oldValue, newValue) =>
214         {
215             var textFieldStyle = (TextFieldStyle)bindable;
216             textFieldStyle.enableCursorBlink = (bool?)newValue;
217         },
218         defaultValueCreator: (bindable) =>
219         {
220             var textFieldStyle = (TextFieldStyle)bindable;
221             return textFieldStyle.enableCursorBlink;
222         });
223         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
224         [EditorBrowsable(EditorBrowsableState.Never)]
225         public static readonly BindableProperty CursorBlinkIntervalProperty = BindableProperty.Create(nameof(CursorBlinkInterval), typeof(float?), typeof(TextFieldStyle), null, propertyChanged: (bindable, oldValue, newValue) =>
226         {
227             var textFieldStyle = (TextFieldStyle)bindable;
228             textFieldStyle.cursorBlinkInterval = (float?)newValue;
229         },
230         defaultValueCreator: (bindable) =>
231         {
232             var textFieldStyle = (TextFieldStyle)bindable;
233             return textFieldStyle.cursorBlinkInterval;
234         });
235         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
236         [EditorBrowsable(EditorBrowsableState.Never)]
237         public static readonly BindableProperty CursorBlinkDurationProperty = BindableProperty.Create(nameof(CursorBlinkDuration), typeof(float?), typeof(TextFieldStyle), null, propertyChanged: (bindable, oldValue, newValue) =>
238         {
239             var textFieldStyle = (TextFieldStyle)bindable;
240             textFieldStyle.cursorBlinkDuration = (float?)newValue;
241         },
242         defaultValueCreator: (bindable) =>
243         {
244             var textFieldStyle = (TextFieldStyle)bindable;
245             return textFieldStyle.cursorBlinkDuration;
246         });
247         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
248         [EditorBrowsable(EditorBrowsableState.Never)]
249         public static readonly BindableProperty CursorWidthProperty = BindableProperty.Create(nameof(CursorWidth), typeof(int?), typeof(TextFieldStyle), null, propertyChanged: (bindable, oldValue, newValue) =>
250         {
251             var textFieldStyle = (TextFieldStyle)bindable;
252             textFieldStyle.cursorWidth = (int?)newValue;
253         },
254         defaultValueCreator: (bindable) =>
255         {
256             var textFieldStyle = (TextFieldStyle)bindable;
257             return textFieldStyle.cursorWidth;
258         });
259         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
260         [EditorBrowsable(EditorBrowsableState.Never)]
261         public static readonly BindableProperty GrabHandleImageProperty = BindableProperty.Create(nameof(GrabHandleImage), typeof(string), typeof(TextFieldStyle), String.Empty, propertyChanged: (bindable, oldValue, newValue) =>
262         {
263             var textFieldStyle = (TextFieldStyle)bindable;
264             textFieldStyle.grabHandleImage = (string)newValue;
265         },
266         defaultValueCreator: (bindable) =>
267         {
268             var textFieldStyle = (TextFieldStyle)bindable;
269             return textFieldStyle.grabHandleImage;
270         });
271         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
272         [EditorBrowsable(EditorBrowsableState.Never)]
273         public static readonly BindableProperty GrabHandlePressedImageProperty = BindableProperty.Create(nameof(GrabHandlePressedImage), typeof(string), typeof(TextFieldStyle), String.Empty, propertyChanged: (bindable, oldValue, newValue) =>
274         {
275             var textFieldStyle = (TextFieldStyle)bindable;
276             textFieldStyle.grabHandlePressedImage = (string)newValue;
277         },
278         defaultValueCreator: (bindable) =>
279         {
280             var textFieldStyle = (TextFieldStyle)bindable;
281             return textFieldStyle.grabHandlePressedImage;
282         });
283         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
284         [EditorBrowsable(EditorBrowsableState.Never)]
285         public static readonly BindableProperty ScrollThresholdProperty = BindableProperty.Create(nameof(ScrollThreshold), typeof(float?), typeof(TextFieldStyle), null, propertyChanged: (bindable, oldValue, newValue) =>
286         {
287             var textFieldStyle = (TextFieldStyle)bindable;
288             textFieldStyle.scrollThreshold = (float?)newValue;
289         },
290         defaultValueCreator: (bindable) =>
291         {
292             var textFieldStyle = (TextFieldStyle)bindable;
293             return textFieldStyle.scrollThreshold;
294         });
295         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
296         [EditorBrowsable(EditorBrowsableState.Never)]
297         public static readonly BindableProperty ScrollSpeedProperty = BindableProperty.Create(nameof(ScrollSpeed), typeof(float?), typeof(TextFieldStyle), null, propertyChanged: (bindable, oldValue, newValue) =>
298         {
299             var textFieldStyle = (TextFieldStyle)bindable;
300             textFieldStyle.scrollSpeed = (float?)newValue;
301         },
302         defaultValueCreator: (bindable) =>
303         {
304             var textFieldStyle = (TextFieldStyle)bindable;
305             return textFieldStyle.scrollSpeed;
306         });
307         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
308         [EditorBrowsable(EditorBrowsableState.Never)]
309         public static readonly BindableProperty SelectionHighlightColorProperty = BindableProperty.Create(nameof(SelectionHighlightColor), typeof(Vector4), typeof(TextFieldStyle), null, propertyChanged: (bindable, oldValue, newValue) =>
310         {
311             var textFieldStyle = (TextFieldStyle)bindable;
312             textFieldStyle.selectionHighlightColor = (Vector4)newValue;
313         },
314         defaultValueCreator: (bindable) =>
315         {
316             var textFieldStyle = (TextFieldStyle)bindable;
317             return textFieldStyle.selectionHighlightColor;
318         });
319         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
320         [EditorBrowsable(EditorBrowsableState.Never)]
321         public static readonly BindableProperty DecorationBoundingBoxProperty = BindableProperty.Create(nameof(DecorationBoundingBox), typeof(Rectangle), typeof(TextFieldStyle), null, propertyChanged: (bindable, oldValue, newValue) =>
322         {
323             var textFieldStyle = (TextFieldStyle)bindable;
324             textFieldStyle.decorationBoundingBox = (Rectangle)newValue;
325         },
326         defaultValueCreator: (bindable) =>
327         {
328             var textFieldStyle = (TextFieldStyle)bindable;
329             return textFieldStyle.decorationBoundingBox;
330         });
331         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
332         [EditorBrowsable(EditorBrowsableState.Never)]
333         public static readonly BindableProperty InputColorProperty = BindableProperty.Create(nameof(InputColor), typeof(Vector4), typeof(TextFieldStyle), null, propertyChanged: (bindable, oldValue, newValue) =>
334         {
335             var textFieldStyle = (TextFieldStyle)bindable;
336             textFieldStyle.inputColor = (Vector4)newValue;
337         },
338         defaultValueCreator: (bindable) =>
339         {
340             var textFieldStyle = (TextFieldStyle)bindable;
341             return textFieldStyle.inputColor;
342         });
343         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
344         [EditorBrowsable(EditorBrowsableState.Never)]
345         public static readonly BindableProperty EnableMarkupProperty = BindableProperty.Create(nameof(EnableMarkup), typeof(bool?), typeof(TextFieldStyle), null, propertyChanged: (bindable, oldValue, newValue) =>
346         {
347             var textFieldStyle = (TextFieldStyle)bindable;
348             textFieldStyle.enableMarkup = (bool?)newValue;
349         },
350         defaultValueCreator: (bindable) =>
351         {
352             var textFieldStyle = (TextFieldStyle)bindable;
353             return textFieldStyle.enableMarkup;
354         });
355         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
356         [EditorBrowsable(EditorBrowsableState.Never)]
357         public static readonly BindableProperty InputFontFamilyProperty = BindableProperty.Create(nameof(InputFontFamily), typeof(string), typeof(TextFieldStyle), String.Empty, propertyChanged: (bindable, oldValue, newValue) =>
358         {
359             var textFieldStyle = (TextFieldStyle)bindable;
360             textFieldStyle.inputFontFamily = (string)newValue;
361         },
362         defaultValueCreator: (bindable) =>
363         {
364             var textFieldStyle = (TextFieldStyle)bindable;
365             return textFieldStyle.inputFontFamily;
366         });
367         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
368         [EditorBrowsable(EditorBrowsableState.Never)]
369         public static readonly BindableProperty InputPointSizeProperty = BindableProperty.Create(nameof(InputPointSize), typeof(float?), typeof(TextFieldStyle), null, propertyChanged: (bindable, oldValue, newValue) =>
370         {
371             var textFieldStyle = (TextFieldStyle)bindable;
372             textFieldStyle.inputPointSize = (float?)newValue;
373         },
374         defaultValueCreator: (bindable) =>
375         {
376             var textFieldStyle = (TextFieldStyle)bindable;
377             return textFieldStyle.inputPointSize;
378         });
379         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
380         [EditorBrowsable(EditorBrowsableState.Never)]
381         public static readonly BindableProperty InputUnderlineProperty = BindableProperty.Create(nameof(InputUnderline), typeof(string), typeof(TextFieldStyle), String.Empty, propertyChanged: (bindable, oldValue, newValue) =>
382         {
383             var textFieldStyle = (TextFieldStyle)bindable;
384             textFieldStyle.inputUnderline = (string)newValue;
385         },
386         defaultValueCreator: (bindable) =>
387         {
388             var textFieldStyle = (TextFieldStyle)bindable;
389             return textFieldStyle.inputUnderline;
390         });
391         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
392         [EditorBrowsable(EditorBrowsableState.Never)]
393         public static readonly BindableProperty InputShadowProperty = BindableProperty.Create(nameof(InputShadow), typeof(string), typeof(TextFieldStyle), String.Empty, propertyChanged: (bindable, oldValue, newValue) =>
394         {
395             var textFieldStyle = (TextFieldStyle)bindable;
396             textFieldStyle.inputShadow = (string)newValue;
397         },
398         defaultValueCreator: (bindable) =>
399         {
400             var textFieldStyle = (TextFieldStyle)bindable;
401             return textFieldStyle.inputShadow;
402         });
403         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
404         [EditorBrowsable(EditorBrowsableState.Never)]
405         public static readonly BindableProperty EmbossProperty = BindableProperty.Create(nameof(Emboss), typeof(string), typeof(TextFieldStyle), String.Empty, propertyChanged: (bindable, oldValue, newValue) =>
406         {
407             var textFieldStyle = (TextFieldStyle)bindable;
408             textFieldStyle.emboss = (string)newValue;
409         },
410         defaultValueCreator: (bindable) =>
411         {
412             var textFieldStyle = (TextFieldStyle)bindable;
413             return textFieldStyle.emboss;
414         });
415         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
416         [EditorBrowsable(EditorBrowsableState.Never)]
417         public static readonly BindableProperty InputEmbossProperty = BindableProperty.Create(nameof(InputEmboss), typeof(string), typeof(TextFieldStyle), String.Empty, propertyChanged: (bindable, oldValue, newValue) =>
418         {
419             var textFieldStyle = (TextFieldStyle)bindable;
420             textFieldStyle.inputEmboss = (string)newValue;
421         },
422         defaultValueCreator: (bindable) =>
423         {
424             var textFieldStyle = (TextFieldStyle)bindable;
425             return textFieldStyle.inputEmboss;
426         });
427         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
428         [EditorBrowsable(EditorBrowsableState.Never)]
429         public static readonly BindableProperty InputOutlineProperty = BindableProperty.Create(nameof(InputOutline), typeof(string), typeof(TextFieldStyle), String.Empty, propertyChanged: (bindable, oldValue, newValue) =>
430         {
431             var textFieldStyle = (TextFieldStyle)bindable;
432             textFieldStyle.inputOutline = (string)newValue;
433         },
434         defaultValueCreator: (bindable) =>
435         {
436             var textFieldStyle = (TextFieldStyle)bindable;
437             return textFieldStyle.inputOutline;
438         });
439         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
440         [EditorBrowsable(EditorBrowsableState.Never)]
441         public static readonly BindableProperty PixelSizeProperty = BindableProperty.Create(nameof(PixelSize), typeof(float?), typeof(TextFieldStyle), null, propertyChanged: (bindable, oldValue, newValue) =>
442         {
443             var textFieldStyle = (TextFieldStyle)bindable;
444             textFieldStyle.pixelSize = (float?)newValue;
445         },
446         defaultValueCreator: (bindable) =>
447         {
448             var textFieldStyle = (TextFieldStyle)bindable;
449             return textFieldStyle.pixelSize;
450         });
451         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
452         [EditorBrowsable(EditorBrowsableState.Never)]
453         public static readonly BindableProperty EnableSelectionProperty = BindableProperty.Create(nameof(EnableSelection), typeof(bool?), typeof(TextFieldStyle), null, propertyChanged: (bindable, oldValue, newValue) =>
454         {
455             var textFieldStyle = (TextFieldStyle)bindable;
456             textFieldStyle.enableSelection = (bool?)newValue;
457         },
458         defaultValueCreator: (bindable) =>
459         {
460             var textFieldStyle = (TextFieldStyle)bindable;
461             return textFieldStyle.enableSelection;
462         });
463         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
464         [EditorBrowsable(EditorBrowsableState.Never)]
465         public static readonly BindableProperty EllipsisProperty = BindableProperty.Create(nameof(Ellipsis), typeof(bool?), typeof(TextFieldStyle), null, propertyChanged: (bindable, oldValue, newValue) =>
466         {
467             var textFieldStyle = (TextFieldStyle)bindable;
468             textFieldStyle.ellipsis = (bool?)newValue;
469         },
470         defaultValueCreator: (bindable) =>
471         {
472             var textFieldStyle = (TextFieldStyle)bindable;
473             return textFieldStyle.ellipsis;
474         });
475         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
476         [EditorBrowsable(EditorBrowsableState.Never)]
477         public static readonly BindableProperty MatchSystemLanguageDirectionProperty = BindableProperty.Create(nameof(MatchSystemLanguageDirection), typeof(bool?), typeof(TextFieldStyle), null, propertyChanged: (bindable, oldValue, newValue) =>
478         {
479             var textFieldStyle = (TextFieldStyle)bindable;
480             textFieldStyle.matchSystemLanguageDirection = (bool?)newValue;
481         },
482         defaultValueCreator: (bindable) =>
483         {
484             var textFieldStyle = (TextFieldStyle)bindable;
485             return textFieldStyle.matchSystemLanguageDirection;
486         });
487
488         private string placeholderText;
489         private string placeholderTextFocused;
490         private int? maxLength;
491         private int? exceedPolicy;
492         private HorizontalAlignment? horizontalAlignment;
493         private VerticalAlignment? verticalAlignment;
494         private Vector4 secondaryCursorColor;
495         private bool? enableCursorBlink;
496         private float? cursorBlinkInterval;
497         private float? cursorBlinkDuration;
498         private int? cursorWidth;
499         private string grabHandleImage;
500         private string grabHandlePressedImage;
501         private float? scrollThreshold;
502         private float? scrollSpeed;
503         private Vector4 selectionHighlightColor;
504         private Rectangle decorationBoundingBox;
505         private Vector4 inputColor;
506         private bool? enableMarkup;
507         private string inputFontFamily;
508         private float? inputPointSize;
509         private string inputUnderline;
510         private string inputShadow;
511         private string emboss;
512         private string inputEmboss;
513         private string inputOutline;
514         private float? pixelSize;
515         private bool? enableSelection;
516         private bool? ellipsis;
517         private bool? matchSystemLanguageDirection;
518         private Selector<string> translatableTextSelector;
519         private Selector<string> translatablePlaceholderTextSelector;
520         private Selector<string> textSelector;
521         private Selector<string> fontFamilySelector;
522         private Selector<Color> textColorSelector;
523         private Selector<float?> pointSizeSelector;
524         private Selector<Vector4> placeholderTextColorSelector;
525         private Selector<Vector4> primaryCursorColorSelector;
526
527         static TextFieldStyle() { }
528
529         /// <summary>
530         /// Create an empty instance.
531         /// </summary>
532         [EditorBrowsable(EditorBrowsableState.Never)]
533         public TextFieldStyle() : base()
534         {
535         }
536
537         /// <summary>
538         /// Create an instance and set properties from the given TextField.
539         /// </summary>
540         /// <param name="textField">The TextField instance that includes property data.</param>
541         [EditorBrowsable(EditorBrowsableState.Never)]
542         public TextFieldStyle(TextField textField) : base(textField)
543         {
544         }
545
546         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
547         [EditorBrowsable(EditorBrowsableState.Never)]
548         public Selector<string> TranslatableText
549         {
550             get
551             {
552                 Selector<string> tmp = (Selector<string>)GetValue(TranslatableTextSelectorProperty);
553                 return (null != tmp) ? tmp : translatableTextSelector = new Selector<string>();
554             }
555             set => SetValue(TranslatableTextSelectorProperty, value);
556         }
557
558         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
559         [EditorBrowsable(EditorBrowsableState.Never)]
560         public Selector<string> TranslatablePlaceholderText
561         {
562             get
563             {
564                 Selector<string> tmp = (Selector<string>)GetValue(TranslatablePlaceholderTextSelectorProperty);
565                 return (null != tmp) ? tmp : translatablePlaceholderTextSelector = new Selector<string>();
566             }
567             set => SetValue(TranslatablePlaceholderTextSelectorProperty, value);
568         }
569
570         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
571         [EditorBrowsable(EditorBrowsableState.Never)]
572         public Selector<string> Text
573         {
574             get
575             {
576                 Selector<string> tmp = (Selector<string>)GetValue(TextSelectorProperty);
577                 return (null != tmp) ? tmp : textSelector = new Selector<string>();
578             }
579             set => SetValue(TextSelectorProperty, value);
580         }
581
582         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
583         [EditorBrowsable(EditorBrowsableState.Never)]
584         public string PlaceholderText
585         {
586             get => (string)GetValue(PlaceholderTextProperty);
587             set => SetValue(PlaceholderTextProperty, value);
588         }
589
590         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
591         [EditorBrowsable(EditorBrowsableState.Never)]
592         public string PlaceholderTextFocused
593         {
594             get => (string)GetValue(PlaceholderTextFocusedProperty);
595             set => SetValue(PlaceholderTextFocusedProperty, value);
596         }
597
598         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
599         [EditorBrowsable(EditorBrowsableState.Never)]
600         public Selector<string> FontFamily
601         {
602             get
603             {
604                 Selector<string> tmp = (Selector<string>)GetValue(FontFamilySelectorProperty);
605                 return (null != tmp) ? tmp : fontFamilySelector = new Selector<string>();
606             }
607             set => SetValue(FontFamilySelectorProperty, value);
608         }
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 int? MaxLength
613         {
614             get => (int?)GetValue(MaxLengthProperty);
615             set => SetValue(MaxLengthProperty, value);
616         }
617
618         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
619         [EditorBrowsable(EditorBrowsableState.Never)]
620         public int? ExceedPolicy
621         {
622             get => (int?)GetValue(ExceedPolicyProperty);
623             set => SetValue(ExceedPolicyProperty, value);
624         }
625
626         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
627         [EditorBrowsable(EditorBrowsableState.Never)]
628         public HorizontalAlignment? HorizontalAlignment
629         {
630             get => (HorizontalAlignment?)GetValue(HorizontalAlignmentProperty);
631             set => SetValue(HorizontalAlignmentProperty, value);
632         }
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 VerticalAlignment? VerticalAlignment
637         {
638             get => (VerticalAlignment?)GetValue(VerticalAlignmentProperty);
639             set => SetValue(VerticalAlignmentProperty, value);
640         }
641
642         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
643         [EditorBrowsable(EditorBrowsableState.Never)]
644         public Vector4 SecondaryCursorColor
645         {
646             get => (Vector4)GetValue(SecondaryCursorColorProperty);
647             set => SetValue(SecondaryCursorColorProperty, value);
648         }
649
650         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
651         [EditorBrowsable(EditorBrowsableState.Never)]
652         public bool? EnableCursorBlink
653         {
654             get => (bool?)GetValue(EnableCursorBlinkProperty);
655             set => SetValue(EnableCursorBlinkProperty, value);
656         }
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 float? CursorBlinkInterval
661         {
662             get => (float?)GetValue(CursorBlinkIntervalProperty);
663             set => SetValue(CursorBlinkIntervalProperty, value);
664         }
665
666         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
667         [EditorBrowsable(EditorBrowsableState.Never)]
668         public float? CursorBlinkDuration
669         {
670             get => (float?)GetValue(CursorBlinkDurationProperty);
671             set => SetValue(CursorBlinkDurationProperty, value);
672         }
673
674         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
675         [EditorBrowsable(EditorBrowsableState.Never)]
676         public int? CursorWidth
677         {
678             get => (int?)GetValue(CursorWidthProperty);
679             set => SetValue(CursorWidthProperty, value);
680         }
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 string GrabHandleImage
685         {
686             get => (string)GetValue(GrabHandleImageProperty);
687             set => SetValue(GrabHandleImageProperty, value);
688         }
689
690         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
691         [EditorBrowsable(EditorBrowsableState.Never)]
692         public string GrabHandlePressedImage
693         {
694             get => (string)GetValue(GrabHandlePressedImageProperty);
695             set => SetValue(GrabHandlePressedImageProperty, value);
696         }
697
698         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
699         [EditorBrowsable(EditorBrowsableState.Never)]
700         public float? ScrollThreshold
701         {
702             get => (float?)GetValue(ScrollThresholdProperty);
703             set => SetValue(ScrollThresholdProperty, value);
704         }
705
706         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
707         [EditorBrowsable(EditorBrowsableState.Never)]
708         public float? ScrollSpeed
709         {
710             get => (float?)GetValue(ScrollSpeedProperty);
711             set => SetValue(ScrollSpeedProperty, value);
712         }
713
714         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
715         [EditorBrowsable(EditorBrowsableState.Never)]
716         public Vector4 SelectionHighlightColor
717         {
718             get => (Vector4)GetValue(SelectionHighlightColorProperty);
719             set => SetValue(SelectionHighlightColorProperty, value);
720         }
721
722         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
723         [EditorBrowsable(EditorBrowsableState.Never)]
724         public Rectangle DecorationBoundingBox
725         {
726             get => (Rectangle)GetValue(DecorationBoundingBoxProperty);
727             set => SetValue(DecorationBoundingBoxProperty, value);
728         }
729
730         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
731         [EditorBrowsable(EditorBrowsableState.Never)]
732         public Vector4 InputColor
733         {
734             get => (Vector4)GetValue(InputColorProperty);
735             set => SetValue(InputColorProperty, value);
736         }
737
738         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
739         [EditorBrowsable(EditorBrowsableState.Never)]
740         public bool? EnableMarkup
741         {
742             get => (bool?)GetValue(EnableMarkupProperty);
743             set => SetValue(EnableMarkupProperty, value);
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 string InputFontFamily
749         {
750             get => (string)GetValue(InputFontFamilyProperty);
751             set => SetValue(InputFontFamilyProperty, value);
752         }
753
754         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
755         [EditorBrowsable(EditorBrowsableState.Never)]
756         public float? InputPointSize
757         {
758             get => (float?)GetValue(InputPointSizeProperty);
759             set => SetValue(InputPointSizeProperty, value);
760         }
761
762         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
763         [EditorBrowsable(EditorBrowsableState.Never)]
764         public string InputUnderline
765         {
766             get => (string)GetValue(InputUnderlineProperty);
767             set => SetValue(InputUnderlineProperty, value);
768         }
769
770         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
771         [EditorBrowsable(EditorBrowsableState.Never)]
772         public string InputShadow
773         {
774             get => (string)GetValue(InputShadowProperty);
775             set => SetValue(InputShadowProperty, value);
776         }
777
778         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
779         [EditorBrowsable(EditorBrowsableState.Never)]
780         public string Emboss
781         {
782             get => (string)GetValue(EmbossProperty);
783             set => SetValue(EmbossProperty, value);
784         }
785
786         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
787         [EditorBrowsable(EditorBrowsableState.Never)]
788         public string InputEmboss
789         {
790             get => (string)GetValue(InputEmbossProperty);
791             set => SetValue(InputEmbossProperty, value);
792         }
793
794         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
795         [EditorBrowsable(EditorBrowsableState.Never)]
796         public string InputOutline
797         {
798             get => (string)GetValue(InputOutlineProperty);
799             set => SetValue(InputOutlineProperty, value);
800         }
801
802         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
803         [EditorBrowsable(EditorBrowsableState.Never)]
804         public float? PixelSize
805         {
806             get => (float?)GetValue(PixelSizeProperty);
807             set => SetValue(PixelSizeProperty, value);
808         }
809
810         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
811         [EditorBrowsable(EditorBrowsableState.Never)]
812         public bool? EnableSelection
813         {
814             get => (bool?)GetValue(EnableSelectionProperty);
815             set => SetValue(EnableSelectionProperty, value);
816         }
817
818         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
819         [EditorBrowsable(EditorBrowsableState.Never)]
820         public bool? Ellipsis
821         {
822             get => (bool?)GetValue(EllipsisProperty);
823             set => SetValue(EllipsisProperty, value);
824         }
825
826         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
827         [EditorBrowsable(EditorBrowsableState.Never)]
828         public bool? MatchSystemLanguageDirection
829         {
830             get => (bool?)GetValue(MatchSystemLanguageDirectionProperty);
831             set => SetValue(MatchSystemLanguageDirectionProperty, value);
832         }
833
834         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
835         [EditorBrowsable(EditorBrowsableState.Never)]
836         public Selector<Color> TextColor
837         {
838             get
839             {
840                 Selector<Color> tmp = (Selector<Color>)GetValue(TextColorSelectorProperty);
841                 return (null != tmp) ? tmp : textColorSelector = new Selector<Color>();
842             }
843             set => SetValue(TextColorSelectorProperty, value);
844         }
845
846         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
847         [EditorBrowsable(EditorBrowsableState.Never)]
848         public Selector<float?> PointSize
849         {
850             get
851             {
852                 Selector<float?> tmp = (Selector<float?>)GetValue(PointSizeSelectorProperty);
853                 return (null != tmp) ? tmp : pointSizeSelector = new Selector<float?>();
854             }
855             set => SetValue(PointSizeSelectorProperty, value);
856         }
857
858         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
859         [EditorBrowsable(EditorBrowsableState.Never)]
860         public Selector<Vector4> PlaceholderTextColor
861         {
862             get
863             {
864                 Selector<Vector4> tmp = (Selector<Vector4>)GetValue(PlaceholderTextColorSelectorProperty);
865                 return (null != tmp) ? tmp : placeholderTextColorSelector = new Selector<Vector4>();
866             }
867             set => SetValue(PlaceholderTextColorSelectorProperty, value);
868         }
869
870         /// <summary>
871         /// Gets or sets primary cursor color.
872         /// </summary>
873         /// <since_tizen> 6 </since_tizen>
874         /// This will be public opened in tizen_5.5 after ACR done. Before ACR, need to be hidden as inhouse API.
875         [EditorBrowsable(EditorBrowsableState.Never)]
876         public Selector<Vector4> PrimaryCursorColor
877         {
878             get
879             {
880                 Selector<Vector4> tmp = (Selector<Vector4>)GetValue(PrimaryCursorColorSelectorProperty);
881                 return (null != tmp) ? tmp : primaryCursorColorSelector = new Selector<Vector4>();
882             }
883             set => SetValue(PrimaryCursorColorSelectorProperty, value);
884         }
885     }
886 }