BITKit/Src/Core/UX/IUXService.cs

58 lines
1.3 KiB
C#

using System;
using Cysharp.Threading.Tasks;
namespace BITKit.UX
{
/// <summary>
/// 基本UX服务(GUI管理器),主要通过加载叠加面板实现
/// </summary>
public interface IUXService:IDisposable
{
public string SettingsPath { get; set; }
object Root { get; }
/// <summary>
/// 初始化
/// </summary>
/// <returns></returns>
UniTask InitializeAsync();
/// <summary>
/// 注册面板,加入注册队列
/// </summary>
/// <param name="panel">UX面板</param>
void Register(IUXPanel panel);
/// <summary>
/// 注销面板
/// </summary>
/// <param name="panel">UX面板</param>
void UnRegister(IUXPanel panel);
/// <summary>
/// 进入面板
/// </summary>
/// <typeparam name="T">面板类型</typeparam>
void Entry<T>() where T : IUXPanel;
/// <summary>
/// 返回上一个面板
/// </summary>
void Return();
/// <summary>
/// 进入面板
/// </summary>
/// <param name="panel">已实例化的面板</param>
void Entry(IUXPanel panel);
/// <summary>
/// 进入面板
/// </summary>
/// <param name="panelName">面板名称</param>
void Entry(string panelName);
/// <summary>
/// 当前面板
/// </summary>
IUXPanel CurrentPanel { get; }
/// <summary>
/// 面板改变回调
/// </summary>
public event Action<IUXPanel, IUXPanel> OnPanelChanged;
}
}