Files
FSI.BT.IR.Tools/FSI.BT.Tools/RadialMenu/Buisness/Main.cs
Maier Stephan SI 1c68b8f401 Sicherung
2023-04-17 07:07:49 +02:00

60 lines
1.6 KiB
C#

namespace FSI.BT.Tools.RadialMenu.Business
{
using System;
using System.Threading;
using System.Windows;
using FSI.BT.Tools.RadialMenu.Handler;
using FSI.Lib.Wpf.ExtensionMethods;
internal class Main : IDisposable
{
private readonly KeyboardInput keyboardInput;
private UserInterface.FrmRadialMenu frmRadialMenu;
public Main()
{
keyboardInput = new();
keyboardInput.RegisterHotKey();
keyboardInput.HotKeyPressed += KeyboardInput_HotKeyPressed;
frmRadialMenu = new UserInterface.FrmRadialMenu();
}
public void Dispose()
{
keyboardInput.HotKeyPressed -= KeyboardInput_HotKeyPressed;
keyboardInput.Dispose();
}
private void KeyboardInput_HotKeyPressed()
{
Thread thread = new(() =>
{
UserInterface.FrmRadialMenu frmRadialMenu = new();
if (Global.Vars.UserRights || Global.Vars.AdminRights)
{
if (frmRadialMenu.Visibility == Visibility.Collapsed)
{
frmRadialMenu.ShowCenteredToMouse();
frmRadialMenu.ActivateCenteredToMouse();
}
frmRadialMenu.Closed += (sender2, e2) => frmRadialMenu.Dispatcher.InvokeShutdown();
System.Windows.Threading.Dispatcher.Run();
}
});
thread.SetApartmentState(ApartmentState.STA);
thread.Start();
}
}
}