diff options
Diffstat (limited to 'Xamarin.Forms.Platform.Tizen/Native/Label.cs')
-rw-r--r-- | Xamarin.Forms.Platform.Tizen/Native/Label.cs | 104 |
1 files changed, 71 insertions, 33 deletions
diff --git a/Xamarin.Forms.Platform.Tizen/Native/Label.cs b/Xamarin.Forms.Platform.Tizen/Native/Label.cs index 911ca317..8d095363 100644 --- a/Xamarin.Forms.Platform.Tizen/Native/Label.cs +++ b/Xamarin.Forms.Platform.Tizen/Native/Label.cs @@ -210,8 +210,35 @@ namespace Xamarin.Forms.Platform.Tizen.Native { if (value != _span.LineBreakMode) { + var previousMode = _span.LineBreakMode; _span.LineBreakMode = value; - ApplyTextAndStyle(); + switch(value) + { + case LineBreakMode.NoWrap: + LineWrapType = WrapType.None; + IsEllipsis = false; + break; + case LineBreakMode.CharacterWrap: + LineWrapType = WrapType.Char; + IsEllipsis = false; + break; + case LineBreakMode.WordWrap: + LineWrapType = WrapType.Word; + IsEllipsis = false; + break; + case LineBreakMode.MixedWrap: + LineWrapType = WrapType.Mixed; + IsEllipsis = false; + break; + default: + LineWrapType = WrapType.None; + IsEllipsis = true; + break; + } + if (IsEllipsis || previousMode >= LineBreakMode.HeadTruncation) + { + ApplyTextAndStyle(); + } } } } @@ -243,9 +270,48 @@ namespace Xamarin.Forms.Platform.Tizen.Native /// <value>The vertical text alignment.</value> public TextAlignment VerticalTextAlignment { - // TODO. need to EFL new API - get; - set; + // README: It only work on Tizen 4.0 + get + { + double valign = GetVerticalTextAlignment("elm.text"); + if (valign == 0.0) + { + return TextAlignment.Start; + } + else if (valign == 0.5) + { + return TextAlignment.Center; + } + else if (valign == 1.0) + { + return TextAlignment.End; + } + else + { + return TextAlignment.Auto; + } + } + set + { + double valign = 0; + switch (value) + { + case TextAlignment.Auto: + valign = -1; + break; + case TextAlignment.None: + case TextAlignment.Start: + valign = 0; + break; + case TextAlignment.Center: + valign = 0.5; + break; + case TextAlignment.End: + valign = 1.0; + break; + } + SetVerticalTextAlignment("elm.text", valign); + } } /// <summary> @@ -323,36 +389,8 @@ namespace Xamarin.Forms.Platform.Tizen.Native void SetInternalTextAndStyle(string formattedText, string textStyle) { - string emission = "elm,state,text,visible"; - - if (string.IsNullOrEmpty(formattedText)) - { - formattedText = null; - textStyle = null; - emission = "elm,state,text,hidden"; - } - base.Text = formattedText; - - var textblock = EdjeObject["elm.text"]; - - if (textblock != null) - { - textblock.TextStyle = textStyle; - } - - EdjeObject.EmitSignal(emission, "elm"); - - switch (LineBreakMode) - { - case LineBreakMode.NoWrap: - emission = "elm,state,horizontal,expandable"; - break; - default: - emission = "elm,state,horizontal,fixed"; - break; - } - EdjeObject.EmitSignal(emission, "elm"); + TextStyle = textStyle; } } } |