Skip to content

Commit fe4d7ce

Browse files
authored
Merge pull request #26 from synercoder/features/add-rect-contract-expand-extensions-by-value
Add overload for contact and expand
2 parents 775f9c0 + 05ecd3d commit fe4d7ce

File tree

2 files changed

+38
-2
lines changed

2 files changed

+38
-2
lines changed

Diff for: src/Synercoding.Primitives/Extensions/RectangleExtensions.cs

+19-1
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,30 @@ namespace Synercoding.Primitives.Extensions;
55
/// </summary>
66
public static class RectangleExtensions
77
{
8+
/// <summary>
9+
/// Contract a given <see cref="Rectangle"/> (make smaller).
10+
/// </summary>
11+
/// <param name="rectangle">The <see cref="Rectangle"/> to contract.</param>
12+
/// <param name="value">The amount to contract of each side of the <see cref="Size"/></param>
13+
/// <returns>A new contracted <see cref="Rectangle"/>.</returns>
14+
public static Rectangle Contract(this Rectangle rectangle, Value value)
15+
=> rectangle.Contract(new Spacing(value));
16+
17+
/// <summary>
18+
/// Expand a given <see cref="Rectangle"/> (make bigger).
19+
/// </summary>
20+
/// <param name="rectangle">The <see cref="Rectangle"/> to expand.</param>
21+
/// <param name="value">The amount to expand to each side of the <see cref="Size"/></param>
22+
/// <returns>A new expanded <see cref="Rectangle"/>.</returns>
23+
public static Rectangle Expand(this Rectangle rectangle, Value value)
24+
=> rectangle.Expand(new Spacing(value));
25+
826
/// <summary>
927
/// Contract a given <see cref="Rectangle"/> (make smaller).
1028
/// </summary>
1129
/// <param name="rectangle">The <see cref="Rectangle"/> to contract.</param>
1230
/// <param name="spacing">The amount of <see cref="Spacing"/> to contract on the sides.</param>
13-
/// <returns>A new contacted <see cref="Rectangle"/>.</returns>
31+
/// <returns>A new contracted <see cref="Rectangle"/>.</returns>
1432
public static Rectangle Contract(this Rectangle rectangle, Spacing spacing)
1533
=> new Rectangle(
1634
llx: rectangle.LLX + spacing.Left,

Diff for: src/Synercoding.Primitives/Extensions/SizeExtensions.cs

+19-1
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,30 @@ namespace Synercoding.Primitives.Extensions;
55
/// </summary>
66
public static class SizeExtensions
77
{
8+
/// <summary>
9+
/// Contract a given <see cref="Size"/> (make smaller).
10+
/// </summary>
11+
/// <param name="size">The <see cref="Size"/> to contract.</param>
12+
/// <param name="value">The amount to contract of each side of the <see cref="Size"/></param>
13+
/// <returns>A new contracted <see cref="Size"/>.</returns>
14+
public static Size Contract(this Size size, Value value)
15+
=> size.Contract(new Spacing(value));
16+
17+
/// <summary>
18+
/// Expand a given <see cref="Size"/> (make bigger).
19+
/// </summary>
20+
/// <param name="size">The <see cref="Size"/> to expand.</param>
21+
/// <param name="value">The amount to expand to each side of the <see cref="Size"/></param>
22+
/// <returns>A new expanded <see cref="Size"/>.</returns>
23+
public static Size Expand(this Size size, Value value)
24+
=> size.Expand(new Spacing(value));
25+
826
/// <summary>
927
/// Contract a given <see cref="Size"/> (make smaller).
1028
/// </summary>
1129
/// <param name="size">The <see cref="Size"/> to contract.</param>
1230
/// <param name="spacing">The amount of <see cref="Spacing"/> to contract on the sides.</param>
13-
/// <returns>A new contacted <see cref="Size"/>.</returns>
31+
/// <returns>A new contracted <see cref="Size"/>.</returns>
1432
public static Size Contract(this Size size, Spacing spacing)
1533
=> new Size(
1634
width: size.Width - spacing.Left - spacing.Right,

0 commit comments

Comments
 (0)