diff --git a/Toolkit.WinUI/DispatcherTimer.cs b/Toolkit.WinUI/DispatcherTimer.cs new file mode 100644 index 0000000..6aac039 --- /dev/null +++ b/Toolkit.WinUI/DispatcherTimer.cs @@ -0,0 +1,34 @@ +using Toolkit.Foundation; + +namespace Toolkit.WinUI; + +public class DispatcherTimer : + IDispatcherTimer +{ + private readonly System.Windows.Threading.DispatcherTimer timer; + private readonly Action actionDelegate; + + public DispatcherTimer(Action actionDelegate, TimeSpan interval) + { + timer = new System.Windows.Threading.DispatcherTimer + { + Interval = interval + }; + + timer.Tick += OnTick; + this.actionDelegate = actionDelegate; + } + + private void OnTick(object? sender, EventArgs args) => + actionDelegate?.Invoke(); + + public void Start() + { + timer.Start(); + } + + public void Stop() + { + timer.Stop(); + } +} diff --git a/Toolkit.WinUI/DispatcherTimerFactory.cs b/Toolkit.WinUI/DispatcherTimerFactory.cs new file mode 100644 index 0000000..5a1f049 --- /dev/null +++ b/Toolkit.WinUI/DispatcherTimerFactory.cs @@ -0,0 +1,10 @@ +using Toolkit.Foundation; + +namespace Toolkit.WinUI; + +public class DispatcherTimerFactory : + IDispatcherTimerFactory +{ + public IDispatcherTimer Create(Action actionDelegate, TimeSpan interval) => + new DispatcherTimer(actionDelegate, interval); +} diff --git a/Toolkit.WinUI/Toolkit.WinUI.csproj b/Toolkit.WinUI/Toolkit.WinUI.csproj new file mode 100644 index 0000000..c6d27e3 --- /dev/null +++ b/Toolkit.WinUI/Toolkit.WinUI.csproj @@ -0,0 +1,28 @@ + + + + net9.0-windows10.0.19041.0 + 10.0.17763.0 + Toolkit.WinUI + enable + enable + + win-x86;win-x64;win-arm64 + + + win10-x86;win10-x64;win10-arm64 + + true + 10.0.19041.41 + + + + + + + + + + + + diff --git a/Toolkit.sln b/Toolkit.sln index d5ff926..8126778 100644 --- a/Toolkit.sln +++ b/Toolkit.sln @@ -13,6 +13,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Toolkit.Avalonia", "Toolkit EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Toolkit.Windows", "Toolkit.Windows\Toolkit.Windows.csproj", "{08F06CCE-86F9-4885-84F0-B23B2E5A0813}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Toolkit.WinUI", "Toolkit.WinUI\Toolkit.WinUI.csproj", "{D90BFF29-B38C-432E-849A-28C5A88A6DDD}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -83,6 +85,18 @@ Global {08F06CCE-86F9-4885-84F0-B23B2E5A0813}.Release|x64.Build.0 = Release|x64 {08F06CCE-86F9-4885-84F0-B23B2E5A0813}.Release|x86.ActiveCfg = Release|x86 {08F06CCE-86F9-4885-84F0-B23B2E5A0813}.Release|x86.Build.0 = Release|x86 + {D90BFF29-B38C-432E-849A-28C5A88A6DDD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D90BFF29-B38C-432E-849A-28C5A88A6DDD}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D90BFF29-B38C-432E-849A-28C5A88A6DDD}.Debug|x64.ActiveCfg = Debug|Any CPU + {D90BFF29-B38C-432E-849A-28C5A88A6DDD}.Debug|x64.Build.0 = Debug|Any CPU + {D90BFF29-B38C-432E-849A-28C5A88A6DDD}.Debug|x86.ActiveCfg = Debug|Any CPU + {D90BFF29-B38C-432E-849A-28C5A88A6DDD}.Debug|x86.Build.0 = Debug|Any CPU + {D90BFF29-B38C-432E-849A-28C5A88A6DDD}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D90BFF29-B38C-432E-849A-28C5A88A6DDD}.Release|Any CPU.Build.0 = Release|Any CPU + {D90BFF29-B38C-432E-849A-28C5A88A6DDD}.Release|x64.ActiveCfg = Release|Any CPU + {D90BFF29-B38C-432E-849A-28C5A88A6DDD}.Release|x64.Build.0 = Release|Any CPU + {D90BFF29-B38C-432E-849A-28C5A88A6DDD}.Release|x86.ActiveCfg = Release|Any CPU + {D90BFF29-B38C-432E-849A-28C5A88A6DDD}.Release|x86.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE