2020-07-07 07:15:45 +12:00
|
|
|
|
// <copyright file="WaitLeave.cs" company="PlaceholderCompany">
|
|
|
|
|
// Copyright (c) PlaceholderCompany. All rights reserved.
|
|
|
|
|
// </copyright>
|
2020-04-03 10:45:21 +13:00
|
|
|
|
|
|
|
|
|
namespace SystemTrayMenu.Handler
|
|
|
|
|
{
|
2020-07-07 07:15:45 +12:00
|
|
|
|
using System;
|
|
|
|
|
using SystemTrayMenu.Utilities;
|
|
|
|
|
using Timer = System.Windows.Forms.Timer;
|
2020-07-07 09:37:55 +12:00
|
|
|
|
|
2020-04-03 10:45:21 +13:00
|
|
|
|
internal class WaitLeave : IDisposable
|
|
|
|
|
{
|
2021-11-17 12:13:46 +13:00
|
|
|
|
private readonly Timer timerLeaveCheck = new();
|
2020-04-03 10:45:21 +13:00
|
|
|
|
|
|
|
|
|
public WaitLeave(int timeUntilTriggered)
|
|
|
|
|
{
|
|
|
|
|
timerLeaveCheck.Interval = timeUntilTriggered;
|
2020-04-16 03:23:42 +12:00
|
|
|
|
timerLeaveCheck.Tick += TimerLeaveCheckTick;
|
2020-04-03 10:45:21 +13:00
|
|
|
|
}
|
|
|
|
|
|
2020-07-07 09:37:55 +12:00
|
|
|
|
public event EventHandlerEmpty LeaveTriggered;
|
|
|
|
|
|
2020-07-08 03:05:19 +12:00
|
|
|
|
public void Dispose()
|
2020-04-03 10:45:21 +13:00
|
|
|
|
{
|
2020-07-08 03:05:19 +12:00
|
|
|
|
timerLeaveCheck.Dispose();
|
2020-04-03 10:45:21 +13:00
|
|
|
|
}
|
|
|
|
|
|
2020-07-08 03:05:19 +12:00
|
|
|
|
internal void Start()
|
2020-04-03 10:45:21 +13:00
|
|
|
|
{
|
|
|
|
|
timerLeaveCheck.Stop();
|
2020-07-08 03:05:19 +12:00
|
|
|
|
timerLeaveCheck.Start();
|
2020-04-03 10:45:21 +13:00
|
|
|
|
}
|
|
|
|
|
|
2020-07-08 03:05:19 +12:00
|
|
|
|
internal void Stop()
|
2020-04-03 10:45:21 +13:00
|
|
|
|
{
|
|
|
|
|
timerLeaveCheck.Stop();
|
|
|
|
|
}
|
|
|
|
|
|
2020-07-08 03:05:19 +12:00
|
|
|
|
internal void TimerLeaveCheckTick(object sender, EventArgs e)
|
2020-04-03 10:45:21 +13:00
|
|
|
|
{
|
2020-07-08 03:05:19 +12:00
|
|
|
|
timerLeaveCheck.Stop();
|
|
|
|
|
LeaveTriggered?.Invoke();
|
2020-04-03 10:45:21 +13:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|