diff options
author | Seungkeun Lee <sngn.lee@samsung.com> | 2017-06-12 14:26:04 +0900 |
---|---|---|
committer | Seungkeun Lee <sngn.lee@samsung.com> | 2017-06-15 04:39:14 +0000 |
commit | 03ac855857febe3ee6535e3fc1f61b84408a1cd1 (patch) | |
tree | bf2f7b6a04a9fef318bbbe756361b39a7309f7a5 /Xamarin.Forms.Platform.Tizen/Native/Label.cs | |
parent | dfbe521553e7c25ac72e919bc181b8aa8e071ce6 (diff) | |
download | xamarin-forms-03ac855857febe3ee6535e3fc1f61b84408a1cd1.tar.gz xamarin-forms-03ac855857febe3ee6535e3fc1f61b84408a1cd1.tar.bz2 xamarin-forms-03ac855857febe3ee6535e3fc1f61b84408a1cd1.zip |
Update Label internal implemnets
- TextStyle was added in ElmSharp.Label
- VerticalTextAlignment API was added in ElmSharp.Layout
- Update LineBreakMode code with LineWrapType and IsEllipsis
Change-Id: Ic4ee266f58ae2f29442e3a236283bbc05dc65a05
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; } } } |