Merge "[ElmSharp] Fixed the crash issue of Calendar"
[platform/core/csapi/tizenfx.git] / src / Tizen.NUI / src / public / BaseComponents / TextLabel.cs
1 /*
2  * Copyright(c) 2017 Samsung Electronics Co., Ltd.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  *
16  */
17
18 extern alias TizenSystemSettings;
19 using TizenSystemSettings.Tizen.System;
20 using System;
21 using System.Globalization;
22 using System.ComponentModel;
23 namespace Tizen.NUI.BaseComponents
24 {
25
26     /// <summary>
27     /// A control which renders a short text string.<br />
28     /// Text labels are lightweight, non-editable, and do not respond to the user input.<br />
29     /// </summary>
30     /// <since_tizen> 3 </since_tizen>
31     public class TextLabel : View
32     {
33         private global::System.Runtime.InteropServices.HandleRef swigCPtr;
34         private string textLabelSid = null;
35         private bool systemlangTextFlag = false;
36         internal TextLabel(global::System.IntPtr cPtr, bool cMemoryOwn) : base(NDalicPINVOKE.TextLabel_SWIGUpcast(cPtr), cMemoryOwn)
37         {
38             swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
39         }
40
41         internal static global::System.Runtime.InteropServices.HandleRef getCPtr(TextLabel obj)
42         {
43             return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
44         }
45
46         /// <summary>
47         /// Dispose.
48         /// </summary>
49         /// <since_tizen> 3 </since_tizen>
50         protected override void Dispose(DisposeTypes type)
51         {
52             if (disposed)
53             {
54                 return;
55             }
56
57             if(type == DisposeTypes.Explicit)
58             {
59                 //Called by User
60                 //Release your own managed resources here.
61                 //You should release all of your own disposable objects here.
62             }
63
64             //Release your own unmanaged resources here.
65             //You should not access any managed member here except static instance.
66             //because the execution order of Finalizes is non-deterministic.
67
68             if (swigCPtr.Handle != global::System.IntPtr.Zero)
69             {
70                 if (swigCMemOwn)
71                 {
72                     swigCMemOwn = false;
73                     NDalicPINVOKE.delete_TextLabel(swigCPtr);
74                 }
75                 swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
76             }
77
78             base.Dispose(type);
79         }
80
81         internal new class Property
82         {
83             internal static readonly int RENDERING_BACKEND = NDalicPINVOKE.TextLabel_Property_RENDERING_BACKEND_get();
84             internal static readonly int TEXT = NDalicPINVOKE.TextLabel_Property_TEXT_get();
85             internal static readonly int FONT_FAMILY = NDalicPINVOKE.TextLabel_Property_FONT_FAMILY_get();
86             internal static readonly int FONT_STYLE = NDalicPINVOKE.TextLabel_Property_FONT_STYLE_get();
87             internal static readonly int POINT_SIZE = NDalicPINVOKE.TextLabel_Property_POINT_SIZE_get();
88             internal static readonly int MULTI_LINE = NDalicPINVOKE.TextLabel_Property_MULTI_LINE_get();
89             internal static readonly int HORIZONTAL_ALIGNMENT = NDalicPINVOKE.TextLabel_Property_HORIZONTAL_ALIGNMENT_get();
90             internal static readonly int VERTICAL_ALIGNMENT = NDalicPINVOKE.TextLabel_Property_VERTICAL_ALIGNMENT_get();
91             internal static readonly int TEXT_COLOR = NDalicPINVOKE.TextLabel_Property_TEXT_COLOR_get();
92             internal static readonly int SHADOW_OFFSET = NDalicPINVOKE.TextLabel_Property_SHADOW_OFFSET_get();
93             internal static readonly int SHADOW_COLOR = NDalicPINVOKE.TextLabel_Property_SHADOW_COLOR_get();
94             internal static readonly int UNDERLINE_ENABLED = NDalicPINVOKE.TextLabel_Property_UNDERLINE_ENABLED_get();
95             internal static readonly int UNDERLINE_COLOR = NDalicPINVOKE.TextLabel_Property_UNDERLINE_COLOR_get();
96             internal static readonly int UNDERLINE_HEIGHT = NDalicPINVOKE.TextLabel_Property_UNDERLINE_HEIGHT_get();
97             internal static readonly int ENABLE_MARKUP = NDalicPINVOKE.TextLabel_Property_ENABLE_MARKUP_get();
98             internal static readonly int ENABLE_AUTO_SCROLL = NDalicPINVOKE.TextLabel_Property_ENABLE_AUTO_SCROLL_get();
99             internal static readonly int AUTO_SCROLL_SPEED = NDalicPINVOKE.TextLabel_Property_AUTO_SCROLL_SPEED_get();
100             internal static readonly int AUTO_SCROLL_LOOP_COUNT = NDalicPINVOKE.TextLabel_Property_AUTO_SCROLL_LOOP_COUNT_get();
101             internal static readonly int AUTO_SCROLL_GAP = NDalicPINVOKE.TextLabel_Property_AUTO_SCROLL_GAP_get();
102             internal static readonly int LINE_SPACING = NDalicPINVOKE.TextLabel_Property_LINE_SPACING_get();
103             internal static readonly int UNDERLINE = NDalicPINVOKE.TextLabel_Property_UNDERLINE_get();
104             internal static readonly int SHADOW = NDalicPINVOKE.TextLabel_Property_SHADOW_get();
105             internal static readonly int EMBOSS = NDalicPINVOKE.TextLabel_Property_EMBOSS_get();
106             internal static readonly int OUTLINE = NDalicPINVOKE.TextLabel_Property_OUTLINE_get();
107             internal static readonly int PIXEL_SIZE = NDalicManualPINVOKE.TextLabel_Property_PIXEL_SIZE_get();
108             internal static readonly int ELLIPSIS = NDalicManualPINVOKE.TextLabel_Property_ELLIPSIS_get();
109             internal static readonly int AUTO_SCROLL_STOP_MODE = NDalicManualPINVOKE.TextLabel_Property_AUTO_SCROLL_STOP_MODE_get();
110             internal static readonly int AUTO_SCROLL_LOOP_DELAY = NDalicManualPINVOKE.TextLabel_Property_AUTO_SCROLL_LOOP_DELAY_get();
111             internal static readonly int LINE_COUNT = NDalicManualPINVOKE.TextLabel_Property_LINE_COUNT_get();
112             internal static readonly int LINE_WRAP_MODE = NDalicManualPINVOKE.TextLabel_Property_LINE_WRAP_MODE_get();
113             internal static readonly int TEXT_DIRECTION = NDalicManualPINVOKE.TextLabel_Property_TEXT_DIRECTION_get();
114         }
115
116         /// <summary>
117         /// Creates the TextLabel control.
118         /// </summary>
119         /// <since_tizen> 3 </since_tizen>
120         public TextLabel() : this(NDalicPINVOKE.TextLabel_New__SWIG_0(), true)
121         {
122             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
123
124         }
125
126         /// <summary>
127         /// Creates the TextLabel control.
128         /// </summary>
129         /// <param name="text">The text to display</param>
130         /// <since_tizen> 3 </since_tizen>
131         public TextLabel(string text) : this(NDalicPINVOKE.TextLabel_New__SWIG_1(text), true)
132         {
133             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
134
135         }
136         internal TextLabel(TextLabel handle) : this(NDalicPINVOKE.new_TextLabel__SWIG_1(TextLabel.getCPtr(handle)), true)
137         {
138             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
139         }
140
141         /// <summary>
142         /// The TranslatableText property.<br />
143         /// The text can set the SID value.<br />
144         /// </summary>
145         /// <exception cref='ArgumentNullException'>
146         /// ResourceManager about multilingual is null.
147         /// </exception>
148         /// <since_tizen> 4 </since_tizen>
149         public string TranslatableText
150         {
151             get
152             {
153                 return textLabelSid;
154             }
155             set
156             {
157                 if (NUIApplication.MultilingualResourceManager == null)
158                 {
159                     throw new ArgumentNullException("ResourceManager about multilingual is null");
160                 }
161                 string translatableText = null;
162                 textLabelSid = value;
163                 translatableText = NUIApplication.MultilingualResourceManager?.GetString(textLabelSid, new CultureInfo(SystemSettings.LocaleLanguage.Replace("_", "-")));
164                 if (translatableText != null)
165                 {
166                     Text = translatableText;
167                     if (systemlangTextFlag == false)
168                     {
169                         SystemSettings.LocaleLanguageChanged += new WeakEventHandler<LocaleLanguageChangedEventArgs>(SystemSettings_LocaleLanguageChanged).Handler;
170                         systemlangTextFlag = true;
171                     }
172                 }
173                 else
174                 {
175                     Text = "";
176                 }
177             }
178         }
179         private void SystemSettings_LocaleLanguageChanged(object sender, LocaleLanguageChangedEventArgs e)
180         {
181             Text = NUIApplication.MultilingualResourceManager?.GetString(textLabelSid, new CultureInfo(e.Value.Replace("_", "-")));
182         }
183
184         /// <summary>
185         /// The Text property.<br />
186         /// The text to display in the UTF-8 format.<br />
187         /// </summary>
188         /// <since_tizen> 3 </since_tizen>
189         public string Text
190         {
191             get
192             {
193                 string temp;
194                 GetProperty(TextLabel.Property.TEXT).Get(out temp);
195                 return temp;
196             }
197             set
198             {
199                 SetProperty(TextLabel.Property.TEXT, new Tizen.NUI.PropertyValue(value));
200             }
201         }
202
203         /// <summary>
204         /// The FontFamily property.<br />
205         /// The requested font family to use.<br />
206         /// </summary>
207         /// <since_tizen> 3 </since_tizen>
208         public string FontFamily
209         {
210             get
211             {
212                 string temp;
213                 GetProperty(TextLabel.Property.FONT_FAMILY).Get(out temp);
214                 return temp;
215             }
216             set
217             {
218                 SetProperty(TextLabel.Property.FONT_FAMILY, new Tizen.NUI.PropertyValue(value));
219             }
220         }
221
222         /// <summary>
223         /// The FontStyle property.<br />
224         /// The requested font style to use.<br />
225         /// </summary>
226         /// <since_tizen> 3 </since_tizen>
227         public PropertyMap FontStyle
228         {
229             get
230             {
231                 PropertyMap temp = new PropertyMap();
232                 GetProperty(TextLabel.Property.FONT_STYLE).Get(temp);
233                 return temp;
234             }
235             set
236             {
237                 SetProperty(TextLabel.Property.FONT_STYLE, new Tizen.NUI.PropertyValue(value));
238             }
239         }
240
241         /// <summary>
242         /// The PointSize property.<br />
243         /// The size of font in points.<br />
244         /// </summary>
245         /// <since_tizen> 3 </since_tizen>
246         public float PointSize
247         {
248             get
249             {
250                 float temp = 0.0f;
251                 GetProperty(TextLabel.Property.POINT_SIZE).Get(out temp);
252                 return temp;
253             }
254             set
255             {
256                 SetProperty(TextLabel.Property.POINT_SIZE, new Tizen.NUI.PropertyValue(value));
257             }
258         }
259
260         /// <summary>
261         /// The MultiLine property.<br />
262         /// The single-line or multi-line layout option.<br />
263         /// </summary>
264         /// <since_tizen> 3 </since_tizen>
265         public bool MultiLine
266         {
267             get
268             {
269                 bool temp = false;
270                 GetProperty(TextLabel.Property.MULTI_LINE).Get(out temp);
271                 return temp;
272             }
273             set
274             {
275                 SetProperty(TextLabel.Property.MULTI_LINE, new Tizen.NUI.PropertyValue(value));
276             }
277         }
278
279         /// <summary>
280         /// The HorizontalAlignment property.<br />
281         /// The line horizontal alignment.<br />
282         /// </summary>
283         /// <since_tizen> 3 </since_tizen>
284         public HorizontalAlignment HorizontalAlignment
285         {
286             get
287             {
288                 string temp;
289                 if (GetProperty(TextLabel.Property.HORIZONTAL_ALIGNMENT).Get(out temp) == false)
290                 {
291                     NUILog.Error("HorizontalAlignment get error!");
292                 }
293                 switch (temp)
294                 {
295                     case "BEGIN":
296                         return HorizontalAlignment.Begin;
297                     case "CENTER":
298                         return HorizontalAlignment.Center;
299                     case "END":
300                         return HorizontalAlignment.End;
301                     default:
302                         return HorizontalAlignment.Begin;
303                 }
304             }
305             set
306             {
307                 string valueToString = "";
308                 switch (value)
309                 {
310                     case HorizontalAlignment.Begin:
311                     {
312                         valueToString = "BEGIN";
313                         break;
314                     }
315                     case HorizontalAlignment.Center:
316                     {
317                         valueToString = "CENTER";
318                         break;
319                     }
320                     case HorizontalAlignment.End:
321                     {
322                         valueToString = "END";
323                         break;
324                     }
325                     default:
326                     {
327                         valueToString = "BEGIN";
328                         break;
329                     }
330                 }
331                 SetProperty(TextLabel.Property.HORIZONTAL_ALIGNMENT, new Tizen.NUI.PropertyValue(valueToString));
332             }
333         }
334
335         /// <summary>
336         /// The VerticalAlignment property.<br />
337         /// The line vertical alignment.<br />
338         /// </summary>
339         /// <since_tizen> 3 </since_tizen>
340         public VerticalAlignment VerticalAlignment
341         {
342             get
343             {
344                 string temp;
345                 if (GetProperty(TextLabel.Property.VERTICAL_ALIGNMENT).Get(out temp) == false)
346                 {
347                     NUILog.Error("VerticalAlignment get error!");
348                 }
349
350                 switch (temp)
351                 {
352                     case "TOP":
353                         return VerticalAlignment.Top;
354                     case "CENTER":
355                         return VerticalAlignment.Center;
356                     case "BOTTOM":
357                         return VerticalAlignment.Bottom;
358                     default:
359                         return VerticalAlignment.Bottom;
360                 }
361             }
362             set
363             {
364                 string valueToString = "";
365                 switch (value)
366                 {
367                     case VerticalAlignment.Top:
368                     {
369                         valueToString = "TOP";
370                         break;
371                     }
372                     case VerticalAlignment.Center:
373                     {
374                         valueToString = "CENTER";
375                         break;
376                     }
377                     case VerticalAlignment.Bottom:
378                     {
379                         valueToString = "BOTTOM";
380                         break;
381                     }
382                     default:
383                     {
384                         valueToString = "BOTTOM";
385                         break;
386                     }
387                 }
388                 SetProperty(TextLabel.Property.VERTICAL_ALIGNMENT, new Tizen.NUI.PropertyValue(valueToString));
389             }
390         }
391
392         /// <summary>
393         /// The TextColor property.<br />
394         /// The color of the text.<br />
395         /// Animation framework can be used to change the color of the text when not using mark up.<br />
396         /// Cannot animate the color when text is auto scrolling.<br />
397         /// </summary>
398         /// <since_tizen> 3 </since_tizen>
399         public Color TextColor
400         {
401             get
402             {
403                 Color temp = new Color(0.0f, 0.0f, 0.0f, 0.0f);
404                 GetProperty(TextLabel.Property.TEXT_COLOR).Get(temp);
405                 return temp;
406             }
407             set
408             {
409                 SetProperty(TextLabel.Property.TEXT_COLOR, new Tizen.NUI.PropertyValue(value));
410             }
411         }
412
413         /// <summary>
414         /// The ShadowOffset property.<br />
415         /// The drop shadow offset 0 indicates no shadow.<br />
416         /// </summary>
417         /// <since_tizen> 3 </since_tizen>
418         public Vector2 ShadowOffset
419         {
420             get
421             {
422                 Vector2 temp = new Vector2(0.0f, 0.0f);
423                 GetProperty(TextLabel.Property.SHADOW_OFFSET).Get(temp);
424                 return temp;
425             }
426             set
427             {
428                 SetProperty(TextLabel.Property.SHADOW_OFFSET, new Tizen.NUI.PropertyValue(value));
429             }
430         }
431
432         /// <summary>
433         /// The ShadowColor property.<br />
434         /// The color of a drop shadow.<br />
435         /// </summary>
436         /// <since_tizen> 3 </since_tizen>
437         public Vector4 ShadowColor
438         {
439             get
440             {
441                 Vector4 temp = new Vector4(0.0f, 0.0f, 0.0f, 0.0f);
442                 GetProperty(TextLabel.Property.SHADOW_COLOR).Get(temp);
443                 return temp;
444             }
445             set
446             {
447                 SetProperty(TextLabel.Property.SHADOW_COLOR, new Tizen.NUI.PropertyValue(value));
448             }
449         }
450
451         /// <summary>
452         /// The UnderlineEnabled property.<br />
453         /// The underline enabled flag.<br />
454         /// </summary>
455         /// <since_tizen> 3 </since_tizen>
456         public bool UnderlineEnabled
457         {
458             get
459             {
460                 bool temp = false;
461                 GetProperty(TextLabel.Property.UNDERLINE_ENABLED).Get(out temp);
462                 return temp;
463             }
464             set
465             {
466                 SetProperty(TextLabel.Property.UNDERLINE_ENABLED, new Tizen.NUI.PropertyValue(value));
467             }
468         }
469
470         /// <summary>
471         /// The UnderlineColor property.<br />
472         /// Overrides the underline height from font metrics.<br />
473         /// </summary>
474         /// <since_tizen> 3 </since_tizen>
475         public Vector4 UnderlineColor
476         {
477             get
478             {
479                 Vector4 temp = new Vector4(0.0f, 0.0f, 0.0f, 0.0f);
480                 GetProperty(TextLabel.Property.UNDERLINE_COLOR).Get(temp);
481                 return temp;
482             }
483             set
484             {
485                 SetProperty(TextLabel.Property.UNDERLINE_COLOR, new Tizen.NUI.PropertyValue(value));
486             }
487         }
488
489         /// <summary>
490         /// The UnderlineHeight property.<br />
491         /// Overrides the underline height from font metrics.<br />
492         /// </summary>
493         /// <since_tizen> 3 </since_tizen>
494         public float UnderlineHeight
495         {
496             get
497             {
498                 float temp = 0.0f;
499                 GetProperty(TextLabel.Property.UNDERLINE_HEIGHT).Get(out temp);
500                 return temp;
501             }
502             set
503             {
504                 SetProperty(TextLabel.Property.UNDERLINE_HEIGHT, new Tizen.NUI.PropertyValue(value));
505             }
506         }
507
508         /// <summary>
509         /// The EnableMarkup property.<br />
510         /// Whether the mark-up processing is enabled.<br />
511         /// </summary>
512         /// <since_tizen> 3 </since_tizen>
513         public bool EnableMarkup
514         {
515             get
516             {
517                 bool temp = false;
518                 GetProperty(TextLabel.Property.ENABLE_MARKUP).Get(out temp);
519                 return temp;
520             }
521             set
522             {
523                 SetProperty(TextLabel.Property.ENABLE_MARKUP, new Tizen.NUI.PropertyValue(value));
524             }
525         }
526
527         /// <summary>
528         /// The EnableAutoScroll property.<br />
529         /// Starts or stops auto scrolling.<br />
530         /// </summary>
531         /// <since_tizen> 3 </since_tizen>
532         public bool EnableAutoScroll
533         {
534             get
535             {
536                 bool temp = false;
537                 GetProperty(TextLabel.Property.ENABLE_AUTO_SCROLL).Get(out temp);
538                 return temp;
539             }
540             set
541             {
542                 SetProperty(TextLabel.Property.ENABLE_AUTO_SCROLL, new Tizen.NUI.PropertyValue(value));
543             }
544         }
545
546         /// <summary>
547         /// The AutoScrollSpeed property.<br />
548         /// Sets the speed of scrolling in pixels per second.<br />
549         /// </summary>
550         /// <since_tizen> 3 </since_tizen>
551         public int AutoScrollSpeed
552         {
553             get
554             {
555                 int temp = 0;
556                 GetProperty(TextLabel.Property.AUTO_SCROLL_SPEED).Get(out temp);
557                 return temp;
558             }
559             set
560             {
561                 SetProperty(TextLabel.Property.AUTO_SCROLL_SPEED, new Tizen.NUI.PropertyValue(value));
562             }
563         }
564
565         /// <summary>
566         /// The AutoScrollLoopCount property.<br />
567         /// Number of complete loops when scrolling enabled.<br />
568         /// </summary>
569         /// <since_tizen> 3 </since_tizen>
570         public int AutoScrollLoopCount
571         {
572             get
573             {
574                 int temp = 0;
575                 GetProperty(TextLabel.Property.AUTO_SCROLL_LOOP_COUNT).Get(out temp);
576                 return temp;
577             }
578             set
579             {
580                 SetProperty(TextLabel.Property.AUTO_SCROLL_LOOP_COUNT, new Tizen.NUI.PropertyValue(value));
581             }
582         }
583
584         /// <summary>
585         /// The AutoScrollGap property.<br />
586         /// Gap before scrolling wraps.<br />
587         /// </summary>
588         /// <since_tizen> 3 </since_tizen>
589         public float AutoScrollGap
590         {
591             get
592             {
593                 float temp = 0.0f;
594                 GetProperty(TextLabel.Property.AUTO_SCROLL_GAP).Get(out temp);
595                 return temp;
596             }
597             set
598             {
599                 SetProperty(TextLabel.Property.AUTO_SCROLL_GAP, new Tizen.NUI.PropertyValue(value));
600             }
601         }
602
603         /// <summary>
604         /// The LineSpacing property.<br />
605         /// The default extra space between lines in points.<br />
606         /// </summary>
607         /// <since_tizen> 3 </since_tizen>
608         public float LineSpacing
609         {
610             get
611             {
612                 float temp = 0.0f;
613                 GetProperty(TextLabel.Property.LINE_SPACING).Get(out temp);
614                 return temp;
615             }
616             set
617             {
618                 SetProperty(TextLabel.Property.LINE_SPACING, new Tizen.NUI.PropertyValue(value));
619             }
620         }
621
622         /// <summary>
623         /// The Underline property.<br />
624         /// The default underline parameters.<br />
625         /// </summary>
626         /// <since_tizen> 3 </since_tizen>
627         public PropertyMap Underline
628         {
629             get
630             {
631                 PropertyMap temp = new PropertyMap();
632                 GetProperty(TextLabel.Property.UNDERLINE).Get(temp);
633                 return temp;
634             }
635             set
636             {
637                 SetProperty(TextLabel.Property.UNDERLINE, new Tizen.NUI.PropertyValue(value));
638             }
639         }
640
641         /// <summary>
642         /// The Shadow property.<br />
643         /// The default shadow parameters.<br />
644         /// </summary>
645         /// <since_tizen> 3 </since_tizen>
646         public PropertyMap Shadow
647         {
648             get
649             {
650                 PropertyMap temp = new PropertyMap();
651                 GetProperty(TextLabel.Property.SHADOW).Get(temp);
652                 return temp;
653             }
654             set
655             {
656                 SetProperty(TextLabel.Property.SHADOW, new Tizen.NUI.PropertyValue(value));
657             }
658         }
659
660         /// <summary>
661         /// The Emboss property.<br />
662         /// The default emboss parameters.<br />
663         /// </summary>
664         /// <since_tizen> 3 </since_tizen>
665         public string Emboss
666         {
667             get
668             {
669                 string temp;
670                 GetProperty(TextLabel.Property.EMBOSS).Get( out temp);
671                 return temp;
672             }
673             set
674             {
675                 SetProperty(TextLabel.Property.EMBOSS, new Tizen.NUI.PropertyValue(value));
676             }
677         }
678
679         /// <summary>
680         /// The Outline property.<br />
681         /// The default outline parameters.<br />
682         /// </summary>
683         /// <since_tizen> 3 </since_tizen>
684         public PropertyMap Outline
685         {
686             get
687             {
688                 PropertyMap temp = new PropertyMap();
689                 GetProperty(TextLabel.Property.OUTLINE).Get(temp);
690                 return temp;
691             }
692             set
693             {
694                 SetProperty(TextLabel.Property.OUTLINE, new Tizen.NUI.PropertyValue(value));
695             }
696         }
697
698         /// <summary>
699         /// The PixelSize property.<br />
700         /// The size of font in pixels.<br />
701         /// </summary>
702         /// <since_tizen> 3 </since_tizen>
703         public float PixelSize
704         {
705             get
706             {
707                 float temp = 0.0f;
708                 GetProperty(TextLabel.Property.PIXEL_SIZE).Get(out temp);
709                 return temp;
710             }
711             set
712             {
713                 SetProperty(TextLabel.Property.PIXEL_SIZE, new Tizen.NUI.PropertyValue(value));
714             }
715         }
716
717         /// <summary>
718         /// The Ellipsis property.<br />
719         /// Enable or disable the ellipsis.<br />
720         /// </summary>
721         /// <since_tizen> 3 </since_tizen>
722         public bool Ellipsis
723         {
724             get
725             {
726                 bool temp = false;
727                 GetProperty(TextLabel.Property.ELLIPSIS).Get(out temp);
728                 return temp;
729             }
730             set
731             {
732                 SetProperty(TextLabel.Property.ELLIPSIS, new Tizen.NUI.PropertyValue(value));
733             }
734         }
735
736         /// <summary>
737         /// The AutoScrollLoopDelay property.<br />
738         /// Do something.<br />
739         /// </summary>
740         /// <since_tizen> 3 </since_tizen>
741         public float AutoScrollLoopDelay
742         {
743             get
744             {
745                 float temp = 0.0f;
746                 GetProperty(TextLabel.Property.AUTO_SCROLL_LOOP_DELAY).Get(out temp);
747                 return temp;
748             }
749             set
750             {
751                 SetProperty(TextLabel.Property.AUTO_SCROLL_LOOP_DELAY, new Tizen.NUI.PropertyValue(value));
752             }
753         }
754
755         /// <summary>
756         /// The AutoScrollStopMode property.<br />
757         /// Do something.<br />
758         /// </summary>
759         /// <since_tizen> 3 </since_tizen>
760         public AutoScrollStopMode AutoScrollStopMode
761         {
762             get
763             {
764                 string temp;
765                 if(GetProperty(TextLabel.Property.AUTO_SCROLL_STOP_MODE).Get(out temp) == false)
766                 {
767                     NUILog.Error("AutoScrollStopMode get error!");
768                 }
769                 switch (temp)
770                 {
771                     case "FINISH_LOOP":
772                     return AutoScrollStopMode.FinishLoop;
773                     case "IMMEDIATE":
774                     return AutoScrollStopMode.Immediate;
775                     default:
776                     return AutoScrollStopMode.FinishLoop;
777                 }
778             }
779             set
780             {
781                 SetProperty(TextLabel.Property.AUTO_SCROLL_STOP_MODE, new Tizen.NUI.PropertyValue((int)value));
782             }
783         }
784
785         /// <summary>
786         /// The line count of the text.
787         /// </summary>
788         /// <since_tizen> 3 </since_tizen>
789         public int LineCount
790         {
791             get
792             {
793                 int temp = 0;
794                 GetProperty(TextLabel.Property.LINE_COUNT).Get(out temp);
795                 return temp;
796             }
797         }
798
799         /// <summary>
800         /// The LineWrapMode property.<br />
801         /// line wrap mode when the text lines over layout width.<br />
802         /// </summary>
803         /// <since_tizen> 4 </since_tizen>
804         public LineWrapMode LineWrapMode
805         {
806             get
807             {
808                 int temp;
809                 if(GetProperty(TextLabel.Property.LINE_WRAP_MODE).Get(out temp) == false)
810                 {
811                     NUILog.Error("LineWrapMode get error!");
812                 }
813                 return (LineWrapMode)temp;
814             }
815             set
816             {
817                 SetProperty(TextLabel.Property.LINE_WRAP_MODE, new Tizen.NUI.PropertyValue((int)value));
818             }
819         }
820
821         /// <summary>
822         /// The text direction.
823         /// </summary>
824         /// <since_tizen> 5 </since_tizen>
825         [EditorBrowsable(EditorBrowsableState.Never)]
826         public TextDirection TextDirection
827         {
828             get
829             {
830                 int temp = 0;
831                 GetProperty(TextLabel.Property.TEXT_DIRECTION).Get(out temp);
832                 return (TextDirection)temp;
833             }
834         }
835     }
836 }