00eb4883dc76834996854bc239eb8acc264131d5
[platform/core/csapi/tizenfx.git] / src / Tizen.NUI / src / internal / XamlBinding / RectangleTypeConverter.cs
1 using System;
2 using System.Globalization;
3
4 using Tizen.NUI;
5
6 namespace Tizen.NUI.Binding
7 {
8     [Xaml.ProvideCompiled("Tizen.NUI.Xaml.Core.XamlC.RectangleTypeConverter")]
9     [Xaml.TypeConversion(typeof(Rectangle))]
10     internal class RectangleTypeConverter : TypeConverter
11     {
12         public override object ConvertFromInvariantString(string value)
13         {
14             if (value != null)
15             {
16                 double x, y, w, h;
17                 string[] xywh = value.Split(',');
18                 if (xywh.Length == 4 && double.TryParse(xywh[0], NumberStyles.Number, CultureInfo.InvariantCulture, out x) && double.TryParse(xywh[1], NumberStyles.Number, CultureInfo.InvariantCulture, out y) &&
19                     double.TryParse(xywh[2], NumberStyles.Number, CultureInfo.InvariantCulture, out w) && double.TryParse(xywh[3], NumberStyles.Number, CultureInfo.InvariantCulture, out h))
20                     return new Rectangle((int)x, (int)y, (int)w, (int)h);
21             }
22
23             throw new InvalidOperationException(string.Format("Cannot convert \"{0}\" into {1}", value, typeof(Rectangle)));
24         }
25
26         public override string ConvertToString(object value)
27         {
28             Rectangle rec = (Rectangle)value;
29             return  rec.X.ToString() + " " + rec.Y.ToString() + " " + rec.Width.ToString() + " " + rec.Height.ToString();
30         }
31     }
32 }