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