Add IStringEncodable

This commit is contained in:
Yoshi Askharoun
2024-02-12 12:15:35 -06:00
parent a5b9b12908
commit 23d20873cf
8 changed files with 45 additions and 7 deletions
@@ -0,0 +1,6 @@
namespace Microsoft.Iris;
public interface IStringEncodable
{
string EncodeString();
}
+11 -1
View File
@@ -4,9 +4,11 @@
// MVID: D47658B8-A8EA-43D6-8837-ECE823BFFFC1 // MVID: D47658B8-A8EA-43D6-8837-ECE823BFFFC1
// Assembly location: C:\Program Files\Zune\UIX.RenderApi.dll // Assembly location: C:\Program Files\Zune\UIX.RenderApi.dll
using System.Collections.Generic;
namespace Microsoft.Iris.Render namespace Microsoft.Iris.Render
{ {
public struct Inset public struct Inset : IStringEncodable
{ {
private int _left; private int _left;
private int _top; private int _top;
@@ -74,6 +76,14 @@ namespace Microsoft.Iris.Render
public override string ToString() => base.ToString(); public override string ToString() => base.ToString();
public string EncodeString()
{
var values = new int[] { Left, Top, Right, Bottom };
if (new HashSet<int>(values).Count == 1)
return Top.ToString();
return string.Join(", ", values);
}
internal Point TopLeft internal Point TopLeft
{ {
get => new Point(this.Left, this.Top); get => new Point(this.Left, this.Top);
+3 -1
View File
@@ -8,7 +8,7 @@ using System;
namespace Microsoft.Iris.Render namespace Microsoft.Iris.Render
{ {
public struct Size public struct Size : IStringEncodable
{ {
private int m_width; private int m_width;
private int m_height; private int m_height;
@@ -106,5 +106,7 @@ namespace Microsoft.Iris.Render
size1.Scale(flScale); size1.Scale(flScale);
return size1; return size1;
} }
public string EncodeString() => $"{Width}, {Height}";
} }
} }
+3 -1
View File
@@ -12,7 +12,7 @@ using System.Text;
namespace Microsoft.Iris.Drawing namespace Microsoft.Iris.Drawing
{ {
[Serializable] [Serializable]
public struct Color : ISerializable public struct Color : ISerializable, IStringEncodable
{ {
private const int ARGBAlphaShift = 24; private const int ARGBAlphaShift = 24;
private const int ARGBRedShift = 16; private const int ARGBRedShift = 16;
@@ -230,6 +230,8 @@ namespace Microsoft.Iris.Drawing
info.AddValue(nameof(Value), Value); info.AddValue(nameof(Value), Value);
} }
public string EncodeString() => string.Join(", ", A, R, G, B);
internal static Color Transparent => new(0U); internal static Color Transparent => new(0U);
internal static Color Black => new(0xFF00_0000U); internal static Color Black => new(0xFF00_0000U);
+17 -1
View File
@@ -6,7 +6,7 @@
namespace Microsoft.Iris.Drawing namespace Microsoft.Iris.Drawing
{ {
internal sealed class Font internal sealed class Font : IStringEncodable
{ {
private string _fontName; private string _fontName;
private float _fontHeight; private float _fontHeight;
@@ -70,6 +70,22 @@ namespace Microsoft.Iris.Drawing
set => _fontName = value; set => _fontName = value;
} }
public string EncodeString()
{
System.Collections.Generic.List<object> props = new(4)
{
FontName,
_fontHeight
};
if (_altFontHeight != default)
props.Add(_altFontHeight);
if (_fontStyle != default)
props.Add(_fontStyle);
return string.Join(", ", props);
}
public override bool Equals(object obj) => obj is Font font && _fontName == font._fontName && (_fontHeight == (double)font._fontHeight && _altFontHeight == (double)font._altFontHeight) && _fontStyle == font._fontStyle; public override bool Equals(object obj) => obj is Font font && _fontName == font._fontName && (_fontHeight == (double)font._fontHeight && _altFontHeight == (double)font._altFontHeight) && _fontStyle == font._fontStyle;
public override int GetHashCode() => _fontName.GetHashCode() ^ _fontHeight.GetHashCode() ^ _altFontHeight.GetHashCode() ^ _fontStyle.GetHashCode(); public override int GetHashCode() => _fontName.GetHashCode() ^ _fontHeight.GetHashCode() ^ _altFontHeight.GetHashCode() ^ _fontStyle.GetHashCode();
+3 -1
View File
@@ -11,7 +11,7 @@ using System;
namespace Microsoft.Iris.Layouts namespace Microsoft.Iris.Layouts
{ {
internal struct MajorMinor internal struct MajorMinor : IStringEncodable
{ {
private int major; private int major;
private int minor; private int minor;
@@ -101,5 +101,7 @@ namespace Microsoft.Iris.Layouts
public bool IsEmpty => Major == 0 || Minor == 0; public bool IsEmpty => Major == 0 || Minor == 0;
public override string ToString() => InvariantString.Format("(Major={0}, Minor={1})", Major, Minor); public override string ToString() => InvariantString.Format("(Major={0}, Minor={1})", Major, Minor);
public string EncodeString() => $"{Major}, {Minor}";
} }
} }
+1 -1
View File
@@ -6,7 +6,7 @@
namespace Microsoft.Iris.Markup namespace Microsoft.Iris.Markup
{ {
internal static class UIXTypeID public static class UIXTypeID
{ {
public const short None = -1; public const short None = -1;
public const short Accessible = 0; public const short Accessible = 0;
+1 -1
View File
@@ -6,7 +6,7 @@
namespace Microsoft.Iris.Markup namespace Microsoft.Iris.Markup
{ {
internal static class UIXTypes public static class UIXTypes
{ {
public static TypeSchema MapIDToType(short ID) => ID != -1 ? UIXLoadResultExports.ExportTable[ID] : null; public static TypeSchema MapIDToType(short ID) => ID != -1 ? UIXLoadResultExports.ExportTable[ID] : null;