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
{
///
/// Interaction logic for App.xaml
///
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());
}
protected override void RegisterTypes(IContainerRegistry containerRegistry)
{
containerRegistry.Register();
containerRegistry.Register();
containerRegistry.Register();
containerRegistry.Register();
}
protected override Window CreateShell()
{
return null;
}
protected override void OnInitialized()
{
base.OnInitialized();
notifyIcon = (TaskbarIcon)FindResource("NotifyIcon");
notifyIcon.DataContext = Container.Resolve();
}
protected override void OnExit(ExitEventArgs e)
{
notifyIcon.Dispose(); //the icon would clean up automatically, but this is cleaner
base.OnExit(e);
}
}
}