summaryrefslogtreecommitdiff
path: root/Xamarin.Forms.Platform.Tizen/Native/Label.cs
diff options
context:
space:
mode:
authorSeungkeun Lee <sngn.lee@samsung.com>2017-06-12 14:26:04 +0900
committerSeungkeun Lee <sngn.lee@samsung.com>2017-06-15 04:39:14 +0000
commit03ac855857febe3ee6535e3fc1f61b84408a1cd1 (patch)
treebf2f7b6a04a9fef318bbbe756361b39a7309f7a5 /Xamarin.Forms.Platform.Tizen/Native/Label.cs
parentdfbe521553e7c25ac72e919bc181b8aa8e071ce6 (diff)
downloadxamarin-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.cs104
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;
}
}
}