FlexitimeTracker/FlexitimeUI/FlexitimeTaskbarUtility/App.xaml.cs
2023-04-11 20:17:20 +01:00

61 lines
1.9 KiB
C#

using System.Windows;
using System.Windows.Controls;
using FlexitimeTaskbarUtility.Extensions;
using FlexitimeTaskbarUtility.Interfaces;
using FlexitimeTaskbarUtility.Services;
using FlexitimeTaskbarUtility.ViewModels;
using Hardcodet.Wpf.TaskbarNotification;
using Prism.DryIoc;
using Prism.Events;
using Prism.Ioc;
using Prism.Regions;
namespace FlexitimeTaskbarUtility
{
/// <summary>
/// Interaction logic for App.xaml
/// </summary>
public partial class App : PrismApplication
{
private TaskbarIcon notifyIcon;
protected override void OnStartup(StartupEventArgs e)
{
base.OnStartup(e);
}
protected override void ConfigureRegionAdapterMappings(RegionAdapterMappings regionAdapterMappings)
{
base.ConfigureRegionAdapterMappings(regionAdapterMappings);
regionAdapterMappings.RegisterMapping(typeof(ContextMenu), Container.Resolve<ContextMenuRegionAdapter>());
}
protected override void RegisterTypes(IContainerRegistry containerRegistry)
{
containerRegistry.Register<ILoginService, LoginService>();
containerRegistry.Register<ISignInService, SignInService>();
containerRegistry.Register<NotifyIconViewModel>();
containerRegistry.Register<LoginControlViewModel>();
}
protected override Window CreateShell()
{
return null;
}
protected override void OnInitialized()
{
base.OnInitialized();
notifyIcon = (TaskbarIcon)FindResource("NotifyIcon");
notifyIcon.DataContext = Container.Resolve<NotifyIconViewModel>();
}
protected override void OnExit(ExitEventArgs e)
{
notifyIcon.Dispose(); //the icon would clean up automatically, but this is cleaner
base.OnExit(e);
}
}
}