Files
2026-09-10 17:29:24 +08:00

66 lines
1.8 KiB
C#

using System;
namespace MFrame
{
/// <summary>
/// UI面板基础接口
/// </summary>
/// <typeparam name="T">面板数据类型参数</typeparam>
public interface IPanelBase : IDestroy
{
/// <summary>
/// 显示面板
/// </summary>
/// <param name="data">面板所需数据</param>
void Show(PanelBaseData data, System.Action<IPanelBase> completeHandler);
void ___CloseForPanelMgr(Action complete);
bool IsAutoDestroy();
/// <summary>
/// 是否正在显示中
/// </summary>
/// <returns></returns>
bool isShowing();
/// <summary>
/// 是否正在加载中
/// </summary>
/// <returns></returns>
bool isLoading();
/// <summary>
/// 面板所在 UI 层级(全屏遮挡判定用:仅隐藏低于本层面板层级的面板)
/// </summary>
UILayerIdx panelLayerIdx { get; }
/// <summary>
/// 被上层全屏面板遮挡时是否仍保持显示(常驻特殊面板为 true)
/// </summary>
bool isKeepShowWhenCovered { get; }
/// <summary>
/// 是否正被上层全屏面板隐藏
/// </summary>
bool isHiddenByCover { get; }
/// <summary>
/// 业务是否已关闭(区别于“被遮挡隐藏”)
/// </summary>
bool isClosed { get; }
/// <summary>
/// 全屏遮挡优化:由上层全屏面板调用,隐藏本面板,省去被盖住的 DrawCall
/// </summary>
void SetCoverHidden();
/// <summary>
/// 全屏遮挡优化:由隐藏者关闭/销毁时调用,恢复本面板显示(幂等)
/// </summary>
void RestoreFromCover();
}
}