Skip to content

Commit fb6b43c

Browse files
committed
Added missing Point extension
1 parent ad0e6fd commit fb6b43c

File tree

7 files changed

+46
-11
lines changed

7 files changed

+46
-11
lines changed

Microsoft.Toolkit.Uwp.UI.Controls/Carousel/CarouselPanel.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
// See the LICENSE file in the project root for more information.
44

55
using System;
6+
using Microsoft.Toolkit.Uwp.Extensions;
67
using Microsoft.Toolkit.Uwp.UI.Extensions;
78
using Windows.Foundation;
89
using Windows.UI;
@@ -283,7 +284,7 @@ protected override Size ArrangeOverride(Size finalSize)
283284
double centerLeft = 0;
284285
double centerTop = 0;
285286

286-
Clip = new RectangleGeometry { Rect = new Rect(0, 0, finalSize.Width, finalSize.Height) };
287+
Clip = new RectangleGeometry { Rect = finalSize.ToRect() };
287288

288289
for (int i = 0; i < Children.Count; i++)
289290
{

Microsoft.Toolkit.Uwp.UI.Controls/ImageCropper/ImageCropper.Animations.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
using System;
66
using System.Collections.Generic;
77
using System.Numerics;
8+
using Microsoft.Toolkit.Uwp.Extensions;
89
using Windows.Foundation;
910
using Windows.UI.Composition;
1011
using Windows.UI.Xaml;
@@ -117,7 +118,7 @@ private static List<DiscreteObjectKeyFrame> GetRectKeyframes(Rect from, Rect to,
117118
rectKeyframes.Add(new DiscreteObjectKeyFrame
118119
{
119120
KeyTime = KeyTime.FromTimeSpan(time),
120-
Value = new Rect(startPoint, endPoint)
121+
Value = startPoint.ToRect(endPoint)
121122
});
122123
}
123124

Microsoft.Toolkit.Uwp.UI.Controls/ImageCropper/ImageCropper.Events.cs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
// See the LICENSE file in the project root for more information.
44

55
using System;
6+
using Microsoft.Toolkit.Uwp.Extensions;
67
using Windows.Foundation;
78
using Windows.System;
89
using Windows.UI.Core;
@@ -98,7 +99,7 @@ private void ImageCropperThumb_KeyDown(object sender, KeyRoutedEventArgs e)
9899

99100
private void ImageCropperThumb_KeyUp(object sender, KeyRoutedEventArgs e)
100101
{
101-
var selectedRect = new Rect(new Point(_startX, _startY), new Point(_endX, _endY));
102+
var selectedRect = new Point(_startX, _startY).ToRect(new Point(_endX, _endY));
102103
var croppedRect = _inverseImageTransform.TransformBounds(selectedRect);
103104
if (croppedRect.Width > MinCropSize.Width && croppedRect.Height > MinCropSize.Height)
104105
{
@@ -111,7 +112,7 @@ private void ImageCropperThumb_KeyUp(object sender, KeyRoutedEventArgs e)
111112

112113
private void ImageCropperThumb_ManipulationCompleted(object sender, ManipulationCompletedRoutedEventArgs e)
113114
{
114-
var selectedRect = new Rect(new Point(_startX, _startY), new Point(_endX, _endY));
115+
var selectedRect = new Point(_startX, _startY).ToRect(new Point(_endX, _endY));
115116
var croppedRect = _inverseImageTransform.TransformBounds(selectedRect);
116117
if (croppedRect.Width > MinCropSize.Width && croppedRect.Height > MinCropSize.Height)
117118
{
@@ -155,7 +156,7 @@ private void SourceImage_ManipulationDelta(object sender, ManipulationDeltaRoute
155156
offsetY = Math.Max(offsetY, _restrictedSelectRect.Y - _startY);
156157
}
157158

158-
var selectedRect = new Rect(new Point(_startX, _startY), new Point(_endX, _endY));
159+
var selectedRect = new Point(_startX, _startY).ToRect(new Point(_endX, _endY));
159160
selectedRect.X += offsetX;
160161
selectedRect.Y += offsetY;
161162
var croppedRect = _inverseImageTransform.TransformBounds(selectedRect);

Microsoft.Toolkit.Uwp.UI.Controls/ImageCropper/ImageCropper.Helpers.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
using Windows.Storage.Streams;
1515
using Windows.UI;
1616
using Windows.UI.Xaml.Media.Imaging;
17+
using Microsoft.Toolkit.Uwp.Extensions;
1718

1819
namespace Microsoft.Toolkit.Uwp.UI.Controls
1920
{
@@ -299,7 +300,7 @@ private static Rect GetSafeRect(Point startPoint, Point endPoint, Size minSize,
299300
break;
300301
}
301302

302-
return new Rect(startPoint, endPoint);
303+
return startPoint.ToRect(endPoint);
303304
}
304305

305306
/// <summary>

Microsoft.Toolkit.Uwp.UI.Controls/ImageCropper/ImageCropper.Logic.cs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
using System;
66
using System.Numerics;
7+
using Microsoft.Toolkit.Uwp.Extensions;
78
using Windows.Foundation;
89
using Windows.UI.Xaml;
910
using Windows.UI.Xaml.Hosting;
@@ -111,7 +112,7 @@ private void UpdateCroppedRect(ThumbPosition position, Point diffPos)
111112

112113
var startPoint = new Point(_startX, _startY);
113114
var endPoint = new Point(_endX, _endY);
114-
var currentSelectedRect = new Rect(startPoint, endPoint);
115+
var currentSelectedRect = startPoint.ToRect(endPoint);
115116
switch (position)
116117
{
117118
case ThumbPosition.Top:
@@ -251,7 +252,7 @@ private void UpdateCroppedRect(ThumbPosition position, Point diffPos)
251252

252253
var isEffectiveRegion = IsSafePoint(_restrictedSelectRect, startPoint) &&
253254
IsSafePoint(_restrictedSelectRect, endPoint);
254-
var selectedRect = new Rect(startPoint, endPoint);
255+
var selectedRect = startPoint.ToRect(endPoint);
255256
if (!isEffectiveRegion)
256257
{
257258
if (!IsCornerThumb(position) && TryGetContainedRect(_restrictedSelectRect, ref selectedRect))
@@ -268,8 +269,7 @@ private void UpdateCroppedRect(ThumbPosition position, Point diffPos)
268269
selectedRect.Union(CanvasRect);
269270
if (selectedRect != CanvasRect)
270271
{
271-
var croppedRect = _inverseImageTransform.TransformBounds(
272-
new Rect(startPoint, endPoint));
272+
var croppedRect = _inverseImageTransform.TransformBounds(startPoint.ToRect(endPoint));
273273
croppedRect.Intersect(_restrictedCropRect);
274274
_currentCroppedRect = croppedRect;
275275
var viewportRect = GetUniformRect(CanvasRect, selectedRect.Width / selectedRect.Height);
@@ -460,7 +460,7 @@ private void UpdateMaskArea(bool animate = false)
460460
case CropShape.Rectangular:
461461
if (_innerGeometry is RectangleGeometry rectangleGeometry)
462462
{
463-
var to = new Rect(new Point(_startX, _startY), new Point(_endX, _endY));
463+
var to = new Point(_startX, _startY).ToRect(new Point(_endX, _endY));
464464
if (animate)
465465
{
466466
var storyboard = new Storyboard();

Microsoft.Toolkit.Uwp/Extensions/PointExtensions.cs

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,19 @@ public static Rect ToRect(this Point point, double width, double height)
2929
return new Rect(point.X, point.Y, width, height);
3030
}
3131

32+
/// <summary>
33+
/// Creates a new <see cref="Rect"/> ending at the specified point, starting at the given coordinates.
34+
/// </summary>
35+
/// <param name="point">The input <see cref="Point"/> value to convert.</param>
36+
/// <param name="end">The ending position for the rectangle.</param>
37+
/// <returns>A <see cref="Rect"/> value between the two specified points.</returns>
38+
[Pure]
39+
[MethodImpl(MethodImplOptions.AggressiveInlining)]
40+
public static Rect ToRect(this Point point, Point end)
41+
{
42+
return new Rect(point, end);
43+
}
44+
3245
/// <summary>
3346
/// Creates a new <see cref="Rect"/> of the specified size, starting at the given coordinates.
3447
/// </summary>

UnitTests/UnitTests.UWP/Extensions/Test_PointExtensions.cs

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,24 @@ public static void Test_PointExtensions_ToRect_FromWidthHeight(double width, dou
3434
[DataRow(3.14d, 6.55f, 3838d, 3.24724928d)]
3535
[DataRow(double.MinValue, double.Epsilon, 22, 0.3248d)]
3636
public static void Test_PointExtensions_ToRect_FromPoint(double width, double height, int x, int y)
37+
{
38+
Point
39+
p1 = new Point(x, y),
40+
p2 = new Point(x + width, y + height);
41+
Rect
42+
a = p1.ToRect(p2),
43+
b = new Rect(p1, p2);
44+
45+
Assert.AreEqual(a, b);
46+
}
47+
48+
[TestCategory("SizeExtensions")]
49+
[TestMethod]
50+
[DataRow(0d, 0d, 0, 0)]
51+
[DataRow(0d, 0d, 22, 6.89d)]
52+
[DataRow(3.14d, 6.55f, 3838d, 3.24724928d)]
53+
[DataRow(double.MinValue, double.Epsilon, 22, 0.3248d)]
54+
public static void Test_PointExtensions_ToRect_FromSize(double width, double height, int x, int y)
3755
{
3856
Point p = new Point(x, y);
3957
Size s = new Size(width, height);

0 commit comments

Comments
 (0)