summaryrefslogtreecommitdiff
path: root/Xamarin.Forms.Platform.Tizen/Native
diff options
context:
space:
mode:
authorSeungkeun Lee <sngn.lee@samsung.com>2017-06-12 14:26:04 +0900
committerKangho Hur <kangho.hur@samsung.com>2017-10-23 13:34:36 +0900
commit2b4d29c05b45a14da5d00ace487a2151ad87ffaa (patch)
treea1b585536140a24a942cff30df4e18e80eb35706 /Xamarin.Forms.Platform.Tizen/Native
parentb508ed6c93b9d3526a109e06b283cb3179d124e7 (diff)
downloadxamarin-forms-2b4d29c05b45a14da5d00ace487a2151ad87ffaa.tar.gz
xamarin-forms-2b4d29c05b45a14da5d00ace487a2151ad87ffaa.tar.bz2
xamarin-forms-2b4d29c05b45a14da5d00ace487a2151ad87ffaa.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')
-rw-r--r--Xamarin.Forms.Platform.Tizen/Native/Entry.cs2
-rw-r--r--Xamarin.Forms.Platform.Tizen/Native/Label.cs104
-rw-r--r--Xamarin.Forms.Platform.Tizen/Native/Span.cs20
3 files changed, 76 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;
}