[NUI] Add AnchorColor Property
[platform/core/csapi/tizenfx.git] / src / Tizen.NUI / src / public / BaseComponents / Style / TextLabelStyle.cs
1 /*
2  * Copyright(c) 2021 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.ComponentModel;
18 using Tizen.NUI.Binding;
19
20 namespace Tizen.NUI.BaseComponents
21 {
22     /// <summary>
23     /// The base class for Children attributes in Components.
24     /// </summary>
25     /// This will be public opened in tizen_5.5 after ACR done. Before ACR, need to be hidden as inhouse API.
26     [EditorBrowsable(EditorBrowsableState.Never)]
27     public class TextLabelStyle : ViewStyle
28     {
29         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
30         [EditorBrowsable(EditorBrowsableState.Never)]
31         public static readonly BindableProperty TranslatableTextSelectorProperty = BindableProperty.Create(nameof(TranslatableText), typeof(Selector<string>), typeof(TextLabelStyle), null, propertyChanged: (bindable, oldValue, newValue) =>
32         {
33             ((TextLabelStyle)bindable).translatableTextSelector = ((Selector<string>)newValue)?.Clone();
34         },
35         defaultValueCreator: (bindable) =>
36         {
37             return ((TextLabelStyle)bindable).translatableTextSelector;
38         });
39         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
40         [EditorBrowsable(EditorBrowsableState.Never)]
41         public static readonly BindableProperty TextSelectorProperty = BindableProperty.Create(nameof(Text), typeof(Selector<string>), typeof(TextLabelStyle), null, propertyChanged: (bindable, oldValue, newValue) =>
42         {
43             ((TextLabelStyle)bindable).textSelector = ((Selector<string>)newValue)?.Clone();
44         },
45         defaultValueCreator: (bindable) =>
46         {
47             return ((TextLabelStyle)bindable).textSelector;
48         });
49         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
50         [EditorBrowsable(EditorBrowsableState.Never)]
51         public static readonly BindableProperty FontFamilySelectorProperty = BindableProperty.Create(nameof(FontFamily), typeof(Selector<string>), typeof(TextLabelStyle), null, propertyChanged: (bindable, oldValue, newValue) =>
52         {
53             ((TextLabelStyle)bindable).fontFamilySelector = ((Selector<string>)newValue)?.Clone();
54         },
55         defaultValueCreator: (bindable) =>
56         {
57             return ((TextLabelStyle)bindable).fontFamilySelector;
58         });
59         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
60         [EditorBrowsable(EditorBrowsableState.Never)]
61         public static readonly BindableProperty PointSizeSelectorProperty = BindableProperty.Create(nameof(PointSize), typeof(Selector<float?>), typeof(TextLabelStyle), null, propertyChanged: (bindable, oldValue, newValue) =>
62         {
63             ((TextLabelStyle)bindable).pointSizeSelector = ((Selector<float?>)newValue)?.Clone();
64         },
65         defaultValueCreator: (bindable) =>
66         {
67             return ((TextLabelStyle)bindable).pointSizeSelector;
68         });
69         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
70         [EditorBrowsable(EditorBrowsableState.Never)]
71         public static readonly BindableProperty TextColorSelectorProperty = BindableProperty.Create(nameof(TextColor), typeof(Selector<Color>), typeof(TextLabelStyle), null, propertyChanged: (bindable, oldValue, newValue) =>
72         {
73             ((TextLabelStyle)bindable).textColorSelector = ((Selector<Color>)newValue)?.Clone();
74         },
75         defaultValueCreator: (bindable) =>
76         {
77             return ((TextLabelStyle)bindable).textColorSelector;
78         });
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 MultiLineProperty = BindableProperty.Create(nameof(MultiLine), typeof(bool?), typeof(TextLabelStyle), null, propertyChanged: (bindable, oldValue, newValue) =>
83         {
84             var textLabelStyle = (TextLabelStyle)bindable;
85             textLabelStyle.multiLine = (bool?)newValue;
86         },
87         defaultValueCreator: (bindable) =>
88         {
89             var textLabelStyle = (TextLabelStyle)bindable;
90             return textLabelStyle.multiLine;
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 HorizontalAlignmentProperty = BindableProperty.Create(nameof(HorizontalAlignment), typeof(HorizontalAlignment?), typeof(TextLabelStyle), null, propertyChanged: (bindable, oldValue, newValue) =>
95         {
96             var textLabelStyle = (TextLabelStyle)bindable;
97             textLabelStyle.horizontalAlignment = (HorizontalAlignment?)newValue;
98         },
99         defaultValueCreator: (bindable) =>
100         {
101             var textLabelStyle = (TextLabelStyle)bindable;
102             return textLabelStyle.horizontalAlignment;
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 VerticalAlignmentProperty = BindableProperty.Create(nameof(VerticalAlignment), typeof(VerticalAlignment?), typeof(TextLabelStyle), null, propertyChanged: (bindable, oldValue, newValue) =>
107         {
108             var textLabelStyle = (TextLabelStyle)bindable;
109             textLabelStyle.verticalAlignment = (VerticalAlignment?)newValue;
110         },
111         defaultValueCreator: (bindable) =>
112         {
113             var textLabelStyle = (TextLabelStyle)bindable;
114             return textLabelStyle.verticalAlignment;
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 EnableMarkupProperty = BindableProperty.Create(nameof(EnableMarkup), typeof(bool?), typeof(TextLabelStyle), null, propertyChanged: (bindable, oldValue, newValue) =>
119         {
120             var textLabelStyle = (TextLabelStyle)bindable;
121             textLabelStyle.enableMarkup = (bool?)newValue;
122         },
123         defaultValueCreator: (bindable) =>
124         {
125             var textLabelStyle = (TextLabelStyle)bindable;
126             return textLabelStyle.enableMarkup;
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 EnableAutoScrollProperty = BindableProperty.Create(nameof(EnableAutoScroll), typeof(bool?), typeof(TextLabelStyle), null, propertyChanged: (bindable, oldValue, newValue) =>
131         {
132             var textLabelStyle = (TextLabelStyle)bindable;
133             textLabelStyle.enableAutoScroll = (bool?)newValue;
134         },
135         defaultValueCreator: (bindable) =>
136         {
137             var textLabelStyle = (TextLabelStyle)bindable;
138             return textLabelStyle.enableAutoScroll;
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 AutoScrollSpeedProperty = BindableProperty.Create(nameof(AutoScrollSpeed), typeof(int?), typeof(TextLabelStyle), null, propertyChanged: (bindable, oldValue, newValue) =>
143         {
144             var textLabelStyle = (TextLabelStyle)bindable;
145             textLabelStyle.autoScrollSpeed = (int?)newValue;
146         },
147         defaultValueCreator: (bindable) =>
148         {
149             var textLabelStyle = (TextLabelStyle)bindable;
150             return textLabelStyle.autoScrollSpeed;
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 AutoScrollLoopCountProperty = BindableProperty.Create(nameof(AutoScrollLoopCount), typeof(int?), typeof(TextLabelStyle), null, propertyChanged: (bindable, oldValue, newValue) =>
155         {
156             var textLabelStyle = (TextLabelStyle)bindable;
157             textLabelStyle.autoScrollLoopCount = (int?)newValue;
158         },
159         defaultValueCreator: (bindable) =>
160         {
161             var textLabelStyle = (TextLabelStyle)bindable;
162             return textLabelStyle.autoScrollLoopCount;
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 AutoScrollGapProperty = BindableProperty.Create(nameof(AutoScrollGap), typeof(float?), typeof(TextLabelStyle), null, propertyChanged: (bindable, oldValue, newValue) =>
167         {
168             var textLabelStyle = (TextLabelStyle)bindable;
169             textLabelStyle.autoScrollGap = (float?)newValue;
170         },
171         defaultValueCreator: (bindable) =>
172         {
173             var textLabelStyle = (TextLabelStyle)bindable;
174             return textLabelStyle.autoScrollGap;
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 LineSpacingProperty = BindableProperty.Create(nameof(LineSpacing), typeof(float?), typeof(TextLabelStyle), null, propertyChanged: (bindable, oldValue, newValue) =>
179         {
180             var textLabelStyle = (TextLabelStyle)bindable;
181             textLabelStyle.lineSpacing = (float?)newValue;
182         },
183         defaultValueCreator: (bindable) =>
184         {
185             var textLabelStyle = (TextLabelStyle)bindable;
186             return textLabelStyle.lineSpacing;
187         });
188         /// <summary> The bindable property of RelativeLineHeightProperty. </summary>
189         [EditorBrowsable(EditorBrowsableState.Never)]
190         public static readonly BindableProperty RelativeLineHeightProperty = BindableProperty.Create(nameof(RelativeLineHeight), typeof(float?), typeof(TextLabelStyle), null, propertyChanged: (bindable, oldValue, newValue) =>
191         {
192             var textLabelStyle = (TextLabelStyle)bindable;
193             textLabelStyle.relativeLineHeight = (float?)newValue;
194         },
195         defaultValueCreator: (bindable) =>
196         {
197             var textLabelStyle = (TextLabelStyle)bindable;
198             return textLabelStyle.relativeLineHeight;
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 EmbossProperty = BindableProperty.Create(nameof(Emboss), typeof(string), typeof(TextLabelStyle), null, propertyChanged: (bindable, oldValue, newValue) =>
203         {
204             var textLabelStyle = (TextLabelStyle)bindable;
205             textLabelStyle.emboss = (string)newValue;
206         },
207         defaultValueCreator: (bindable) =>
208         {
209             var textLabelStyle = (TextLabelStyle)bindable;
210             return textLabelStyle.emboss;
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 PixelSizeSelectorProperty = BindableProperty.Create(nameof(PixelSize), typeof(Selector<float?>), typeof(TextLabelStyle), null, propertyChanged: (bindable, oldValue, newValue) =>
215         {
216             ((TextLabelStyle)bindable).pixelSizeSelector = ((Selector<float?>)newValue)?.Clone();
217         },
218         defaultValueCreator: (bindable) =>
219         {
220             return ((TextLabelStyle)bindable).pixelSizeSelector;
221         });
222         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
223         [EditorBrowsable(EditorBrowsableState.Never)]
224         public static readonly BindableProperty EllipsisProperty = BindableProperty.Create(nameof(Ellipsis), typeof(bool?), typeof(TextLabelStyle), null, propertyChanged: (bindable, oldValue, newValue) =>
225         {
226             var textLabelStyle = (TextLabelStyle)bindable;
227             textLabelStyle.ellipsis = (bool?)newValue;
228         },
229         defaultValueCreator: (bindable) =>
230         {
231             var textLabelStyle = (TextLabelStyle)bindable;
232             return textLabelStyle.ellipsis;
233         });
234         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
235         [EditorBrowsable(EditorBrowsableState.Never)]
236         public static readonly BindableProperty AutoScrollLoopDelayProperty = BindableProperty.Create(nameof(AutoScrollLoopDelay), typeof(float?), typeof(TextLabelStyle), null, propertyChanged: (bindable, oldValue, newValue) =>
237         {
238             var textLabelStyle = (TextLabelStyle)bindable;
239             textLabelStyle.autoScrollLoopDelay = (float?)newValue;
240         },
241         defaultValueCreator: (bindable) =>
242         {
243             var textLabelStyle = (TextLabelStyle)bindable;
244             return textLabelStyle.autoScrollLoopDelay;
245         });
246         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
247         [EditorBrowsable(EditorBrowsableState.Never)]
248         public static readonly BindableProperty AutoScrollStopModeProperty = BindableProperty.Create(nameof(AutoScrollStopMode), typeof(AutoScrollStopMode?), typeof(TextLabelStyle), null, propertyChanged: (bindable, oldValue, newValue) =>
249         {
250             var textLabelStyle = (TextLabelStyle)bindable;
251             textLabelStyle.autoScrollStopMode = (AutoScrollStopMode?)newValue;
252         },
253         defaultValueCreator: (bindable) =>
254         {
255             var textLabelStyle = (TextLabelStyle)bindable;
256             return textLabelStyle.autoScrollStopMode;
257         });
258         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
259         [EditorBrowsable(EditorBrowsableState.Never)]
260         public static readonly BindableProperty LineWrapModeProperty = BindableProperty.Create(nameof(LineWrapMode), typeof(LineWrapMode?), typeof(TextLabelStyle), null, propertyChanged: (bindable, oldValue, newValue) =>
261         {
262             var textLabelStyle = (TextLabelStyle)bindable;
263             textLabelStyle.lineWrapMode = (LineWrapMode?)newValue;
264         },
265         defaultValueCreator: (bindable) =>
266         {
267             var textLabelStyle = (TextLabelStyle)bindable;
268             return textLabelStyle.lineWrapMode;
269         });
270         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
271         [EditorBrowsable(EditorBrowsableState.Never)]
272         public static readonly BindableProperty VerticalLineAlignmentProperty = BindableProperty.Create(nameof(VerticalLineAlignment), typeof(VerticalLineAlignment?), typeof(TextLabelStyle), null, propertyChanged: (bindable, oldValue, newValue) =>
273         {
274             var textLabelStyle = (TextLabelStyle)bindable;
275             textLabelStyle.verticalLineAlignment = (VerticalLineAlignment?)newValue;
276         },
277         defaultValueCreator: (bindable) =>
278         {
279             var textLabelStyle = (TextLabelStyle)bindable;
280             return textLabelStyle.verticalLineAlignment;
281         });
282         /// This will be public opened in tizen_6.5 after ACR done. Before ACR, need to be hidden as inhouse API.
283         [EditorBrowsable(EditorBrowsableState.Never)]
284         public static readonly BindableProperty EllipsisPositionProperty = BindableProperty.Create(nameof(EllipsisPosition), typeof(EllipsisPosition?), typeof(TextLabelStyle), null, propertyChanged: (bindable, oldValue, newValue) =>
285         {
286             var textLabelStyle = (TextLabelStyle)bindable;
287             textLabelStyle.ellipsisPosition = (EllipsisPosition?)newValue;
288         },
289         defaultValueCreator: (bindable) =>
290         {
291             var textLabelStyle = (TextLabelStyle)bindable;
292             return textLabelStyle.ellipsisPosition;
293         });
294         /// This will be public opened in tizen_6.5 after ACR done. Before ACR, need to be hidden as inhouse API.
295         [EditorBrowsable(EditorBrowsableState.Never)]
296         public static readonly BindableProperty CharacterSpacingProperty = BindableProperty.Create(nameof(CharacterSpacing), typeof(float?), typeof(TextLabelStyle), null, propertyChanged: (bindable, oldValue, newValue) =>
297         {
298             var textLabelStyle = (TextLabelStyle)bindable;
299             textLabelStyle.characterSpacing = (float?)newValue;
300         },
301         defaultValueCreator: (bindable) =>
302         {
303             var textLabelStyle = (TextLabelStyle)bindable;
304             return textLabelStyle.characterSpacing;
305         });
306         [EditorBrowsable(EditorBrowsableState.Never)]
307         public static readonly BindableProperty FontSizeScaleProperty = BindableProperty.Create(nameof(FontSizeScale), typeof(float?), typeof(TextLabelStyle), null, propertyChanged: (bindable, oldValue, newValue) =>
308         {
309             var textLabelStyle = (TextLabelStyle)bindable;
310             textLabelStyle.fontSizeScale = (float?)newValue;
311         },
312         defaultValueCreator: (bindable) =>
313         {
314             var textLabelStyle = (TextLabelStyle)bindable;
315             return textLabelStyle.fontSizeScale;
316         });
317         public static readonly BindableProperty AnchorColorProperty = BindableProperty.Create(nameof(AnchorColor), typeof(Color), typeof(TextLabelStyle), null, propertyChanged: (bindable, oldValue, newValue) =>
318         {
319             var textLabelStyle = (TextLabelStyle)bindable;
320             textLabelStyle.anchorColor = (Color)newValue;
321         },
322         defaultValueCreator: (bindable) =>
323         {
324             var textLabelStyle = (TextLabelStyle)bindable;
325             return textLabelStyle.anchorColor;
326         });
327         public static readonly BindableProperty AnchorClickedColorProperty = BindableProperty.Create(nameof(AnchorClickedColor), typeof(Color), typeof(TextLabelStyle), null, propertyChanged: (bindable, oldValue, newValue) =>
328         {
329             var textLabelStyle = (TextLabelStyle)bindable;
330             textLabelStyle.anchorClickedColor = (Color)newValue;
331         },
332         defaultValueCreator: (bindable) =>
333         {
334             var textLabelStyle = (TextLabelStyle)bindable;
335             return textLabelStyle.anchorClickedColor;
336         });
337         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
338         [EditorBrowsable(EditorBrowsableState.Never)]
339         public static readonly BindableProperty MatchSystemLanguageDirectionProperty = BindableProperty.Create(nameof(MatchSystemLanguageDirection), typeof(bool?), typeof(TextLabelStyle), null, propertyChanged: (bindable, oldValue, newValue) =>
340         {
341             var textLabelStyle = (TextLabelStyle)bindable;
342             textLabelStyle.matchSystemLanguageDirection = (bool?)newValue;
343         },
344         defaultValueCreator: (bindable) =>
345         {
346             var textLabelStyle = (TextLabelStyle)bindable;
347             return textLabelStyle.matchSystemLanguageDirection;
348         });
349         /// A BindableProperty for ImageShadow
350         [EditorBrowsable(EditorBrowsableState.Never)]
351         public static readonly BindableProperty TextShadowProperty = BindableProperty.Create(nameof(TextShadow), typeof(Selector<TextShadow>), typeof(TextLabelStyle), null, propertyChanged: (bindable, oldValue, newValue) =>
352         {
353             ((TextLabelStyle)bindable).textShadow = ((Selector<TextShadow>)newValue)?.Clone();
354         },
355         defaultValueCreator: (bindable) =>
356         {
357             return ((TextLabelStyle)bindable).textShadow;
358         });
359         /// This will be public opened in tizen_6.5 after ACR done. Before ACR, need to be hidden as inhouse API.
360         [EditorBrowsable(EditorBrowsableState.Never)]
361         public static readonly BindableProperty FontStyleProperty = BindableProperty.Create(nameof(FontStyle), typeof(PropertyMap), typeof(TextLabelStyle), null, propertyChanged: (bindable, oldValue, newValue) =>
362         {
363             var textLabelStyle = (TextLabelStyle)bindable;
364             textLabelStyle.fontStyle = (PropertyMap)newValue;
365         },
366         defaultValueCreator: (bindable) =>
367         {
368             var textLabelStyle = (TextLabelStyle)bindable;
369             return textLabelStyle.fontStyle;
370         });
371
372         private bool? multiLine;
373         private HorizontalAlignment? horizontalAlignment;
374         private VerticalAlignment? verticalAlignment;
375         private bool? enableMarkup;
376         private bool? enableAutoScroll;
377         private int? autoScrollSpeed;
378         private int? autoScrollLoopCount;
379         private float? autoScrollGap;
380         private float? lineSpacing;
381         private float? relativeLineHeight;
382         private string emboss;
383         private Selector<float?> pixelSizeSelector;
384         private bool? ellipsis;
385         private float? autoScrollLoopDelay;
386         private AutoScrollStopMode? autoScrollStopMode;
387         private LineWrapMode? lineWrapMode;
388         private VerticalLineAlignment? verticalLineAlignment;
389         private EllipsisPosition? ellipsisPosition;
390         private bool? matchSystemLanguageDirection;
391         private Selector<string> translatableTextSelector;
392         private Selector<string> fontFamilySelector;
393         private Selector<string> textSelector;
394         private Selector<Color> textColorSelector;
395         private Selector<float?> pointSizeSelector;
396         private Selector<TextShadow> textShadow;
397         private PropertyMap fontStyle;
398         private float? characterSpacing;
399         private float? fontSizeScale;
400         private Color anchorColor;
401         private Color anchorClickedColor;
402
403         static TextLabelStyle() { }
404
405         /// <summary>
406         /// Create an empty instance.
407         /// </summary>
408         [EditorBrowsable(EditorBrowsableState.Never)]
409         public TextLabelStyle() : base()
410         {
411         }
412
413         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
414         [EditorBrowsable(EditorBrowsableState.Never)]
415         public Selector<string> TranslatableText
416         {
417             get
418             {
419                 Selector<string> tmp = (Selector<string>)GetValue(TranslatableTextSelectorProperty);
420                 return (null != tmp) ? tmp : translatableTextSelector = new Selector<string>();
421             }
422             set => SetValue(TranslatableTextSelectorProperty, value);
423         }
424
425         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
426         [EditorBrowsable(EditorBrowsableState.Never)]
427         public Selector<string> FontFamily
428         {
429             get
430             {
431                 Selector<string> tmp = (Selector<string>)GetValue(FontFamilySelectorProperty);
432                 return (null != tmp) ? tmp : fontFamilySelector = new Selector<string>();
433             }
434             set => SetValue(FontFamilySelectorProperty, value);
435         }
436
437         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
438         [EditorBrowsable(EditorBrowsableState.Never)]
439         public bool? MultiLine
440         {
441             get => (bool?)GetValue(MultiLineProperty);
442             set => SetValue(MultiLineProperty, value);
443         }
444
445         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
446         [EditorBrowsable(EditorBrowsableState.Never)]
447         public HorizontalAlignment? HorizontalAlignment
448         {
449             get => (HorizontalAlignment?)GetValue(HorizontalAlignmentProperty);
450             set => SetValue(HorizontalAlignmentProperty, value);
451         }
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 VerticalAlignment? VerticalAlignment
456         {
457             get => (VerticalAlignment?)GetValue(VerticalAlignmentProperty);
458             set => SetValue(VerticalAlignmentProperty, value);
459         }
460
461         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
462         [EditorBrowsable(EditorBrowsableState.Never)]
463         public bool? EnableMarkup
464         {
465             get => (bool?)GetValue(EnableMarkupProperty);
466             set => SetValue(EnableMarkupProperty, value);
467         }
468
469         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
470         [EditorBrowsable(EditorBrowsableState.Never)]
471         public bool? EnableAutoScroll
472         {
473             get => (bool?)GetValue(EnableAutoScrollProperty);
474             set => SetValue(EnableAutoScrollProperty, value);
475         }
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 int? AutoScrollSpeed
480         {
481             get => (int?)GetValue(AutoScrollSpeedProperty);
482             set => SetValue(AutoScrollSpeedProperty, value);
483         }
484
485         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
486         [EditorBrowsable(EditorBrowsableState.Never)]
487         public int? AutoScrollLoopCount
488         {
489             get => (int?)GetValue(AutoScrollLoopCountProperty);
490             set => SetValue(AutoScrollLoopCountProperty, value);
491         }
492
493         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
494         [EditorBrowsable(EditorBrowsableState.Never)]
495         public float? AutoScrollGap
496         {
497             get => (float?)GetValue(AutoScrollGapProperty);
498             set => SetValue(AutoScrollGapProperty, value);
499         }
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 float? LineSpacing
504         {
505             get => (float?)GetValue(LineSpacingProperty);
506             set => SetValue(LineSpacingProperty, value);
507         }
508
509         /// <summary>
510         /// the relative line height to be used.
511         /// </summary>
512         [EditorBrowsable(EditorBrowsableState.Never)]
513         public float? RelativeLineHeight
514         {
515             get => (float?)GetValue(RelativeLineHeightProperty);
516             set => SetValue(RelativeLineHeightProperty, value);
517         }
518
519         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
520         [EditorBrowsable(EditorBrowsableState.Never)]
521         public string Emboss
522         {
523             get => (string)GetValue(EmbossProperty);
524             set => SetValue(EmbossProperty, value);
525         }
526
527         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
528         [EditorBrowsable(EditorBrowsableState.Never)]
529         public Selector<float?> PixelSize
530         {
531             get => (Selector<float?>)GetValue(PixelSizeSelectorProperty) ?? (pixelSizeSelector = new Selector<float?>());
532             set => SetValue(PixelSizeSelectorProperty, value);
533         }
534
535         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
536         [EditorBrowsable(EditorBrowsableState.Never)]
537         public bool? Ellipsis
538         {
539             get => (bool?)GetValue(EllipsisProperty);
540             set => SetValue(EllipsisProperty, value);
541         }
542
543         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
544         [EditorBrowsable(EditorBrowsableState.Never)]
545         public float? AutoScrollLoopDelay
546         {
547             get => (float?)GetValue(AutoScrollLoopDelayProperty);
548             set => SetValue(AutoScrollLoopDelayProperty, value);
549         }
550
551         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
552         [EditorBrowsable(EditorBrowsableState.Never)]
553         public AutoScrollStopMode? AutoScrollStopMode
554         {
555             get => (AutoScrollStopMode?)GetValue(AutoScrollStopModeProperty);
556             set => SetValue(AutoScrollStopModeProperty, value);
557         }
558
559         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
560         [EditorBrowsable(EditorBrowsableState.Never)]
561         public LineWrapMode? LineWrapMode
562         {
563             get => (LineWrapMode?)GetValue(LineWrapModeProperty);
564             set => SetValue(LineWrapModeProperty, value);
565         }
566
567         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
568         [EditorBrowsable(EditorBrowsableState.Never)]
569         public VerticalLineAlignment? VerticalLineAlignment
570         {
571             get => (VerticalLineAlignment?)GetValue(VerticalLineAlignmentProperty);
572             set => SetValue(VerticalLineAlignmentProperty, value);
573         }
574
575         /// This will be public opened in tizen_6.5 after ACR done. Before ACR, need to be hidden as inhouse API.
576         [EditorBrowsable(EditorBrowsableState.Never)]
577         public EllipsisPosition? EllipsisPosition
578         {
579             get => (EllipsisPosition?)GetValue(EllipsisPositionProperty);
580             set => SetValue(EllipsisPositionProperty, value);
581         }
582
583         /// This will be public opened in tizen_6.5 after ACR done. Before ACR, need to be hidden as inhouse API.
584         [EditorBrowsable(EditorBrowsableState.Never)]
585         public float? CharacterSpacing
586         {
587             get => (float?)GetValue(CharacterSpacingProperty);
588             set => SetValue(CharacterSpacingProperty, value);
589         }
590
591         [EditorBrowsable(EditorBrowsableState.Never)]
592         public float? FontSizeScale
593         {
594             get => (float?)GetValue(FontSizeScaleProperty);
595             set => SetValue(FontSizeScaleProperty, value);
596         }
597
598         [EditorBrowsable(EditorBrowsableState.Never)]
599         public Color AnchorColor
600         {
601             get => (Color)GetValue(AnchorColorProperty);
602             set => SetValue(AnchorColorProperty, value);
603         }
604
605         [EditorBrowsable(EditorBrowsableState.Never)]
606         public Color AnchorClickedColor
607         {
608             get => (Color)GetValue(AnchorClickedColorProperty);
609             set => SetValue(AnchorClickedColorProperty, value);
610         }
611
612         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
613         [EditorBrowsable(EditorBrowsableState.Never)]
614         public bool? MatchSystemLanguageDirection
615         {
616             get => (bool?)GetValue(MatchSystemLanguageDirectionProperty);
617             set => SetValue(MatchSystemLanguageDirectionProperty, value);
618         }
619
620         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
621         [EditorBrowsable(EditorBrowsableState.Never)]
622         public Selector<string> Text
623         {
624             get
625             {
626                 Selector<string> tmp = (Selector<string>)GetValue(TextSelectorProperty);
627                 return (null != tmp) ? tmp : textSelector = new Selector<string>();
628             }
629             set => SetValue(TextSelectorProperty, value);
630         }
631
632         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
633         [EditorBrowsable(EditorBrowsableState.Never)]
634         public Selector<Color> TextColor
635         {
636             get
637             {
638                 Selector<Color> tmp = (Selector<Color>)GetValue(TextColorSelectorProperty);
639                 return (null != tmp) ? tmp : textColorSelector = new Selector<Color>();
640             }
641             set => SetValue(TextColorSelectorProperty, value);
642         }
643
644         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
645         [EditorBrowsable(EditorBrowsableState.Never)]
646         public Selector<float?> PointSize
647         {
648             get
649             {
650                 Selector<float?> tmp = (Selector<float?>)GetValue(PointSizeSelectorProperty);
651                 return (null != tmp) ? tmp : pointSizeSelector = new Selector<float?>();
652             }
653             set => SetValue(PointSizeSelectorProperty, value);
654         }
655
656         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
657         [EditorBrowsable(EditorBrowsableState.Never)]
658         public Selector<TextShadow> TextShadow
659         {
660             get => (Selector<TextShadow>)GetValue(TextShadowProperty);
661             set => SetValue(TextShadowProperty, value);
662         }
663
664         /// This will be public opened in tizen_6.5 after ACR done. Before ACR, need to be hidden as inhouse API.
665         [EditorBrowsable(EditorBrowsableState.Never)]
666         public PropertyMap FontStyle
667         {
668             get => (PropertyMap)GetValue(FontStyleProperty);
669             set => SetValue(FontStyleProperty, value);
670         }
671     }
672 }