using CommunityToolkit.Mvvm.ComponentModel;
using CommunityToolkit.Mvvm.Input;
using System;
namespace Hua.Todo.Avalonia.ViewModels;
///
/// 应用托盘交互的 ViewModel。
/// 用于为 提供命令与提示文本,并将托盘事件路由到应用层逻辑。
///
public sealed partial class AppTrayViewModel : ObservableObject
{
private readonly Action _showMainWindow;
private readonly Action _exitApplication;
///
/// 创建 。
///
/// 托盘提示文本(部分平台有长度限制)。
/// 显示/激活主窗口回调。
/// 退出应用回调(应触发应用生命周期关闭)。
public AppTrayViewModel(string trayTooltipText, Action showMainWindow, Action exitApplication)
{
TrayTooltipText = trayTooltipText;
_showMainWindow = showMainWindow;
_exitApplication = exitApplication;
ShowMainWindowCommand = new RelayCommand(_showMainWindow);
ExitApplicationCommand = new RelayCommand(_exitApplication);
}
///
/// 托盘提示文本。
///
public string TrayTooltipText { get; }
///
/// 显示/激活主窗口命令。
///
public IRelayCommand ShowMainWindowCommand { get; }
///
/// 退出应用命令。
///
public IRelayCommand ExitApplicationCommand { get; }
}