SystemTrayMenu/UserInterface/AppNotifyIcon.cs
2022-12-05 01:27:57 +01:00

52 lines
1.5 KiB
C#

// <copyright file="AppNotifyIcon.cs" company="PlaceholderCompany">
// Copyright (c) PlaceholderCompany. All rights reserved.
// </copyright>
namespace SystemTrayMenu.UserInterface
{
using System;
using System.Windows;
using Hardcodet.Wpf.TaskbarNotification;
using SystemTrayMenu.Helper;
using SystemTrayMenu.Utilities;
internal class AppNotifyIcon : IDisposable
{
private readonly TaskbarIcon notifyIcon = new ();
public AppNotifyIcon()
{
notifyIcon.ToolTipText = "SystemTrayMenu";
notifyIcon.Icon = Config.GetAppIcon();
notifyIcon.Visibility = Visibility.Visible;
AppContextMenu contextMenus = new();
contextMenus.ClickedOpenLog += () => OpenLog?.Invoke();
notifyIcon.ContextMenu = contextMenus.Create();
notifyIcon.LeftClickCommand = new ActionCommand((_) => Click?.Invoke());
notifyIcon.DoubleClickCommand = new ActionCommand((_) => Click?.Invoke());
}
public event Action? Click;
public event Action? OpenLog;
public void Dispose()
{
notifyIcon.Icon = null;
notifyIcon.Dispose();
}
public void LoadingStart()
{
notifyIcon.Icon = Resources.StaticResources.LoadingIcon;
}
public void LoadingStop()
{
notifyIcon.Icon = Config.GetAppIcon();
}
}
}