Timer lock work done

This commit is contained in:
TheXamlGuy
2024-07-18 21:45:15 +01:00
parent e20890362e
commit 5c1b776317
5 changed files with 67 additions and 2 deletions
+1 -1
View File
@@ -14,4 +14,4 @@ public class ImageReader(IImageResizer imageResizer) :
Bitmap resizedImage = imageResizer.Resize(stream, width, height, maintainAspectRatio); Bitmap resizedImage = imageResizer.Resize(stream, width, height, maintainAspectRatio);
return new ImageDescriptor(resizedImage, width, height); return new ImageDescriptor(resizedImage, width, height);
} }
} }
+51
View File
@@ -0,0 +1,51 @@
using Avalonia.Controls;
using Avalonia.Input;
using Avalonia.Interactivity;
using Toolkit.Foundation;
namespace Toolkit.Avalonia;
public class UserInteraction(ITopLevelProvider topLevelProvider) :
IUserInteraction
{
public event EventHandler<UserInteractedEventArgs>? UserInteracted;
private void OnPointerMoved(object? sender,
PointerEventArgs args)
{
UserInteracted?.Invoke(this, new UserInteractedEventArgs());
}
private void OnKeyDown(object? sender,
KeyEventArgs args)
{
UserInteracted?.Invoke(this, new UserInteractedEventArgs());
}
private void OnKeyUp(object? sender,
KeyEventArgs args)
{
UserInteracted?.Invoke(this, new UserInteractedEventArgs());
}
public void Stop()
{
if (topLevelProvider.Get() is TopLevel topLevel)
{
topLevel.RemoveHandler(InputElement.PointerMovedEvent, OnPointerMoved);
topLevel.RemoveHandler(InputElement.KeyDownEvent, OnKeyDown);
topLevel.RemoveHandler(InputElement.KeyUpEvent, OnKeyUp);
}
}
public void Start()
{
if (topLevelProvider.Get() is TopLevel topLevel)
{
topLevel.AddHandler(InputElement.PointerMovedEvent, OnPointerMoved, RoutingStrategies.Tunnel);
topLevel.AddHandler(InputElement.KeyDownEvent, OnKeyDown, RoutingStrategies.Tunnel);
topLevel.AddHandler(InputElement.KeyUpEvent, OnKeyUp, RoutingStrategies.Tunnel);
}
}
}
+1 -1
View File
@@ -1,3 +1,3 @@
namespace Toolkit.Foundation; namespace Toolkit.Foundation;
public record ActivatedEventArgs<TSender>(TSender? Sender = default); public record ActivatedEventArgs<TSender>(TSender? Sender = default);
+10
View File
@@ -0,0 +1,10 @@
namespace Toolkit.Foundation;
public interface IUserInteraction
{
event EventHandler<UserInteractedEventArgs>? UserInteracted;
void Stop();
void Start();
}
@@ -0,0 +1,4 @@
namespace Toolkit.Foundation;
public class UserInteractedEventArgs :
EventArgs;