using GFramework.Game.Abstractions.enums;
namespace GFramework.Game.Abstractions.ui;
///
/// UI页面行为接口,定义了UI页面的生命周期方法和状态管理
///
public interface IUiPageBehavior
{
///
/// 获取或设置当前UI句柄。
///
///
/// 表示当前UI句柄的可空类型 。
///
///
/// 此属性允许获取或设置与当前上下文关联的UI句柄。若未设置,则其值为 null。不可重入的ui句柄通常为null
///
UiHandle? Handle { get; set; }
///
/// 获取当前UI层的实例。
///
///
/// 返回与当前上下文关联的 实例。
///
///
/// 此属性用于访问与当前上下文关联的UI层对象,通常用于管理UI的层次结构和交互逻辑。
///
UiLayer Layer { get; }
///
/// 获取一个布尔值,指示当前操作是否为重入操作。
///
///
/// 重入操作通常指在同一个执行上下文中多次调用相同的方法或逻辑。
/// 此属性可用于检测并避免重复执行可能导致异常或不一致状态的操作。
///
bool IsReentrant { get; }
///
/// 获取页面视图对象。
///
/// 页面视图实例。
object View { get; }
///
/// 获取键值
///
/// 返回当前对象的键标识符
string Key { get; }
///
/// 获取页面是否处于活动状态
///
bool IsAlive { get; }
///
/// 获取页面是否可见
///
bool IsVisible { get; }
///
/// 获取页面是否为模态页面
///
bool IsModal { get; }
///
/// 获取页面是否阻断下层交互
///
bool BlocksInput { get; }
///
/// 页面进入时调用的方法
///
/// 页面进入时传递的参数,可为空
void OnEnter(IUiPageEnterParam? param);
///
/// 页面退出时调用的方法
///
void OnExit();
///
/// 页面暂停时调用的方法
///
void OnPause();
///
/// 页面恢复时调用的方法
///
void OnResume();
///
/// 页面被覆盖时调用(不销毁)
///
void OnHide();
///
/// 页面重新显示时调用的方法
///
void OnShow();
}