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