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