Files
Macro-Deck/MacroDeck/GUI/Dialogs/NewConnectionDialog.cs
2023-10-16 23:51:08 +02:00

72 lines
2.1 KiB
C#

using System.Drawing;
using System.Windows.Forms;
using SuchByte.MacroDeck.GUI.CustomControls;
using SuchByte.MacroDeck.Language;
using SuchByte.MacroDeck.Server;
using Timer = System.Timers.Timer;
namespace SuchByte.MacroDeck.GUI.Dialogs;
public partial class NewConnectionDialog : DialogForm
{
private MacroDeckClient _macroDeckClient;
private int _denyTimeout = 15;
private Timer _denyTimer;
public bool Blocked => checkBlockThisDevice.Checked;
public NewConnectionDialog(MacroDeckClient macroDeckClient)
{
_macroDeckClient = macroDeckClient;
InitializeComponent();
(new DropShadow()).ApplyShadows(this);
btnDeny.BackColor = Color.FromArgb(192, 0, 0);
lblNewConnectionRequest.Text = LanguageManager.Strings.NewConnectionRequest;
lblClientId.Text = LanguageManager.Strings.ClientId;
lblType.Text = LanguageManager.Strings.Type;
btnAccept.Text = LanguageManager.Strings.Accept;
btnDeny.Text = $"{LanguageManager.Strings.Deny} ({_denyTimeout})";
checkBlockThisDevice.Text = LanguageManager.Strings.BlockConnection;
}
private void NewConnectionDialog_Load(object sender, EventArgs e)
{
CenterToParent();
TopMost = true;
clientId.Text = _macroDeckClient?.ClientId;
type.Text = _macroDeckClient?.DeviceType.ToString();
_denyTimer = new Timer
{
Enabled = true,
Interval = 1000
};
_denyTimer.Elapsed += (sender, e) => {
_denyTimeout--;
btnDeny.Text = $"{LanguageManager.Strings.Deny} ({_denyTimeout})";
if (_denyTimeout <= 0)
{
_denyTimer.Stop();
if (IsHandleCreated && !IsDisposed)
{
Invoke(() => Close());
}
}
};
}
private void BtnAccept_Click(object sender, EventArgs e)
{
DialogResult = DialogResult.Yes;
Close();
}
private void BtnDeny_Click(object sender, EventArgs e)
{
Close();
}
}