diff options
-rw-r--r-- | Xamarin.Forms.Platform.Tizen/Native/Entry.cs | 2 | ||||
-rw-r--r-- | Xamarin.Forms.Platform.Tizen/Native/Label.cs | 104 | ||||
-rw-r--r-- | Xamarin.Forms.Platform.Tizen/Native/Span.cs | 20 | ||||
-rw-r--r-- | Xamarin.Forms.Platform.Tizen/Renderers/EntryRenderer.cs | 2 |
4 files changed, 78 insertions, 50 deletions
diff --git a/Xamarin.Forms.Platform.Tizen/Native/Entry.cs b/Xamarin.Forms.Platform.Tizen/Native/Entry.cs index 26b775c8..d6f3f454 100644 --- a/Xamarin.Forms.Platform.Tizen/Native/Entry.cs +++ b/Xamarin.Forms.Platform.Tizen/Native/Entry.cs @@ -414,7 +414,7 @@ namespace Xamarin.Forms.Platform.Tizen.Native /// <param name="markupText">Markup text to be used as a placeholder.</param> void SetInternalPlaceholderAndStyle(string markupText) { - SetPartText("guide", markupText ?? ""); + SetPartText("elm.guide", markupText ?? ""); } } } 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; } } } diff --git a/Xamarin.Forms.Platform.Tizen/Native/Span.cs b/Xamarin.Forms.Platform.Tizen/Native/Span.cs index 2f266494..3b410ba1 100644 --- a/Xamarin.Forms.Platform.Tizen/Native/Span.cs +++ b/Xamarin.Forms.Platform.Tizen/Native/Span.cs @@ -233,22 +233,6 @@ namespace Xamarin.Forms.Platform.Tizen.Native switch (LineBreakMode) { - case LineBreakMode.NoWrap: - _formattingString.Append("wrap=none"); - break; - - case LineBreakMode.CharacterWrap: - _formattingString.Append("wrap=char"); - break; - - case LineBreakMode.WordWrap: - _formattingString.Append("wrap=word"); - break; - - case LineBreakMode.MixedWrap: - _formattingString.Append("wrap=mixed"); - break; - case LineBreakMode.HeadTruncation: _formattingString.Append("ellipsis=0.0"); break; @@ -261,6 +245,10 @@ namespace Xamarin.Forms.Platform.Tizen.Native _formattingString.Append("ellipsis=1.0"); break; + case LineBreakMode.NoWrap: + case LineBreakMode.CharacterWrap: + case LineBreakMode.WordWrap: + case LineBreakMode.MixedWrap: case LineBreakMode.None: break; } diff --git a/Xamarin.Forms.Platform.Tizen/Renderers/EntryRenderer.cs b/Xamarin.Forms.Platform.Tizen/Renderers/EntryRenderer.cs index c880098a..ba6a15a1 100644 --- a/Xamarin.Forms.Platform.Tizen/Renderers/EntryRenderer.cs +++ b/Xamarin.Forms.Platform.Tizen/Renderers/EntryRenderer.cs @@ -29,6 +29,8 @@ namespace Xamarin.Forms.Platform.Tizen IsSingleLine = true, PropagateEvents = false, }; + entry.SetVerticalTextAlignment("elm.text", 0.5); + entry.SetVerticalTextAlignment("elm.guide", 0.5); SetNativeControl(entry); } |