66 lines
1.8 KiB
C#
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();
|
|
|
|
}
|
|
}
|