From 62c091fd127c1f865e702df53a6875a1b459a24e Mon Sep 17 00:00:00 2001 From: Eugene Wang <8755753+soukoku@users.noreply.github.com> Date: Sun, 9 Apr 2023 13:15:45 -0400 Subject: [PATCH] Added transfercanceled event like PR #35. --- src/NTwain/TransferCanceledEventArgs.cs | 10 ++++++++++ src/NTwain/TwainAppSession.PropEvents.cs | 5 +++++ src/NTwain/TwainAppSession.Xfers.cs | 8 ++++++++ 3 files changed, 23 insertions(+) create mode 100644 src/NTwain/TransferCanceledEventArgs.cs diff --git a/src/NTwain/TransferCanceledEventArgs.cs b/src/NTwain/TransferCanceledEventArgs.cs new file mode 100644 index 0000000..462148d --- /dev/null +++ b/src/NTwain/TransferCanceledEventArgs.cs @@ -0,0 +1,10 @@ +using NTwain.Data; +using System; + +namespace NTwain +{ + public class TransferCanceledEventArgs : EventArgs + { + + } +} \ No newline at end of file diff --git a/src/NTwain/TwainAppSession.PropEvents.cs b/src/NTwain/TwainAppSession.PropEvents.cs index ab776ae..c6770e3 100644 --- a/src/NTwain/TwainAppSession.PropEvents.cs +++ b/src/NTwain/TwainAppSession.PropEvents.cs @@ -156,6 +156,11 @@ namespace NTwain /// public event TwainEventDelegate? TransferReady; + /// + /// Fires when there's a transfer cancellation, e.g. if the user pressed the "Cancel" button. + /// + public event TwainEventDelegate? TransferCanceled; + /// /// Fires when transferred data is available for app to use. /// diff --git a/src/NTwain/TwainAppSession.Xfers.cs b/src/NTwain/TwainAppSession.Xfers.cs index 0667439..e8c2c0f 100644 --- a/src/NTwain/TwainAppSession.Xfers.cs +++ b/src/NTwain/TwainAppSession.Xfers.cs @@ -176,6 +176,14 @@ namespace NTwain // ok to keep going break; case TWRC.CANCEL: + // might eventually have option to cancel this or all like transfer ready + if (TransferCanceled != null) + { + _uiThreadMarshaller.Invoke(() => + { + TransferCanceled.Invoke(this, new TransferCanceledEventArgs()); + }); + }; TW_PENDINGXFERS pending = default; DGControl.PendingXfers.EndXfer(ref _appIdentity, ref _currentDS, ref pending); // todo: also reset?