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(); } }