3 using System.Reflection;
4 using System.Globalization;
8 namespace Tizen.NUI.Binding
10 internal class PositionTypeConverter : TypeConverter
12 public override object ConvertFromInvariantString(string value)
16 string[] parts = value.Split('.');
17 if (parts.Length == 1 || (parts.Length == 2 && (parts[0].Trim() == "ParentOrigin" || parts[0].Trim() == "PivotPoint")))
19 string position = parts[parts.Length - 1].Trim();
24 return ParentOrigin.Top;
26 return ParentOrigin.Bottom;
28 return ParentOrigin.Left;
30 return ParentOrigin.Right;
32 return ParentOrigin.Middle;
34 return ParentOrigin.TopLeft;
36 return ParentOrigin.TopCenter;
38 return ParentOrigin.TopRight;
40 return ParentOrigin.CenterLeft;
42 return ParentOrigin.Center;
44 return ParentOrigin.CenterRight;
46 return ParentOrigin.BottomLeft;
48 return ParentOrigin.BottomCenter;
50 return ParentOrigin.BottomRight;
54 parts = value.Split(',');
55 if (parts.Length == 3)
57 int x = (int)GraphicsTypeManager.Instance.ConvertScriptToPixel(parts[0].Trim());
58 int y = (int)GraphicsTypeManager.Instance.ConvertScriptToPixel(parts[1].Trim());
59 int z = (int)GraphicsTypeManager.Instance.ConvertScriptToPixel(parts[2].Trim());
60 return new Position(x, y, z);
62 else if (parts.Length == 2)
64 int x = (int)GraphicsTypeManager.Instance.ConvertScriptToPixel(parts[0].Trim());
65 int y = (int)GraphicsTypeManager.Instance.ConvertScriptToPixel(parts[1].Trim());
66 return new Position(x, y);
70 throw new InvalidOperationException($"Cannot convert \"{value}\" into {typeof(Position)}");
73 public override string ConvertToString(object value)
75 Position position = (Position)value;
76 return position.X.ToString() + " " + position.Y.ToString() + " " + position.Z.ToString();
80 internal class Position2DTypeConverter : TypeConverter
82 public override object ConvertFromInvariantString(string value)
84 return Position2D.ConvertFromString(value);
87 public override string ConvertToString(object value)
89 Position2D position = (Position2D)value;
90 return position.X.ToString() + " " + position.Y.ToString();