mirror of
https://github.com/gui-cs/Terminal.Gui.git
synced 2026-01-01 00:46:39 +01:00
Made Thickness a record struct
This commit is contained in:
@@ -15,7 +15,7 @@ namespace Terminal.Gui;
|
||||
/// </para>
|
||||
/// <para>Use the helper API (<see cref="Draw(Rectangle, string)"/> to draw the frame with the specified thickness.</para>
|
||||
/// </remarks>
|
||||
public class Thickness : IEquatable<Thickness>
|
||||
public record struct Thickness
|
||||
{
|
||||
/// <summary>Gets or sets the width of the lower side of the rectangle.</summary>
|
||||
[JsonInclude]
|
||||
@@ -240,32 +240,6 @@ public class Thickness : IEquatable<Thickness>
|
||||
return GetInside (rect);
|
||||
}
|
||||
|
||||
/// <summary>Determines whether the specified object is equal to the current object.</summary>
|
||||
/// <param name="obj">The object to compare with the current object.</param>
|
||||
/// <returns><c>true</c> if the specified object is equal to the current object; otherwise, <c>false</c>.</returns>
|
||||
public override bool Equals (object obj)
|
||||
{
|
||||
//Check for null and compare run-time types.
|
||||
if (obj is null || !GetType ().Equals (obj.GetType ()))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
return Equals ((Thickness)obj);
|
||||
}
|
||||
|
||||
/// <inheritdoc/>
|
||||
public override int GetHashCode ()
|
||||
{
|
||||
var hashCode = 1380952125;
|
||||
hashCode = hashCode * -1521134295 + Left.GetHashCode ();
|
||||
hashCode = hashCode * -1521134295 + Right.GetHashCode ();
|
||||
hashCode = hashCode * -1521134295 + Top.GetHashCode ();
|
||||
hashCode = hashCode * -1521134295 + Bottom.GetHashCode ();
|
||||
|
||||
return hashCode;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns a rectangle describing the location and size of the inside area of <paramref name="rect"/> with the
|
||||
/// thickness widths subtracted. The height and width of the returned rectangle will never be less than 0.
|
||||
@@ -289,23 +263,7 @@ public class Thickness : IEquatable<Thickness>
|
||||
return new (x, y, width, height);
|
||||
}
|
||||
|
||||
/// <inheritdoc/>
|
||||
public static bool operator == (Thickness left, Thickness right) { return EqualityComparer<Thickness>.Default.Equals (left, right); }
|
||||
|
||||
/// <inheritdoc/>
|
||||
public static bool operator != (Thickness left, Thickness right) { return !(left == right); }
|
||||
|
||||
/// <summary>Returns the thickness widths of the Thickness formatted as a string.</summary>
|
||||
/// <returns>The thickness widths as a string.</returns>
|
||||
public override string ToString () { return $"(Left={Left},Top={Top},Right={Right},Bottom={Bottom})"; }
|
||||
|
||||
private int validate (int width)
|
||||
{
|
||||
if (width < 0)
|
||||
{
|
||||
throw new ArgumentException ("Thickness widths cannot be negative.");
|
||||
}
|
||||
|
||||
return width;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -18,7 +18,7 @@ public class BorderTests (ITestOutputHelper output)
|
||||
view.Border.Thickness = new (0, 1, 0, 0);
|
||||
view.Border.LineStyle = LineStyle.Single;
|
||||
|
||||
view.ColorScheme = new()
|
||||
view.ColorScheme = new ()
|
||||
{
|
||||
Normal = new (Color.Red, Color.Green),
|
||||
Focus = new (Color.Green, Color.Red)
|
||||
@@ -53,7 +53,7 @@ public class BorderTests (ITestOutputHelper output)
|
||||
view.Border.Thickness = new (0, 1, 0, 0);
|
||||
view.Border.LineStyle = LineStyle.Single;
|
||||
|
||||
view.ColorScheme = new()
|
||||
view.ColorScheme = new ()
|
||||
{
|
||||
Normal = new (Color.Red, Color.Green), Focus = new (Color.Green, Color.Red)
|
||||
};
|
||||
@@ -90,7 +90,7 @@ public class BorderTests (ITestOutputHelper output)
|
||||
{
|
||||
Title = "1234", Width = Dim.Fill (), Height = Dim.Fill (), BorderStyle = LineStyle.Double
|
||||
};
|
||||
win.Border.Thickness.Top = 4;
|
||||
win.Border.Thickness = win.Border.Thickness with { Top = 4 };
|
||||
|
||||
RunState rs = Application.Begin (win);
|
||||
var firstIteration = false;
|
||||
@@ -224,7 +224,7 @@ public class BorderTests (ITestOutputHelper output)
|
||||
{
|
||||
Title = "1234", Width = Dim.Fill (), Height = Dim.Fill (), BorderStyle = LineStyle.Double
|
||||
};
|
||||
win.Border.Thickness.Top = 3;
|
||||
win.Border.Thickness = win.Border.Thickness with { Top = 3 };
|
||||
|
||||
RunState rs = Application.Begin (win);
|
||||
var firstIteration = false;
|
||||
@@ -358,7 +358,7 @@ public class BorderTests (ITestOutputHelper output)
|
||||
{
|
||||
Title = "1234", Width = Dim.Fill (), Height = Dim.Fill (), BorderStyle = LineStyle.Double
|
||||
};
|
||||
win.Border.Thickness.Top = 2;
|
||||
win.Border.Thickness = win.Border.Thickness with { Top = 2 };
|
||||
|
||||
RunState rs = Application.Begin (win);
|
||||
var firstIteration = false;
|
||||
|
||||
Reference in New Issue
Block a user