diff options
Diffstat (limited to 'Xamarin.Forms.Platform.Android/Renderers/MeasureSpecification.cs')
-rw-r--r-- | Xamarin.Forms.Platform.Android/Renderers/MeasureSpecification.cs | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/Xamarin.Forms.Platform.Android/Renderers/MeasureSpecification.cs b/Xamarin.Forms.Platform.Android/Renderers/MeasureSpecification.cs new file mode 100644 index 00000000..fe38a560 --- /dev/null +++ b/Xamarin.Forms.Platform.Android/Renderers/MeasureSpecification.cs @@ -0,0 +1,41 @@ +namespace Xamarin.Forms.Platform.Android +{ + internal struct MeasureSpecification + { + public static explicit operator MeasureSpecification(int measureSpecification) + { + return new MeasureSpecification(measureSpecification); + } + + public static implicit operator int(MeasureSpecification measureSpecification) + { + return measureSpecification.Encode(); + } + + internal MeasureSpecification(int measureSpecification) + { + Value = measureSpecification & (int)~MeasureSpecificationType.Mask; + Type = (MeasureSpecificationType)(measureSpecification & (int)MeasureSpecificationType.Mask); + } + + internal MeasureSpecification(int value, MeasureSpecificationType measureSpecification) + { + Value = value; + Type = measureSpecification; + } + + internal int Value { get; } + + internal MeasureSpecificationType Type { get; } + + internal int Encode() + { + return Value | (int)Type; + } + + public override string ToString() + { + return string.Format("{0} {1}", Value, Type); + } + } +}
\ No newline at end of file |